kopia lustrzana https://github.com/meshtastic/Meshtastic-Android
begin support for showing/sharing qr codes for channel settings
rodzic
4ca5828914
commit
b17e7231c0
22
TODO.md
22
TODO.md
|
@ -1,23 +1,20 @@
|
|||
# High priority
|
||||
MVP features required for first public alpha
|
||||
|
||||
* do setOwner every time we connect to the radio, use our settings
|
||||
* 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
|
||||
* include a background behind our cloud graphics, so redraws work properly
|
||||
* show direction and distance on the nodeinfo cards
|
||||
* show radio config screen, it shows past channels (and the current one)
|
||||
* do setOwner every time we connect to the radio, use our settings, radio should ignore if unchanged
|
||||
* send location data for devices that don't have a GPS - https://developer.android.com/training/location/change-location-settings
|
||||
* make nodeinfo card not look like ass
|
||||
* 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
|
||||
* all chat in the app defaults to group chat
|
||||
* make my android app show mesh state
|
||||
* add app icon
|
||||
* when notified phone should automatically download messages
|
||||
* at connect we might receive messages before finished downloading the nodeinfo. In that case, process those messages later
|
||||
* use https://codelabs.developers.google.com/codelabs/jetpack-compose-basics/#4 to show service state
|
||||
* connect to bluetooth device automatically using minimum power - start looking at phone boot
|
||||
* fix BT device scanning
|
||||
* call crashlytics from exceptionReporter!!! currently not logging failures caught there
|
||||
* show direction and distance on the nodeinfo cards
|
||||
* test with oldest compatible android in emulator (see below for testing with hardware)
|
||||
* make playstore entry
|
||||
* make playstore entry, first public alpha
|
||||
|
||||
# Signal alpha release
|
||||
Do this "Signal app compatible" release relatively soon after the alpha release of the android app.
|
||||
|
@ -36,6 +33,9 @@ Do this "Signal app compatible" release relatively soon after the alpha release
|
|||
# Medium priority
|
||||
Things for the betaish period.
|
||||
|
||||
* 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
|
||||
* register app link for our URLs https://developer.android.com/studio/write/app-link-indexing.html
|
||||
* 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
|
||||
* if necessary restart entire BT adapter with this tip from Michael https://stackoverflow.com/questions/35103701/ble-android-onconnectionstatechange-not-being-called
|
||||
|
@ -88,3 +88,7 @@ Don't leave device discoverable. Don't let unpaired users do things with device
|
|||
* 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
|
||||
* show connection state on gui
|
||||
* parcels are busted - something wrong with the Parcelize kotlin magic
|
||||
* 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
|
||||
|
|
|
@ -87,6 +87,23 @@
|
|||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
|
||||
<!-- The QR codes to share channel settings are shared as meshtastic URLS
|
||||
|
||||
an approximate example:
|
||||
http://www.meshtastic.org/s/YXNkZnF3ZXJhc2RmcXdlcmFzZGZxd2Vy
|
||||
-->
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="http"
|
||||
android:host="www.meshtastic.org"
|
||||
android:pathPrefix="/s" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<receiver android:name="com.geeksville.mesh.service.BootCompleteReceiver">
|
||||
|
|
|
@ -32,6 +32,14 @@ interface IMeshService {
|
|||
*/
|
||||
NodeInfo[] getNodes();
|
||||
|
||||
/// This method is only intended for use in our GUI, so the user can set radio options
|
||||
/// It returns a RadioConfig protobuf.
|
||||
byte []getRadioConfig();
|
||||
|
||||
/// This method is only intended for use in our GUI, so the user can set radio options
|
||||
/// It sets a RadioConfig protobuf
|
||||
void setRadioConfig(in byte []payload);
|
||||
|
||||
/**
|
||||
Is the packet radio currently connected to the phone?
|
||||
*/
|
||||
|
|
|
@ -541,6 +541,14 @@ class MeshService : Service(), Logging {
|
|||
})
|
||||
}
|
||||
|
||||
override fun getRadioConfig(): ByteArray = toRemoteExceptions {
|
||||
return connectedRadio.readRadioConfig()
|
||||
}
|
||||
|
||||
override fun setRadioConfig(payload: ByteArray) = toRemoteExceptions {
|
||||
connectedRadio.writeRadioConfig(payload)
|
||||
}
|
||||
|
||||
override fun getNodes(): Array<NodeInfo> = toRemoteExceptions {
|
||||
val r = nodeDBbyID.values.toTypedArray()
|
||||
info("in getOnline, count=${r.size}")
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
# 128 bit psk key (we don't use 256 bit yet because we want to keep our QR code small)
|
||||
*ChannelSettings.psk max_size:16 fixed_length:true
|
||||
*ChannelSettings.name max_size:12
|
||||
|
||||
# MyMessage.name max_size:40
|
||||
# or fixed_length or fixed_count, or max_count
|
||||
|
|
|
@ -171,6 +171,9 @@ message ChannelSettings {
|
|||
/// A simple preshared key for now for crypto. At first I'm using 128 bit (16 byte) block for the Speck crypto
|
||||
/// but for beta we'll want something more carefully thought through. I want to keep the QR code small
|
||||
bytes psk = 4;
|
||||
|
||||
/// A SHORT name that will be packed into the URL. Less than 12 bytes. Something for end users to call the channel
|
||||
string name = 5;
|
||||
}
|
||||
|
||||
// The entire set of user settable/readable settings for our radio device. Includes both the current channel settings
|
||||
|
|
Plik binarny nie jest wyświetlany.
Po Szerokość: | Wysokość: | Rozmiar: 690 B |
File diff suppressed because one or more lines are too long
Po Szerokość: | Wysokość: | Rozmiar: 14 KiB |
Ładowanie…
Reference in New Issue