Skip to content

Commit 08a740a

Browse files
committed
Refactor package retrieval to HiddenPackageManager
Moved the getInstalledPackagesAll logic from SuperUserViewModel to HiddenPackageManager for better separation of concerns. Updated usage in SuperUserViewModel to use the new method. Also added error logging and a TAG constant to HiddenPackageManager, and removed unused Compose imports and code from App.kt.
1 parent d89f8f4 commit 08a740a

File tree

3 files changed

+28
-22
lines changed

3 files changed

+28
-22
lines changed

app/src/main/kotlin/com/dergoogler/mmrl/App.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ package com.dergoogler.mmrl
22

33
import android.app.Application
44
import android.content.Context
5-
import androidx.compose.ui.Modifier
6-
import androidx.compose.ui.composed
75
import com.dergoogler.mmrl.app.utils.NotificationUtils
86
import com.dergoogler.mmrl.network.NetworkUtils
97
import com.dergoogler.mmrl.platform.PlatformManager
@@ -21,10 +19,6 @@ class App : Application() {
2119
super.onCreate()
2220
app = this
2321

24-
Modifier.composed {
25-
Modifier
26-
}
27-
2822
PlatformManager.setHiddenApiExemptions()
2923

3024
NotificationUtils.init(this)

app/src/main/kotlin/com/dergoogler/mmrl/viewmodel/SuperUserViewModel.kt

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,8 @@ class SuperUserViewModel @Inject constructor(
169169

170170
private fun getAppList(): List<AppInfo> {
171171
val pm = context.packageManager
172-
val packages = PlatformManager.getInstalledPackagesAll()
172+
val packages =
173+
PlatformManager.packageManager.getInstalledPackagesAll(PlatformManager.userManager, 0)
173174
return packages.map { pkg ->
174175
val appInfo = pkg.applicationInfo!!
175176
val uid = appInfo.uid
@@ -221,17 +222,4 @@ class SuperUserViewModel @Inject constructor(
221222
val items: List<AppInfo> = emptyList(),
222223
val isRefreshing: Boolean = false,
223224
)
224-
225-
private fun PlatformManager.getInstalledPackagesAll(): List<PackageInfo> {
226-
return try {
227-
val packages = mutableListOf<PackageInfo>()
228-
val userInfos = userManager.getUsers()
229-
for (userInfo in userInfos) {
230-
packages.addAll(packageManager.getInstalledPackages(0, userInfo.id))
231-
}
232-
packages
233-
} catch (_: Exception) {
234-
packageManager.getInstalledPackages(0, userManager.myUserId)
235-
}
236-
}
237225
}

platform/src/main/kotlin/com/dergoogler/mmrl/platform/hiddenApi/HiddenPackageManager.kt

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
@file:Suppress("unused")
2+
13
package com.dergoogler.mmrl.platform.hiddenApi
24

35
import android.content.Intent
@@ -6,12 +8,13 @@ import android.content.pm.IPackageManager
68
import android.content.pm.PackageInfo
79
import android.content.pm.ResolveInfo
810
import android.os.SystemProperties
11+
import android.util.Log
912
import com.dergoogler.mmrl.compat.BuildCompat
1013
import com.dergoogler.mmrl.platform.PlatformManager.getSystemService
1114
import com.dergoogler.mmrl.platform.stub.IServiceManager
1215

1316
class HiddenPackageManager(
14-
private val service: IServiceManager
17+
private val service: IServiceManager,
1518
) {
1619
private val packageManager by lazy {
1720
IPackageManager.Stub.asInterface(
@@ -59,11 +62,28 @@ class HiddenPackageManager(
5962
}.list
6063
}
6164

65+
fun getInstalledPackagesAll(userManager: HiddenUserManager, flags: Int = 0): List<PackageInfo> {
66+
return try {
67+
val packages = mutableListOf<PackageInfo>()
68+
val userInfos = userManager.getUsers()
69+
for (userInfo in userInfos) {
70+
packages.addAll(getInstalledPackages(flags, userInfo.id))
71+
}
72+
packages
73+
} catch (e: Exception) {
74+
Log.e(TAG, "getInstalledPackagesAll", e)
75+
getInstalledPackages(0, userManager.myUserId)
76+
} catch (e: Exception) {
77+
Log.e(TAG, "getInstalledPackagesAll", e)
78+
emptyList()
79+
}
80+
}
81+
6282
fun queryIntentActivities(
6383
intent: Intent,
6484
resolvedType: String?,
6585
flags: Int,
66-
userId: Int
86+
userId: Int,
6787
): List<ResolveInfo> {
6888
return if (BuildCompat.atLeastT) {
6989
packageManager.queryIntentActivities(intent, resolvedType, flags.toLong(), userId)
@@ -113,4 +133,8 @@ class HiddenPackageManager(
113133
null
114134
)
115135
}
136+
137+
companion object {
138+
const val TAG = "HiddenPackageManager"
139+
}
116140
}

0 commit comments

Comments
 (0)