DefaultPhoneNotifier.java revision cbaa45bbf2cab852b6c9c3a887e9f803d4e857ea
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 {
530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mRegistry.notifyCallState(convertCallState(sender.getState()), incomingNumber);
540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (RemoteException ex) {
550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            // system process is dead
560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
59cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void notifyServiceState(Phone sender) {
610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        ServiceState ss = sender.getServiceState();
620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (ss == null) {
630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            ss = new ServiceState();
640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            ss.setStateOutOfService();
650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        try {
670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mRegistry.notifyServiceState(ss);
680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (RemoteException ex) {
690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            // system process is dead
700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
73cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void notifySignalStrength(Phone sender) {
750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        try {
760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mRegistry.notifySignalStrength(sender.getSignalStrength());
770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (RemoteException ex) {
780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            // system process is dead
790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
82cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void notifyMessageWaitingChanged(Phone sender) {
840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        try {
850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mRegistry.notifyMessageWaitingChanged(sender.getMessageWaitingIndicator());
860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (RemoteException ex) {
870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            // system process is dead
880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
91cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void notifyCallForwardingChanged(Phone sender) {
930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        try {
940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mRegistry.notifyCallForwardingChanged(sender.getCallForwardingIndicator());
950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (RemoteException ex) {
960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            // system process is dead
970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
100cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void notifyDataActivity(Phone sender) {
1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        try {
1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mRegistry.notifyDataActivity(convertDataActivityState(sender.getDataActivityState()));
1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (RemoteException ex) {
1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            // system process is dead
1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
109cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void notifyDataConnection(Phone sender, String reason, String apnType,
1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            PhoneConstants.DataState state) {
1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        doNotifyDataConnection(sender, reason, apnType, state);
1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private void doNotifyDataConnection(Phone sender, String reason, String apnType,
1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            PhoneConstants.DataState state) {
1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // TODO
1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // use apnType as the key to which connection we're talking about.
1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // pass apnType back up to fetch particular for this one.
1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        TelephonyManager telephony = TelephonyManager.getDefault();
1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        LinkProperties linkProperties = null;
1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        LinkCapabilities linkCapabilities = null;
1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        boolean roaming = false;
1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (state == PhoneConstants.DataState.CONNECTED) {
1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            linkProperties = sender.getLinkProperties(apnType);
1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            linkCapabilities = sender.getLinkCapabilities(apnType);
1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        ServiceState ss = sender.getServiceState();
1300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (ss != null) roaming = ss.getRoaming();
1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        try {
1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mRegistry.notifyDataConnection(
1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    convertDataState(state),
1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    sender.isDataConnectivityPossible(apnType), reason,
1360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    sender.getActiveApnHost(apnType),
1370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    apnType,
1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    linkProperties,
1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    linkCapabilities,
1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    ((telephony!=null) ? telephony.getNetworkType() :
1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    TelephonyManager.NETWORK_TYPE_UNKNOWN),
1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    roaming);
1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (RemoteException ex) {
1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            // system process is dead
1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
148cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void notifyDataConnectionFailed(Phone sender, String reason, String apnType) {
1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        try {
1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mRegistry.notifyDataConnectionFailed(reason, apnType);
1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (RemoteException ex) {
1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            // system process is dead
1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
157cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void notifyCellLocation(Phone sender) {
1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        Bundle data = new Bundle();
1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        sender.getCellLocation().fillInNotifierBundle(data);
1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        try {
1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mRegistry.notifyCellLocation(data);
1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (RemoteException ex) {
1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            // system process is dead
1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
168cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
169ef1d4bff9bbf7d967dbcace73f08910e14e367d0Wink Saville    public void notifyCellInfo(Phone sender, List<CellInfo> cellInfo) {
1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        try {
1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mRegistry.notifyCellInfo(cellInfo);
1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (RemoteException ex) {
1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
177cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void notifyOtaspChanged(Phone sender, int otaspMode) {
1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        try {
1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mRegistry.notifyOtaspChanged(otaspMode);
1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (RemoteException ex) {
1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            // system process is dead
1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
187cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville     * Convert the {@link PhoneConstants.State} enum into the TelephonyManager.CALL_STATE_*
188cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville     * constants for the public API.
1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static int convertCallState(PhoneConstants.State state) {
1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        switch (state) {
1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case RINGING:
1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return TelephonyManager.CALL_STATE_RINGING;
1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case OFFHOOK:
1950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return TelephonyManager.CALL_STATE_OFFHOOK;
1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            default:
1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return TelephonyManager.CALL_STATE_IDLE;
1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
202cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville     * Convert the TelephonyManager.CALL_STATE_* constants into the
203cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville     * {@link PhoneConstants.State} enum for the public API.
2040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static PhoneConstants.State convertCallState(int state) {
2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        switch (state) {
2070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case TelephonyManager.CALL_STATE_RINGING:
2080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return PhoneConstants.State.RINGING;
2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case TelephonyManager.CALL_STATE_OFFHOOK:
2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return PhoneConstants.State.OFFHOOK;
2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            default:
2120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return PhoneConstants.State.IDLE;
2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
217cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville     * Convert the {@link PhoneConstants.DataState} enum into the TelephonyManager.DATA_* constants
2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * for the public API.
2190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static int convertDataState(PhoneConstants.DataState state) {
2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        switch (state) {
2220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case CONNECTING:
2230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return TelephonyManager.DATA_CONNECTING;
2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case CONNECTED:
2250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return TelephonyManager.DATA_CONNECTED;
2260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case SUSPENDED:
2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return TelephonyManager.DATA_SUSPENDED;
2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            default:
2290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return TelephonyManager.DATA_DISCONNECTED;
2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
234cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville     * Convert the TelephonyManager.DATA_* constants into {@link PhoneConstants.DataState} enum
2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * for the public API.
2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static PhoneConstants.DataState convertDataState(int state) {
2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        switch (state) {
2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case TelephonyManager.DATA_CONNECTING:
2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return PhoneConstants.DataState.CONNECTING;
2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case TelephonyManager.DATA_CONNECTED:
2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return PhoneConstants.DataState.CONNECTED;
2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case TelephonyManager.DATA_SUSPENDED:
2440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return PhoneConstants.DataState.SUSPENDED;
2450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            default:
2460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return PhoneConstants.DataState.DISCONNECTED;
2470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
251cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville     * Convert the {@link Phone.DataActivityState} enum into the TelephonyManager.DATA_* constants
2520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * for the public API.
2530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static int convertDataActivityState(Phone.DataActivityState state) {
2550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        switch (state) {
2560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case DATAIN:
2570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return TelephonyManager.DATA_ACTIVITY_IN;
2580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case DATAOUT:
2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return TelephonyManager.DATA_ACTIVITY_OUT;
2600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case DATAINANDOUT:
2610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return TelephonyManager.DATA_ACTIVITY_INOUT;
2620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case DORMANT:
2630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return TelephonyManager.DATA_ACTIVITY_DORMANT;
2640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            default:
2650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return TelephonyManager.DATA_ACTIVITY_NONE;
2660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
270cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville     * Convert the TelephonyManager.DATA_* constants into the {@link Phone.DataActivityState} enum
2710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * for the public API.
2720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static Phone.DataActivityState convertDataActivityState(int state) {
2740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        switch (state) {
2750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case TelephonyManager.DATA_ACTIVITY_IN:
2760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return Phone.DataActivityState.DATAIN;
2770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case TelephonyManager.DATA_ACTIVITY_OUT:
2780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return Phone.DataActivityState.DATAOUT;
2790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case TelephonyManager.DATA_ACTIVITY_INOUT:
2800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return Phone.DataActivityState.DATAINANDOUT;
2810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case TelephonyManager.DATA_ACTIVITY_DORMANT:
2820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return Phone.DataActivityState.DORMANT;
2830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            default:
2840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return Phone.DataActivityState.NONE;
2850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
288