diff --git a/TODO.md b/TODO.md index c5b119e11..58e4ebb71 100644 --- a/TODO.md +++ b/TODO.md @@ -1,27 +1,24 @@ # High priority MVP features required for first public alpha -* 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 +* have the foreground service's notification show a summary of network status, add (individually maskable) notifications for received texts or new positions * show offline nodes as greyed out -* when we connect to radio, distances to nodes in the chat log should automatically redraw +* show time since last contact on the node info card * show pointer arrow on the outside of the user icons, always pointing towoards them * fix app icon in title bar * show direction on the nodeinfo cards -* have the foreground service's notification show a summary of network status, add (individually maskable) notifications for received texts or new positions -* add screenshots and text to play store entry * make hackaday page * test using firebase testlab # Medium priority Features for future builds -* ditch compose and use https://github.com/zsmb13/MaterialDrawerKt + https://github.com/Kotlin/anko/wiki/Anko-Layouts +* ditch compose and use https://github.com/zsmb13/MaterialDrawerKt + https://github.com/Kotlin/anko/wiki/Anko-Layouts? * 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 * be smarter about sharing GPS location with the device (to save power), integrate with new network scheduler * take video of the app * make a working currently vs not working list -* record analytics events when radio connects/disconnects, include # of nodes in mesh * make channel button look like a button * generate real channel QR codes * let users change & share channels (but no saving them yet) @@ -154,4 +151,8 @@ Don't leave device discoverable. Don't let unpaired users do things with device * don't show test texts when not under emulator * make node list view not look like ass * test bt boot behavior -* include tent on cloud graphics, so redraws work properly \ No newline at end of file +* 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 +* add screenshots and text to play store entry \ No newline at end of file diff --git a/app/src/main/java/com/geeksville/mesh/MainActivity.kt b/app/src/main/java/com/geeksville/mesh/MainActivity.kt index e2c98fb28..62dffe988 100644 --- a/app/src/main/java/com/geeksville/mesh/MainActivity.kt +++ b/app/src/main/java/com/geeksville/mesh/MainActivity.kt @@ -24,8 +24,10 @@ import com.geeksville.mesh.model.NodeDB import com.geeksville.mesh.model.TextMessage import com.geeksville.mesh.model.UIState import com.geeksville.mesh.service.* +import com.geeksville.mesh.ui.AppStatus import com.geeksville.mesh.ui.MeshApp import com.geeksville.mesh.ui.ScanState +import com.geeksville.mesh.ui.Screen import com.geeksville.util.exceptionReporter import com.google.android.gms.auth.api.signin.GoogleSignIn import com.google.android.gms.auth.api.signin.GoogleSignInAccount @@ -401,6 +403,10 @@ class MainActivity : AppCompatActivity(), Logging, super.onStart() bindMeshService() + + val bonded = RadioInterfaceService.getBondedDeviceAddress(this) != null + if (!bonded) + AppStatus.currentScreen = Screen.settings } override fun onCreateOptionsMenu(menu: Menu): Boolean { diff --git a/app/src/main/java/com/geeksville/mesh/ui/Settings.kt b/app/src/main/java/com/geeksville/mesh/ui/Settings.kt index fc21d214a..6e6960e6c 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/Settings.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/Settings.kt @@ -14,6 +14,7 @@ import androidx.ui.unit.dp import com.geeksville.android.Logging import com.geeksville.mesh.model.MessagesState import com.geeksville.mesh.model.UIState +import com.geeksville.mesh.service.RadioInterfaceService object SettingsLog : Logging @@ -48,6 +49,26 @@ fun SettingsContent() { } BTScanScreen() + + val context = ambient(ContextAmbient) + + val bonded = RadioInterfaceService.getBondedDeviceAddress(context) != null + if (!bonded) { + + val typography = MaterialTheme.typography() + val context = ambient(ContextAmbient) + + Text( + text = + """ + You haven't yet paired a Meshtastic compatible radio with this phone. + + This application is an early alpha release, if you find problems please post on our website chat. + + For more information see our web page - www.meshtastic.org. + """.trimIndent(), style = typography.body2 + ) + } } } diff --git a/images/screenshot1.png b/images/screenshot1.png index f22dc3d98..d247ee24f 100644 Binary files a/images/screenshot1.png and b/images/screenshot1.png differ diff --git a/images/screenshot2.png b/images/screenshot2.png index 0207b75d1..894cde628 100644 Binary files a/images/screenshot2.png and b/images/screenshot2.png differ