Skip to content

Commit 083aacc

Browse files
committed
Fix action logs not being recorded - BatchProgressBottomSheet now returns success/fail counts in onComplete - AppListFragment logs actions after batch completes - Snapshot saved before action for potential rollback
1 parent 6f17d87 commit 083aacc

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

app/src/main/java/com/appcontrolx/ui/AppListFragment.kt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,17 @@ class AppListFragment : Fragment() {
370370
}
371371
}
372372
},
373-
onComplete = {
373+
onComplete = { successCount, failCount ->
374+
// Log action
375+
lifecycleScope.launch(Dispatchers.IO) {
376+
rm?.logAction(ActionLog(
377+
action = action.name,
378+
packages = packages,
379+
success = failCount == 0,
380+
message = if (failCount == 0) null else "$failCount failed"
381+
))
382+
}
383+
374384
adapter.deselectAll()
375385
clearCache()
376386
loadApps(forceRefresh = true)
@@ -380,7 +390,7 @@ class AppListFragment : Fragment() {
380390
// Show immediately without waiting
381391
bottomSheet.show(childFragmentManager, BatchProgressBottomSheet.TAG)
382392

383-
// Save snapshot in background (non-blocking)
393+
// Save snapshot before action (for rollback)
384394
lifecycleScope.launch(Dispatchers.IO) {
385395
rm?.saveSnapshot(packages)
386396
}

app/src/main/java/com/appcontrolx/ui/BatchProgressBottomSheet.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class BatchProgressBottomSheet : BottomSheetDialogFragment() {
2929
private var packageNames = listOf<String>()
3030
private var showCacheSize = false
3131
private var onExecute: (suspend (String) -> Result<Unit>)? = null
32-
private var onComplete: (() -> Unit)? = null
32+
private var onComplete: ((successCount: Int, failCount: Int) -> Unit)? = null
3333

3434
private val adapter = BatchAppAdapter()
3535
private var executionJob: Job? = null
@@ -43,7 +43,7 @@ class BatchProgressBottomSheet : BottomSheetDialogFragment() {
4343
appNames: List<String>,
4444
packageNames: List<String>,
4545
onExecute: suspend (String) -> Result<Unit>,
46-
onComplete: () -> Unit
46+
onComplete: (successCount: Int, failCount: Int) -> Unit
4747
): BatchProgressBottomSheet {
4848
return BatchProgressBottomSheet().apply {
4949
this.actionName = actionName
@@ -186,8 +186,11 @@ class BatchProgressBottomSheet : BottomSheetDialogFragment() {
186186
getString(R.string.batch_partial_success, successCount, failCount)
187187
}
188188
b.btnCancel.text = getString(R.string.btn_close)
189+
190+
val finalSuccess = successCount
191+
val finalFail = failCount
189192
b.btnCancel.setOnClickListener {
190-
onComplete?.invoke()
193+
onComplete?.invoke(finalSuccess, finalFail)
191194
dismiss()
192195
}
193196
}

0 commit comments

Comments
 (0)