From a5d82be48335b121d58d76328cc01c68049d05d1 Mon Sep 17 00:00:00 2001 From: Roshan Pius Date: Mon, 30 Oct 2023 14:45:07 -0700 Subject: [PATCH] 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 --- Android.bp | 1 + .../specialaccess/PaymentSettingsEnabler.java | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Android.bp b/Android.bp index 03f9c1064f6..4e9a916906d 100644 --- a/Android.bp +++ b/Android.bp @@ -76,6 +76,7 @@ android_library { "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 597705ca170..e378eb3ca74 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 @@ public class PaymentSettingsEnabler extends BaseNfcEnabler { } } + 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;