DefaultPhoneNotifier.java revision 8758315661d65c14d0e10d354a14f80ec1f65db7
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; 258758315661d65c14d0e10d354a14f80ec1f65db7Wink Savilleimport android.telephony.DataConnectionRealTimeInfo; 260825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.ServiceState; 270825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.TelephonyManager; 280742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuelaimport android.telephony.PreciseCallState; 290742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuelaimport android.telephony.DisconnectCause; 300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 310825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.ITelephonyRegistry; 320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 33ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Savilleimport java.util.List; 34ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville 350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/** 360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * broadcast intents 370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 380825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic class DefaultPhoneNotifier implements PhoneNotifier { 390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private ITelephonyRegistry mRegistry; 410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /*package*/ 430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville DefaultPhoneNotifier() { 440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRegistry = ITelephonyRegistry.Stub.asInterface(ServiceManager.getService( 450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "telephony.registry")); 460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 48cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyPhoneState(Phone sender) { 500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Call ringingCall = sender.getRingingCall(); 510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String incomingNumber = ""; 520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (ringingCall != null && ringingCall.getEarliestConnection() != null){ 530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville incomingNumber = ringingCall.getEarliestConnection().getAddress(); 540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRegistry.notifyCallState(convertCallState(sender.getState()), incomingNumber); 570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 62cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyServiceState(Phone sender) { 640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ServiceState ss = sender.getServiceState(); 650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (ss == null) { 660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ss = new ServiceState(); 670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ss.setStateOutOfService(); 680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRegistry.notifyServiceState(ss); 710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 76cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifySignalStrength(Phone sender) { 780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRegistry.notifySignalStrength(sender.getSignalStrength()); 800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 85cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyMessageWaitingChanged(Phone sender) { 870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRegistry.notifyMessageWaitingChanged(sender.getMessageWaitingIndicator()); 890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 94cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyCallForwardingChanged(Phone sender) { 960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRegistry.notifyCallForwardingChanged(sender.getCallForwardingIndicator()); 980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 103cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyDataActivity(Phone sender) { 1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRegistry.notifyDataActivity(convertDataActivityState(sender.getDataActivityState())); 1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 112cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyDataConnection(Phone sender, String reason, String apnType, 1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville PhoneConstants.DataState state) { 1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville doNotifyDataConnection(sender, reason, apnType, state); 1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private void doNotifyDataConnection(Phone sender, String reason, String apnType, 1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville PhoneConstants.DataState state) { 1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // TODO 1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // use apnType as the key to which connection we're talking about. 1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // pass apnType back up to fetch particular for this one. 1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville TelephonyManager telephony = TelephonyManager.getDefault(); 1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville LinkProperties linkProperties = null; 1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville LinkCapabilities linkCapabilities = null; 1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville boolean roaming = false; 1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (state == PhoneConstants.DataState.CONNECTED) { 1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville linkProperties = sender.getLinkProperties(apnType); 1300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville linkCapabilities = sender.getLinkCapabilities(apnType); 1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ServiceState ss = sender.getServiceState(); 1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (ss != null) roaming = ss.getRoaming(); 1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 1360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRegistry.notifyDataConnection( 1370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville convertDataState(state), 1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sender.isDataConnectivityPossible(apnType), reason, 1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sender.getActiveApnHost(apnType), 1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville apnType, 1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville linkProperties, 1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville linkCapabilities, 1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ((telephony!=null) ? telephony.getNetworkType() : 1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville TelephonyManager.NETWORK_TYPE_UNKNOWN), 1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville roaming); 1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 151cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyDataConnectionFailed(Phone sender, String reason, String apnType) { 1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRegistry.notifyDataConnectionFailed(reason, apnType); 1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 160cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyCellLocation(Phone sender) { 1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Bundle data = new Bundle(); 1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sender.getCellLocation().fillInNotifierBundle(data); 1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRegistry.notifyCellLocation(data); 1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 171cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 172ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville public void notifyCellInfo(Phone sender, List<CellInfo> cellInfo) { 1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRegistry.notifyCellInfo(cellInfo); 1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 180cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1818758315661d65c14d0e10d354a14f80ec1f65db7Wink Saville public void notifyDataConnectionRealTimeInfo(Phone sender, 1828758315661d65c14d0e10d354a14f80ec1f65db7Wink Saville DataConnectionRealTimeInfo dcRtInfo) { 1838758315661d65c14d0e10d354a14f80ec1f65db7Wink Saville try { 1848758315661d65c14d0e10d354a14f80ec1f65db7Wink Saville mRegistry.notifyDataConnectionRealTimeInfo(dcRtInfo); 1858758315661d65c14d0e10d354a14f80ec1f65db7Wink Saville } catch (RemoteException ex) { 1868758315661d65c14d0e10d354a14f80ec1f65db7Wink Saville 1878758315661d65c14d0e10d354a14f80ec1f65db7Wink Saville } 1888758315661d65c14d0e10d354a14f80ec1f65db7Wink Saville } 1898758315661d65c14d0e10d354a14f80ec1f65db7Wink Saville 1908758315661d65c14d0e10d354a14f80ec1f65db7Wink Saville @Override 1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void notifyOtaspChanged(Phone sender, int otaspMode) { 1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mRegistry.notifyOtaspChanged(otaspMode); 1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (RemoteException ex) { 1950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // system process is dead 1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1990742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela public void notifyPreciseCallState(Phone sender) { 2000742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela Call ringingCall = sender.getRingingCall(); 2010742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela Call foregroundCall = sender.getForegroundCall(); 2020742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela Call backgroundCall = sender.getBackgroundCall(); 2030742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela if (ringingCall != null && foregroundCall != null && backgroundCall != null) { 2040742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela try { 2050742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela mRegistry.notifyPreciseCallState( 2060742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela convertPreciseCallState(ringingCall.getState()), 2070742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela convertPreciseCallState(foregroundCall.getState()), 2080742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela convertPreciseCallState(backgroundCall.getState())); 2090742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela } catch (RemoteException ex) { 2100742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela // system process is dead 2110742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela } 2120742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela } 2130742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela } 2140742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela 215b7b7a62112b79571adf74372c5f5366fd62d0031Anders Kristensen public void notifyDisconnectCause(int cause, int preciseCause) { 2160742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela try { 217b7b7a62112b79571adf74372c5f5366fd62d0031Anders Kristensen mRegistry.notifyDisconnectCause(cause, preciseCause); 2180742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela } catch (RemoteException ex) { 2190742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela // system process is dead 2200742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela } 2210742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela } 2220742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela 2230742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela public void notifyPreciseDataConnectionFailed(Phone sender, String reason, String apnType, 2240742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela String apn, String failCause) { 2250742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela try { 2260742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela mRegistry.notifyPreciseDataConnectionFailed(reason, apnType, apn, failCause); 2270742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela } catch (RemoteException ex) { 2280742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela // system process is dead 2290742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela } 2300742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela } 2310742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela 2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 233cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * Convert the {@link PhoneConstants.State} enum into the TelephonyManager.CALL_STATE_* 234cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * constants for the public API. 2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static int convertCallState(PhoneConstants.State state) { 2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (state) { 2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case RINGING: 2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.CALL_STATE_RINGING; 2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case OFFHOOK: 2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.CALL_STATE_OFFHOOK; 2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.CALL_STATE_IDLE; 2440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 248cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * Convert the TelephonyManager.CALL_STATE_* constants into the 249cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * {@link PhoneConstants.State} enum for the public API. 2500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static PhoneConstants.State convertCallState(int state) { 2520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (state) { 2530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.CALL_STATE_RINGING: 2540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return PhoneConstants.State.RINGING; 2550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.CALL_STATE_OFFHOOK: 2560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return PhoneConstants.State.OFFHOOK; 2570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 2580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return PhoneConstants.State.IDLE; 2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 263cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * Convert the {@link PhoneConstants.DataState} enum into the TelephonyManager.DATA_* constants 2640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * for the public API. 2650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static int convertDataState(PhoneConstants.DataState state) { 2670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (state) { 2680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case CONNECTING: 2690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_CONNECTING; 2700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case CONNECTED: 2710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_CONNECTED; 2720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SUSPENDED: 2730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_SUSPENDED; 2740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 2750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_DISCONNECTED; 2760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 280cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * Convert the TelephonyManager.DATA_* constants into {@link PhoneConstants.DataState} enum 2810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * for the public API. 2820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static PhoneConstants.DataState convertDataState(int state) { 2840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (state) { 2850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.DATA_CONNECTING: 2860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return PhoneConstants.DataState.CONNECTING; 2870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.DATA_CONNECTED: 2880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return PhoneConstants.DataState.CONNECTED; 2890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.DATA_SUSPENDED: 2900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return PhoneConstants.DataState.SUSPENDED; 2910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 2920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return PhoneConstants.DataState.DISCONNECTED; 2930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 297cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * Convert the {@link Phone.DataActivityState} enum into the TelephonyManager.DATA_* constants 2980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * for the public API. 2990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static int convertDataActivityState(Phone.DataActivityState state) { 3010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (state) { 3020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case DATAIN: 3030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_ACTIVITY_IN; 3040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case DATAOUT: 3050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_ACTIVITY_OUT; 3060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case DATAINANDOUT: 3070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_ACTIVITY_INOUT; 3080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case DORMANT: 3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_ACTIVITY_DORMANT; 3100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 3110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return TelephonyManager.DATA_ACTIVITY_NONE; 3120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 316cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville * Convert the TelephonyManager.DATA_* constants into the {@link Phone.DataActivityState} enum 3170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * for the public API. 3180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static Phone.DataActivityState convertDataActivityState(int state) { 3200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (state) { 3210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.DATA_ACTIVITY_IN: 3220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return Phone.DataActivityState.DATAIN; 3230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.DATA_ACTIVITY_OUT: 3240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return Phone.DataActivityState.DATAOUT; 3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.DATA_ACTIVITY_INOUT: 3260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return Phone.DataActivityState.DATAINANDOUT; 3270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case TelephonyManager.DATA_ACTIVITY_DORMANT: 3280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return Phone.DataActivityState.DORMANT; 3290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 3300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return Phone.DataActivityState.NONE; 3310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3330742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela 3340742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela /** 3350742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela * Convert the {@link State} enum into the PreciseCallState.PRECISE_CALL_STATE_* constants 3360742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela * for the public API. 3370742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela */ 3380742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela public static int convertPreciseCallState(Call.State state) { 3390742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela switch (state) { 3400742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela case ACTIVE: 3410742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return PreciseCallState.PRECISE_CALL_STATE_ACTIVE; 3420742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela case HOLDING: 3430742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return PreciseCallState.PRECISE_CALL_STATE_HOLDING; 3440742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela case DIALING: 3450742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return PreciseCallState.PRECISE_CALL_STATE_DIALING; 3460742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela case ALERTING: 3470742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return PreciseCallState.PRECISE_CALL_STATE_ALERTING; 3480742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela case INCOMING: 3490742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return PreciseCallState.PRECISE_CALL_STATE_INCOMING; 3500742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela case WAITING: 3510742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return PreciseCallState.PRECISE_CALL_STATE_WAITING; 3520742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela case DISCONNECTED: 3530742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return PreciseCallState.PRECISE_CALL_STATE_DISCONNECTED; 3540742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela case DISCONNECTING: 3550742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return PreciseCallState.PRECISE_CALL_STATE_DISCONNECTING; 3560742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela default: 3570742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return PreciseCallState.PRECISE_CALL_STATE_IDLE; 3580742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela } 3590742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela } 3600742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela 3610742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela /** 3620742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela * Convert the Call.State.* constants into the {@link State} enum 3630742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela * for the public API. 3640742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela */ 3650742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela public static Call.State convertPreciseCallState(int state) { 3660742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela switch (state) { 3670742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela case PreciseCallState.PRECISE_CALL_STATE_ACTIVE: 3680742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return Call.State.ACTIVE; 3690742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela case PreciseCallState.PRECISE_CALL_STATE_HOLDING: 3700742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return Call.State.HOLDING; 3710742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela case PreciseCallState.PRECISE_CALL_STATE_DIALING: 3720742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return Call.State.DIALING; 3730742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela case PreciseCallState.PRECISE_CALL_STATE_ALERTING: 3740742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return Call.State.ALERTING; 3750742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela case PreciseCallState.PRECISE_CALL_STATE_INCOMING: 3760742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return Call.State.INCOMING; 3770742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela case PreciseCallState.PRECISE_CALL_STATE_WAITING: 3780742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return Call.State.WAITING; 3790742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela case PreciseCallState.PRECISE_CALL_STATE_DISCONNECTED: 3800742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return Call.State.DISCONNECTED; 3810742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela case PreciseCallState.PRECISE_CALL_STATE_DISCONNECTING: 3820742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return Call.State.DISCONNECTING; 3830742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela default: 3840742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela return Call.State.IDLE; 3850742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela } 3860742246233c3f03f864d23e52d89e1845d994701Antonio Marín Cerezuela } 3870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville} 388