Merge "Merge 24Q4 into AOSP main" into main
diff --git a/core/api/current.txt b/core/api/current.txt
index ef6cf6b..ab2d8c3 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -1492,7 +1492,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
@@ -1856,6 +1855,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 ee1d72b..b91f5e2 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -10542,8 +10542,8 @@
     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";
diff --git a/core/java/android/permission/flags.aconfig b/core/java/android/permission/flags.aconfig
index fdd491c..8ad3018 100644
--- a/core/java/android/permission/flags.aconfig
+++ b/core/java/android/permission/flags.aconfig
@@ -275,3 +275,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 4280a1e..cc009c5 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -4808,7 +4808,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>&lt;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
@@ -4836,7 +4836,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 fd35a4c..a1b92d6 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/Android.bp b/nfc/Android.bp
index c33665a..9490487 100644
--- a/nfc/Android.bp
+++ b/nfc/Android.bp
@@ -29,6 +29,11 @@
         "java/**/*.java",
         "java/**/*.aidl",
     ],
+    visibility: [
+        "//frameworks/base:__subpackages__",
+        "//packages/apps/Nfc:__subpackages__",
+        "//packages/modules/Nfc:__subpackages__",
+    ],
     exclude_srcs: [
         ":framework-nfc-non-updatable-sources",
     ],
@@ -68,8 +73,7 @@
     ],
     impl_library_visibility: [
         "//frameworks/base:__subpackages__",
-        "//cts/hostsidetests/multidevices/nfc:__subpackages__",
-        "//cts/tests/tests/nfc",
+        "//cts:__subpackages__",
         "//packages/apps/Nfc:__subpackages__",
         "//packages/modules/Nfc:__subpackages__",
     ],
diff --git a/nfc/java/android/nfc/cardemulation/ApduServiceInfo.java b/nfc/java/android/nfc/cardemulation/ApduServiceInfo.java
index 308b5d1..7f64dbe 100644
--- a/nfc/java/android/nfc/cardemulation/ApduServiceInfo.java
+++ b/nfc/java/android/nfc/cardemulation/ApduServiceInfo.java
@@ -174,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
@@ -314,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
                     );
                 }
@@ -350,8 +350,8 @@
                 }
                 mStaticOffHostName = mOffHostName;
                 if (Flags.nfcAssociatedRoleServices()) {
-                    mShareRolePriority = sa.getBoolean(
-                            R.styleable.OffHostApduService_shareRolePriority,
+                    mWantsRoleHolderPriority = sa.getBoolean(
+                            R.styleable.OffHostApduService_wantsRoleHolderPriority,
                             false
                     );
                 }
@@ -752,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;
     }
 
     /**