Skip to content

Commit bbb3c73

Browse files
committed
disable swipe delete in stat detail if only one item
1 parent e9e1fa7 commit bbb3c73

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

features/feature_records_filter/src/main/java/com/example/util/simpletimetracker/feature_records_filter/interactor/RecordsFilterExcludeInteractorImpl.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ class RecordsFilterExcludeInteractorImpl @Inject constructor(
3333
): List<RecordsFilter> {
3434
// TODO manually filter running records, untracked and multitask.
3535
// TODO multitasking filter by Read doesn't work.
36-
// TODO disable swipe delete if only one item.
3736
// TODO records filter, showing all records, selecting multiselect doesn't change records.
3837
if (id == UNTRACKED_ITEM_ID) {
3938
return recordsFilterUpdateInteractor.handleUntrackedClick(currentFilters)

features/feature_records_filter/src/main/java/com/example/util/simpletimetracker/feature_records_filter/interactor/RecordsFilterUpdateInteractor.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -556,7 +556,13 @@ class RecordsFilterUpdateInteractor @Inject constructor(
556556
filters.removeAll { it is RecordsFilter.Untracked }
557557
filters.removeAll { it is RecordsFilter.Activity }
558558
if (type is RecordFilterSelectionType.Select) {
559+
val currentFilteredItems = filters.getFilteredCategoryItems()
560+
val newCategoryFilter = RecordsFilter.Category(
561+
selected = emptyList(),
562+
filtered = currentFilteredItems,
563+
)
559564
filters.removeAll { it is RecordsFilter.Category }
565+
if (currentFilteredItems.isNotEmpty()) filters.add(newCategoryFilter)
560566
}
561567
if (newFilter.selected.isNotEmpty() || newFilter.filtered.isNotEmpty()) {
562568
filters.add(newFilter)
@@ -585,7 +591,13 @@ class RecordsFilterUpdateInteractor @Inject constructor(
585591
filters.removeAll { it is RecordsFilter.Untracked }
586592
filters.removeAll { it is RecordsFilter.Category }
587593
if (type is RecordFilterSelectionType.Select) {
594+
val currentFilteredIds = filters.getFilteredTypeIds()
595+
val newActivityFilter = RecordsFilter.Activity(
596+
selected = emptyList(),
597+
filtered = currentFilteredIds,
598+
)
588599
filters.removeAll { it is RecordsFilter.Activity }
600+
if (currentFilteredIds.isNotEmpty()) filters.add(newActivityFilter)
589601
}
590602
if (newFilter.selected.isNotEmpty() || newFilter.filtered.isNotEmpty()) {
591603
filters.add(newFilter)

features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/view/StatisticsDetailFragment.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -232,10 +232,11 @@ class StatisticsDetailFragment :
232232
context.getThemedAttr(R.attr.appContrastColor), 0.10f,
233233
),
234234
getIsSelectable = { viewHolder ->
235-
viewHolder?.adapterPosition
235+
val itemsCount = contentAdapter.currentList
236+
.filterIsInstance<StatisticsSelectableViewData>().size
237+
val currentItem = viewHolder?.adapterPosition
236238
?.let { contentAdapter.getItemByPosition(it) }
237-
?.canBeSwiped()
238-
.orFalse()
239+
itemsCount > 1 && currentItem?.canBeSwiped().orFalse()
239240
},
240241
onSwiped = { viewHolder ->
241242
viewHolder?.adapterPosition

0 commit comments

Comments
 (0)