1
1
package eu.darken.sdmse.systemcleaner.ui.details.filtercontent
2
2
3
+ import android.os.Bundle
3
4
import androidx.lifecycle.SavedStateHandle
5
+ import androidx.navigation.NavDirections
4
6
import dagger.hilt.android.lifecycle.HiltViewModel
7
+ import eu.darken.sdmse.R
5
8
import eu.darken.sdmse.common.SingleLiveEvent
6
9
import eu.darken.sdmse.common.coroutine.DispatcherProvider
7
10
import eu.darken.sdmse.common.debug.logging.Logging.Priority.INFO
8
11
import eu.darken.sdmse.common.debug.logging.log
9
12
import eu.darken.sdmse.common.debug.logging.logTag
13
+ import eu.darken.sdmse.common.previews.PreviewFragmentArgs
14
+ import eu.darken.sdmse.common.previews.PreviewOptions
10
15
import eu.darken.sdmse.common.progress.Progress
11
16
import eu.darken.sdmse.common.uix.ViewModel3
12
17
import eu.darken.sdmse.main.core.taskmanager.TaskManager
13
18
import eu.darken.sdmse.systemcleaner.core.SystemCleaner
14
19
import eu.darken.sdmse.systemcleaner.core.filter.filterIdentifier
15
20
import eu.darken.sdmse.systemcleaner.core.filter.stock.EmptyDirectoryFilter
21
+ import eu.darken.sdmse.systemcleaner.core.filter.stock.ScreenshotsFilter
22
+ import eu.darken.sdmse.systemcleaner.core.filter.stock.TrashedFilter
16
23
import eu.darken.sdmse.systemcleaner.core.tasks.SystemCleanerProcessingTask
17
24
import eu.darken.sdmse.systemcleaner.ui.details.filtercontent.elements.FilterContentElementFileVH
18
25
import eu.darken.sdmse.systemcleaner.ui.details.filtercontent.elements.FilterContentElementHeaderVH
19
- import kotlinx.coroutines.flow.*
26
+ import kotlinx.coroutines.flow.combine
27
+ import kotlinx.coroutines.flow.filterNotNull
28
+ import kotlinx.coroutines.flow.map
20
29
import javax.inject.Inject
21
30
22
31
@HiltViewModel
@@ -51,6 +60,8 @@ class FilterContentViewModel @Inject constructor(
51
60
52
61
val sorted = when (filterContent.identifier) {
53
62
EmptyDirectoryFilter ::class .filterIdentifier -> filterContent.items.sortedBy { it.path.path }
63
+ TrashedFilter ::class .filterIdentifier -> filterContent.items.sortedByDescending { it.lookup.modifiedAt }
64
+ ScreenshotsFilter ::class .filterIdentifier -> filterContent.items.sortedBy { it.lookup.modifiedAt }
54
65
else -> filterContent.items.sortedByDescending { it.expectedGain }
55
66
}
56
67
@@ -59,6 +70,26 @@ class FilterContentViewModel @Inject constructor(
59
70
filterContent = filterContent,
60
71
match = item,
61
72
onItemClick = { delete(setOf (it)) },
73
+ onThumbnailClick = when (filterContent.identifier) {
74
+ TrashedFilter ::class .filterIdentifier, ScreenshotsFilter ::class .filterIdentifier -> {
75
+ {
76
+ object : NavDirections {
77
+ override val actionId: Int = R .id.goToPreview
78
+ override val arguments: Bundle = PreviewFragmentArgs (
79
+ PreviewOptions (item.path)
80
+ ).toBundle()
81
+
82
+ }.navigate()
83
+ }
84
+ }
85
+
86
+ else -> null
87
+ },
88
+ showDate = when (filterContent.identifier) {
89
+ TrashedFilter ::class .filterIdentifier -> true
90
+ ScreenshotsFilter ::class .filterIdentifier -> true
91
+ else -> false
92
+ }
62
93
)
63
94
}.run { elements.addAll(this ) }
64
95
0 commit comments