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; 20a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Savilleimport android.telephony.SubscriptionInfo; 21fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 22fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Savilleinterface ISub { 23fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 2421301f6016ce50594f6cd9c66581ee9a08b57be9Svet Ganov * @param callingPackage The package maing the call. 25d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * @return a list of all subscriptions in the database, this includes 26d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * all subscriptions that have been seen. 27fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 2821301f6016ce50594f6cd9c66581ee9a08b57be9Svet Ganov List<SubscriptionInfo> getAllSubInfoList(String callingPackage); 29fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 30fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 3121301f6016ce50594f6cd9c66581ee9a08b57be9Svet Ganov * @param callingPackage The package maing the call. 32d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * @return the count of all subscriptions in the database, this includes 33d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * all subscriptions that have been seen. 34fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 3521301f6016ce50594f6cd9c66581ee9a08b57be9Svet Ganov int getAllSubInfoCount(String callingPackage); 36fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 37fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 38d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * Get the active SubscriptionInfo with the subId key 39d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * @param subId The unique SubscriptionInfo key in database 4021301f6016ce50594f6cd9c66581ee9a08b57be9Svet Ganov * @param callingPackage The package maing the call. 41d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * @return SubscriptionInfo, maybe null if its not active 42fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 4321301f6016ce50594f6cd9c66581ee9a08b57be9Svet Ganov SubscriptionInfo getActiveSubscriptionInfo(int subId, String callingPackage); 44fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 45fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 46d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * Get the active SubscriptionInfo associated with the iccId 47d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * @param iccId the IccId of SIM card 4821301f6016ce50594f6cd9c66581ee9a08b57be9Svet Ganov * @param callingPackage The package maing the call. 49d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * @return SubscriptionInfo, maybe null if its not active 50fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 5121301f6016ce50594f6cd9c66581ee9a08b57be9Svet Ganov SubscriptionInfo getActiveSubscriptionInfoForIccId(String iccId, String callingPackage); 52fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 53fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 547e4602519977b6bb9c41afc91a44ca782e716e40Sanket Padawe * Get the active SubscriptionInfo associated with the slotIndex 557e4602519977b6bb9c41afc91a44ca782e716e40Sanket Padawe * @param slotIndex the slot which the subscription is inserted 5621301f6016ce50594f6cd9c66581ee9a08b57be9Svet Ganov * @param callingPackage The package maing the call. 57d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * @return SubscriptionInfo, maybe null if its not active 58fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 597e4602519977b6bb9c41afc91a44ca782e716e40Sanket Padawe SubscriptionInfo getActiveSubscriptionInfoForSimSlotIndex(int slotIndex, String callingPackage); 60fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 61fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 62d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * Get the SubscriptionInfo(s) of the active subscriptions. The records will be sorted 63d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * by {@link SubscriptionInfo#getSimSlotIndex} then by {@link SubscriptionInfo#getSubscriptionId}. 64d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * 6521301f6016ce50594f6cd9c66581ee9a08b57be9Svet Ganov * @param callingPackage The package maing the call. 66d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * @return Sorted list of the currently {@link SubscriptionInfo} records available on the device. 67d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * <ul> 68d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * <li> 69d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * If null is returned the current state is unknown but if a {@link OnSubscriptionsChangedListener} 70d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * has been registered {@link OnSubscriptionsChangedListener#onSubscriptionsChanged} will be 71d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * invoked in the future. 72d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * </li> 73d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * <li> 74d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * If the list is empty then there are no {@link SubscriptionInfo} records currently available. 75d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * </li> 76d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * <li> 77d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * if the list is non-empty the list is sorted by {@link SubscriptionInfo#getSimSlotIndex} 78d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * then by {@link SubscriptionInfo#getSubscriptionId}. 79d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * </li> 80d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * </ul> 81fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 8221301f6016ce50594f6cd9c66581ee9a08b57be9Svet Ganov List<SubscriptionInfo> getActiveSubscriptionInfoList(String callingPackage); 83fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 84fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 85278b8f950948435fb08db0a12313e2ea704fa637Robert Greenwalt * @param callingPackage The package making the call. 86d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * @return the number of active subscriptions 87c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville */ 8821301f6016ce50594f6cd9c66581ee9a08b57be9Svet Ganov int getActiveSubInfoCount(String callingPackage); 89c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville 90c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville /** 91d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville * @return the maximum number of subscriptions this device will support at any one time. 92d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville */ 93d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville int getActiveSubInfoCountMax(); 94d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville 95d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville /** 96d02731ffff9b8eb9b604377f50b2c43a9c753c2eJeff Davidson * @see android.telephony.SubscriptionManager#getAvailableSubscriptionInfoList 97d02731ffff9b8eb9b604377f50b2c43a9c753c2eJeff Davidson */ 98d02731ffff9b8eb9b604377f50b2c43a9c753c2eJeff Davidson List<SubscriptionInfo> getAvailableSubscriptionInfoList(String callingPackage); 99d02731ffff9b8eb9b604377f50b2c43a9c753c2eJeff Davidson 100d02731ffff9b8eb9b604377f50b2c43a9c753c2eJeff Davidson /** 101d02731ffff9b8eb9b604377f50b2c43a9c753c2eJeff Davidson * @see android.telephony.SubscriptionManager#getAccessibleSubscriptionInfoList 102d02731ffff9b8eb9b604377f50b2c43a9c753c2eJeff Davidson */ 103d02731ffff9b8eb9b604377f50b2c43a9c753c2eJeff Davidson List<SubscriptionInfo> getAccessibleSubscriptionInfoList(String callingPackage); 104d02731ffff9b8eb9b604377f50b2c43a9c753c2eJeff Davidson 105d02731ffff9b8eb9b604377f50b2c43a9c753c2eJeff Davidson /** 106d02731ffff9b8eb9b604377f50b2c43a9c753c2eJeff Davidson * @see android.telephony.SubscriptionManager#requestEmbeddedSubscriptionInfoListRefresh 107d02731ffff9b8eb9b604377f50b2c43a9c753c2eJeff Davidson */ 108d02731ffff9b8eb9b604377f50b2c43a9c753c2eJeff Davidson oneway void requestEmbeddedSubscriptionInfoListRefresh(); 109d02731ffff9b8eb9b604377f50b2c43a9c753c2eJeff Davidson 110d02731ffff9b8eb9b604377f50b2c43a9c753c2eJeff Davidson /** 111a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville * Add a new SubscriptionInfo to subinfo database if needed 112fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param iccId the IccId of the SIM card 1137e4602519977b6bb9c41afc91a44ca782e716e40Sanket Padawe * @param slotIndex the slot which the SIM is inserted 114fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return the URL of the newly created row or the updated row 115fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 1167e4602519977b6bb9c41afc91a44ca782e716e40Sanket Padawe int addSubInfoRecord(String iccId, int slotIndex); 117fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 118fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 119ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott * Set SIM icon tint color by simInfo index 120ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott * @param tint the icon tint color of the SIM 121a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville * @param subId the unique SubscriptionInfo index in database 122fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return the number of records updated 123fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 124278b8f950948435fb08db0a12313e2ea704fa637Robert Greenwalt int setIconTint(int tint, int subId); 125fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 126fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 127fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Set display name by simInfo index 128fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param displayName the display name of SIM card 129a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville * @param subId the unique SubscriptionInfo index in database 130fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return the number of records updated 131fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 132278b8f950948435fb08db0a12313e2ea704fa637Robert Greenwalt int setDisplayName(String displayName, int subId); 133fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 134fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 135fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Set display name by simInfo index with name source 136fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param displayName the display name of SIM card 137a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville * @param subId the unique SubscriptionInfo index in database 138fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param nameSource, 0: DEFAULT_SOURCE, 1: SIM_SOURCE, 2: USER_INPUT 139fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return the number of records updated 140fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 141278b8f950948435fb08db0a12313e2ea704fa637Robert Greenwalt int setDisplayNameUsingSrc(String displayName, int subId, long nameSource); 142fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 143fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 144fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Set phone number by subId 145fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param number the phone number of the SIM 146a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville * @param subId the unique SubscriptionInfo index in database 147fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return the number of records updated 148fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 149278b8f950948435fb08db0a12313e2ea704fa637Robert Greenwalt int setDisplayNumber(String number, int subId); 150fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 151fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 152fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Set data roaming by simInfo index 153fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param roaming 0:Don't allow data when roaming, 1:Allow data when roaming 154a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville * @param subId the unique SubscriptionInfo index in database 155fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return the number of records updated 156fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 157278b8f950948435fb08db0a12313e2ea704fa637Robert Greenwalt int setDataRoaming(int roaming, int subId); 158fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 1597e4602519977b6bb9c41afc91a44ca782e716e40Sanket Padawe int getSlotIndex(int subId); 160fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 1617e4602519977b6bb9c41afc91a44ca782e716e40Sanket Padawe int[] getSubId(int slotIndex); 162fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 16363f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getDefaultSubId(); 164fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 165278b8f950948435fb08db0a12313e2ea704fa637Robert Greenwalt int clearSubInfo(); 166fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 16763f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getPhoneId(int subId); 168fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 169fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 170fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Get the default data subscription 171fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return Id of the data subscription 172fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 17363f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getDefaultDataSubId(); 174fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 17563f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville void setDefaultDataSubId(int subId); 176fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 17763f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getDefaultVoiceSubId(); 178fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 17963f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville void setDefaultVoiceSubId(int subId); 180c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville 18163f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getDefaultSmsSubId(); 182c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville 18363f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville void setDefaultSmsSubId(int subId); 184c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville 185278b8f950948435fb08db0a12313e2ea704fa637Robert Greenwalt void clearDefaultsForInactiveSubIds(); 186c650e0b12a656060de767d91d99f6b33e51c6ab2Wink Saville 18763f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int[] getActiveSubIdList(); 18847920fac33efb7ce4bf33a5691e4af1b67ab6019Wink Saville 189dc49309cefed9519611b183ae2c616e6f0110738Sanket Padawe void setSubscriptionProperty(int subId, String propKey, String propValue); 190dc49309cefed9519611b183ae2c616e6f0110738Sanket Padawe 191dc49309cefed9519611b183ae2c616e6f0110738Sanket Padawe String getSubscriptionProperty(int subId, String propKey, String callingPackage); 192dc49309cefed9519611b183ae2c616e6f0110738Sanket Padawe 19347920fac33efb7ce4bf33a5691e4af1b67ab6019Wink Saville /** 1947e4602519977b6bb9c41afc91a44ca782e716e40Sanket Padawe * Get the SIM state for the slot index 19547920fac33efb7ce4bf33a5691e4af1b67ab6019Wink Saville * @return SIM state as the ordinal of IccCardConstants.State 19647920fac33efb7ce4bf33a5691e4af1b67ab6019Wink Saville */ 1977e4602519977b6bb9c41afc91a44ca782e716e40Sanket Padawe int getSimStateForSlotIndex(int slotIndex); 19847920fac33efb7ce4bf33a5691e4af1b67ab6019Wink Saville 1990ced792cd69ff4e78b3ea84e6b38c1f1fddce82eShishir Agrawal boolean isActiveSubId(int subId); 200fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville} 201