Merge "nfc: Prepare for NFC codebase move" into main
diff --git a/core/api/current.txt b/core/api/current.txt
index 16852ae..aa55040 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -1491,7 +1491,6 @@
field public static final int shadowRadius = 16843108; // 0x1010164
field public static final int shape = 16843162; // 0x101019a
field public static final int shareInterpolator = 16843195; // 0x10101bb
- field @FlaggedApi("android.nfc.nfc_associated_role_services") public static final int shareRolePriority;
field @Deprecated public static final int sharedUserId = 16842763; // 0x101000b
field @Deprecated public static final int sharedUserLabel = 16843361; // 0x1010261
field public static final int sharedUserMaxSdkVersion = 16844365; // 0x101064d
@@ -1855,6 +1854,7 @@
field public static final int wallpaperIntraOpenExitAnimation = 16843416; // 0x1010298
field public static final int wallpaperOpenEnterAnimation = 16843411; // 0x1010293
field public static final int wallpaperOpenExitAnimation = 16843412; // 0x1010294
+ field @FlaggedApi("android.nfc.nfc_associated_role_services") public static final int wantsRoleHolderPriority;
field public static final int webTextViewStyle = 16843449; // 0x10102b9
field public static final int webViewStyle = 16842885; // 0x1010085
field public static final int weekDayTextAppearance = 16843592; // 0x1010348
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index 903e18d..53b94c5 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -10463,10 +10463,11 @@
method @FlaggedApi("android.nfc.enable_nfc_mainline") public void setDynamicAidGroup(@NonNull android.nfc.cardemulation.AidGroup);
method @FlaggedApi("android.nfc.enable_nfc_mainline") public void setOffHostSecureElement(@NonNull String);
method @FlaggedApi("android.nfc.nfc_observe_mode") public void setShouldDefaultToObserveMode(boolean);
- method @FlaggedApi("android.nfc.nfc_associated_role_services") public boolean shareRolePriority();
method @FlaggedApi("android.nfc.nfc_observe_mode") public boolean shouldDefaultToObserveMode();
+ method @FlaggedApi("android.nfc.nfc_associated_role_services") public boolean wantsRoleHolderPriority();
method @FlaggedApi("android.nfc.enable_nfc_mainline") public void writeToParcel(@NonNull android.os.Parcel, int);
field @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public static final android.os.Parcelable.Creator<android.nfc.cardemulation.ApduServiceInfo> CREATOR;
+ field @FlaggedApi("android.permission.flags.wallet_role_icon_property_enabled") public static final String PROPERTY_WALLET_PREFERRED_BANNER_AND_LABEL = "android.nfc.cardemulation.PROPERTY_WALLET_PREFERRED_BANNER_AND_LABEL";
}
@FlaggedApi("android.nfc.enable_nfc_mainline") public final class NfcFServiceInfo implements android.os.Parcelable {
diff --git a/core/java/android/permission/flags.aconfig b/core/java/android/permission/flags.aconfig
index 5c54ecd..255d10d 100644
--- a/core/java/android/permission/flags.aconfig
+++ b/core/java/android/permission/flags.aconfig
@@ -231,3 +231,11 @@
description: "This fixed read-only flag is used to enable new ranging permission for all ranging use cases."
bug: "370977414"
}
+
+flag {
+ name: "wallet_role_icon_property_enabled"
+ is_exported: true
+ namespace: "wallet_integration"
+ description: "This flag is used to enabled the Wallet Role s icon fetching from manifest property"
+ bug: "349942654"
+}
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 4952400..87ef06e 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -4465,7 +4465,7 @@
role owner must opt into this behavior by using the property named by
{@link android.nfc.cardemulation.CardEmulation.PROPERTY_ALLOW_SHARED_ROLE_PRIORITY }
in the <code><application&rt;</code> tag. -->
- <attr name="shareRolePriority" format="boolean"/>
+ <attr name="wantsRoleHolderPriority" format="boolean"/>
</declare-styleable>
<!-- Use <code>offhost-apdu-service</code> as the root tag of the XML resource that
@@ -4493,7 +4493,7 @@
<!-- Whether the device should default to observe mode when this service is
default or in the foreground. -->
<attr name="shouldDefaultToObserveMode"/>
- <attr name="shareRolePriority"/>
+ <attr name="wantsRoleHolderPriority"/>
</declare-styleable>
<!-- Specify one or more <code>aid-group</code> elements inside a
diff --git a/core/res/res/values/public-staging.xml b/core/res/res/values/public-staging.xml
index d084632..ee7faea 100644
--- a/core/res/res/values/public-staging.xml
+++ b/core/res/res/values/public-staging.xml
@@ -119,7 +119,7 @@
<!-- @FlaggedApi("android.service.controls.flags.Flags.FLAG_HOME_PANEL_DREAM") -->
<public name="dreamCategory"/>
<!-- @FlaggedApi(android.nfc.Flags.FLAG_NFC_ASSOCIATED_ROLE_SERVICES) -->
- <public name="shareRolePriority"/>
+ <public name="wantsRoleHolderPriority"/>
</staging-public-group>
<staging-public-group type="id" first-id="0x01b60000">
diff --git a/nfc/java/android/nfc/cardemulation/ApduServiceInfo.java b/nfc/java/android/nfc/cardemulation/ApduServiceInfo.java
index eac7836..7f64dbe 100644
--- a/nfc/java/android/nfc/cardemulation/ApduServiceInfo.java
+++ b/nfc/java/android/nfc/cardemulation/ApduServiceInfo.java
@@ -71,6 +71,29 @@
private static final String TAG = "ApduServiceInfo";
/**
+ * Component level {@link android.content.pm.PackageManager.Property PackageManager
+ * .Property} for a system application to change its icon and label
+ * on the default applications page. This property should be added to an
+ * {@link HostApduService} declaration in the manifest.
+ *
+ * <p>For example:
+ * <pre>
+ * <service
+ * android:apduServiceBanner="@drawable/product_logo"
+ * android:label="@string/service_label">
+ * <property
+ * android:name="android.content.PROPERTY_WALLET_ICON_AND_LABEL_HOLDER"
+ * android:value="true"/>
+ * </service>
+ * </pre>
+ * @hide
+ */
+ @SystemApi
+ @FlaggedApi(android.permission.flags.Flags.FLAG_WALLET_ROLE_ICON_PROPERTY_ENABLED)
+ public static final String PROPERTY_WALLET_PREFERRED_BANNER_AND_LABEL =
+ "android.nfc.cardemulation.PROPERTY_WALLET_PREFERRED_BANNER_AND_LABEL";
+
+ /**
* The service that implements this
*/
private final ResolveInfo mService;
@@ -151,7 +174,7 @@
* Whether or not this service wants to share the same routing priority as the
* Wallet role owner.
*/
- private boolean mShareRolePriority;
+ private boolean mWantsRoleHolderPriority;
/**
* @hide
@@ -291,8 +314,8 @@
R.styleable.HostApduService_shouldDefaultToObserveMode,
false);
if (Flags.nfcAssociatedRoleServices()) {
- mShareRolePriority = sa.getBoolean(
- R.styleable.HostApduService_shareRolePriority,
+ mWantsRoleHolderPriority = sa.getBoolean(
+ R.styleable.HostApduService_wantsRoleHolderPriority,
false
);
}
@@ -327,8 +350,8 @@
}
mStaticOffHostName = mOffHostName;
if (Flags.nfcAssociatedRoleServices()) {
- mShareRolePriority = sa.getBoolean(
- R.styleable.OffHostApduService_shareRolePriority,
+ mWantsRoleHolderPriority = sa.getBoolean(
+ R.styleable.OffHostApduService_wantsRoleHolderPriority,
false
);
}
@@ -729,8 +752,8 @@
* @return whether or not this service wants to share priority
*/
@FlaggedApi(Flags.FLAG_NFC_ASSOCIATED_ROLE_SERVICES)
- public boolean shareRolePriority() {
- return mShareRolePriority;
+ public boolean wantsRoleHolderPriority() {
+ return mWantsRoleHolderPriority;
}
/**