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

Commit 4c0a602e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix USSD Api test app" into oc-dev

parents ba037792 fe37fdc0
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