1/*
2 * Copyright (C) 2006 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.internal.telephony.cat;
18
19
20/**
21 * Enumeration for the return code in TERMINAL RESPONSE.
22 * To get the actual return code for each enum value, call {@link #code() code}
23 * method.
24 *
25 * {@hide}
26 */
27public enum ResultCode {
28
29    /*
30     * Results '0X' and '1X' indicate that the command has been performed.
31     */
32
33    /** Command performed successfully */
34    OK(0x00),
35
36    /** Command performed with partial comprehension */
37    PRFRMD_WITH_PARTIAL_COMPREHENSION(0x01),
38
39    /** Command performed, with missing information */
40    PRFRMD_WITH_MISSING_INFO(0x02),
41
42    /** REFRESH performed with additional EFs read */
43    PRFRMD_WITH_ADDITIONAL_EFS_READ(0x03),
44
45    /**
46     * Command performed successfully, but requested icon could not be
47     * displayed
48     */
49    PRFRMD_ICON_NOT_DISPLAYED(0x04),
50
51    /** Command performed, but modified by call control by NAA */
52    PRFRMD_MODIFIED_BY_NAA(0x05),
53
54    /** Command performed successfully, limited service */
55    PRFRMD_LIMITED_SERVICE(0x06),
56
57    /** Command performed with modification */
58    PRFRMD_WITH_MODIFICATION(0x07),
59
60    /** REFRESH performed but indicated NAA was not active */
61    PRFRMD_NAA_NOT_ACTIVE(0x08),
62
63    /** Command performed successfully, tone not played */
64    PRFRMD_TONE_NOT_PLAYED(0x09),
65
66    /** Proactive UICC session terminated by the user */
67    UICC_SESSION_TERM_BY_USER(0x10),
68
69    /** Backward move in the proactive UICC session requested by the user */
70    BACKWARD_MOVE_BY_USER(0x11),
71
72    /** No response from user */
73    NO_RESPONSE_FROM_USER(0x12),
74
75    /** Help information required by the user */
76    HELP_INFO_REQUIRED(0x13),
77
78    /** USSD or SS transaction terminated by the user */
79    USSD_SS_SESSION_TERM_BY_USER(0x14),
80
81
82    /*
83     * Results '2X' indicate to the UICC that it may be worth re-trying the
84     * command at a later opportunity.
85     */
86
87    /** Terminal currently unable to process command */
88    TERMINAL_CRNTLY_UNABLE_TO_PROCESS(0x20),
89
90    /** Network currently unable to process command */
91    NETWORK_CRNTLY_UNABLE_TO_PROCESS(0x21),
92
93    /** User did not accept the proactive command */
94    USER_NOT_ACCEPT(0x22),
95
96    /** User cleared down call before connection or network release */
97    USER_CLEAR_DOWN_CALL(0x23),
98
99    /** Action in contradiction with the current timer state */
100    CONTRADICTION_WITH_TIMER(0x24),
101
102    /** Interaction with call control by NAA, temporary problem */
103    NAA_CALL_CONTROL_TEMPORARY(0x25),
104
105    /** Launch browser generic error code */
106    LAUNCH_BROWSER_ERROR(0x26),
107
108    /** MMS temporary problem. */
109    MMS_TEMPORARY(0x27),
110
111
112    /*
113     * Results '3X' indicate that it is not worth the UICC re-trying with an
114     * identical command, as it will only get the same response. However, the
115     * decision to retry lies with the application.
116     */
117
118    /** Command beyond terminal's capabilities */
119    BEYOND_TERMINAL_CAPABILITY(0x30),
120
121    /** Command type not understood by terminal */
122    CMD_TYPE_NOT_UNDERSTOOD(0x31),
123
124    /** Command data not understood by terminal */
125    CMD_DATA_NOT_UNDERSTOOD(0x32),
126
127    /** Command number not known by terminal */
128    CMD_NUM_NOT_KNOWN(0x33),
129
130    /** SS Return Error */
131    SS_RETURN_ERROR(0x34),
132
133    /** SMS RP-ERROR */
134    SMS_RP_ERROR(0x35),
135
136    /** Error, required values are missing */
137    REQUIRED_VALUES_MISSING(0x36),
138
139    /** USSD Return Error */
140    USSD_RETURN_ERROR(0x37),
141
142    /** MultipleCard commands error */
143    MULTI_CARDS_CMD_ERROR(0x38),
144
145    /**
146     * Interaction with call control by USIM or MO short message control by
147     * USIM, permanent problem
148     */
149    USIM_CALL_CONTROL_PERMANENT(0x39),
150
151    /** Bearer Independent Protocol error */
152    BIP_ERROR(0x3a),
153
154    /** Access Technology unable to process command */
155    ACCESS_TECH_UNABLE_TO_PROCESS(0x3b),
156
157    /** Frames error */
158    FRAMES_ERROR(0x3c),
159
160    /** MMS Error */
161    MMS_ERROR(0x3d);
162
163
164    private int mCode;
165
166    ResultCode(int code) {
167        mCode = code;
168    }
169
170    /**
171     * Retrieves the actual result code that this object represents.
172     * @return Actual result code
173     */
174    public int value() {
175        return mCode;
176    }
177
178    public static ResultCode fromInt(int value) {
179        for (ResultCode r : ResultCode.values()) {
180            if (r.mCode == value) {
181                return r;
182            }
183        }
184        return null;
185    }
186}
187