AppUtils: Filter cloneable apps to include only launchable packages
Signed-off-by: minaripenguin <minaripenguin@users.noreply.github.com>
This commit is contained in:
@@ -5,26 +5,22 @@ import android.content.pm.PackageInfo
|
|||||||
import android.os.UserHandle
|
import android.os.UserHandle
|
||||||
|
|
||||||
class AppUtils {
|
class AppUtils {
|
||||||
public fun getCloneableAppList(context: Context): List<PackageInfo> {
|
fun getCloneableAppList(context: Context): List<PackageInfo> {
|
||||||
var packageList: List<PackageInfo> =
|
val packageManager = context.packageManager
|
||||||
context.getPackageManager().getInstalledPackagesAsUser(/* flags*/ 0, UserHandle.myUserId())
|
val packageList: List<PackageInfo> =
|
||||||
|
packageManager.getInstalledPackagesAsUser(0, UserHandle.myUserId())
|
||||||
var filteredList: List<PackageInfo> = packageList.filter {
|
val cloneableApps = context.resources.getStringArray(com.android.internal.R.array.cloneable_apps)?.toList()
|
||||||
val packageName = it.applicationInfo?.packageName
|
val filteredList = packageList.filter { packageInfo ->
|
||||||
val isSystemApp = it.applicationInfo?.isSystemApp()
|
val packageName = packageInfo.applicationInfo?.packageName
|
||||||
val isResourceOverlay = it.applicationInfo?.isResourceOverlay()
|
val isSystemApp = packageInfo.applicationInfo?.isSystemApp() == true
|
||||||
|
packageName != null && (cloneableApps?.contains(packageName) == true || !isSystemApp) &&
|
||||||
val cloneableApps = context.resources.getStringArray(com.android.internal.R.array.cloneable_apps)?.toList()
|
packageManager.getLaunchIntentForPackage(packageName) != null
|
||||||
|
|
||||||
cloneableApps?.contains(packageName) == true || (isSystemApp == false && isResourceOverlay == false)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return filteredList
|
return filteredList
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun getCloneableAppListStr(context: Context): List<String> {
|
fun getCloneableAppListStr(context: Context): List<String> {
|
||||||
return getCloneableAppList(context).map {
|
return getCloneableAppList(context).map { it.packageName }
|
||||||
x -> x.packageName
|
|
||||||
}.toList()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user