diff --git a/app/src/main/java/com/aurora/extensions/PackageInfo.kt b/app/src/main/java/com/aurora/extensions/PackageInfo.kt new file mode 100644 index 000000000..5abd85346 --- /dev/null +++ b/app/src/main/java/com/aurora/extensions/PackageInfo.kt @@ -0,0 +1,17 @@ +package com.aurora.extensions + +import android.content.pm.PackageInfo +import android.os.Process + +fun PackageInfo.isApp(): Boolean { + if (this.applicationInfo == null) return false + + return when { + isQAndAbove() -> { + Process.isApplicationUid(this.applicationInfo.uid) && + !this.applicationInfo.isResourceOverlay && !this.isApex + } + isNAndAbove() -> Process.isApplicationUid(this.applicationInfo.uid) + else -> this.packageName != null && this.versionName != null + } +} diff --git a/app/src/main/java/com/aurora/store/viewmodel/all/BlacklistViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/all/BlacklistViewModel.kt index d6a573517..7c3678ba1 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/all/BlacklistViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/all/BlacklistViewModel.kt @@ -26,6 +26,7 @@ import androidx.core.content.pm.PackageInfoCompat import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import com.aurora.extensions.isApp import com.aurora.store.data.model.Black import com.aurora.store.data.providers.BlacklistProvider import com.aurora.store.util.PackageUtil @@ -62,11 +63,7 @@ class BlacklistViewModel @Inject constructor( try { val packageInfoMap = PackageUtil.getPackageInfoMap(context) packageInfoMap.values - .filter { - it.packageName != null - && it.versionName != null - && it.applicationInfo != null - } + .filter { it.isApp() } .forEach { val black = Black(it.packageName).apply { displayName = packageManager.getApplicationLabel(it.applicationInfo)