aboutsummaryrefslogtreecommitdiff
path: root/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2022-01-17 01:02:36 -0600
committerIván Ávalos <avalos@disroot.org>2022-01-17 01:02:36 -0600
commit70d21d0dab61fc2b30f64721279b27a2c8a01d7a (patch)
treedb5c7b3f53e020193dafbead813899b00573e782 /androidApp/src/main/java/mx/trackermap/TrackerMap/android/units
parent70af8a0fffe32033230d8f7a4d23f098d4b742bb (diff)
parent6858de4bf2ba110abc29078194135d971ce71aa5 (diff)
downloadetbsa-trackermap-mobile-70d21d0dab61fc2b30f64721279b27a2c8a01d7a.tar.gz
etbsa-trackermap-mobile-70d21d0dab61fc2b30f64721279b27a2c8a01d7a.tar.bz2
etbsa-trackermap-mobile-70d21d0dab61fc2b30f64721279b27a2c8a01d7a.zip
Merge branch 'main' of https://git.sr.ht/~avalos/trackermap-mobile
 Conflicts:  androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsActivity.kt  androidApp/src/main/res/values/map_layers.xml
Diffstat (limited to 'androidApp/src/main/java/mx/trackermap/TrackerMap/android/units')
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsActivity.kt32
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsViewModel.kt8
2 files changed, 24 insertions, 16 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 f2ff30e..e9b9010 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
@@ -10,6 +10,7 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.PopupMenu
import androidx.appcompat.widget.TooltipCompat
import androidx.core.widget.doAfterTextChanged
+import androidx.fragment.app.FragmentTransaction.TRANSIT_FRAGMENT_FADE
import androidx.fragment.app.commit
import kotlinx.coroutines.DelicateCoroutinesApi
import mx.trackermap.TrackerMap.android.R
@@ -79,7 +80,9 @@ class UnitsActivity : AppCompatActivity() {
}
binding.searchInput.doAfterTextChanged {
Log.d("UnitsActivity", "Search changed to ${it.toString()}")
- binding.searchInput
+ if (unitsViewModel.unitsDisplayMode.value == UnitsViewModel.UnitsDisplayMode.MAP) {
+ unitsViewModel.setDisplayMode(UnitsViewModel.UnitsDisplayMode.LIST)
+ }
unitsViewModel.search(it.toString())
}
binding.searchInputLayout.setEndIconOnClickListener {
@@ -91,17 +94,12 @@ class UnitsActivity : AppCompatActivity() {
val popOver = PopupMenu(this, view)
popOver.menuInflater.inflate(R.menu.map_layers, popOver.menu)
popOver.setOnMenuItemClickListener { item ->
- val layer = resources.getStringArray(
- when (item.itemId) {
- R.id.layerStreets -> R.array.maps_streets_tile
- R.id.layerGmaps -> R.array.maps_gmaps_tile
- R.id.layerSatellite -> R.array.maps_satellite_tile
- else -> R.array.maps_streets_tile
- }
- )
- unitsViewModel.setMapLayer(MapLayer(
- layer[0], layer[1].toInt(), layer[2].toInt(), layer[3]
- ))
+ val layer = when (item.itemId) {
+ R.id.layerStreets -> MapLayer.Type.STREETS
+ R.id.layerSatellite -> MapLayer.Type.SATELLITE
+ else -> MapLayer.Type.STREETS
+ }
+ unitsViewModel.setMapLayerType(layer)
true
}
popOver.show()
@@ -155,6 +153,7 @@ class UnitsActivity : AppCompatActivity() {
}
supportFragmentManager.commit {
replace(R.id.displayContainer, newFragment)
+ setTransition(TRANSIT_FRAGMENT_FADE)
}
}
unitsViewModel.selectedUnit.observe(this) {
@@ -164,5 +163,14 @@ class UnitsActivity : AppCompatActivity() {
private fun removeObservers() {
unitsViewModel.unitsDisplayMode.removeObservers(this)
+ unitsViewModel.selectedUnit.removeObservers(this)
+ }
+
+ override fun onBackPressed() {
+ if (unitsViewModel.unitsDisplayMode.value == UnitsViewModel.UnitsDisplayMode.LIST) {
+ unitsViewModel.setDisplayMode(UnitsViewModel.UnitsDisplayMode.MAP)
+ } else {
+ super.onBackPressed()
+ }
}
} \ No newline at end of file
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsViewModel.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsViewModel.kt
index d3060f0..2d2994b 100644
--- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsViewModel.kt
+++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsViewModel.kt
@@ -29,14 +29,14 @@ class UnitsViewModel(
private var _unitsDisplayMode = MutableLiveData(UnitsDisplayMode.MAP)
private var _units = MutableLiveData<List<UnitInformation>>()
private var _selectedUnit = MutableLiveData<UnitInformation?>()
- private var _mapLayer = MutableLiveData<MapLayer>()
+ private var _mapLayerType = MutableLiveData<MapLayer.Type>()
private var _geofences = MutableLiveData<Map<Int, Geofence>>()
val searchQuery: LiveData<String> get() = _searchQuery
val unitsDisplayMode: LiveData<UnitsDisplayMode> get() = _unitsDisplayMode
val units: LiveData<List<UnitInformation>> get() = _units
val selectedUnit: LiveData<UnitInformation?> get() = _selectedUnit
- val mapLayer: LiveData<MapLayer> get() = _mapLayer
+ val mapLayerType: LiveData<MapLayer.Type> get() = _mapLayerType
val geofences: LiveData<Map<Int, Geofence>> get() = _geofences
init {
@@ -85,8 +85,8 @@ class UnitsViewModel(
_unitsDisplayMode.postValue(displayMode)
}
- fun setMapLayer(layer: MapLayer) {
- _mapLayer.postValue(layer)
+ fun setMapLayerType(layer: MapLayer.Type) {
+ _mapLayerType.postValue(layer)
}
fun toggleDisplayMode() {