Skip to content

Commit e6b526b

Browse files
committed
Fix running status not updating on swipe refresh - Clear cache before forceRefresh to ensure fresh data - Improve running detection with getRunningServices fallback
1 parent b5cfce9 commit e6b526b

File tree

2 files changed

+19
-7
lines changed

2 files changed

+19
-7
lines changed

app/src/main/java/com/appcontrolx/service/AppFetcher.kt

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,26 @@ class AppFetcher(private val context: Context) {
4343
}
4444

4545
private fun getRunningPackages(): Set<String> {
46-
return try {
47-
activityManager.runningAppProcesses
48-
?.map { it.pkgList.toList() }
49-
?.flatten()
50-
?.toSet()
51-
?: emptySet()
46+
val running = mutableSetOf<String>()
47+
48+
try {
49+
// Method 1: runningAppProcesses (limited on Android 10+)
50+
activityManager.runningAppProcesses?.forEach { process ->
51+
process.pkgList?.forEach { pkg ->
52+
running.add(pkg)
53+
}
54+
}
55+
56+
// Method 2: getRunningServices (deprecated but still works for some cases)
57+
@Suppress("DEPRECATION")
58+
activityManager.getRunningServices(Int.MAX_VALUE)?.forEach { service ->
59+
running.add(service.service.packageName)
60+
}
5261
} catch (e: Exception) {
53-
emptySet()
62+
// Ignore
5463
}
64+
65+
return running
5566
}
5667

5768
private fun isBackgroundRestricted(packageName: String, uid: Int): Boolean {

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ class AppListFragment : Fragment() {
171171
private fun setupSwipeRefresh() {
172172
val b = binding ?: return
173173
b.swipeRefresh.setOnRefreshListener {
174+
clearCache() // Clear cache first to ensure fresh data
174175
loadApps(forceRefresh = true)
175176
}
176177
b.swipeRefresh.setColorSchemeResources(

0 commit comments

Comments
 (0)