DefaultPhoneNotifier.java revision 7961ac2c8d2e50d879bc6d5b272b7d972a335c0e
10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/* 20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2006 The Android Open Source Project 30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License. 60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at 70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * http://www.apache.org/licenses/LICENSE-2.0 90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software 110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS, 120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and 140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License. 150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage com.android.internal.telephony; 180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 190825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.net.LinkCapabilities; 200825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.net.LinkProperties; 210825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Bundle; 220825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.RemoteException; 230825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.ServiceManager; 240825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.CellInfo; 250825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.ServiceState; 260825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.TelephonyManager; 270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 280825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.ITelephonyRegistry; 290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 30ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Savilleimport java.util.List; 31ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville 320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/** 330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * broadcast intents 340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 350825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic class DefaultPhoneNotifier implements PhoneNotifier { 360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private ITelephonyRegistry mRegistry; 380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /*package*/ 400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville DefaultPhoneNotifier() { 410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRegistry = ITelephonyRegistry.Stub.asInterface(ServiceManager.getService( 420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "telephony.registry")); 430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 45cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyPhoneState(Phone sender) { 470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Call ringingCall = sender.getRingingCall(); 480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String incomingNumber = ""; 490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (ringingCall != null && ringingCall.getEarliestConnection() != null){ 500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville incomingNumber = ringingCall.getEarliestConnection().getAddress(); 510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 537961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski if (mRegistry != null) { 547961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski mRegistry.notifyCallState(convertCallState(sender.getState()), incomingNumber); 557961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski } 560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 61cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyServiceState(Phone sender) { 630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ServiceState ss = sender.getServiceState(); 640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (ss == null) { 650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ss = new ServiceState(); 660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ss.setStateOutOfService(); 670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 697961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski if (mRegistry != null) { 707961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski mRegistry.notifyServiceState(ss); 717961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski } 720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 77cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifySignalStrength(Phone sender) { 790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 807961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski if (mRegistry != null) { 817961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski mRegistry.notifySignalStrength(sender.getSignalStrength()); 827961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski } 830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 88cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyMessageWaitingChanged(Phone sender) { 900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 917961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski if (mRegistry != null) { 927961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski mRegistry.notifyMessageWaitingChanged(sender.getMessageWaitingIndicator()); 937961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski } 940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 99cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyCallForwardingChanged(Phone sender) { 1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 1027961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski if (mRegistry != null) { 1037961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski mRegistry.notifyCallForwardingChanged(sender.getCallForwardingIndicator()); 1047961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski } 1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 110cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyDataActivity(Phone sender) { 1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 1137961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski if (mRegistry != null) { 1147961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski mRegistry.notifyDataActivity(convertDataActivityState(sender.getDataActivityState())); 1157961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski } 1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 121cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyDataConnection(Phone sender, String reason, String apnType, 1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville PhoneConstants.DataState state) { 1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville doNotifyDataConnection(sender, reason, apnType, state); 1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private void doNotifyDataConnection(Phone sender, String reason, String apnType, 1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville PhoneConstants.DataState state) { 1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // TODO 1300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // use apnType as the key to which connection we're talking about. 1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // pass apnType back up to fetch particular for this one. 1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville TelephonyManager telephony = TelephonyManager.getDefault(); 1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville LinkProperties linkProperties = null; 1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville LinkCapabilities linkCapabilities = null; 1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville boolean roaming = false; 1360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (state == PhoneConstants.DataState.CONNECTED) { 1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville linkProperties = sender.getLinkProperties(apnType); 1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville linkCapabilities = sender.getLinkCapabilities(apnType); 1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ServiceState ss = sender.getServiceState(); 1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (ss != null) roaming = ss.getRoaming(); 1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 1457961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski if (mRegistry != null) { 1467961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski mRegistry.notifyDataConnection( 1477961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski convertDataState(state), 1487961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski sender.isDataConnectivityPossible(apnType), reason, 1497961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski sender.getActiveApnHost(apnType), 1507961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski apnType, 1517961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski linkProperties, 1527961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski linkCapabilities, 1537961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski ((telephony!=null) ? telephony.getNetworkType() : 1547961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski TelephonyManager.NETWORK_TYPE_UNKNOWN), 1557961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski roaming); 1567961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski } 1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 162cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyDataConnectionFailed(Phone sender, String reason, String apnType) { 1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 1657961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski if (mRegistry != null) { 1667961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski mRegistry.notifyDataConnectionFailed(reason, apnType); 1677961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski } 1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 173cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyCellLocation(Phone sender) { 1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Bundle data = new Bundle(); 1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sender.getCellLocation().fillInNotifierBundle(data); 1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 1787961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski if (mRegistry != null) { 1797961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski mRegistry.notifyCellLocation(data); 1807961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski } 1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 186cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 187ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville public void notifyCellInfo(Phone sender, List<CellInfo> cellInfo) { 1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 1897961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski if (mRegistry != null) { 1907961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski mRegistry.notifyCellInfo(cellInfo); 1917961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski } 1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 197cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyOtaspChanged(Phone sender, int otaspMode) { 1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 2007961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski if (mRegistry != null) { 2017961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski mRegistry.notifyOtaspChanged(otaspMode); 2027961ac2c8d2e50d879bc6d5b272b7d972a335c0eAdam Lesinski } 2030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 2040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 2050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 209cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * Convert the {@link PhoneConstants.State} enum into the TelephonyManager.CALL_STATE_* 210cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * constants for the public API. 2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static int convertCallState(PhoneConstants.State state) { 2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (state) { 2140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case RINGING: 2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.CALL_STATE_RINGING; 2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case OFFHOOK: 2170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.CALL_STATE_OFFHOOK; 2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 2190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.CALL_STATE_IDLE; 2200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 224cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * Convert the TelephonyManager.CALL_STATE_* constants into the 225cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * {@link PhoneConstants.State} enum for the public API. 2260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static PhoneConstants.State convertCallState(int state) { 2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (state) { 2290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.CALL_STATE_RINGING: 2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return PhoneConstants.State.RINGING; 2310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.CALL_STATE_OFFHOOK: 2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return PhoneConstants.State.OFFHOOK; 2330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 2340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return PhoneConstants.State.IDLE; 2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 239cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * Convert the {@link PhoneConstants.DataState} enum into the TelephonyManager.DATA_* constants 2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * for the public API. 2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static int convertDataState(PhoneConstants.DataState state) { 2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (state) { 2440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case CONNECTING: 2450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_CONNECTING; 2460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case CONNECTED: 2470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_CONNECTED; 2480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SUSPENDED: 2490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_SUSPENDED; 2500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 2510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_DISCONNECTED; 2520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 256cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * Convert the TelephonyManager.DATA_* constants into {@link PhoneConstants.DataState} enum 2570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * for the public API. 2580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static PhoneConstants.DataState convertDataState(int state) { 2600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (state) { 2610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.DATA_CONNECTING: 2620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return PhoneConstants.DataState.CONNECTING; 2630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.DATA_CONNECTED: 2640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return PhoneConstants.DataState.CONNECTED; 2650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.DATA_SUSPENDED: 2660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return PhoneConstants.DataState.SUSPENDED; 2670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 2680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return PhoneConstants.DataState.DISCONNECTED; 2690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 273cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * Convert the {@link Phone.DataActivityState} enum into the TelephonyManager.DATA_* constants 2740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * for the public API. 2750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static int convertDataActivityState(Phone.DataActivityState state) { 2770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (state) { 2780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case DATAIN: 2790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_ACTIVITY_IN; 2800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case DATAOUT: 2810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_ACTIVITY_OUT; 2820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case DATAINANDOUT: 2830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_ACTIVITY_INOUT; 2840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case DORMANT: 2850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_ACTIVITY_DORMANT; 2860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 2870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_ACTIVITY_NONE; 2880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 292cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * Convert the TelephonyManager.DATA_* constants into the {@link Phone.DataActivityState} enum 2930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * for the public API. 2940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static Phone.DataActivityState convertDataActivityState(int state) { 2960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (state) { 2970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.DATA_ACTIVITY_IN: 2980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return Phone.DataActivityState.DATAIN; 2990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.DATA_ACTIVITY_OUT: 3000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return Phone.DataActivityState.DATAOUT; 3010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.DATA_ACTIVITY_INOUT: 3020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return Phone.DataActivityState.DATAINANDOUT; 3030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.DATA_ACTIVITY_DORMANT: 3040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return Phone.DataActivityState.DORMANT; 3050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 3060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return Phone.DataActivityState.NONE; 3070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville} 310