1/*
2 * Copyright (C) 2011 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.uicc;
18
19
20/**
21 * Wrapper class for the USIM Service Table EF.
22 * See 3GPP TS 31.102 Release 10 section 4.2.8
23 */
24public final class UsimServiceTable extends IccServiceTable {
25    public enum UsimService {
26        PHONEBOOK,
27        FDN,                                // Fixed Dialing Numbers
28        FDN_EXTENSION,                      // FDN extension data in EF_EXT2
29        SDN,                                // Service Dialing Numbers
30        SDN_EXTENSION,                      // SDN extension data in EF_EXT3
31        BDN,                                // Barred Dialing Numbers
32        BDN_EXTENSION,                      // BDN extension data in EF_EXT4
33        OUTGOING_CALL_INFO,
34        INCOMING_CALL_INFO,
35        SM_STORAGE,
36        SM_STATUS_REPORTS,
37        SM_SERVICE_PARAMS,
38        ADVICE_OF_CHARGE,
39        CAP_CONFIG_PARAMS_2,
40        CB_MESSAGE_ID,
41        CB_MESSAGE_ID_RANGES,
42        GROUP_ID_LEVEL_1,
43        GROUP_ID_LEVEL_2,
44        SPN,                                // Service Provider Name
45        USER_PLMN_SELECT,
46        MSISDN,
47        IMAGE,
48        LOCALISED_SERVICE_AREAS,
49        EMLPP,                              // Enhanced Multi-Level Precedence and Preemption
50        EMLPP_AUTO_ANSWER,
51        RFU,
52        GSM_ACCESS,
53        DATA_DL_VIA_SMS_PP,
54        DATA_DL_VIA_SMS_CB,
55        CALL_CONTROL_BY_USIM,
56        MO_SMS_CONTROL_BY_USIM,
57        RUN_AT_COMMAND,
58        IGNORED_1,
59        ENABLED_SERVICES_TABLE,
60        APN_CONTROL_LIST,
61        DEPERSONALISATION_CONTROL_KEYS,
62        COOPERATIVE_NETWORK_LIST,
63        GSM_SECURITY_CONTEXT,
64        CPBCCH_INFO,
65        INVESTIGATION_SCAN,
66        MEXE,
67        OPERATOR_PLMN_SELECT,
68        HPLMN_SELECT,
69        EXTENSION_5,                        // Extension data for ICI, OCI, MSISDN in EF_EXT5
70        PLMN_NETWORK_NAME,
71        OPERATOR_PLMN_LIST,
72        MBDN,                               // Mailbox Dialing Numbers
73        MWI_STATUS,                         // Message Waiting Indication status
74        CFI_STATUS,                         // Call Forwarding Indication status
75        IGNORED_2,
76        SERVICE_PROVIDER_DISPLAY_INFO,
77        MMS_NOTIFICATION,
78        MMS_NOTIFICATION_EXTENSION,         // MMS Notification extension data in EF_EXT8
79        GPRS_CALL_CONTROL_BY_USIM,
80        MMS_CONNECTIVITY_PARAMS,
81        NETWORK_INDICATION_OF_ALERTING,
82        VGCS_GROUP_ID_LIST,
83        VBS_GROUP_ID_LIST,
84        PSEUDONYM,
85        IWLAN_USER_PLMN_SELECT,
86        IWLAN_OPERATOR_PLMN_SELECT,
87        USER_WSID_LIST,
88        OPERATOR_WSID_LIST,
89        VGCS_SECURITY,
90        VBS_SECURITY,
91        WLAN_REAUTH_IDENTITY,
92        MM_STORAGE,
93        GBA,                                // Generic Bootstrapping Architecture
94        MBMS_SECURITY,
95        DATA_DL_VIA_USSD,
96        EQUIVALENT_HPLMN,
97        TERMINAL_PROFILE_AFTER_UICC_ACTIVATION,
98        EQUIVALENT_HPLMN_PRESENTATION,
99        LAST_RPLMN_SELECTION_INDICATION,
100        OMA_BCAST_PROFILE,
101        GBA_LOCAL_KEY_ESTABLISHMENT,
102        TERMINAL_APPLICATIONS,
103        SPN_ICON,
104        PLMN_NETWORK_NAME_ICON,
105        USIM_IP_CONNECTION_PARAMS,
106        IWLAN_HOME_ID_LIST,
107        IWLAN_EQUIVALENT_HPLMN_PRESENTATION,
108        IWLAN_HPLMN_PRIORITY_INDICATION,
109        IWLAN_LAST_REGISTERED_PLMN,
110        EPS_MOBILITY_MANAGEMENT_INFO,
111        ALLOWED_CSG_LISTS_AND_INDICATIONS,
112        CALL_CONTROL_ON_EPS_PDN_CONNECTION_BY_USIM,
113        HPLMN_DIRECT_ACCESS,
114        ECALL_DATA,
115        OPERATOR_CSG_LISTS_AND_INDICATIONS,
116        SM_OVER_IP,
117        CSG_DISPLAY_CONTROL,
118        IMS_COMMUNICATION_CONTROL_BY_USIM,
119        EXTENDED_TERMINAL_APPLICATIONS,
120        UICC_ACCESS_TO_IMS,
121        NAS_CONFIG_BY_USIM
122    }
123
124    public UsimServiceTable(byte[] table) {
125        super(table);
126    }
127
128    public boolean isAvailable(UsimService service) {
129        return super.isAvailable(service.ordinal());
130    }
131
132    @Override
133    protected String getTag() {
134        return "UsimServiceTable";
135    }
136
137    @Override
138    protected Object[] getValues() {
139        return UsimService.values();
140    }
141}
142