Merge "Fix getSelectionModeForCategory" am: be74a9f6ba

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1719130

Change-Id: Ia2b620d76646e6c321fa67fc0c53c600fdb0e6df
This commit is contained in:
George Chang
2021-05-27 17:14:05 +00:00
committed by Automerger Merge Worker
2 changed files with 18 additions and 3 deletions

View File

@@ -40,4 +40,5 @@ interface INfcCardEmulation
boolean unsetPreferredService();
boolean supportsAidPrefixRegistration();
ApduServiceInfo getPreferredPaymentService(int userHandle);
boolean isDefaultPaymentRegistered();
}

View File

@@ -294,9 +294,23 @@ public final class CardEmulation {
*/
public int getSelectionModeForCategory(String category) {
if (CATEGORY_PAYMENT.equals(category)) {
String defaultComponent = Settings.Secure.getString(mContext.getContentResolver(),
Settings.Secure.NFC_PAYMENT_DEFAULT_COMPONENT);
if (defaultComponent != null) {
boolean paymentRegistered = false;
try {
paymentRegistered = sService.isDefaultPaymentRegistered();
} catch (RemoteException e) {
recoverService();
if (sService == null) {
Log.e(TAG, "Failed to recover CardEmulationService.");
return SELECTION_MODE_ALWAYS_ASK;
}
try {
paymentRegistered = sService.isDefaultPaymentRegistered();
} catch (RemoteException ee) {
Log.e(TAG, "Failed to reach CardEmulationService.");
return SELECTION_MODE_ALWAYS_ASK;
}
}
if (paymentRegistered) {
return SELECTION_MODE_PREFER_DEFAULT;
} else {
return SELECTION_MODE_ALWAYS_ASK;