1fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville/*
28fec2e4414abfbc4e4e20d719e80ba99dc9ceb60Wink Saville * Copyright (C) 2014 The Android Open Source Project
38fec2e4414abfbc4e4e20d719e80ba99dc9ceb60Wink Saville *
48fec2e4414abfbc4e4e20d719e80ba99dc9ceb60Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
58fec2e4414abfbc4e4e20d719e80ba99dc9ceb60Wink Saville * you may not use this file except in compliance with the License.
68fec2e4414abfbc4e4e20d719e80ba99dc9ceb60Wink Saville * You may obtain a copy of the License at
78fec2e4414abfbc4e4e20d719e80ba99dc9ceb60Wink Saville *
88fec2e4414abfbc4e4e20d719e80ba99dc9ceb60Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
98fec2e4414abfbc4e4e20d719e80ba99dc9ceb60Wink Saville *
108fec2e4414abfbc4e4e20d719e80ba99dc9ceb60Wink Saville * Unless required by applicable law or agreed to in writing, software
118fec2e4414abfbc4e4e20d719e80ba99dc9ceb60Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
128fec2e4414abfbc4e4e20d719e80ba99dc9ceb60Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
138fec2e4414abfbc4e4e20d719e80ba99dc9ceb60Wink Saville * See the License for the specific language governing permissions and
148fec2e4414abfbc4e4e20d719e80ba99dc9ceb60Wink Saville * limitations under the License.
158fec2e4414abfbc4e4e20d719e80ba99dc9ceb60Wink Saville */
16fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
17fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Savillepackage com.android.internal.telephony;
18fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
19fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Savilleimport android.app.PendingIntent;
20fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Savilleimport android.telephony.SubInfoRecord;
21fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
22fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Savilleinterface ISub {
23fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
24fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Get the SubInfoRecord according to an index
25fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId The unique SubInfoRecord index in database
26fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return SubInfoRecord, maybe null
27fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
28bc0272754df7a2fb71bf709a2a8a7c852ee69e5cWink Saville    SubInfoRecord getSubInfoForSubscriber(long subId);
29fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
30fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
31fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Get the SubInfoRecord according to an IccId
32fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param iccId the IccId of SIM card
33fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return SubInfoRecord, maybe null
34fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
35fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    List<SubInfoRecord> getSubInfoUsingIccId(String iccId);
36fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
37fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
38fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Get the SubInfoRecord according to slotId
39fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param slotId the slot which the SIM is inserted
40fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return SubInfoRecord, maybe null
41fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
42fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    List<SubInfoRecord> getSubInfoUsingSlotId(int slotId);
43fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
44fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
45fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Get all the SubInfoRecord(s) in subinfo database
46fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return Array list of all SubInfoRecords in database, include thsoe that were inserted before
47fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
48fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    List<SubInfoRecord> getAllSubInfoList();
49fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
50fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
51fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Get the SubInfoRecord(s) of the currently inserted SIM(s)
52fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return Array list of currently inserted SubInfoRecord(s)
53fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
54c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville    List<SubInfoRecord> getActiveSubInfoList();
55fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
56fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
57fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Get the SUB count of all SUB(s) in subinfo database
58fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return all SIM count in database, include what was inserted before
59fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
60fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getAllSubInfoCount();
61fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
62fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
638a38a203a9754be85e12484adff69f7577fa4fadWink Saville     * Get the count of active SUB(s)
648a38a203a9754be85e12484adff69f7577fa4fadWink Saville     * @return active SIM count
65c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville     */
668a38a203a9754be85e12484adff69f7577fa4fadWink Saville    int getActiveSubInfoCount();
67c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville
68c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville    /**
69fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Add a new SubInfoRecord to subinfo database if needed
70fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param iccId the IccId of the SIM card
71fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param slotId the slot which the SIM is inserted
72fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return the URL of the newly created row or the updated row
73fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
74fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int addSubInfoRecord(String iccId, int slotId);
75fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
76fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
77fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Set SIM color by simInfo index
78fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param color the color of the SIM
79fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId the unique SubInfoRecord index in database
80fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return the number of records updated
81fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
82fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int setColor(int color, long subId);
83fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
84fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
85fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Set display name by simInfo index
86fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param displayName the display name of SIM card
87fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId the unique SubInfoRecord index in database
88fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return the number of records updated
89fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
90fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int setDisplayName(String displayName, long subId);
91fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
92fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
93fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Set display name by simInfo index with name source
94fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param displayName the display name of SIM card
95fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId the unique SubInfoRecord index in database
96fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param nameSource, 0: DEFAULT_SOURCE, 1: SIM_SOURCE, 2: USER_INPUT
97fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return the number of records updated
98fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
99fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int setDisplayNameUsingSrc(String displayName, long subId, long nameSource);
100fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
101fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
102fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Set phone number by subId
103fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param number the phone number of the SIM
104fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId the unique SubInfoRecord index in database
105fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return the number of records updated
106fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
107c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville    int setDisplayNumber(String number, long subId);
108fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
109fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
110fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Set number display format. 0: none, 1: the first four digits, 2: the last four digits
111fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param format the display format of phone number
112fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId the unique SubInfoRecord index in database
113fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return the number of records updated
114fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
115fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int setDisplayNumberFormat(int format, long subId);
116fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
117fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
118fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Set data roaming by simInfo index
119fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param roaming 0:Don't allow data when roaming, 1:Allow data when roaming
120fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId the unique SubInfoRecord index in database
121fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return the number of records updated
122fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
123fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int setDataRoaming(int roaming, long subId);
124fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
125fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getSlotId(long subId);
126fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
127fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    long[] getSubId(int slotId);
128fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
129fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    long getDefaultSubId();
130fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
131fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int clearSubInfo();
132fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
133fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getPhoneId(long subId);
134fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
135fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
136fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Get the default data subscription
137fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return Id of the data subscription
138fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
139fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    long getDefaultDataSubId();
140fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
141fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    void setDefaultDataSubId(long subId);
142fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
143fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    long getDefaultVoiceSubId();
144fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
145fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    void setDefaultVoiceSubId(long subId);
146c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville
147c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville    long getDefaultSmsSubId();
148c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville
149c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville    void setDefaultSmsSubId(long subId);
150c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville
151c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville    void clearDefaultsForInactiveSubIds();
152c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville
1538a38a203a9754be85e12484adff69f7577fa4fadWink Saville    long[] getActiveSubIdList();
154fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville}
155