aboutsummaryrefslogtreecommitdiff
path: root/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsActivity.kt
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2022-01-12 22:39:04 -0600
committerIván Ávalos <avalos@disroot.org>2022-01-12 22:39:04 -0600
commita13e418f74397653e028e38084f0f8f09492419e (patch)
tree7d9e848c5bd836182a9fb8592271b553ee1b3895 /androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsActivity.kt
parentda52a594e73b4fa118dbe7349565a8902755d506 (diff)
downloadetbsa-trackermap-mobile-a13e418f74397653e028e38084f0f8f09492419e.tar.gz
etbsa-trackermap-mobile-a13e418f74397653e028e38084f0f8f09492419e.tar.bz2
etbsa-trackermap-mobile-a13e418f74397653e028e38084f0f8f09492419e.zip
Implemented map layer switching and updated strings.xml
Diffstat (limited to 'androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsActivity.kt')
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsActivity.kt30
1 files changed, 30 insertions, 0 deletions
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsActivity.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsActivity.kt
index 5213577..5a9f9ad 100644
--- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsActivity.kt
+++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsActivity.kt
@@ -3,7 +3,9 @@ package mx.trackermap.TrackerMap.android.units
import android.content.Intent
import android.os.Bundle
import android.util.Log
+import android.view.View
import androidx.appcompat.app.AppCompatActivity
+import androidx.appcompat.widget.PopupMenu
import androidx.core.widget.doAfterTextChanged
import androidx.fragment.app.commit
import kotlinx.coroutines.DelicateCoroutinesApi
@@ -62,12 +64,32 @@ class UnitsActivity : AppCompatActivity() {
binding.displayModeToggle.setOnClickListener {
unitsViewModel.toggleDisplayMode()
}
+ binding.mapLayerToggle.setOnClickListener {
+ showLayersPopUp(it)
+ }
binding.searchInput.doAfterTextChanged {
Log.d("UnitsActivity", "Search changed to ${it.toString()}")
unitsViewModel.search(it.toString())
}
}
+ private fun showLayersPopUp(view: View) {
+ val popOver = PopupMenu(this, view)
+ popOver.menuInflater.inflate(R.menu.map_layers, popOver.menu)
+ popOver.setOnMenuItemClickListener { item ->
+ unitsViewModel.setMapLayer(
+ when (item.itemId) {
+ R.id.layerStreets -> getString(R.string.maps_streets_tile_url)
+ R.id.layerSatellite -> getString(R.string.maps_satellite_url)
+ R.id.layerHybrid -> getString(R.string.maps_hybrid_url)
+ else -> getString(R.string.maps_streets_tile_url)
+ }
+ )
+ true
+ }
+ popOver.show()
+ }
+
private fun setupObservers() {
unitsViewModel.unitsDisplayMode.observe(this) { displayMode ->
binding.displayModeToggle.setImageResource(
@@ -85,10 +107,18 @@ class UnitsActivity : AppCompatActivity() {
}
)
+ binding.mapLayerToggle.visibility =
+ when (displayMode) {
+ UnitsViewModel.UnitsDisplayMode.LIST -> View.GONE
+ UnitsViewModel.UnitsDisplayMode.MAP -> View.VISIBLE
+ else -> View.GONE
+ }
+
val newFragment =
when (displayMode) {
UnitsViewModel.UnitsDisplayMode.LIST -> devicesFragment
UnitsViewModel.UnitsDisplayMode.MAP -> mapFragment
+ else -> devicesFragment
}
supportFragmentManager.commit {
replace(R.id.displayContainer, newFragment)