Merge "Fix getSelectionModeForCategory"
This commit is contained in:
@@ -40,4 +40,5 @@ interface INfcCardEmulation
|
||||
boolean unsetPreferredService();
|
||||
boolean supportsAidPrefixRegistration();
|
||||
ApduServiceInfo getPreferredPaymentService(int userHandle);
|
||||
boolean isDefaultPaymentRegistered();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user