blob: 658f072d68fe099c99ba781be1ce29f589557f98 [file] [log] [blame]
pkanwardc4c14d2016-10-31 11:04:18 -07001package com.android.server.telecom.testapps;
2
3import android.app.Activity;
4import android.content.Context;
5import android.os.Bundle;
6import android.os.Handler;
7import android.os.Looper;
8import android.util.Log;
9import android.telephony.TelephonyManager;
10import android.view.View;
11import android.view.View.OnClickListener;
12import android.widget.EditText;
13import android.widget.Toast;
14
15public class TestUssdActivity extends Activity {
16
17 private EditText mUssdNumberView;
Tyler Gunn6aab9142017-04-26 10:25:44 -070018 private Context mContext;
pkanwardc4c14d2016-10-31 11:04:18 -070019 public static final String LOG_TAG = "TestUssdActivity";
20
Tyler Gunn6aab9142017-04-26 10:25:44 -070021 private TelephonyManager.UssdResponseCallback mReceiveUssdResponseCallback =
22 new TelephonyManager.UssdResponseCallback () {
23 @Override
24 public void onReceiveUssdResponse(final TelephonyManager telephonyManager,
25 String request, CharSequence response) {
26 Log.i(LOG_TAG, "USSD Success: " + request + "," + response);
27 showToast("USSD Response Successly received for code:" + request + "," +
28 response);
29 }
30
31 public void onReceiveUssdResponseFailed(final TelephonyManager telephonyManager,
32 String request, int failureCode) {
33 Log.i(LOG_TAG, "USSD Fail: " + request + "," + failureCode);
34 showToast("USSD Response failed for code:" + request + "," + failureCode);
35 }
36 };
37
pkanwardc4c14d2016-10-31 11:04:18 -070038 @Override
39 protected void onCreate(Bundle savedInstanceState) {
40 super.onCreate(savedInstanceState);
Tyler Gunn6aab9142017-04-26 10:25:44 -070041 mContext = getApplicationContext();
pkanwardc4c14d2016-10-31 11:04:18 -070042
43 setContentView(R.layout.testussd_main);
44 findViewById(R.id.place_ussd_button).setOnClickListener(new OnClickListener() {
45 @Override
46 public void onClick(View v) {
47
48 placeUssdRequest();
49 }
50 });
Tyler Gunn6aab9142017-04-26 10:25:44 -070051 findViewById(R.id.place_many_ussd_button).setOnClickListener((v) -> {
52 placeUssdRequestMultiple();
53 }
54 );
pkanwardc4c14d2016-10-31 11:04:18 -070055
56 mUssdNumberView = (EditText) findViewById(R.id.number);
57 }
58
pkanwardc4c14d2016-10-31 11:04:18 -070059 private void placeUssdRequest() {
pkanwardc4c14d2016-10-31 11:04:18 -070060 String mUssdNumber = mUssdNumberView.getText().toString();
61 if (mUssdNumber.equals("") || mUssdNumber == null) {
Tyler Gunn6aab9142017-04-26 10:25:44 -070062 mUssdNumber = "#932#";
pkanwardc4c14d2016-10-31 11:04:18 -070063 }
pkanwardc4c14d2016-10-31 11:04:18 -070064 final TelephonyManager telephonyManager =
65 (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
66 try {
67 Handler h = new Handler(Looper.getMainLooper());
Tyler Gunn6aab9142017-04-26 10:25:44 -070068 Log.i(LOG_TAG, "placeUssdRequest: " + mUssdNumber);
69 telephonyManager.sendUssdRequest(mUssdNumber, mReceiveUssdResponseCallback, h);
pkanwardc4c14d2016-10-31 11:04:18 -070070 } catch (SecurityException e) {
71 showToast("Permission check failed");
72 return;
73 }
74 }
75
Tyler Gunn6aab9142017-04-26 10:25:44 -070076 private void placeUssdRequestMultiple() {
77 for (int ix = 0; ix < 4 ; ix++) {
78 placeUssdRequest();
79 }
80 }
81
82 private void showToast(String message) {
83 Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
pkanwardc4c14d2016-10-31 11:04:18 -070084 }
85}