chore: remove old unused files
17
.project
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>Mesh Util</name>
|
||||
<comment>Project MeshUtil created by Buildship.</comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -1,13 +0,0 @@
|
|||
arguments=
|
||||
auto.sync=false
|
||||
build.scans.enabled=false
|
||||
connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
|
||||
connection.project.dir=
|
||||
eclipse.preferences.version=1
|
||||
gradle.user.home=
|
||||
java.home=/usr/lib/jvm/java-8-oracle
|
||||
jvm.arguments=
|
||||
offline.mode=false
|
||||
override.workspace.settings=true
|
||||
show.console.view=true
|
||||
show.executions.view=true
|
58
TODO.md
|
@ -1,58 +0,0 @@
|
|||
# Misc todo
|
||||
|
||||
* move analytics out with https://blog.gradle.org/optional-dependencies
|
||||
|
||||
# Android 30 location tasks
|
||||
|
||||
* https://developer.android.com/about/versions/11/privacy/location#background-location - ask for foreground and background location separately
|
||||
* add "help location checkbox"
|
||||
* turn off "provideLocation" checkbox if we don't have background permission. If someone tries to turn it on, raise dialog then ask for background permissions
|
||||
* add help button to location checkbox
|
||||
|
||||
# Documentation tasks
|
||||
|
||||
Mostly for geeksville
|
||||
|
||||
Document the following in application behavior
|
||||
*change ls_secs is 1 hr normally, which is fine because if there are other nodes in the mesh and they send us a packet we will wake any time during ls_secs and update app state
|
||||
* use states for meshservice: disconnected -> connected-> devsleep -> disconnected (3 states)
|
||||
* when device enters LS state radiointerfaceservice publishes "Broadcasting connection=false", meshservice should then enter devicesleepstate for ls_secs + 30s (to allow for some margin)
|
||||
|
||||
* describe user experience: devices always point to each other and show distance, you can send texts between nodes
|
||||
the channel is encrypted, you can share the the channel key with others by qr code or by sharing a special link
|
||||
|
||||
* take video of the app
|
||||
|
||||
# Post 1.0
|
||||
|
||||
* show pointer arrow on the outside of the user icons, always pointing towards them
|
||||
* Use setLargeIcon to show user icons in the notification: file:///home/kevinh/packages/android-sdk-linux/docs/design/patterns/notifications.html
|
||||
* Our notification about messages should use VISIBLITY_PRIVATE + setPublicVersion per file:///home/kevinh/packages/android-sdk-linux/docs/guide/topics/ui/notifiers/notifications.html
|
||||
* Use LocationRequest.setSmallestDisplacement to save battery and decrease net activity
|
||||
* use platform theme (dark or light)
|
||||
* Do PRIORITY_BALANCED_POWER_ACCURACY for our gps updates when no one in the mesh is nearer than 200 meters
|
||||
* spend some quality power consumption tuning with https://developer.android.com/studio/profile/energy-profiler and https://developer.android.com/topic/performance/power/battery-historian
|
||||
* use google signin to get user name (make optional)
|
||||
* keep past messages in db, one db per channel (currently we just keep an array in saved preferences)
|
||||
* show user avatars in chat (use the google user info api)
|
||||
* let users save old channels (i.e. have a menu of channels the user can use)
|
||||
* if the rxpacket queue on the device overflows (because android hasn't connected in a while) send a special packet to android which means 'X packets have been dropped because you were offline' -drop oldest packets first
|
||||
* make sw update work over BLE
|
||||
|
||||
# Signal alpha release
|
||||
Do this "Signal app compatible" release relatively soon after the alpha release of the android app.
|
||||
|
||||
* call onNodeDBChanged after we haven't heard a packet from the mesh in a while - because that's how we decide we have less than 2 nodes in the mesh and should stop listening to the local GPS
|
||||
* add large packet reassembly?
|
||||
* optionally turn off crypto in signal - preferably though see if there is a nice way to be a peer of signal/sms and now mesh.
|
||||
* change signal package ID - if distributing modified binary
|
||||
* investigate the Signal SMS message flow path, see if I could just make Mesh a third peer to signal & sms?
|
||||
* make signal work when there is no internet up
|
||||
* make Signal rx path work
|
||||
* send Signal message type. It seems to be? " public static final int WHISPER_TYPE = 2;
|
||||
public static final int PREKEY_TYPE = 3;
|
||||
public static final int SENDERKEY_TYPE = 4;
|
||||
public static final int SENDERKEY_DISTRIBUTION_TYPE = 5;"
|
||||
|
||||
# Done
|
||||
|
Przed Szerokość: | Wysokość: | Rozmiar: 33 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 42 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 102 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 42 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 47 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 14 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 86 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.1 MiB |
Przed Szerokość: | Wysokość: | Rozmiar: 81 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 152 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 82 KiB |
|
@ -1,742 +0,0 @@
|
|||
[
|
||||
{
|
||||
"eventType": "VIEW_CLICKED",
|
||||
"timestamp": 1586629911091,
|
||||
"replacementText": "",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout$TabView",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 3,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout$SlidingTabIndicator",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 1,
|
||||
"resourceId": "com.geeksville.mesh:id/tab_layout",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "VIEW_CLICKED",
|
||||
"timestamp": 1586629915828,
|
||||
"replacementText": "",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout$TabView",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 2,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout$SlidingTabIndicator",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 1,
|
||||
"resourceId": "com.geeksville.mesh:id/tab_layout",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "VIEW_CLICKED",
|
||||
"timestamp": 1586629919413,
|
||||
"replacementText": "",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout$TabView",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 1,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout$SlidingTabIndicator",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 1,
|
||||
"resourceId": "com.geeksville.mesh:id/tab_layout",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "VIEW_CLICKED",
|
||||
"timestamp": 1586629922790,
|
||||
"replacementText": "",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout$TabView",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout$SlidingTabIndicator",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 1,
|
||||
"resourceId": "com.geeksville.mesh:id/tab_layout",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "VIEW_TEXT_CHANGED",
|
||||
"timestamp": 1586629928465,
|
||||
"replacementText": "hhi",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputEditText",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "com.geeksville.mesh:id/messageInputText",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "android.widget.FrameLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 1,
|
||||
"resourceId": "com.geeksville.mesh:id/textInputLayout",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "PRESSED_EDITOR_ACTION",
|
||||
"timestamp": 1586629935566,
|
||||
"replacementText": "hhi",
|
||||
"actionCode": 6,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputEditText",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "com.geeksville.mesh:id/messageInputText",
|
||||
"contentDescription": "",
|
||||
"text": "hhi"
|
||||
},
|
||||
{
|
||||
"className": "android.widget.FrameLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 1,
|
||||
"resourceId": "com.geeksville.mesh:id/textInputLayout",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "VIEW_CLICKED",
|
||||
"timestamp": 1586629943766,
|
||||
"replacementText": "",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout$TabView",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 1,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout$SlidingTabIndicator",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 1,
|
||||
"resourceId": "com.geeksville.mesh:id/tab_layout",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "VIEW_CLICKED",
|
||||
"timestamp": 1586629947847,
|
||||
"replacementText": "",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout$TabView",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 2,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout$SlidingTabIndicator",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 1,
|
||||
"resourceId": "com.geeksville.mesh:id/tab_layout",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "VIEW_CLICKED",
|
||||
"timestamp": 1586629951848,
|
||||
"replacementText": "",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout$TabView",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 3,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout$SlidingTabIndicator",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 1,
|
||||
"resourceId": "com.geeksville.mesh:id/tab_layout",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "VIEW_CLICKED",
|
||||
"timestamp": 1586629957343,
|
||||
"replacementText": "",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.checkbox.MaterialCheckBox",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 2,
|
||||
"resourceId": "com.geeksville.mesh:id/editableCheckbox",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "androidx.constraintlayout.widget.ConstraintLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "android.widget.FrameLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "VIEW_LONG_CLICKED",
|
||||
"timestamp": 1586629963511,
|
||||
"replacementText": "Default",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputEditText",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "com.geeksville.mesh:id/channelNameEdit",
|
||||
"contentDescription": "",
|
||||
"text": "Default"
|
||||
},
|
||||
{
|
||||
"className": "android.widget.FrameLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "com.geeksville.mesh:id/channelNameView",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "VIEW_TEXT_CHANGED",
|
||||
"timestamp": 1586629965913,
|
||||
"replacementText": "Defaultx",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputEditText",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "com.geeksville.mesh:id/channelNameEdit",
|
||||
"contentDescription": "",
|
||||
"text": "Default"
|
||||
},
|
||||
{
|
||||
"className": "android.widget.FrameLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "com.geeksville.mesh:id/channelNameView",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "VIEW_CLICKED",
|
||||
"timestamp": 1586629968157,
|
||||
"replacementText": "Defaultx",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputEditText",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "com.geeksville.mesh:id/channelNameEdit",
|
||||
"contentDescription": "",
|
||||
"text": "Defaultx"
|
||||
},
|
||||
{
|
||||
"className": "android.widget.FrameLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "com.geeksville.mesh:id/channelNameView",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "VIEW_TEXT_CHANGED",
|
||||
"timestamp": 1586629970340,
|
||||
"replacementText": "Defaultxbb",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputEditText",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "com.geeksville.mesh:id/channelNameEdit",
|
||||
"contentDescription": "",
|
||||
"text": "Defaultx"
|
||||
},
|
||||
{
|
||||
"className": "android.widget.FrameLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "com.geeksville.mesh:id/channelNameView",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "PRESSED_EDITOR_ACTION",
|
||||
"timestamp": 1586629974781,
|
||||
"replacementText": "Defaultxbb",
|
||||
"actionCode": 6,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputEditText",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "com.geeksville.mesh:id/channelNameEdit",
|
||||
"contentDescription": "",
|
||||
"text": "Defaultxbb"
|
||||
},
|
||||
{
|
||||
"className": "android.widget.FrameLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "com.geeksville.mesh:id/channelNameView",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "VIEW_CLICKED",
|
||||
"timestamp": 1586629980271,
|
||||
"replacementText": "",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.checkbox.MaterialCheckBox",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 2,
|
||||
"resourceId": "com.geeksville.mesh:id/editableCheckbox",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "androidx.constraintlayout.widget.ConstraintLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "android.widget.FrameLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "VIEW_CLICKED",
|
||||
"timestamp": 1586629985704,
|
||||
"replacementText": "Cancel",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": true,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.button.MaterialButton",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "android:id/button3",
|
||||
"contentDescription": "",
|
||||
"text": "Cancel"
|
||||
},
|
||||
{
|
||||
"className": "androidx.appcompat.widget.ButtonBarLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "android.widget.ScrollView",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 3,
|
||||
"resourceId": "com.geeksville.mesh:id/buttonPanel",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "VIEW_CLICKED",
|
||||
"timestamp": 1586629990504,
|
||||
"replacementText": "",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout$TabView",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 4,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout$SlidingTabIndicator",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.tabs.TabLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 1,
|
||||
"resourceId": "com.geeksville.mesh:id/tab_layout",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "VIEW_TEXT_CHANGED",
|
||||
"timestamp": 1586629997403,
|
||||
"replacementText": "Bob x",
|
||||
"actionCode": -1,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputEditText",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "com.geeksville.mesh:id/usernameEditText",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "android.widget.FrameLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 1,
|
||||
"resourceId": "com.geeksville.mesh:id/textInputLayout2",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"eventType": "PRESSED_EDITOR_ACTION",
|
||||
"timestamp": 1586630009771,
|
||||
"replacementText": "Bob x",
|
||||
"actionCode": 6,
|
||||
"delayTime": 0,
|
||||
"canScrollTo": false,
|
||||
"elementDescriptors": [
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputEditText",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "com.geeksville.mesh:id/usernameEditText",
|
||||
"contentDescription": "",
|
||||
"text": "Bob x"
|
||||
},
|
||||
{
|
||||
"className": "android.widget.FrameLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 0,
|
||||
"resourceId": "",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"className": "com.google.android.material.textfield.TextInputLayout",
|
||||
"recyclerViewChildPosition": -1,
|
||||
"adapterViewChildPosition": -1,
|
||||
"groupViewChildPosition": 1,
|
||||
"resourceId": "com.geeksville.mesh:id/textInputLayout2",
|
||||
"contentDescription": "",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|