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