10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/*
20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2006 The Android Open Source Project
30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License.
60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at
70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software
110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and
140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License.
150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage com.android.internal.telephony.cat;
180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/**
210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Enumeration for the return code in TERMINAL RESPONSE.
22cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * To get the actual return code for each enum value, call {@link #value}
230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * method.
240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@hide}
260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
270825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic enum ResultCode {
280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /*
300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Results '0X' and '1X' indicate that the command has been performed.
310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Command performed successfully */
340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    OK(0x00),
350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Command performed with partial comprehension */
370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    PRFRMD_WITH_PARTIAL_COMPREHENSION(0x01),
380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Command performed, with missing information */
400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    PRFRMD_WITH_MISSING_INFO(0x02),
410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** REFRESH performed with additional EFs read */
430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    PRFRMD_WITH_ADDITIONAL_EFS_READ(0x03),
440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Command performed successfully, but requested icon could not be
470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * displayed
480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    PRFRMD_ICON_NOT_DISPLAYED(0x04),
500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Command performed, but modified by call control by NAA */
520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    PRFRMD_MODIFIED_BY_NAA(0x05),
530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Command performed successfully, limited service */
550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    PRFRMD_LIMITED_SERVICE(0x06),
560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Command performed with modification */
580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    PRFRMD_WITH_MODIFICATION(0x07),
590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** REFRESH performed but indicated NAA was not active */
610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    PRFRMD_NAA_NOT_ACTIVE(0x08),
620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Command performed successfully, tone not played */
640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    PRFRMD_TONE_NOT_PLAYED(0x09),
650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Proactive UICC session terminated by the user */
670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    UICC_SESSION_TERM_BY_USER(0x10),
680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Backward move in the proactive UICC session requested by the user */
700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    BACKWARD_MOVE_BY_USER(0x11),
710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** No response from user */
730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    NO_RESPONSE_FROM_USER(0x12),
740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Help information required by the user */
760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    HELP_INFO_REQUIRED(0x13),
770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** USSD or SS transaction terminated by the user */
790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    USSD_SS_SESSION_TERM_BY_USER(0x14),
800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /*
830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Results '2X' indicate to the UICC that it may be worth re-trying the
840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * command at a later opportunity.
850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Terminal currently unable to process command */
880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    TERMINAL_CRNTLY_UNABLE_TO_PROCESS(0x20),
890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Network currently unable to process command */
910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    NETWORK_CRNTLY_UNABLE_TO_PROCESS(0x21),
920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** User did not accept the proactive command */
940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    USER_NOT_ACCEPT(0x22),
950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** User cleared down call before connection or network release */
970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    USER_CLEAR_DOWN_CALL(0x23),
980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Action in contradiction with the current timer state */
1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    CONTRADICTION_WITH_TIMER(0x24),
1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Interaction with call control by NAA, temporary problem */
1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    NAA_CALL_CONTROL_TEMPORARY(0x25),
1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Launch browser generic error code */
1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    LAUNCH_BROWSER_ERROR(0x26),
1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** MMS temporary problem. */
1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    MMS_TEMPORARY(0x27),
1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /*
1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Results '3X' indicate that it is not worth the UICC re-trying with an
1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * identical command, as it will only get the same response. However, the
1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * decision to retry lies with the application.
1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Command beyond terminal's capabilities */
1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    BEYOND_TERMINAL_CAPABILITY(0x30),
1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Command type not understood by terminal */
1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    CMD_TYPE_NOT_UNDERSTOOD(0x31),
1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Command data not understood by terminal */
1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    CMD_DATA_NOT_UNDERSTOOD(0x32),
1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Command number not known by terminal */
1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    CMD_NUM_NOT_KNOWN(0x33),
1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** SS Return Error */
1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    SS_RETURN_ERROR(0x34),
1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** SMS RP-ERROR */
1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    SMS_RP_ERROR(0x35),
1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Error, required values are missing */
1370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    REQUIRED_VALUES_MISSING(0x36),
1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** USSD Return Error */
1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    USSD_RETURN_ERROR(0x37),
1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** MultipleCard commands error */
1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    MULTI_CARDS_CMD_ERROR(0x38),
1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Interaction with call control by USIM or MO short message control by
1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * USIM, permanent problem
1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    USIM_CALL_CONTROL_PERMANENT(0x39),
1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Bearer Independent Protocol error */
1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    BIP_ERROR(0x3a),
1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Access Technology unable to process command */
1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    ACCESS_TECH_UNABLE_TO_PROCESS(0x3b),
1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Frames error */
1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    FRAMES_ERROR(0x3c),
1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** MMS Error */
1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    MMS_ERROR(0x3d);
1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private int mCode;
1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    ResultCode(int code) {
1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mCode = code;
1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Retrieves the actual result code that this object represents.
1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return Actual result code
1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int value() {
1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mCode;
1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static ResultCode fromInt(int value) {
1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        for (ResultCode r : ResultCode.values()) {
1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (r.mCode == value) {
1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return r;
1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return null;
1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
187