ImsPhoneBase.java revision a8467dd0c524787104b1ccdddc5e8af10ba729ed
1a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville/* 2a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * Copyright (C) 2013 The Android Open Source Project 3a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * 4a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 5a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * you may not use this file except in compliance with the License. 6a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * You may obtain a copy of the License at 7a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * 8a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * http://www.apache.org/licenses/LICENSE-2.0 9a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * 10a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * Unless required by applicable law or agreed to in writing, software 11a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * distributed under the License is distributed on an "AS IS" BASIS, 12a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * See the License for the specific language governing permissions and 14a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * limitations under the License. 15a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville */ 16a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 17a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savillepackage com.android.internal.telephony.imsphone; 18a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 19a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.content.Context; 20a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.net.LinkProperties; 21a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.os.AsyncResult; 22a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.os.Handler; 23a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.os.Message; 24a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.os.Registrant; 25a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.os.RegistrantList; 26a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.os.SystemProperties; 27a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.telephony.CellInfo; 28a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.telephony.CellLocation; 29a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.telephony.ServiceState; 30a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.telephony.SignalStrength; 31a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.telephony.Rlog; 32a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 33a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.Call; 34a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.CallStateException; 35a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.Connection; 36a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.dataconnection.DataConnection; 37a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.IccCard; 38a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.IccPhoneBookInterfaceManager; 39a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.MmiCode; 40a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.OperatorInfo; 41a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.PhoneBase; 42a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.PhoneConstants; 43a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.PhoneNotifier; 44a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.PhoneSubInfo; 45a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.TelephonyProperties; 46a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.UUSInfo; 47a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.uicc.IccFileHandler; 48a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 49a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport java.util.ArrayList; 50a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport java.util.List; 51a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 52a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleabstract class ImsPhoneBase extends PhoneBase { 53a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville private static final String LOG_TAG = "ImsPhoneBase"; 54a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 55a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville private RegistrantList mRingbackRegistrants = new RegistrantList(); 56a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville private RegistrantList mOnHoldRegistrants = new RegistrantList(); 57a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville private PhoneConstants.State mState = PhoneConstants.State.IDLE; 58a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 59a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public ImsPhoneBase(String name, Context context, PhoneNotifier notifier) { 60a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville super(name, notifier, context, new ImsPhoneCommandInterface(context), false); 61a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 62a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 63a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 64a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public Connection dial(String dialString, UUSInfo uusInfo) 65a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville throws CallStateException { 66a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville // ignore UUSInfo 67a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return dial(dialString); 68a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 69a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 70a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville void migrateFrom(ImsPhoneBase from) { 71a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville migrate(mRingbackRegistrants, from.mRingbackRegistrants); 72a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville migrate(mPreciseCallStateRegistrants, from.mPreciseCallStateRegistrants); 73a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville migrate(mNewRingingConnectionRegistrants, from.mNewRingingConnectionRegistrants); 74a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville migrate(mIncomingRingRegistrants, from.mIncomingRingRegistrants); 75a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville migrate(mDisconnectRegistrants, from.mDisconnectRegistrants); 76a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville migrate(mServiceStateRegistrants, from.mServiceStateRegistrants); 77a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville migrate(mMmiCompleteRegistrants, from.mMmiCompleteRegistrants); 78a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville migrate(mMmiRegistrants, from.mMmiRegistrants); 79a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville migrate(mUnknownConnectionRegistrants, from.mUnknownConnectionRegistrants); 80a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville migrate(mSuppServiceFailedRegistrants, from.mSuppServiceFailedRegistrants); 81a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 82a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 83a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville static void migrate(RegistrantList to, RegistrantList from) { 84a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville from.removeCleared(); 85a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville for (int i = 0, n = from.size(); i < n; i++) { 86a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville to.add((Registrant) from.get(i)); 87a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 88a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 89a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 90a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 91a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void registerForRingbackTone(Handler h, int what, Object obj) { 92a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mRingbackRegistrants.addUnique(h, what, obj); 93a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 94a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 95a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 96a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void unregisterForRingbackTone(Handler h) { 97a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mRingbackRegistrants.remove(h); 98a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 99a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 100a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville protected void startRingbackTone() { 101a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville AsyncResult result = new AsyncResult(null, Boolean.TRUE, null); 102a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mRingbackRegistrants.notifyRegistrants(result); 103a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 104a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 105a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville protected void stopRingbackTone() { 106a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville AsyncResult result = new AsyncResult(null, Boolean.FALSE, null); 107a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mRingbackRegistrants.notifyRegistrants(result); 108a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 109a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 110a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 111a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void registerForOnHoldTone(Handler h, int what, Object obj) { 112a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mOnHoldRegistrants.addUnique(h, what, obj); 113a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 114a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 115a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 116a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void unregisterForOnHoldTone(Handler h) { 117a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mOnHoldRegistrants.remove(h); 118a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 119a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 120a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville protected void startOnHoldTone() { 121a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville AsyncResult result = new AsyncResult(null, Boolean.TRUE, null); 122a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mOnHoldRegistrants.notifyRegistrants(result); 123a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 124a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 125a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville protected void stopOnHoldTone() { 126a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville AsyncResult result = new AsyncResult(null, Boolean.FALSE, null); 127a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mOnHoldRegistrants.notifyRegistrants(result); 128a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 129a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 130a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 131a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public ServiceState getServiceState() { 132a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville // FIXME: we may need to provide this when data connectivity is lost 133a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville // or when server is down 134a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville ServiceState s = new ServiceState(); 135a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville s.setState(ServiceState.STATE_IN_SERVICE); 136a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return s; 137a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 138a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 139a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville /** 140a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * @return all available cell information or null if none. 141a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville */ 142a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 143a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public List<CellInfo> getAllCellInfo() { 144a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return getServiceStateTracker().getAllCellInfo(); 145a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 146a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 147a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 148a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public CellLocation getCellLocation() { 149a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 150a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 151a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 152a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 153a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public PhoneConstants.State getState() { 154a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return mState; 155a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 156a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 157a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 158a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public int getPhoneType() { 159a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return PhoneConstants.PHONE_TYPE_IMS; 160a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 161a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 162a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 163a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public SignalStrength getSignalStrength() { 164a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return new SignalStrength(); 165a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 166a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 167a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 168a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public boolean getMessageWaitingIndicator() { 169a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return false; 170a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 171a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 172a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 173a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public boolean getCallForwardingIndicator() { 174a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return false; 175a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 176a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 177a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 178a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public List<? extends MmiCode> getPendingMmiCodes() { 179a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return new ArrayList<MmiCode>(0); 180a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 181a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 182a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 183a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public PhoneConstants.DataState getDataConnectionState() { 184a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return PhoneConstants.DataState.DISCONNECTED; 185a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 186a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 187a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 188a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public PhoneConstants.DataState getDataConnectionState(String apnType) { 189a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return PhoneConstants.DataState.DISCONNECTED; 190a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 191a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 192a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 193a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public DataActivityState getDataActivityState() { 194a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return DataActivityState.NONE; 195a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 196a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 197a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville /** 198a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * Notify any interested party of a Phone state change 199a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * {@link com.android.internal.telephony.PhoneConstants.State} 200a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville */ 201a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville /* package */ void notifyPhoneStateChanged() { 202a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mNotifier.notifyPhoneState(this); 203a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 204a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 205a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville /** 206a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * Notify registrants of a change in the call state. This notifies changes in 207a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * {@link com.android.internal.telephony.Call.State}. Use this when changes 208a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville * in the precise call state are needed, else use notifyPhoneStateChanged. 209a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville */ 210a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville /* package */ void notifyPreciseCallStateChanged() { 211a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville /* we'd love it if this was package-scoped*/ 212a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville super.notifyPreciseCallStateChangedP(); 213a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 214a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 215a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville void notifyNewRingingConnection(Connection c) { 216a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville super.notifyNewRingingConnectionP(c); 217a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 218a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 219a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville void notifyDisconnect(Connection cn) { 220a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mDisconnectRegistrants.notifyResult(cn); 221a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 222a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 223a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville void notifyUnknownConnection() { 224a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mUnknownConnectionRegistrants.notifyResult(this); 225a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 226a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 227a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville void notifySuppServiceFailed(SuppService code) { 228a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mSuppServiceFailedRegistrants.notifyResult(code); 229a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 230a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 231a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville void notifyServiceStateChanged(ServiceState ss) { 232a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville super.notifyServiceStateChangedP(ss); 233a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 234a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 235a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 236a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void notifyCallForwardingIndicator() { 237a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mNotifier.notifyCallForwardingChanged(this); 238a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 239a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 240a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public boolean canDial() { 241a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville int serviceState = getServiceState().getState(); 242a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Rlog.v(LOG_TAG, "canDial(): serviceState = " + serviceState); 243a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville if (serviceState == ServiceState.STATE_POWER_OFF) return false; 244a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 245a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville String disableCall = SystemProperties.get( 246a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville TelephonyProperties.PROPERTY_DISABLE_CALL, "false"); 247a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Rlog.v(LOG_TAG, "canDial(): disableCall = " + disableCall); 248a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville if (disableCall.equals("true")) return false; 249a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 250a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Rlog.v(LOG_TAG, "canDial(): ringingCall: " + getRingingCall().getState()); 251a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Rlog.v(LOG_TAG, "canDial(): foregndCall: " + getForegroundCall().getState()); 252a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Rlog.v(LOG_TAG, "canDial(): backgndCall: " + getBackgroundCall().getState()); 253a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return !getRingingCall().isRinging() 254a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville && (!getForegroundCall().getState().isAlive() 255a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville || !getBackgroundCall().getState().isAlive()); 256a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 257a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 258a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 259a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public boolean handleInCallMmiCommands(String dialString) { 260a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return false; 261a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 262a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 263a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville boolean isInCall() { 264a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Call.State foregroundCallState = getForegroundCall().getState(); 265a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Call.State backgroundCallState = getBackgroundCall().getState(); 266a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Call.State ringingCallState = getRingingCall().getState(); 267a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 268a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return (foregroundCallState.isAlive() || backgroundCallState.isAlive() 269a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville || ringingCallState.isAlive()); 270a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 271a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 272a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 273a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public boolean handlePinMmi(String dialString) { 274a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return false; 275a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 276a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 277a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 278a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void sendUssdResponse(String ussdMessge) { 279a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 280a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 281a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 282a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void registerForSuppServiceNotification( 283a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Handler h, int what, Object obj) { 284a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 285a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 286a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 287a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void unregisterForSuppServiceNotification(Handler h) { 288a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 289a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 290a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 291a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void setRadioPower(boolean power) { 292a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 293a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 294a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 295a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public String getVoiceMailNumber() { 296a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 297a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 298a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 299a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 300a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public String getVoiceMailAlphaTag() { 301a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 302a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 303a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 304a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 305a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public String getDeviceId() { 306a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 307a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 308a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 309a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 310a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public String getDeviceSvn() { 311a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 312a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 313a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 314a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 315a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public String getImei() { 316a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 317a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 318a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 319a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 320a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public String getEsn() { 321a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Rlog.e(LOG_TAG, "[VoltePhone] getEsn() is a CDMA method"); 322a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return "0"; 323a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 324a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 325a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 326a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public String getMeid() { 327a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Rlog.e(LOG_TAG, "[VoltePhone] getMeid() is a CDMA method"); 328a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return "0"; 329a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 330a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 331a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 332a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public String getSubscriberId() { 333a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 334a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 335a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 336a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 337a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public String getGroupIdLevel1() { 338a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 339a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 340a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 341a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 342a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public String getIccSerialNumber() { 343a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 344a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 345a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 346a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 347a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public String getLine1Number() { 348a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 349a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 350a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 351a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 352a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public String getLine1AlphaTag() { 353a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 354a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 355a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 356a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 357a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void setLine1Number(String alphaTag, String number, Message onComplete) { 358a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville // FIXME: what to reply for Volte? 359a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville AsyncResult.forMessage(onComplete, null, null); 360a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville onComplete.sendToTarget(); 361a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 362a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 363a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 364a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void setVoiceMailNumber(String alphaTag, String voiceMailNumber, 365a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Message onComplete) { 366a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville // FIXME: what to reply for Volte? 367a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville AsyncResult.forMessage(onComplete, null, null); 368a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville onComplete.sendToTarget(); 369a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 370a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 371a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 372a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void getCallForwardingOption(int commandInterfaceCFReason, Message onComplete) { 373a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 374a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 375a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 376a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void setCallForwardingOption(int commandInterfaceCFAction, 377a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville int commandInterfaceCFReason, String dialingNumber, 378a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville int timerSeconds, Message onComplete) { 379a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 380a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 381a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 382a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void getOutgoingCallerIdDisplay(Message onComplete) { 383a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville // FIXME: what to reply? 384a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville AsyncResult.forMessage(onComplete, null, null); 385a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville onComplete.sendToTarget(); 386a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 387a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 388a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 389a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void setOutgoingCallerIdDisplay(int commandInterfaceCLIRMode, 390a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Message onComplete) { 391a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville // FIXME: what's this for Volte? 392a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville AsyncResult.forMessage(onComplete, null, null); 393a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville onComplete.sendToTarget(); 394a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 395a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 396a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 397a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void getCallWaiting(Message onComplete) { 398a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville AsyncResult.forMessage(onComplete, null, null); 399a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville onComplete.sendToTarget(); 400a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 401a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 402a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 403a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void setCallWaiting(boolean enable, Message onComplete) { 404a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Rlog.e(LOG_TAG, "call waiting not supported"); 405a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 406a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 407a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 408a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public boolean getIccRecordsLoaded() { 409a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return false; 410a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 411a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 412a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 413a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public IccCard getIccCard() { 414a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 415a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 416a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 417a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 418a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void getAvailableNetworks(Message response) { 419a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 420a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 421a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 422a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void setNetworkSelectionModeAutomatic(Message response) { 423a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 424a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 425a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 426a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void selectNetworkManually( 427a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville OperatorInfo network, 428a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Message response) { 429a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 430a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 431a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 432a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void getNeighboringCids(Message response) { 433a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 434a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 435a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 436a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void getDataCallList(Message response) { 437a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 438a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 439a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public List<DataConnection> getCurrentDataConnectionList () { 440a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 441a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 442a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 443a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 444a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void updateServiceLocation() { 445a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 446a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 447a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 448a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void enableLocationUpdates() { 449a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 450a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 451a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 452a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void disableLocationUpdates() { 453a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 454a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 455a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 456a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public boolean getDataRoamingEnabled() { 457a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return false; 458a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 459a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 460a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 461a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void setDataRoamingEnabled(boolean enable) { 462a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 463a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 464a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 465a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public boolean getDataEnabled() { 466a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return false; 467a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 468a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 469a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 470a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void setDataEnabled(boolean enable) { 471a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 472a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 473a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 474a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public boolean enableDataConnectivity() { 475a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return false; 476a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 477a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 478a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public boolean disableDataConnectivity() { 479a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return false; 480a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 481a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 482a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 483a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public boolean isDataConnectivityPossible() { 484a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return false; 485a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 486a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 487a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville boolean updateCurrentCarrierInProvider() { 488a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return false; 489a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 490a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 491a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void saveClirSetting(int commandInterfaceCLIRMode) { 492a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 493a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 494a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 495a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public PhoneSubInfo getPhoneSubInfo(){ 496a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 497a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 498a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 499a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 500a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public IccPhoneBookInterfaceManager getIccPhoneBookInterfaceManager(){ 501a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 502a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 503a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 504a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 505a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public IccFileHandler getIccFileHandler(){ 506a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 507a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 508a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 509a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 510a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void activateCellBroadcastSms(int activate, Message response) { 511a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Rlog.e(LOG_TAG, "Error! This functionality is not implemented for Volte."); 512a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 513a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 514a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 515a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void getCellBroadcastSmsConfig(Message response) { 516a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Rlog.e(LOG_TAG, "Error! This functionality is not implemented for Volte."); 517a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 518a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 519a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 520a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public void setCellBroadcastSmsConfig(int[] configValuesArray, Message response){ 521a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Rlog.e(LOG_TAG, "Error! This functionality is not implemented for Volte."); 522a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 523a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 524a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville //@Override 525a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 526a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public boolean needsOtaServiceProvisioning() { 527a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville // FIXME: what's this for Volte? 528a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return false; 529a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 530a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 531a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville //@Override 532a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 533a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville public LinkProperties getLinkProperties(String apnType) { 534a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville // FIXME: what's this for Volte? 535a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville return null; 536a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 537a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 538a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville @Override 539a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville protected void onUpdateIccAvailability() { 540a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 541a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 542a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville void updatePhoneState() { 543a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville PhoneConstants.State oldState = mState; 544a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 545a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville if (getRingingCall().isRinging()) { 546a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mState = PhoneConstants.State.RINGING; 547a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } else if (getForegroundCall().isIdle() 548a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville && getBackgroundCall().isIdle()) { 549a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mState = PhoneConstants.State.IDLE; 550a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } else { 551a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville mState = PhoneConstants.State.OFFHOOK; 552a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 553a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville 554a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville if (mState != oldState) { 555a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville Rlog.d(LOG_TAG, " ^^^ new phone state: " + mState); 556a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville notifyPhoneStateChanged(); 557a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 558a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville } 559a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville} 560