Merge "settings(payments): Use newly exposed formal API for CardEmulation.getServices()" into main
diff --git a/Android.bp b/Android.bp
index f38ec07..5a1224c 100644
--- a/Android.bp
+++ b/Android.bp
@@ -75,6 +75,7 @@
         "android.hardware.dumpstate-V1-java",
         "android.hardware.dumpstate-V1.0-java",
         "android.hardware.dumpstate-V1.1-java",
+        "android.nfc.flags-aconfig-java",
         "net-utils-framework-common",
         "notification_flags_lib",
         "securebox",
diff --git a/src/com/android/settings/applications/specialaccess/PaymentSettingsEnabler.java b/src/com/android/settings/applications/specialaccess/PaymentSettingsEnabler.java
index 597705c..e378eb3 100644
--- a/src/com/android/settings/applications/specialaccess/PaymentSettingsEnabler.java
+++ b/src/com/android/settings/applications/specialaccess/PaymentSettingsEnabler.java
@@ -17,8 +17,10 @@
 package com.android.settings.applications.specialaccess;
 
 import android.content.Context;
+import android.nfc.Flags;
 import android.nfc.NfcAdapter;
 import android.nfc.cardemulation.CardEmulation;
+import android.os.UserHandle;
 
 import androidx.preference.Preference;
 
@@ -64,12 +66,21 @@
         }
     }
 
+    private boolean hasAnyServices() {
+        if (Flags.enableNfcMainline()) {
+            return mCardEmuManager.getServices(
+                CardEmulation.CATEGORY_PAYMENT, UserHandle.myUserId()).isEmpty();
+        } else {
+            return mCardEmuManager.getServices(CardEmulation.CATEGORY_PAYMENT).isEmpty();
+        }
+    }
+
     @Override
     public void resume() {
         if (!isNfcAvailable()) {
             return;
         }
-        if (mCardEmuManager.getServices(CardEmulation.CATEGORY_PAYMENT).isEmpty()) {
+        if (hasAnyServices()) {
             mIsPaymentAvailable = false;
         } else {
             mIsPaymentAvailable = true;