settings(payments): Use newly exposed formal API for CardEmulation.getServices()
Bug: 307352220
Test: Compiles
(cherry picked from https://android-review.googlesource.com/q/commit:1b6f9160c6954619bc86a3f7c7c39241b2427d91)
Change-Id: Iaaa37a8e55d755f8abcbaa26c31bf7962e166e96
diff --git a/Android.bp b/Android.bp
index 03f9c10..4e9a916 100644
--- a/Android.bp
+++ b/Android.bp
@@ -76,6 +76,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;