Support fetching PackageInfo for archived apps

Test: PackageInfoPresenterTest

Bug: 304256071
Change-Id: Ia8f160c160acf41aa4f25f9d02efa4d470a56a63
This commit is contained in:
Mark Kim
2023-10-19 10:23:08 +00:00
parent 8557ab051c
commit 9942248d98
2 changed files with 44 additions and 3 deletions

View File

@@ -20,6 +20,8 @@ import android.app.settings.SettingsEnums
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.content.pm.FeatureFlags
import android.content.pm.FeatureFlagsImpl
import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.os.UserHandle
@@ -50,6 +52,7 @@ class PackageInfoPresenter(
val userId: Int,
private val coroutineScope: CoroutineScope,
private val packageManagers: IPackageManagers = PackageManagers,
private val featureFlags: FeatureFlags = FeatureFlagsImpl(),
) {
private val metricsFeatureProvider = featureFactory.metricsFeatureProvider
private val userHandle = UserHandle.of(userId)
@@ -141,9 +144,10 @@ class PackageInfoPresenter(
private fun getPackageInfo() =
packageManagers.getPackageInfoAsUser(
packageName = packageName,
flags = PackageManager.MATCH_ANY_USER or
PackageManager.MATCH_DISABLED_COMPONENTS or
PackageManager.GET_PERMISSIONS,
flags = PackageManager.MATCH_ANY_USER.toLong() or
PackageManager.MATCH_DISABLED_COMPONENTS.toLong() or
PackageManager.GET_PERMISSIONS.toLong() or
if (featureFlags.archiving()) PackageManager.MATCH_ARCHIVED_PACKAGES else 0,
userId = userId,
)
}