summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Arpan <akaphle@google.com> 2023-10-05 17:32:20 +0000
committer Arpan <akaphle@google.com> 2023-10-05 17:32:20 +0000
commit10bcc603d7d36958405109bdb92dbc56297d4fd8 (patch)
tree3a2fc0457fadae42bd1280db2f4cf7389601b7ea
parentb0c9ccf06aea6a014ced3c5fd607c7e8d00ccd1f (diff)
Add Instant App Capability Behind Flag
This sets up the instant app capability behind our new instant app flag. This means when the flag is false, credman will not work with instant apps, as it will utilize our older flow. Bug: 302190269 Test: Build test Change-Id: I254140d3de6268009190326a362658bb6a9cb4b3
-rw-r--r--packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt30
1 files changed, 25 insertions, 5 deletions
diff --git a/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt b/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt
index 473d7b6f32df..477e61d2a7b1 100644
--- a/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt
+++ b/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt
@@ -61,14 +61,20 @@ import androidx.credentials.provider.PasswordCredentialEntry
import androidx.credentials.provider.PublicKeyCredentialEntry
import androidx.credentials.provider.RemoteEntry
import org.json.JSONObject
+import android.credentials.flags.Flags
import java.time.Instant
+
fun getAppLabel(
pm: PackageManager,
appPackageName: String
): String? {
return try {
- val pkgInfo = getPackageInfo(pm, appPackageName)
+ val pkgInfo = if (Flags.instantAppsEnabled()) {
+ getPackageInfo(pm, appPackageName)
+ } else {
+ pm.getPackageInfo(appPackageName, PackageManager.PackageInfoFlags.of(0))
+ }
val applicationInfo = checkNotNull(pkgInfo.applicationInfo)
applicationInfo.loadSafeLabel(
pm, 0f,
@@ -91,7 +97,14 @@ private fun getServiceLabelAndIcon(
// Test data has only package name not component name.
// For test data usage only.
try {
- val pkgInfo = getPackageInfo(pm, providerFlattenedComponentName)
+ val pkgInfo = if (Flags.instantAppsEnabled()) {
+ getPackageInfo(pm, providerFlattenedComponentName)
+ } else {
+ pm.getPackageInfo(
+ providerFlattenedComponentName,
+ PackageManager.PackageInfoFlags.of(0)
+ )
+ }
val applicationInfo = checkNotNull(pkgInfo.applicationInfo)
providerLabel =
applicationInfo.loadSafeLabel(
@@ -115,7 +128,14 @@ private fun getServiceLabelAndIcon(
// Added for mdoc use case where the provider may not need to register a service and
// instead only relies on the registration api.
try {
- val pkgInfo = getPackageInfo(pm, providerFlattenedComponentName)
+ val pkgInfo = if (Flags.instantAppsEnabled()) {
+ getPackageInfo(pm, providerFlattenedComponentName)
+ } else {
+ pm.getPackageInfo(
+ component.packageName,
+ PackageManager.PackageInfoFlags.of(0)
+ )
+ }
val applicationInfo = checkNotNull(pkgInfo.applicationInfo)
providerLabel =
applicationInfo.loadSafeLabel(
@@ -143,12 +163,12 @@ private fun getPackageInfo(
pm: PackageManager,
packageName: String
): PackageInfo {
- val flags = PackageManager.MATCH_INSTANT
+ val packageManagerFlags = PackageManager.MATCH_INSTANT
return pm.getPackageInfo(
packageName,
PackageManager.PackageInfoFlags.of(
- (flags).toLong())
+ (packageManagerFlags).toLong())
)
}