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
|
||||
|
||||
class AppUtils {
|
||||
public fun getCloneableAppList(context: Context): List<PackageInfo> {
|
||||
var packageList: List<PackageInfo> =
|
||||
context.getPackageManager().getInstalledPackagesAsUser(/* flags*/ 0, UserHandle.myUserId())
|
||||
|
||||
var filteredList: List<PackageInfo> = packageList.filter {
|
||||
val packageName = it.applicationInfo?.packageName
|
||||
val isSystemApp = it.applicationInfo?.isSystemApp()
|
||||
val isResourceOverlay = it.applicationInfo?.isResourceOverlay()
|
||||
|
||||
val cloneableApps = context.resources.getStringArray(com.android.internal.R.array.cloneable_apps)?.toList()
|
||||
|
||||
cloneableApps?.contains(packageName) == true || (isSystemApp == false && isResourceOverlay == false)
|
||||
fun getCloneableAppList(context: Context): List<PackageInfo> {
|
||||
val packageManager = context.packageManager
|
||||
val packageList: List<PackageInfo> =
|
||||
packageManager.getInstalledPackagesAsUser(0, UserHandle.myUserId())
|
||||
val cloneableApps = context.resources.getStringArray(com.android.internal.R.array.cloneable_apps)?.toList()
|
||||
val filteredList = packageList.filter { packageInfo ->
|
||||
val packageName = packageInfo.applicationInfo?.packageName
|
||||
val isSystemApp = packageInfo.applicationInfo?.isSystemApp() == true
|
||||
packageName != null && (cloneableApps?.contains(packageName) == true || !isSystemApp) &&
|
||||
packageManager.getLaunchIntentForPackage(packageName) != null
|
||||
}
|
||||
|
||||
return filteredList
|
||||
}
|
||||
|
||||
public fun getCloneableAppListStr(context: Context): List<String> {
|
||||
return getCloneableAppList(context).map {
|
||||
x -> x.packageName
|
||||
}.toList()
|
||||
fun getCloneableAppListStr(context: Context): List<String> {
|
||||
return getCloneableAppList(context).map { it.packageName }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user