Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1546,7 +1546,7 @@ class DockService : AccessibilityService(), OnSharedPreferenceChangeListener, On
val nApps =
if (orientation == Configuration.ORIENTATION_PORTRAIT) maxApps else maxAppsLandscape
if (systemApp) {
tasks = AppUtils.getRunningTasks(activityManager, packageManager, nApps)
tasks = AppUtils.getRunningTasks(activityManager, packageManager, nApps, context)
for (j in 1..tasks.size) {
val task = tasks[tasks.size - j]
val index = AppUtils.containsTask(apps, task)
Expand Down
15 changes: 13 additions & 2 deletions app/src/main/java/cu/axel/smartdock/utils/AppUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,11 @@ object AppUtils {
return apps
}

fun getHiddenApps(context: Context): Set<String> {
val sharedPreferences = androidx.preference.PreferenceManager.getDefaultSharedPreferences(context)
return sharedPreferences.getStringSet("hidden_apps_grid", emptySet()) ?: emptySet()
}

fun pinApp(context: Context, app: App, type: String) {
val userManager = context.getSystemService(Context.USER_SERVICE) as UserManager
val file = File(context.filesDir, type)
Expand Down Expand Up @@ -183,10 +188,11 @@ object AppUtils {
}

fun getRunningTasks(
activityManager: ActivityManager, packageManager: PackageManager, max: Int
activityManager: ActivityManager, packageManager: PackageManager, max: Int, context: Context
): ArrayList<AppTask> {
val tasksInfo = activityManager.getRunningTasks(max)
currentApp = tasksInfo[0].baseActivity!!.packageName
val hiddenApps = getHiddenApps(context)
val appTasks = ArrayList<AppTask>()
for (taskInfo in tasksInfo) {
try {
Expand All @@ -201,6 +207,10 @@ object AppUtils {
packageManager
)
) continue

// Exclude hidden apps
if (hiddenApps.contains(taskInfo.topActivity!!.packageName)) continue

if (Build.VERSION.SDK_INT > 29) {
try {
val isRunning = taskInfo.javaClass.getField("isRunning")
Expand Down Expand Up @@ -229,10 +239,11 @@ object AppUtils {
listOf<String>(context.packageName, getCurrentLauncher(context.packageManager))
val usm = context.getSystemService(Context.USAGE_STATS_SERVICE) as UsageStatsManager
val start = System.currentTimeMillis() - SystemClock.elapsedRealtime()
val hiddenApps = getHiddenApps(context)
val usageStats = usm.queryUsageStats(
UsageStatsManager.INTERVAL_BEST, start, System.currentTimeMillis()
).sortedWith(compareByDescending { it.lastTimeUsed })
.filterNot { ignoredApps.contains(it.packageName) }
.filterNot { ignoredApps.contains(it.packageName) || hiddenApps.contains(it.packageName) }
val appTasks = ArrayList<AppTask>()
if (usageStats.isNotEmpty())
currentApp = usageStats[0].packageName
Expand Down