1 package com.android.cts.verifier.nfc.hce; 2 3 import android.annotation.TargetApi; 4 import android.content.ComponentName; 5 import android.content.Context; 6 import android.content.Intent; 7 import android.os.Bundle; 8 9 import com.android.cts.verifier.R; 10 import com.android.cts.verifier.nfc.NfcDialogs; 11 12 @TargetApi(19) 13 public class ChangeDefaultEmulatorActivity extends BaseEmulatorActivity { 14 final static int STATE_IDLE = 0; 15 final static int STATE_SERVICE1_SETTING_UP = 1; 16 final static int STATE_SERVICE2_SETTING_UP = 2; 17 final static int STATE_MAKING_SERVICE1_DEFAULT = 3; 18 final static int STATE_MAKING_SERVICE2_DEFAULT = 4; 19 final static int STATE_DEFAULT_CHANGED = 5; 20 21 int mState = STATE_IDLE; 22 23 @Override onCreate(Bundle savedInstanceState)24 protected void onCreate(Bundle savedInstanceState) { 25 super.onCreate(savedInstanceState); 26 setContentView(R.layout.pass_fail_text); 27 setPassFailButtonClickListeners(); 28 getPassButton().setEnabled(false); 29 30 mState = STATE_SERVICE2_SETTING_UP; 31 setupServices(this, PaymentService2.COMPONENT); 32 } 33 34 @Override onResume()35 protected void onResume() { 36 super.onResume(); 37 } 38 39 @Override onServicesSetup(boolean result)40 void onServicesSetup(boolean result) { 41 if (mState == STATE_SERVICE2_SETTING_UP) { 42 mState = STATE_SERVICE1_SETTING_UP; 43 setupServices(this, PaymentService1.COMPONENT, PaymentService2.COMPONENT); 44 return; 45 } 46 if (!makePaymentDefault(PaymentService2.COMPONENT, 47 R.string.nfc_hce_change_preinstalled_wallet)) { 48 // Service 2 is already default, make one default now 49 mState = STATE_MAKING_SERVICE1_DEFAULT; 50 makePaymentDefault(PaymentService1.COMPONENT, R.string.nfc_hce_change_default_help); 51 } else { 52 mState = STATE_MAKING_SERVICE2_DEFAULT; 53 // will get callback when 2 is made default 54 } 55 } 56 57 @Override onPause()58 protected void onPause() { 59 super.onPause(); 60 } 61 buildReaderIntent(Context context)62 public static Intent buildReaderIntent(Context context) { 63 Intent readerIntent = new Intent(context, SimpleReaderActivity.class); 64 readerIntent.putExtra(SimpleReaderActivity.EXTRA_APDUS, 65 PaymentService1.APDU_COMMAND_SEQUENCE); 66 readerIntent.putExtra(SimpleReaderActivity.EXTRA_RESPONSES, 67 PaymentService1.APDU_RESPOND_SEQUENCE); 68 readerIntent.putExtra(SimpleReaderActivity.EXTRA_LABEL, 69 context.getString(R.string.nfc_hce_change_default_reader)); 70 return readerIntent; 71 } 72 73 @Override onApduSequenceComplete(ComponentName component, long duration)74 void onApduSequenceComplete(ComponentName component, long duration) { 75 if (component.equals(PaymentService1.COMPONENT)) { 76 getPassButton().setEnabled(true); 77 } 78 } 79 80 @Override onPaymentDefaultResult(ComponentName component, boolean success)81 void onPaymentDefaultResult(ComponentName component, boolean success) { 82 if (mState == STATE_MAKING_SERVICE2_DEFAULT) { 83 if (success) { 84 mState = STATE_MAKING_SERVICE1_DEFAULT; 85 makePaymentDefault(PaymentService1.COMPONENT, R.string.nfc_hce_change_default_help); 86 } 87 } else if (mState == STATE_MAKING_SERVICE1_DEFAULT) { 88 if (success) { 89 mState = STATE_DEFAULT_CHANGED; 90 NfcDialogs.createHceTapReaderDialog(this, null).show(); 91 } 92 } 93 } 94 } 95