ISub.aidl revision b5592dc9f4c2b97b00c24d801b90339d1d622ec3
1/*
2 * Copyright (C) 2014 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;
18
19import android.app.PendingIntent;
20import android.telephony.SubscriptionInfo;
21import com.android.internal.telephony.ISubscriptionListener;
22
23interface ISub {
24    /**
25     * @param callingPackage The package maing the call.
26     * @return a list of all subscriptions in the database, this includes
27     * all subscriptions that have been seen.
28     */
29    List<SubscriptionInfo> getAllSubInfoList(String callingPackage);
30
31    /**
32     * @param callingPackage The package maing the call.
33     * @return the count of all subscriptions in the database, this includes
34     * all subscriptions that have been seen.
35     */
36    int getAllSubInfoCount(String callingPackage);
37
38    /**
39     * Get the active SubscriptionInfo with the subId key
40     * @param subId The unique SubscriptionInfo key in database
41     * @param callingPackage The package maing the call.
42     * @return SubscriptionInfo, maybe null if its not active
43     */
44    SubscriptionInfo getActiveSubscriptionInfo(int subId, String callingPackage);
45
46    /**
47     * Get the active SubscriptionInfo associated with the iccId
48     * @param iccId the IccId of SIM card
49     * @param callingPackage The package maing the call.
50     * @return SubscriptionInfo, maybe null if its not active
51     */
52    SubscriptionInfo getActiveSubscriptionInfoForIccId(String iccId, String callingPackage);
53
54    /**
55     * Get the active SubscriptionInfo associated with the slotIdx
56     * @param slotIdx the slot which the subscription is inserted
57     * @param callingPackage The package maing the call.
58     * @return SubscriptionInfo, maybe null if its not active
59     */
60    SubscriptionInfo getActiveSubscriptionInfoForSimSlotIndex(int slotIdx, String callingPackage);
61
62    /**
63     * Get the SubscriptionInfo(s) of the active subscriptions. The records will be sorted
64     * by {@link SubscriptionInfo#getSimSlotIndex} then by {@link SubscriptionInfo#getSubscriptionId}.
65     *
66     * @param callingPackage The package maing the call.
67     * @return Sorted list of the currently {@link SubscriptionInfo} records available on the device.
68     * <ul>
69     * <li>
70     * If null is returned the current state is unknown but if a {@link OnSubscriptionsChangedListener}
71     * has been registered {@link OnSubscriptionsChangedListener#onSubscriptionsChanged} will be
72     * invoked in the future.
73     * </li>
74     * <li>
75     * If the list is empty then there are no {@link SubscriptionInfo} records currently available.
76     * </li>
77     * <li>
78     * if the list is non-empty the list is sorted by {@link SubscriptionInfo#getSimSlotIndex}
79     * then by {@link SubscriptionInfo#getSubscriptionId}.
80     * </li>
81     * </ul>
82     */
83    List<SubscriptionInfo> getActiveSubscriptionInfoList(String callingPackage);
84
85    /**
86     * @param callingPackage The package making the call.
87     * @return the number of active subscriptions
88     */
89    int getActiveSubInfoCount(String callingPackage);
90
91    /**
92     * @return the maximum number of subscriptions this device will support at any one time.
93     */
94    int getActiveSubInfoCountMax();
95
96    /**
97     * Add a new SubscriptionInfo to subinfo database if needed
98     * @param iccId the IccId of the SIM card
99     * @param slotId the slot which the SIM is inserted
100     * @return the URL of the newly created row or the updated row
101     */
102    int addSubInfoRecord(String iccId, int slotId);
103
104    /**
105     * Set SIM icon tint color by simInfo index
106     * @param tint the icon tint color of the SIM
107     * @param subId the unique SubscriptionInfo index in database
108     * @return the number of records updated
109     */
110    int setIconTint(int tint, int subId);
111
112    /**
113     * Set display name by simInfo index
114     * @param displayName the display name of SIM card
115     * @param subId the unique SubscriptionInfo index in database
116     * @return the number of records updated
117     */
118    int setDisplayName(String displayName, int subId);
119
120    /**
121     * Set Sim Provisioning Status by subscription ID
122     * @param simProvisionStatus with the subscription:
123     * {@See SubscriptionManager#SIM_PROVISIONED}
124     * {@See SubscriptionManager#SIM_UNPROVISIONED_COLD}
125     * {@See SubscriptionManager#SIM_UNPROVISIONED_OUT_OF_CREDIT}
126     * @param subId the unique SubInfoRecord index in database
127     * @return the number of records updated
128     */
129    int setSimProvisioningStatus(int simProvisioningStatus, int subId);
130
131    /**
132     * Set display name by simInfo index with name source
133     * @param displayName the display name of SIM card
134     * @param subId the unique SubscriptionInfo index in database
135     * @param nameSource, 0: DEFAULT_SOURCE, 1: SIM_SOURCE, 2: USER_INPUT
136     * @return the number of records updated
137     */
138    int setDisplayNameUsingSrc(String displayName, int subId, long nameSource);
139
140    /**
141     * Set phone number by subId
142     * @param number the phone number of the SIM
143     * @param subId the unique SubscriptionInfo index in database
144     * @return the number of records updated
145     */
146    int setDisplayNumber(String number, int subId);
147
148    /**
149     * Set data roaming by simInfo index
150     * @param roaming 0:Don't allow data when roaming, 1:Allow data when roaming
151     * @param subId the unique SubscriptionInfo index in database
152     * @return the number of records updated
153     */
154    int setDataRoaming(int roaming, int subId);
155
156    int getSlotId(int subId);
157
158    int[] getSubId(int slotId);
159
160    int getDefaultSubId();
161
162    int clearSubInfo();
163
164    int getPhoneId(int subId);
165
166    /**
167     * Get the default data subscription
168     * @return Id of the data subscription
169     */
170    int getDefaultDataSubId();
171
172    void setDefaultDataSubId(int subId);
173
174    int getDefaultVoiceSubId();
175
176    void setDefaultVoiceSubId(int subId);
177
178    int getDefaultSmsSubId();
179
180    void setDefaultSmsSubId(int subId);
181
182    void clearDefaultsForInactiveSubIds();
183
184    int[] getActiveSubIdList();
185
186    void setSubscriptionProperty(int subId, String propKey, String propValue);
187
188    String getSubscriptionProperty(int subId, String propKey, String callingPackage);
189
190    /**
191     * Get the SIM state for the slot idx
192     * @return SIM state as the ordinal of IccCardConstants.State
193     */
194    int getSimStateForSlotIdx(int slotIdx);
195
196    boolean isActiveSubId(int subId);
197}
198