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

Commit c10ce234 authored by Tyler Gunn's avatar Tyler Gunn
Browse files

Always send USSD codes over the CS pipe.

A change was made early in the Q cycle which would try to send USSD codes
over the IMS pipe when CS was not in service.  It was not possible to test
that change at the time.  However, it turns out there are limitations in
how the modem handles the requests and it should just be sent over CS
all the time.

Test: Manual test using carrier network.
Bug: 135194912
Change-Id: I8a2b4bae812aa19562fcffe5211edda35648d38e
parent 80a8a9ac
Loading
Loading
Loading
Loading
+5 −15
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.internal.telephony.imsphone;

import static android.telephony.ServiceState.STATE_IN_SERVICE;

import static com.android.internal.telephony.CommandsInterface.SERVICE_CLASS_DATA;
import static com.android.internal.telephony.CommandsInterface.SERVICE_CLASS_DATA_ASYNC;
import static com.android.internal.telephony.CommandsInterface.SERVICE_CLASS_DATA_SYNC;
@@ -1009,19 +1007,11 @@ public final class ImsPhoneMmiCode extends Handler implements MmiCode {
                    throw new RuntimeException ("Invalid or Unsupported MMI Code");
                }
            } else if (mPoundString != null) {
                // We'll normally send USSD over the CS pipe, but if it happens that the CS phone
                // is out of service, we'll just try over IMS instead.
                if (mPhone.getDefaultPhone().getServiceStateTracker().mSS.getState()
                        == STATE_IN_SERVICE) {
                // USSD codes are not supported over IMS due to modem limitations; send over the CS
                // pipe instead.  This should be fixed in the future.
                Rlog.i(LOG_TAG, "processCode: Sending ussd string '"
                        + Rlog.pii(LOG_TAG, mPoundString) + "' over CS pipe.");
                throw new CallStateException(Phone.CS_FALLBACK);
                } else {
                    Rlog.i(LOG_TAG, "processCode: CS is out of service, sending ussd string '"
                            + Rlog.pii(LOG_TAG, mPoundString) + "' over IMS pipe.");
                    sendUssd(mPoundString);
                }

            } else {
                Rlog.d(LOG_TAG, "processCode: invalid or unsupported MMI");
                throw new RuntimeException ("Invalid or Unsupported MMI Code");