2020-01-26 23:01:59 +00:00
# High priority
2020-02-28 20:37:15 +00:00
Work items for soon alpha builds
2020-02-01 20:33:53 +00:00
2020-02-29 04:09:00 +00:00
* run services in sim mode on emulator
2020-02-25 02:38:51 +00:00
* show offline nodes as greyed out
2020-02-25 23:07:09 +00:00
* show time since last contact on the node info card
2020-02-25 02:38:51 +00:00
* show pointer arrow on the outside of the user icons, always pointing towoards them
* fix app icon in title bar
2020-02-25 22:23:19 +00:00
* show direction on the nodeinfo cards
2020-02-28 20:37:15 +00:00
* take video of the app
* register app link for our URLs https://developer.android.com/studio/write/app-link-indexing.html
* let users change & share channels (but no saving them yet)
* treat macaddrs as the unique id, not the app layer user id
* only publish gps positions once every 5 mins while we are connected to our radio _and_ someone else is in the mesh
2020-02-25 02:38:51 +00:00
# Medium priority
Features for future builds
2020-02-29 04:09:00 +00:00
* fix notification setSmallIcon parameter - change it to use the meshtastic icon
2020-02-25 23:07:09 +00:00
* ditch compose and use https://github.com/zsmb13/MaterialDrawerKt + https://github.com/Kotlin/anko/wiki/Anko-Layouts?
2020-02-18 16:56:53 +00:00
* 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
2020-02-25 02:38:51 +00:00
* be smarter about sharing GPS location with the device (to save power), integrate with new network scheduler
2020-02-28 20:37:15 +00:00
* stop scan when we start the service - I think this is done, but check
* set the radio macaddr by using the service (not by slamming bytes into the Preferences)
2020-02-14 03:02:40 +00:00
* show bt scan progress centered and towards the bottom of the screen
2020-02-12 03:19:56 +00:00
* when a text arrives, move that node info card to the bottom on the window - put the text to the left of the card. with a small arrow/distance/shortname
* let the user type texts somewhere
2020-02-12 23:47:06 +00:00
* use this for preferences? https://developer.android.com/guide/topics/ui/settings/
2020-02-05 04:11:05 +00:00
* at connect we might receive messages before finished downloading the nodeinfo. In that case, process those messages later
2020-02-10 16:08:23 +00:00
* test with oldest compatible android in emulator (see below for testing with hardware)
2020-02-15 22:34:58 +00:00
* add play store link with https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#google-play-url-builder and the play icon
2020-02-10 16:08:23 +00:00
# Signal alpha release
Do this "Signal app compatible" release relatively soon after the alpha release of the android app.
2020-02-19 23:28:15 +00:00
* 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
2020-02-10 16:08:23 +00:00
* 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
2020-01-27 22:54:35 +00:00
* investigate the Signal SMS message flow path, see if I could just make Mesh a third peer to signal & sms?
2020-01-26 23:01:59 +00:00
* make signal work when there is no internet up
* make Signal rx path work
2020-01-27 22:54:35 +00:00
* 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;"
2020-02-10 16:08:23 +00:00
2020-01-21 17:37:39 +00:00
# Medium priority
2020-02-10 16:08:23 +00:00
Things for the betaish period.
2020-01-21 17:37:39 +00:00
2020-02-28 21:53:16 +00:00
* 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
2020-02-25 02:38:51 +00:00
* let users save old channels
2020-02-25 04:08:18 +00:00
* make sw update work while node is connected to mesh - the problem is there are _two_ instances of SafeBluetooth at that moment and therefore we violate undocumented android mutex
rules at the BluetoothDevice level. Either make SafeBluetooth lock at the device level or (not as good) make SafeBluetooth a singleton.
2020-02-20 02:51:59 +00:00
* Use LocationRequest.setSmallestDisplacement to save battery and decrease net activity
2020-02-19 04:19:40 +00:00
* MeshService.reinitFromRadio can take 300 ms, run it in a worker thread instead
2020-02-18 02:46:20 +00:00
* show user icons in chat
* keep past messages in db, one db per channel
2020-02-17 17:06:22 +00:00
* 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
2020-02-16 22:22:24 +00:00
* Do PRIORITY_BALANCED_POWER_ACCURACY for our gps updates when no one in the mesh is nearer than 200 meters
2020-02-14 21:55:38 +00:00
* fix slow rendering warnings in play console
2020-02-14 15:47:20 +00:00
* use google signin to get user name
* use Firebase Test Lab
2020-02-14 12:41:20 +00:00
* let user pick/specify a name through ways other than google signin (for the privacy concerned, or devices without Play API)
2020-02-12 03:19:56 +00:00
* make my android app show mesh state
* show qr code for each channel https://medium.com/@aanandshekharroy/generate-barcode-in-android-app-using-zxing-64c076a5d83a
2020-02-10 16:08:23 +00:00
* let user change radio params and share radio join info via QR code or text message (use an encoded app specific URL - to autoprompt for app installation as needed)
* test with an oldish android release using real hardware
2020-02-04 21:24:04 +00:00
* stop using a foreground service
2020-01-23 14:46:23 +00:00
* use platform theme (dark or light)
2020-01-23 14:34:15 +00:00
* remove mixpanel analytics
2020-01-21 20:07:03 +00:00
* require user auth to pair with the device (i.e. press button on device to allow a new phone to pair with it).
2020-01-27 22:54:35 +00:00
Don't leave device discoverable. Don't let unpaired users do things with device
2020-02-03 02:38:01 +00:00
* 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
2020-01-21 17:37:39 +00:00
# Low priority
2020-02-07 06:58:27 +00:00
** make analytics optional
2020-02-03 03:20:17 +00:00
* also add a receiver that fires after a new update was installed from the play store
2020-01-22 22:27:22 +00:00
# Done
2020-01-24 20:40:12 +00:00
* DONE fix bluetooth update
* DONE refactor sw update code to share with my other bluetooth service
* DONE don't let sw update got to sleep during the update
2020-01-22 22:27:22 +00:00
* assert() is apparently a noop - change to use my version of assert
* DONE add crash reporting
* DONE add analytics (make them optional)
2020-01-22 22:48:06 +00:00
* make frontend using https://developer.android.com/jetpack/compose/tutorial
2020-01-23 18:39:54 +00:00
* change bluetooth mtu length to 512 (default is only 20)
2020-01-24 20:40:12 +00:00
* DONE get signal running under debugger
* Find good Signal hooks
2020-01-25 20:24:53 +00:00
* receive fake packets at power on to built initial state (for debugging, pretend there are a couple of nodes out there)
* learn our node number
* test mesh service from activity
2020-01-26 20:18:49 +00:00
* DONE handle failures in onCharWrite, instead of logAssert - because they can happen if device goes away
* DONE explictly broadcast towards signal https://developer.android.com/guide/components/broadcasts
* make test implementation of android service (doesn't use bluetooth)
2020-01-26 23:01:59 +00:00
* undo base64
* use android service from Signal
* send signal message type over wire
* DONE add broadcasters for use by signal (node changes and packet received)
* DONE have signal declare receivers: https://developer.android.com/guide/components/broadcasts#manifest-declared-receivers
2020-01-27 22:54:35 +00:00
* fix // FIXME hack for now - throw IdNotFoundException(id) in MeshService
2020-02-01 20:33:53 +00:00
* clean up sw update code in device side
* add real messaging code/protobufs
2020-02-03 03:20:17 +00:00
* implement android side of mesh radio bluetooth link
* use the lora net code on my current protoboard
* investigate a 16 bit node number. If possible it would make collisions super rare. Much easier to just pick a nodenum and go.
2020-02-05 00:06:33 +00:00
* remove example code boilerplate from the service
* switch from protobuf-java to protobuf-javalite - much faster and smaller, just no JSON debug printing
2020-02-05 04:11:05 +00:00
* have phone use our local node number as its node number (instead of hardwired)
2020-02-10 16:08:23 +00:00
* if radio disconnects, we need to requeue a new connect attempt in RadioService
* don't do mesh based algoritm for node id assignment (initially) - instead just store in flash - possibly even in the initial alpha release do this hack
2020-02-11 00:34:01 +00:00
* show connection state on gui
* parcels are busted - something wrong with the Parcelize kotlin magic
2020-02-12 03:19:56 +00:00
* add app icon
* when notified phone should automatically download messages
* use https://codelabs.developers.google.com/codelabs/jetpack-compose-basics/#4 to show service state
* all chat in the app defaults to group chat
2020-02-13 17:25:39 +00:00
* start bt receive on boot
2020-02-14 15:47:20 +00:00
* warn user to bt pair
2020-02-17 02:14:40 +00:00
* suppress logging output if running a release build (required for play store)
* provide gps location for devices that don't have it
2020-02-18 02:46:20 +00:00
* prompt user to turnon bluetooth and bind
* show real ID of me when I sent texts
* keep text entry box at bottom of screen
2020-02-19 04:19:40 +00:00
* when I enter texts, send them to the device
* let user set name and shortname
* let user send texts
* get rid of green bar at top
* change titlebar based off which screen we are showing
2020-02-25 02:38:51 +00:00
* on onStop somehow stop the BT scan (to prevent burning battery)
* "new bluetooth connection state 0, status 22" loss of connection
* fix BT device scanning - make a setup screen
* tell Compose geeks
* call crashlytics from exceptionReporter!!! currently not logging failures caught there
* do setOwner every time we connect to the radio, use our settings, radio should ignore if unchanged
2020-02-25 17:28:47 +00:00
* send location data for devices that don't have a GPS - https://developer.android.com/training/location/change-location-settings
* if necessary restart entire BT adapter with this tip from Michael https://stackoverflow.com/questions/35103701/ble-android-onconnectionstatechange-not-being-called
2020-02-25 22:23:19 +00:00
* don't show test texts when not under emulator
* make node list view not look like ass
* test bt boot behavior
2020-02-25 23:07:09 +00:00
* include tent on cloud graphics, so redraws work properly
* record analytics events when radio connects/disconnects, include # of nodes in mesh
* make a boot screen explaining this is an early alpha, tell user to go to settings if they have a radio, otherwise go to website
* when we connect to radio, distances to nodes in the chat log should automatically redraw
2020-02-28 20:37:15 +00:00
* add screenshots and text to play store entry
* if no radio is selected, launch app on the radio select screen
* connect to bluetooth device automatically using minimum power - start looking at phone boot
2020-02-28 21:53:16 +00:00
* tell various vendors & post in forums
* change info() log strings to debug()
2020-02-29 04:09:00 +00:00
* have the foreground service's notification show a summary of network status "connected/disconnected, 5 of 6 nodes, nearest: kevin 5km",
* have notification (individually maskable) notifications for received texts - use file:///home/kevinh/packages/android-sdk-linux/docs/reference/android/support/v4/app/NotificationCompat.BigTextStyle.html
2020-03-02 14:25:17 +00:00
* startforegroundservice only if we have a valid radio
* when we select a new radio, restart the service
2020-03-02 16:41:16 +00:00
* make channel button look like a button
2020-03-02 17:49:53 +00:00
* generate real channel QR codes
2020-03-02 18:02:50 +00:00
* Have play store entry ask users to report if their android version is too old to allow install
* use git submodule for androidlib