Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit adfa86de authored by Arpan Kaphle's avatar Arpan Kaphle Committed by Android (Google) Code Review
Browse files

Merge changes from topic "credman_instant_apps" into main

* changes:
  Add Instant App Capability Behind Flag
  Setup Instant App Flag for Credential Manager
parents 7e948df6 10bcc603
Loading
Loading
Loading
Loading
+8 −1
Original line number Original line Diff line number Diff line
@@ -6,3 +6,10 @@ flag {
    description: "Enable the Credential Manager Settings Activity APIs"
    description: "Enable the Credential Manager Settings Activity APIs"
    bug: "300014059"
    bug: "300014059"
}
}

flag {
    namespace: "credential_manager"
    name: "instant_apps_enabled"
    description: "Enables Credential Manager to work with Instant Apps"
    bug: "302190269"
}
+25 −5
Original line number Original line Diff line number Diff line
@@ -61,14 +61,20 @@ import androidx.credentials.provider.PasswordCredentialEntry
import androidx.credentials.provider.PublicKeyCredentialEntry
import androidx.credentials.provider.PublicKeyCredentialEntry
import androidx.credentials.provider.RemoteEntry
import androidx.credentials.provider.RemoteEntry
import org.json.JSONObject
import org.json.JSONObject
import android.credentials.flags.Flags
import java.time.Instant
import java.time.Instant



fun getAppLabel(
fun getAppLabel(
    pm: PackageManager,
    pm: PackageManager,
    appPackageName: String
    appPackageName: String
): String? {
): String? {
    return try {
    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)
        val applicationInfo = checkNotNull(pkgInfo.applicationInfo)
        applicationInfo.loadSafeLabel(
        applicationInfo.loadSafeLabel(
            pm, 0f,
            pm, 0f,
@@ -91,7 +97,14 @@ private fun getServiceLabelAndIcon(
        // Test data has only package name not component name.
        // Test data has only package name not component name.
        // For test data usage only.
        // For test data usage only.
        try {
        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)
            val applicationInfo = checkNotNull(pkgInfo.applicationInfo)
            providerLabel =
            providerLabel =
                applicationInfo.loadSafeLabel(
                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
            // Added for mdoc use case where the provider may not need to register a service and
            // instead only relies on the registration api.
            // instead only relies on the registration api.
            try {
            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)
                val applicationInfo = checkNotNull(pkgInfo.applicationInfo)
                providerLabel =
                providerLabel =
                    applicationInfo.loadSafeLabel(
                    applicationInfo.loadSafeLabel(
@@ -143,12 +163,12 @@ private fun getPackageInfo(
    pm: PackageManager,
    pm: PackageManager,
    packageName: String
    packageName: String
): PackageInfo {
): PackageInfo {
    val flags = PackageManager.MATCH_INSTANT
    val packageManagerFlags = PackageManager.MATCH_INSTANT


    return pm.getPackageInfo(
    return pm.getPackageInfo(
       packageName,
       packageName,
       PackageManager.PackageInfoFlags.of(
       PackageManager.PackageInfoFlags.of(
               (flags).toLong())
               (packageManagerFlags).toLong())
    )
    )
}
}