Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2351943f authored by Tyler Gunn's avatar Tyler Gunn Committed by Android (Google) Code Review
Browse files

Merge "Fix USSD Api test app"

parents ac6c6389 6aab9148
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@
    android:orientation="vertical" >
    <EditText
        android:id="@+id/number"
        android:inputType="number"
        android:inputType="phone"
        android:layout_width="200dp"
        android:layout_height="wrap_content" />
    <Button
@@ -29,4 +29,9 @@
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/placeUssdButton" />
    <Button
        android:id="@+id/place_many_ussd_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Send Many" />
</LinearLayout>
+34 −29
Original line number Diff line number Diff line
@@ -15,13 +15,30 @@ import android.widget.Toast;
public class TestUssdActivity extends Activity {

    private EditText mUssdNumberView;
    private static Context context;
    private Context mContext;
    public static final String LOG_TAG = "TestUssdActivity";

    private TelephonyManager.UssdResponseCallback mReceiveUssdResponseCallback =
            new TelephonyManager.UssdResponseCallback () {
                @Override
                public void onReceiveUssdResponse(final TelephonyManager telephonyManager,
                                                  String request, CharSequence response) {
                    Log.i(LOG_TAG, "USSD Success: " + request + "," + response);
                    showToast("USSD Response Successly received for code:" + request + "," +
                            response);
                }

                public void onReceiveUssdResponseFailed(final TelephonyManager telephonyManager,
                                                        String request, int failureCode) {
                    Log.i(LOG_TAG, "USSD Fail: " + request + "," + failureCode);
                    showToast("USSD Response failed for code:" + request + "," + failureCode);
                }
            };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TestUssdActivity.context = getApplicationContext();
        mContext = getApplicationContext();

        setContentView(R.layout.testussd_main);
        findViewById(R.id.place_ussd_button).setOnClickListener(new OnClickListener() {
@@ -31,50 +48,38 @@ public class TestUssdActivity extends Activity {
                placeUssdRequest();
            }
        });

        mUssdNumberView = (EditText) findViewById(R.id.number);
        findViewById(R.id.place_many_ussd_button).setOnClickListener((v) -> {
                    placeUssdRequestMultiple();
                }
        );

    public static final class OnReceiveUssdResponseCallback extends
        TelephonyManager.UssdResponseCallback {

            OnReceiveUssdResponseCallback() {
            }

            public void onReceiveUssdResponse(String req, CharSequence message) {
                Log.i(LOG_TAG, "USSD Success:::" + req + "," + message);
                showToast("USSD Response Successly received for code:" + req + "," + message);
            }

            public void onReceiveUssdResponseFailed(String req, int resultCode) {
                Log.i(LOG_TAG, "USSD Fail:::" + req + "," + resultCode);
                showToast("USSD Response failed for code:" + req + "," + resultCode);
            }
        mUssdNumberView = (EditText) findViewById(R.id.number);
    }

    private void placeUssdRequest() {

        String mUssdNumber = mUssdNumberView.getText().toString();
        if (mUssdNumber.equals("") || mUssdNumber == null) {
            mUssdNumber = "932";
            mUssdNumber = "#932#";
        }
        mUssdNumber = "#" + mUssdNumber + "#";
        final TelephonyManager telephonyManager =
                (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        try {
            Handler h = new Handler(Looper.getMainLooper());
            OnReceiveUssdResponseCallback receiveUssdResponseCallback =
                    new OnReceiveUssdResponseCallback();

            telephonyManager.sendUssdRequest(mUssdNumber, receiveUssdResponseCallback, h);

            Log.i(LOG_TAG, "placeUssdRequest: " + mUssdNumber);
            telephonyManager.sendUssdRequest(mUssdNumber, mReceiveUssdResponseCallback, h);
        } catch (SecurityException e) {
            showToast("Permission check failed");
            return;
        }
    }

    private static void showToast(String message) {
        Toast.makeText(TestUssdActivity.context, message, Toast.LENGTH_SHORT).show();
    private void placeUssdRequestMultiple() {
        for (int ix = 0; ix < 4 ; ix++) {
            placeUssdRequest();
        }
    }

    private void showToast(String message) {
        Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
    }
}
 No newline at end of file