diff options
author | Isidro Henoch <imhenoch@protonmail.com> | 2021-12-08 02:09:47 -0600 |
---|---|---|
committer | Isidro Henoch <imhenoch@protonmail.com> | 2021-12-08 02:09:47 -0600 |
commit | d2ee6a21355c390a4aaefc6ea847060c8e47c6ae (patch) | |
tree | 3a4000d6c933109a91add937827168ab0a18c1b7 /androidApp/src/main/java/mx/trackermap/TrackerMap/android/units | |
parent | c80ece3087b862e1849ad5c2972b9b13fec2eb3f (diff) | |
download | etbsa-trackermap-mobile-d2ee6a21355c390a4aaefc6ea847060c8e47c6ae.tar.gz etbsa-trackermap-mobile-d2ee6a21355c390a4aaefc6ea847060c8e47c6ae.tar.bz2 etbsa-trackermap-mobile-d2ee6a21355c390a4aaefc6ea847060c8e47c6ae.zip |
WIP: Starts implementing the main activity
- Removes the MainActivity and the shared code it was using
- Adds the UnitsActivity
- Implements the Map/List toggle functionality
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.kt | 52 | ||||
-rw-r--r-- | androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsViewModel.kt | 25 |
2 files changed, 77 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 new file mode 100644 index 0000000..6e9bc83 --- /dev/null +++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsActivity.kt @@ -0,0 +1,52 @@ +package mx.trackermap.TrackerMap.android.units + +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import androidx.fragment.app.commit +import mx.trackermap.TrackerMap.android.R +import mx.trackermap.TrackerMap.android.databinding.UnitsActivityBinding +import mx.trackermap.TrackerMap.android.devices.DevicesFragment +import mx.trackermap.TrackerMap.android.map.MapFragment +import org.koin.androidx.viewmodel.ext.android.viewModel + +class UnitsActivity : AppCompatActivity() { + + private var _binding: UnitsActivityBinding? = null + private val binding get() = _binding!! + + private val unitsViewModel: UnitsViewModel by viewModel() + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + _binding = UnitsActivityBinding.inflate(layoutInflater) + setContentView(binding.root) + + setupEvents() + setupObservers() + } + + override fun onDestroy() { + super.onDestroy() + _binding = null + } + + private fun setupEvents() { + binding.displayModeToggle.setOnClickListener { + unitsViewModel.toggleDisplayMode() + } + } + + private fun setupObservers() { + unitsViewModel.unitsDisplayMode.observe(this) { displayMode -> + val newFragment = + when (displayMode) { + UnitsViewModel.UnitsDisplayMode.LIST -> DevicesFragment() + UnitsViewModel.UnitsDisplayMode.MAP -> MapFragment() + } + supportFragmentManager.commit { + replace(R.id.displayContainer, newFragment) + } + } + } +}
\ 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 new file mode 100644 index 0000000..11df89b --- /dev/null +++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsViewModel.kt @@ -0,0 +1,25 @@ +package mx.trackermap.TrackerMap.android.units + +import android.util.Log +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel + +class UnitsViewModel : ViewModel() { + + enum class UnitsDisplayMode { + MAP, LIST + } + + var unitsDisplayMode = MutableLiveData<UnitsDisplayMode>(UnitsDisplayMode.MAP) + + fun toggleDisplayMode() { + Log.d("UnitsViewModel", "Toggling Display mode") + val newDisplayMode = + if (unitsDisplayMode.value == UnitsDisplayMode.MAP) { + UnitsDisplayMode.LIST + } else { + UnitsDisplayMode.MAP + } + unitsDisplayMode.postValue(newDisplayMode) + } +}
\ No newline at end of file |