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

Commit 1d704768 authored by Jordan Liu's avatar Jordan Liu Committed by android-build-merger
Browse files

Merge "IMS: Handle IMS Reason CODE_FDN_BLOCKED"

am: 415158fb

Change-Id: I55607f747c0ea2128cfcb6e29e03487902549965
parents cff30202 415158fb
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1038,6 +1038,9 @@ public class ImsPhone extends ImsPhoneBase {
                break;
            case ImsReasonInfo.CODE_UT_SERVICE_UNAVAILABLE:
                error = CommandException.Error.RADIO_NOT_AVAILABLE;
                break;
            case ImsReasonInfo.CODE_FDN_BLOCKED:
                error = CommandException.Error.FDN_CHECK_FAILURE;
            default:
                break;
        }
+29 −41
Original line number Diff line number Diff line
@@ -1173,6 +1173,14 @@ public final class ImsPhoneMmiCode extends Handler implements MmiCode {
    }

    private CharSequence getErrorMessage(AsyncResult ar) {
        if (ar.exception instanceof CommandException) {
            CommandException.Error err = ((CommandException) (ar.exception)).getCommandError();
            if (err == CommandException.Error.FDN_CHECK_FAILURE) {
                Rlog.i(LOG_TAG, "FDN_CHECK_FAILURE");
                return mContext.getText(com.android.internal.R.string.mmiFdnError);
            }
        }

        return mContext.getText(com.android.internal.R.string.mmiError);
    }

@@ -1217,18 +1225,15 @@ public final class ImsPhoneMmiCode extends Handler implements MmiCode {
                if (err.getCommandError() == CommandException.Error.PASSWORD_INCORRECT) {
                    sb.append(mContext.getText(
                            com.android.internal.R.string.passwordIncorrect));
                } else if (err.getCommandError() == CommandException.Error.FDN_CHECK_FAILURE) {
                    sb.append(mContext.getText(com.android.internal.R.string.mmiFdnError));
                } else if (err.getMessage() != null) {
                    sb.append(err.getMessage());
                } else {
                    sb.append(mContext.getText(com.android.internal.R.string.mmiError));
                }
            } else {
                ImsException error = (ImsException) ar.exception;
                if (error.getMessage() != null) {
                    sb.append(error.getMessage());
                } else {
                    sb.append(getErrorMessage(ar));
                }
            } else if (ar.exception instanceof ImsException) {
                sb.append(getImsErrorMessage(ar));
            }
        } else if (isActivate()) {
            mState = State.COMPLETE;
@@ -1361,12 +1366,7 @@ public final class ImsPhoneMmiCode extends Handler implements MmiCode {
            mState = State.FAILED;

            if (ar.exception instanceof ImsException) {
                ImsException error = (ImsException) ar.exception;
                if (error.getMessage() != null) {
                    sb.append(error.getMessage());
                } else {
                    sb.append(getErrorMessage(ar));
                }
                sb.append(getImsErrorMessage(ar));
            }
            else {
                sb.append(getErrorMessage(ar));
@@ -1422,21 +1422,14 @@ public final class ImsPhoneMmiCode extends Handler implements MmiCode {
        StringBuilder sb = new StringBuilder(getScString());
        sb.append("\n");

        if (ar.exception != null) {
        mState = State.FAILED;

        if (ar.exception != null) {
            if (ar.exception instanceof ImsException) {
                ImsException error = (ImsException) ar.exception;
                if (error.getMessage() != null) {
                    sb.append(error.getMessage());
                } else {
                    sb.append(getErrorMessage(ar));
                }
                sb.append(getImsErrorMessage(ar));
            } else {
                sb.append(getErrorMessage(ar));
            }
        } else {
            mState = State.FAILED;
            ImsSsInfo ssInfo = null;
            if (ar.result instanceof Bundle) {
                Rlog.d(LOG_TAG, "onSuppSvcQueryComplete: Received CLIP/COLP/COLR Response.");
@@ -1487,12 +1480,7 @@ public final class ImsPhoneMmiCode extends Handler implements MmiCode {
            mState = State.FAILED;

            if (ar.exception instanceof ImsException) {
                ImsException error = (ImsException) ar.exception;
                if (error.getMessage() != null) {
                    sb.append(error.getMessage());
                } else {
                    sb.append(getErrorMessage(ar));
                }
                sb.append(getImsErrorMessage(ar));
            } else {
                sb.append(getErrorMessage(ar));
            }
@@ -1526,14 +1514,8 @@ public final class ImsPhoneMmiCode extends Handler implements MmiCode {
        mState = State.FAILED;

        if (ar.exception != null) {

            if (ar.exception instanceof ImsException) {
                ImsException error = (ImsException) ar.exception;
                if (error.getMessage() != null) {
                    sb.append(error.getMessage());
                } else {
                    sb.append(getErrorMessage(ar));
                }
                sb.append(getImsErrorMessage(ar));
            }
        } else {
            Bundle ssInfo = (Bundle) ar.result;
@@ -1624,12 +1606,7 @@ public final class ImsPhoneMmiCode extends Handler implements MmiCode {
            mState = State.FAILED;

            if (ar.exception instanceof ImsException) {
                ImsException error = (ImsException) ar.exception;
                if (error.getMessage() != null) {
                    sb.append(error.getMessage());
                } else {
                    sb.append(getErrorMessage(ar));
                }
                sb.append(getImsErrorMessage(ar));
            } else {
                sb.append(getErrorMessage(ar));
            }
@@ -1677,6 +1654,17 @@ public final class ImsPhoneMmiCode extends Handler implements MmiCode {
        return sb;
    }

    private CharSequence getImsErrorMessage(AsyncResult ar) {
        ImsException error = (ImsException) ar.exception;
        if (error.getCode() == ImsReasonInfo.CODE_FDN_BLOCKED) {
            return mContext.getText(com.android.internal.R.string.mmiFdnError);
        } else if (error.getMessage() != null) {
            return error.getMessage();
        } else {
            return getErrorMessage(ar);
        }
    }

    @Override
    public ResultReceiver getUssdCallbackReceiver() {
        return this.mCallbackReceiver;