Skip to content

Commit e112c9f

Browse files
committed
disable multiselect on tab change
1 parent 0f83569 commit e112c9f

File tree

5 files changed

+15
-3
lines changed

5 files changed

+15
-3
lines changed

core/src/main/java/com/example/util/simpletimetracker/core/sharedViewModel/MainTabsViewModel.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,19 @@ package com.example.util.simpletimetracker.core.sharedViewModel
22

33
import androidx.lifecycle.LiveData
44
import androidx.lifecycle.MutableLiveData
5+
import androidx.lifecycle.viewModelScope
56
import com.example.util.simpletimetracker.core.base.BaseViewModel
67
import com.example.util.simpletimetracker.core.extension.lazySuspend
78
import com.example.util.simpletimetracker.core.extension.set
89
import com.example.util.simpletimetracker.core.model.NavigationTab
910
import com.example.util.simpletimetracker.domain.prefs.interactor.PrefsInteractor
11+
import com.example.util.simpletimetracker.domain.record.interactor.RecordsContainerMultiselectInteractor
12+
import kotlinx.coroutines.launch
1013
import javax.inject.Inject
1114

1215
class 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
}

core/src/main/java/com/example/util/simpletimetracker/core/sharedViewModel/RemoveRecordViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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

domain/src/main/java/com/example/util/simpletimetracker/domain/record/interactor/RemoveRecordMediator.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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

features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/recordQuickActions/viewModel/RecordQuickActionsViewModel.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff 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 {

features/feature_main/src/main/java/com/example/util/simpletimetracker/feature_main/view/MainFragment.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff 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?) {

0 commit comments

Comments
 (0)