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

Commit eb0d7079 authored by lei.huang's avatar lei.huang Committed by lei.huang
Browse files

Issue 127875492: USSD progress dialog didn't dismiss when user press cancel button.

[root cause ]When user click cancel button of USSD dialog, ImsPhone will terminate this session, but UI didn't get this state.
[changes ] ImsPhoneMmiCode should receive EVENT_USSD_CANCEL_COMPLETE and notify UI dismiss dialog.
[Issue address] https://partnerissuetracker.corp.google.com/u/0/issues/127875492

Change-Id: I6c3ca4a63d4f8874352676f51c16f99f5dc5a534
parent 5007054a
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -3781,7 +3781,12 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
    public void callEndCleanupHandOverCallIfAny() {
    }

    public void cancelUSSD() {
    /**
     * Cancel USSD session.
     *
     * @param msg The message to dispatch when the USSD session terminated.
     */
    public void cancelUSSD(Message msg) {
    }

    /**
+2 −2
Original line number Diff line number Diff line
@@ -1106,8 +1106,8 @@ public class ImsPhone extends ImsPhoneBase {
    }

    @Override
    public void cancelUSSD() {
        mCT.cancelUSSD();
    public void cancelUSSD(Message msg) {
        mCT.cancelUSSD(msg);
    }

    private void sendErrorResponse(Message onComplete) {
+7 −2
Original line number Diff line number Diff line
@@ -1766,9 +1766,14 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
        }
    }

    public void cancelUSSD() {
    /**
     * Cancel USSD session.
     *
     * @param msg The message to dispatch when the USSD session terminated.
     */
    public void cancelUSSD(Message msg) {
        if (mUssdSession == null) return;

        mPendingUssd = msg;
        mUssdSession.terminate(ImsReasonInfo.CODE_USER_TERMINATED);
    }

+1 −1
Original line number Diff line number Diff line
@@ -529,7 +529,7 @@ public final class ImsPhoneMmiCode extends Handler implements MmiCode {
        mState = State.CANCELLED;

        if (mIsPendingUSSD) {
            mPhone.cancelUSSD();
            mPhone.cancelUSSD(obtainMessage(EVENT_USSD_CANCEL_COMPLETE, this));
        } else {
            mPhone.onMMIDone (this);
        }
+2 −2
Original line number Diff line number Diff line
@@ -357,8 +357,8 @@ public class ImsPhoneTest extends TelephonyTest {
        mImsPhoneUT.sendUSSD("1234", msg);
        verify(mImsCT).sendUSSD("1234", msg);

        mImsPhoneUT.cancelUSSD();
        verify(mImsCT).cancelUSSD();
        mImsPhoneUT.cancelUSSD(msg);
        verify(mImsCT).cancelUSSD(msg);

    }

Loading