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

Commit c75e128a authored by Sandeep Kunta's avatar Sandeep Kunta Committed by Steve Kondik
Browse files

Stk: Add support for alpha in REFRESH command

RIL_UNSOL_STK_EVENT_NOTIFY is given by RIL in case there is alpha
id to be displayed to user in refresh proactive cmd.
Support is added to display Alpha id to user when this event comes
due to REFRESH proactive cmd.
Also if refresh mode is init or reset, idle mode text needs to be
cleared as per stk 3GPP spec 11.14. This logic is handled in stk
app to satisfy both the above requiremnts.

CRs-Fixed: 474693

Change-Id: Ic16da08d611753f2ee4a5b288f46b985078ca46f
parent c9ebcc60
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -35,6 +35,11 @@ public class CatCmdMessage implements Parcelable {
    private CallSettings mCallSettings = null;
    private boolean mLoadIconFailed = false;

    // Command Qualifier values for refresh command
    static final int REFRESH_NAA_INIT_AND_FULL_FILE_CHANGE  = 0x00;
    static final int REFRESH_NAA_INIT_AND_FILE_CHANGE       = 0x02;
    static final int REFRESH_NAA_INIT                       = 0x03;
    static final int REFRESH_UICC_RESET                     = 0x04;
    /*
     * Container for Launch Browser command settings.
     */
@@ -63,6 +68,7 @@ public class CatCmdMessage implements Parcelable {
        case SET_UP_IDLE_MODE_TEXT:
        case SEND_DTMF:
        case SEND_SMS:
        case REFRESH:
        case SEND_SS:
        case SEND_USSD:
            mTextMsg = ((DisplayTextParams) cmdParams).mTextMsg;
@@ -98,7 +104,6 @@ public class CatCmdMessage implements Parcelable {
            mTextMsg = param.mTextMsg;
            break;
        case PROVIDE_LOCAL_INFORMATION:
        case REFRESH:
        case SET_UP_EVENT_LIST:
        default:
            break;
@@ -207,4 +212,15 @@ public class CatCmdMessage implements Parcelable {
    public boolean hasIconLoadFailed() {
        return mLoadIconFailed;
    }

    public boolean isRefreshResetOrInit() {
        if ((mCmdDet.commandQualifier == REFRESH_NAA_INIT_AND_FULL_FILE_CHANGE)
            || (mCmdDet.commandQualifier == REFRESH_NAA_INIT_AND_FILE_CHANGE )
            || (mCmdDet.commandQualifier == REFRESH_NAA_INIT)
            || (mCmdDet.commandQualifier == REFRESH_UICC_RESET)) {
            return true;
        } else {
            return false;
        }
    }
}
+2 −3
Original line number Diff line number Diff line
@@ -339,9 +339,8 @@ public class CatService extends Handler implements AppInterface {
                }
                break;
            case REFRESH:
                // ME side only handles refresh commands which meant to remove IDLE
                // MODE TEXT.
                cmdParams.mCmdDet.typeOfCommand = CommandType.SET_UP_IDLE_MODE_TEXT.value();
                //Stk app service displays alpha id to user if it is present, nothing to do here
                CatLog.d(this, "Pass Refresh to Stk app");
                break;
            case SET_UP_IDLE_MODE_TEXT:
                resultCode = cmdParams.mLoadIconFailed ? ResultCode.PRFRMD_ICON_NOT_DISPLAYED
+2 −35
Original line number Diff line number Diff line
@@ -47,12 +47,6 @@ class CommandParamsFactory extends Handler {
    static final int LOAD_SINGLE_ICON       = 1;
    static final int LOAD_MULTI_ICONS       = 2;

    // Command Qualifier values for refresh command
    static final int REFRESH_NAA_INIT_AND_FULL_FILE_CHANGE  = 0x00;
    static final int REFRESH_NAA_INIT_AND_FILE_CHANGE       = 0x02;
    static final int REFRESH_NAA_INIT                       = 0x03;
    static final int REFRESH_UICC_RESET                     = 0x04;

    // Command Qualifier values for PLI command
    static final int DTTZ_SETTING                           = 0x03;
    static final int LANGUAGE_SETTING                       = 0x04;
@@ -179,8 +173,7 @@ class CommandParamsFactory extends Handler {
                 cmdPending = processSetupCall(cmdDet, ctlvs);
                 break;
             case REFRESH:
                processRefresh(cmdDet, ctlvs);
                cmdPending = false;
                 cmdPending = processEventNotify(cmdDet, ctlvs);
                 break;
             case LAUNCH_BROWSER:
                 cmdPending = processLaunchBrowser(cmdDet, ctlvs);
@@ -551,32 +544,6 @@ class CommandParamsFactory extends Handler {
        return false;
    }

    /**
     * Processes REFRESH proactive command from the SIM card.
     *
     * @param cmdDet Command Details container object.
     * @param ctlvs List of ComprehensionTlv objects following Command Details
     *        object and Device Identities object within the proactive command
     */
    private boolean processRefresh(CommandDetails cmdDet,
            List<ComprehensionTlv> ctlvs) {

        CatLog.d(this, "process Refresh");

        // REFRESH proactive command is rerouted by the baseband and handled by
        // the telephony layer. IDLE TEXT should be removed for a REFRESH command
        // with "initialization" or "reset"
        switch (cmdDet.commandQualifier) {
        case REFRESH_NAA_INIT_AND_FULL_FILE_CHANGE:
        case REFRESH_NAA_INIT_AND_FILE_CHANGE:
        case REFRESH_NAA_INIT:
        case REFRESH_UICC_RESET:
            mCmdParams = new DisplayTextParams(cmdDet, null);
            break;
        }
        return false;
    }

    /**
     * Processes SELECT_ITEM proactive command from the SIM card.
     *