Skip to content

Commit bab62ed

Browse files
committed
fix tag dropdown opening when no tags selectable
1 parent 0af705e commit bab62ed

File tree

3 files changed

+22
-5
lines changed

3 files changed

+22
-5
lines changed

features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/viewModel/ChangeRecordBaseViewModel.kt

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import com.example.util.simpletimetracker.domain.record.interactor.RecordInterac
1818
import com.example.util.simpletimetracker.domain.recordTag.interactor.RecordTypeToTagInteractor
1919
import com.example.util.simpletimetracker.domain.favourite.model.FavouriteComment
2020
import com.example.util.simpletimetracker.domain.record.model.Record
21+
import com.example.util.simpletimetracker.domain.recordTag.interactor.RecordTagInteractor
2122
import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType
2223
import com.example.util.simpletimetracker.feature_base_adapter.button.ButtonViewData
2324
import com.example.util.simpletimetracker.feature_base_adapter.category.CategoryViewData
@@ -55,6 +56,7 @@ abstract class ChangeRecordBaseViewModel(
5556
private val recordTagViewDataInteractor: RecordTagViewDataInteractor,
5657
private val changeRecordViewDataInteractor: ChangeRecordViewDataInteractor,
5758
private val recordInteractor: RecordInteractor,
59+
private val recordTagInteractor: RecordTagInteractor,
5860
private val recordTypeToTagInteractor: RecordTypeToTagInteractor,
5961
private val favouriteCommentInteractor: FavouriteCommentInteractor,
6062
private val changeRecordActionsDelegate: ChangeRecordActionsDelegateImpl,
@@ -285,11 +287,7 @@ abstract class ChangeRecordBaseViewModel(
285287

286288
// Close type selection after type is selected
287289
onTypeChooserClick()
288-
// If type has any record tags - open tag selection
289-
if (recordTypeToTagInteractor.getTags(newTypeId).isNotEmpty()) {
290-
delay(300)
291-
onCategoryChooserClick()
292-
}
290+
openTagSelectionIfNeeded()
293291
}
294292
}
295293

@@ -458,6 +456,19 @@ abstract class ChangeRecordBaseViewModel(
458456
}
459457
}
460458

459+
private suspend fun openTagSelectionIfNeeded() {
460+
// If type has any record tags - open tag selection
461+
val tags = recordTagInteractor.getAll().associateBy { it.id }
462+
val tagsForThisType = recordTypeToTagInteractor.getTags(newTypeId)
463+
.mapNotNull(tags::get)
464+
.filterNot { it.archived }
465+
466+
if (tagsForThisType.isNotEmpty()) {
467+
delay(300)
468+
onCategoryChooserClick()
469+
}
470+
}
471+
461472
private fun onAdjustTimeChangeClick(viewData: TimeAdjustmentView.ViewData) {
462473
when (changeRecordActionsDelegate.timeChangeAdjustmentState) {
463474
TimeAdjustmentState.TIME_STARTED -> {

features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/viewModel/ChangeRecordViewModel.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import com.example.util.simpletimetracker.domain.statistics.model.ChartFilterTyp
2121
import com.example.util.simpletimetracker.domain.daysOfWeek.model.DayOfWeek
2222
import com.example.util.simpletimetracker.domain.statistics.model.RangeLength
2323
import com.example.util.simpletimetracker.domain.record.model.Record
24+
import com.example.util.simpletimetracker.domain.recordTag.interactor.RecordTagInteractor
2425
import com.example.util.simpletimetracker.feature_change_record.interactor.ChangeRecordViewDataInteractor
2526
import com.example.util.simpletimetracker.feature_change_record.viewData.ChangeRecordViewData
2627
import com.example.util.simpletimetracker.navigation.Router
@@ -38,6 +39,7 @@ class ChangeRecordViewModel @Inject constructor(
3839
recordTagViewDataInteractor: RecordTagViewDataInteractor,
3940
snackBarMessageNavigationInteractor: SnackBarMessageNavigationInteractor,
4041
changeRecordActionsDelegate: ChangeRecordActionsDelegateImpl,
42+
recordTagInteractor: RecordTagInteractor,
4143
recordTypeToTagInteractor: RecordTypeToTagInteractor,
4244
favouriteCommentInteractor: FavouriteCommentInteractor,
4345
private val prefsInteractor: PrefsInteractor,
@@ -56,6 +58,7 @@ class ChangeRecordViewModel @Inject constructor(
5658
recordTagViewDataInteractor = recordTagViewDataInteractor,
5759
changeRecordViewDataInteractor = changeRecordViewDataInteractor,
5860
recordInteractor = recordInteractor,
61+
recordTagInteractor = recordTagInteractor,
5962
recordTypeToTagInteractor = recordTypeToTagInteractor,
6063
favouriteCommentInteractor = favouriteCommentInteractor,
6164
changeRecordActionsDelegate = changeRecordActionsDelegate,

features/feature_change_running_record/src/main/java/com/example/util/simpletimetracker/feature_change_running_record/viewModel/ChangeRunningRecordViewModel.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import com.example.util.simpletimetracker.domain.record.interactor.RunningRecord
2020
import com.example.util.simpletimetracker.domain.record.interactor.UpdateRunningRecordFromChangeScreenInteractor
2121
import com.example.util.simpletimetracker.domain.statistics.model.ChartFilterType
2222
import com.example.util.simpletimetracker.domain.record.model.RunningRecord
23+
import com.example.util.simpletimetracker.domain.recordTag.interactor.RecordTagInteractor
2324
import com.example.util.simpletimetracker.feature_change_record.interactor.ChangeRecordViewDataInteractor
2425
import com.example.util.simpletimetracker.feature_change_record.viewData.ChangeRecordChooserState
2526
import com.example.util.simpletimetracker.feature_change_record.viewModel.ChangeRecordActionsDelegateImpl
@@ -50,6 +51,7 @@ class ChangeRunningRecordViewModel @Inject constructor(
5051
changeRecordViewDataInteractor: ChangeRecordViewDataInteractor,
5152
changeRecordActionsDelegate: ChangeRecordActionsDelegateImpl,
5253
recordInteractor: RecordInteractor,
54+
recordTagInteractor: RecordTagInteractor,
5355
recordTypeToTagInteractor: RecordTypeToTagInteractor,
5456
favouriteCommentInteractor: FavouriteCommentInteractor,
5557
snackBarMessageNavigationInteractor: SnackBarMessageNavigationInteractor,
@@ -70,6 +72,7 @@ class ChangeRunningRecordViewModel @Inject constructor(
7072
recordTagViewDataInteractor = recordTagViewDataInteractor,
7173
changeRecordViewDataInteractor = changeRecordViewDataInteractor,
7274
recordInteractor = recordInteractor,
75+
recordTagInteractor = recordTagInteractor,
7376
recordTypeToTagInteractor = recordTypeToTagInteractor,
7477
favouriteCommentInteractor = favouriteCommentInteractor,
7578
changeRecordActionsDelegate = changeRecordActionsDelegate,

0 commit comments

Comments
 (0)