diff --git a/TODO.md b/TODO.md index d9a38eb17..b23616cb4 100644 --- a/TODO.md +++ b/TODO.md @@ -1,7 +1,9 @@ # High priority Work items for soon alpha builds -* update play store listing for public beta +* let channel be editited +* make link sharing work +* finish map view * run services in sim mode on emulator * show offline nodes as greyed out * show time since last contact on the node info card @@ -161,3 +163,4 @@ Don't leave device discoverable. Don't let unpaired users do things with device * generate real channel QR codes * Have play store entry ask users to report if their android version is too old to allow install * use git submodule for androidlib +* update play store listing for public beta \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 11f6cc6a4..b6f46faf7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -87,6 +87,9 @@ dependencies { //implementation 'com.google.protobuf:protobuf-java:3.11.1' //implementation 'com.google.protobuf:protobuf-java-util:3.11.1' implementation 'com.google.protobuf:protobuf-javalite:3.11.1' + + // mapbox + implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.0.0' // You also need to include the following Compose toolkit dependencies. implementation("androidx.compose:compose-runtime:$compose_version") diff --git a/app/src/main/java/com/geeksville/mesh/MeshUtilApplication.kt b/app/src/main/java/com/geeksville/mesh/MeshUtilApplication.kt index a30d7ee0e..3e5d3a0e4 100644 --- a/app/src/main/java/com/geeksville/mesh/MeshUtilApplication.kt +++ b/app/src/main/java/com/geeksville/mesh/MeshUtilApplication.kt @@ -6,6 +6,7 @@ import com.geeksville.android.GeeksvilleApplication import com.geeksville.android.Logging import com.geeksville.util.Exceptions import com.google.firebase.crashlytics.FirebaseCrashlytics +import com.mapbox.mapboxsdk.Mapbox class MeshUtilApplication : GeeksvilleApplication(null, "58e72ccc361883ea502510baa46580e3") { @@ -26,5 +27,8 @@ class MeshUtilApplication : GeeksvilleApplication(null, "58e72ccc361883ea502510b crashlytics.recordException(exception) } } + + // Mapbox Access token + Mapbox.getInstance(this, getString(R.string.mapbox_access_token)) } } \ No newline at end of file diff --git a/app/src/main/java/com/geeksville/mesh/ui/AppDrawer.kt b/app/src/main/java/com/geeksville/mesh/ui/AppDrawer.kt index ae9f471ae..82da06e7c 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/AppDrawer.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/AppDrawer.kt @@ -47,6 +47,7 @@ fun AppDrawer( ScreenButton(Screen.messages) ScreenButton(Screen.users) + ScreenButton(Screen.map) ScreenButton(Screen.channel) ScreenButton(Screen.settings) } diff --git a/app/src/main/java/com/geeksville/mesh/ui/Map.kt b/app/src/main/java/com/geeksville/mesh/ui/Map.kt new file mode 100644 index 000000000..52d156d3d --- /dev/null +++ b/app/src/main/java/com/geeksville/mesh/ui/Map.kt @@ -0,0 +1,33 @@ +package com.geeksville.mesh.ui + +import androidx.compose.Composable +import androidx.ui.core.ContextAmbient +import androidx.ui.layout.Column +import androidx.ui.layout.LayoutPadding +import androidx.ui.layout.LayoutSize +import androidx.ui.material.MaterialTheme +import androidx.ui.tooling.preview.Preview +import androidx.ui.unit.dp + + +@Composable +fun MapContent() { + analyticsScreen(name = "channel") + + val typography = MaterialTheme.typography() + val context = ContextAmbient.current + + Column(modifier = LayoutSize.Fill + LayoutPadding(16.dp)) { + + } +} + + +@Preview +@Composable +fun previewMap() { + // another bug? It seems modaldrawerlayout not yet supported in preview + MaterialTheme(colors = palette) { + MapContent() + } +} diff --git a/app/src/main/java/com/geeksville/mesh/ui/MeshApp.kt b/app/src/main/java/com/geeksville/mesh/ui/MeshApp.kt index a9c2e2ba6..b1a172e11 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/MeshApp.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/MeshApp.kt @@ -146,6 +146,7 @@ private fun AppContent(openDrawer: () -> Unit) { Screen.settings -> SettingsContent() Screen.users -> HomeContent() Screen.channel -> ChannelContent() + Screen.map -> MapContent() else -> TODO() } } diff --git a/app/src/main/java/com/geeksville/mesh/ui/Status.kt b/app/src/main/java/com/geeksville/mesh/ui/Status.kt index 3d03495e5..dbe4bb64c 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/Status.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/Status.kt @@ -12,6 +12,7 @@ object Screen { val channel = ScreenInfo(R.drawable.ic_twotone_contactless_24, "Channel") val users = ScreenInfo(R.drawable.ic_twotone_people_24, "Users") val messages = ScreenInfo(R.drawable.ic_twotone_message_24, "Messages") + val map = ScreenInfo(R.drawable.ic_twotone_map_24, "Map") } diff --git a/app/src/main/res/drawable/ic_twotone_map_24.xml b/app/src/main/res/drawable/ic_twotone_map_24.xml new file mode 100644 index 000000000..bd96aeb9f --- /dev/null +++ b/app/src/main/res/drawable/ic_twotone_map_24.xml @@ -0,0 +1,15 @@ + + + + diff --git a/app/src/main/res/values/mapbox-token.xml b/app/src/main/res/values/mapbox-token.xml new file mode 120000 index 000000000..137035cde --- /dev/null +++ b/app/src/main/res/values/mapbox-token.xml @@ -0,0 +1 @@ +../../../../../../mapbox-token.xml \ No newline at end of file diff --git a/geeksville-androidlib b/geeksville-androidlib index ee0863c3c..188cf4fbb 160000 --- a/geeksville-androidlib +++ b/geeksville-androidlib @@ -1 +1 @@ -Subproject commit ee0863c3c94856f9859d17219761903f4dea00fd +Subproject commit 188cf4fbb503ac0384f1fce4d3d3f0c2c9f07c02