• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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