File tree Expand file tree Collapse file tree 5 files changed +15
-3
lines changed
core/src/main/java/com/example/util/simpletimetracker/core/sharedViewModel
domain/src/main/java/com/example/util/simpletimetracker/domain/record/interactor
feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/recordQuickActions/viewModel
feature_main/src/main/java/com/example/util/simpletimetracker/feature_main/view Expand file tree Collapse file tree 5 files changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -2,15 +2,19 @@ package com.example.util.simpletimetracker.core.sharedViewModel
22
33import androidx.lifecycle.LiveData
44import androidx.lifecycle.MutableLiveData
5+ import androidx.lifecycle.viewModelScope
56import com.example.util.simpletimetracker.core.base.BaseViewModel
67import com.example.util.simpletimetracker.core.extension.lazySuspend
78import com.example.util.simpletimetracker.core.extension.set
89import com.example.util.simpletimetracker.core.model.NavigationTab
910import com.example.util.simpletimetracker.domain.prefs.interactor.PrefsInteractor
11+ import com.example.util.simpletimetracker.domain.record.interactor.RecordsContainerMultiselectInteractor
12+ import kotlinx.coroutines.launch
1013import javax.inject.Inject
1114
1215class MainTabsViewModel @Inject constructor(
1316 private val prefsInteractor : PrefsInteractor ,
17+ private val recordsContainerMultiselectInteractor : RecordsContainerMultiselectInteractor ,
1418) : BaseViewModel() {
1519
1620 val tabReselected: LiveData <NavigationTab ?> = MutableLiveData ()
@@ -21,6 +25,12 @@ class MainTabsViewModel @Inject constructor(
2125 tabReselected.set(tab)
2226 }
2327
28+ fun onTabUnselected (tab : NavigationTab ) = viewModelScope.launch {
29+ if (tab == NavigationTab .Records ) {
30+ recordsContainerMultiselectInteractor.disable()
31+ }
32+ }
33+
2434 fun onHandled () {
2535 tabReselected.set(null )
2636 }
Original file line number Diff line number Diff line change @@ -46,7 +46,7 @@ class RemoveRecordViewModel @Inject constructor(
4646 val typeIds = removedRecords.map(Record ::typeId).distinct()
4747 removeRecordMediator.remove(
4848 recordIds = removedRecords.map { it.id },
49- typeIds = typeIds
49+ typeIds = typeIds,
5050 )
5151
5252 val removedRecordsCount = removedRecords.size
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ class RemoveRecordMediator @Inject constructor(
1111 suspend fun remove (recordId : Long , typeId : Long ) {
1212 remove(
1313 recordIds = listOf (recordId),
14- typeIds = listOf (typeId)
14+ typeIds = listOf (typeId),
1515 )
1616 }
1717
Original file line number Diff line number Diff line change @@ -265,7 +265,6 @@ class RecordQuickActionsViewModel @Inject constructor(
265265 }
266266
267267 private suspend fun onMultiselect () {
268- // TODO MULTI cancel on tab change?
269268 if (recordsContainerMultiselectInteractor.isEnabled) {
270269 recordsContainerMultiselectInteractor.disable()
271270 } else {
Original file line number Diff line number Diff line change @@ -111,6 +111,9 @@ class MainFragment : BaseFragment<Binding>() {
111111
112112 override fun onTabUnselected (tab : TabLayout .Tab ? ) {
113113 tab?.icon?.colorFilter = unselectedColorFilter
114+ tab?.position
115+ ?.let (mainTabsProvider::mapPositionToTab)
116+ ?.let (mainTabsViewModel::onTabUnselected)
114117 }
115118
116119 override fun onTabSelected (tab : TabLayout .Tab ? ) {
You can’t perform that action at this time.
0 commit comments