Skip to content

Commit a2bac24

Browse files
committed
fix: Use different grouping method for recent tasks
1 parent 51ad2af commit a2bac24

File tree

2 files changed

+30
-18
lines changed

2 files changed

+30
-18
lines changed

app/src/main/java/cu/axel/smartdock/services/DockService.kt

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,6 +1026,7 @@ class DockService : AccessibilityService(), OnSharedPreferenceChangeListener, On
10261026
if (!isPinned && sharedPreferences.getBoolean("auto_pin", true))
10271027
pinDock()
10281028
}
1029+
updateRunningTasks()
10291030
if (Utils.notificationPanelVisible)
10301031
toggleNotificationPanel(false)
10311032
}
@@ -1487,27 +1488,38 @@ class DockService : AccessibilityService(), OnSharedPreferenceChangeListener, On
14871488

14881489
private fun updateRunningTasks() {
14891490
val now = System.currentTimeMillis()
1490-
if (now - lastUpdate < 500) return
1491+
if (now - lastUpdate < 500)
1492+
return
14911493
lastUpdate = now
14921494

14931495
val apps = ArrayList<DockApp>()
1494-
for (pinnedApp in pinnedApps) {
1496+
pinnedApps.forEach { pinnedApp ->
14951497
apps.add(DockApp(pinnedApp.name, pinnedApp.packageName, pinnedApp.icon))
14961498
}
1499+
14971500
val gridSize = Utils.dpToPx(context, 52)
14981501

14991502
//TODO: We can eliminate another for
15001503
//TODO: Don't do anything if tasks has not changed
1501-
tasks = if (systemApp) AppUtils.getRunningTasks(
1502-
activityManager,
1503-
packageManager,
1504-
maxApps
1505-
) else AppUtils.getRecentTasks(context, maxApps)
1506-
for (j in 1..tasks.size) {
1507-
val task = tasks[tasks.size - j]
1508-
val index = AppUtils.containsTask(apps, task)
1509-
if (index != -1) apps[index].addTask(task) else apps.add(DockApp(task))
1504+
if (systemApp) {
1505+
tasks = AppUtils.getRunningTasks(activityManager, packageManager, maxApps)
1506+
for (j in 1..tasks.size) {
1507+
val task = tasks[tasks.size - j]
1508+
val index = AppUtils.containsTask(apps, task)
1509+
if (index != -1)
1510+
apps[index].addTask(task)
1511+
else
1512+
apps.add(DockApp(task))
1513+
}
1514+
} else {
1515+
tasks = AppUtils.getRecentTasks(context, maxApps)
1516+
tasks.reversed().forEach { task ->
1517+
val index = AppUtils.containsTask(apps, task)
1518+
if (index == -1)
1519+
apps.add(DockApp(task))
1520+
}
15101521
}
1522+
15111523
tasksGv.layoutParams.width = gridSize * apps.size
15121524
tasksGv.adapter = DockAppAdapter(context, apps, this, iconPackUtils)
15131525
//TODO: Move context outta here

app/src/main/java/cu/axel/smartdock/utils/AppUtils.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -240,14 +240,14 @@ object AppUtils {
240240
val app = stat.packageName
241241
try {
242242
if (isLaunchable(context, app)) {
243-
val task = AppTask(
244-
-1,
245-
getPackageLabel(context, app),
246-
app,
247-
context.packageManager.getApplicationIcon(app)
243+
appTasks.add(
244+
AppTask(
245+
-1,
246+
getPackageLabel(context, app),
247+
app,
248+
context.packageManager.getApplicationIcon(app)
249+
)
248250
)
249-
if (!appTasks.contains(task))
250-
appTasks.add(task)
251251
}
252252
} catch (_: PackageManager.NameNotFoundException) {
253253
}

0 commit comments

Comments
 (0)