10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/* 20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2011 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 com.android.internal.telephony.DataConnection.UpdateLinkPropertyResult; 200825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.util.AsyncChannel; 210825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.util.Protocol; 220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 230825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.app.PendingIntent; 240825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.net.LinkCapabilities; 250825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.net.LinkProperties; 260825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.net.ProxyProperties; 270825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Message; 280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 290825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.ArrayList; 300825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.Collection; 310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/** 330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * AsyncChannel to a DataConnection 340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 350825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic class DataConnectionAc extends AsyncChannel { 360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static final boolean DBG = false; 370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private String mLogTag; 380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public DataConnection dataConnection; 400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int BASE = Protocol.BASE_DATA_CONNECTION_AC; 420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int REQ_IS_INACTIVE = BASE + 0; 440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RSP_IS_INACTIVE = BASE + 1; 450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int REQ_GET_CID = BASE + 2; 470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RSP_GET_CID = BASE + 3; 480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int REQ_GET_APNSETTING = BASE + 4; 500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RSP_GET_APNSETTING = BASE + 5; 510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int REQ_GET_LINK_PROPERTIES = BASE + 6; 530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RSP_GET_LINK_PROPERTIES = BASE + 7; 540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int REQ_SET_LINK_PROPERTIES_HTTP_PROXY = BASE + 8; 560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RSP_SET_LINK_PROPERTIES_HTTP_PROXY = BASE + 9; 570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int REQ_GET_LINK_CAPABILITIES = BASE + 10; 590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RSP_GET_LINK_CAPABILITIES = BASE + 11; 600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int REQ_UPDATE_LINK_PROPERTIES_DATA_CALL_STATE = BASE + 12; 620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RSP_UPDATE_LINK_PROPERTIES_DATA_CALL_STATE = BASE + 13; 630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int REQ_RESET = BASE + 14; 650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RSP_RESET = BASE + 15; 660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int REQ_GET_REFCOUNT = BASE + 16; 680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RSP_GET_REFCOUNT = BASE + 17; 690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int REQ_ADD_APNCONTEXT = BASE + 18; 710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RSP_ADD_APNCONTEXT = BASE + 19; 720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int REQ_REMOVE_APNCONTEXT = BASE + 20; 740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RSP_REMOVE_APNCONTEXT = BASE + 21; 750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int REQ_GET_APNCONTEXT_LIST = BASE + 22; 770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RSP_GET_APNCONTEXT_LIST = BASE + 23; 780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int REQ_SET_RECONNECT_INTENT = BASE + 24; 800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RSP_SET_RECONNECT_INTENT = BASE + 25; 810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int REQ_GET_RECONNECT_INTENT = BASE + 26; 830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RSP_GET_RECONNECT_INTENT = BASE + 27; 840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static final int CMD_TO_STRING_COUNT = RSP_GET_RECONNECT_INTENT - BASE + 1; 860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static String[] sCmdToString = new String[CMD_TO_STRING_COUNT]; 870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville static { 880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[REQ_IS_INACTIVE - BASE] = "REQ_IS_INACTIVE"; 890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[RSP_IS_INACTIVE - BASE] = "RSP_IS_INACTIVE"; 900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[REQ_GET_CID - BASE] = "REQ_GET_CID"; 910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[RSP_GET_CID - BASE] = "RSP_GET_CID"; 920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[REQ_GET_APNSETTING - BASE] = "REQ_GET_APNSETTING"; 930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[RSP_GET_APNSETTING - BASE] = "RSP_GET_APNSETTING"; 940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[REQ_GET_LINK_PROPERTIES - BASE] = "REQ_GET_LINK_PROPERTIES"; 950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[RSP_GET_LINK_PROPERTIES - BASE] = "RSP_GET_LINK_PROPERTIES"; 960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[REQ_SET_LINK_PROPERTIES_HTTP_PROXY - BASE] = 970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "REQ_SET_LINK_PROPERTIES_HTTP_PROXY"; 980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[RSP_SET_LINK_PROPERTIES_HTTP_PROXY - BASE] = 990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "RSP_SET_LINK_PROPERTIES_HTTP_PROXY"; 1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[REQ_GET_LINK_CAPABILITIES - BASE] = "REQ_GET_LINK_CAPABILITIES"; 1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[RSP_GET_LINK_CAPABILITIES - BASE] = "RSP_GET_LINK_CAPABILITIES"; 1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[REQ_UPDATE_LINK_PROPERTIES_DATA_CALL_STATE - BASE] = 1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "REQ_UPDATE_LINK_PROPERTIES_DATA_CALL_STATE"; 1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[RSP_UPDATE_LINK_PROPERTIES_DATA_CALL_STATE - BASE] = 1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "RSP_UPDATE_LINK_PROPERTIES_DATA_CALL_STATE"; 1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[REQ_RESET - BASE] = "REQ_RESET"; 1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[RSP_RESET - BASE] = "RSP_RESET"; 1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[REQ_GET_REFCOUNT - BASE] = "REQ_GET_REFCOUNT"; 1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[RSP_GET_REFCOUNT - BASE] = "RSP_GET_REFCOUNT"; 1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[REQ_ADD_APNCONTEXT - BASE] = "REQ_ADD_APNCONTEXT"; 1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[RSP_ADD_APNCONTEXT - BASE] = "RSP_ADD_APNCONTEXT"; 1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[REQ_REMOVE_APNCONTEXT - BASE] = "REQ_REMOVE_APNCONTEXT"; 1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[RSP_REMOVE_APNCONTEXT - BASE] = "RSP_REMOVE_APNCONTEXT"; 1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[REQ_GET_APNCONTEXT_LIST - BASE] = "REQ_GET_APNCONTEXT_LIST"; 1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[RSP_GET_APNCONTEXT_LIST - BASE] = "RSP_GET_APNCONTEXT_LIST"; 1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[REQ_SET_RECONNECT_INTENT - BASE] = "REQ_SET_RECONNECT_INTENT"; 1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[RSP_SET_RECONNECT_INTENT - BASE] = "RSP_SET_RECONNECT_INTENT"; 1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[REQ_GET_RECONNECT_INTENT - BASE] = "REQ_GET_RECONNECT_INTENT"; 1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sCmdToString[RSP_GET_RECONNECT_INTENT - BASE] = "RSP_GET_RECONNECT_INTENT"; 1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected static String cmdToString(int cmd) { 1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville cmd -= BASE; 1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((cmd >= 0) && (cmd < sCmdToString.length)) { 1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return sCmdToString[cmd]; 1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return AsyncChannel.cmdToString(cmd + BASE); 1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * enum used to notify action taken or necessary to be 1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * taken after the link property is changed. 1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public enum LinkPropertyChangeAction { 1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville NONE, CHANGED, RESET; 1360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static LinkPropertyChangeAction fromInt(int value) { 1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (value == NONE.ordinal()) { 1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return NONE; 1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else if (value == CHANGED.ordinal()) { 1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return CHANGED; 1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else if (value == RESET.ordinal()) { 1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return RESET; 1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville throw new RuntimeException("LinkPropertyChangeAction.fromInt: bad value=" + value); 1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public DataConnectionAc(DataConnection dc, String logTag) { 1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dataConnection = dc; 1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mLogTag = logTag; 1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Request if the state machine is in the inactive state. 1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Response {@link #rspIsInactive} 1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void reqIsInactive() { 1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sendMessage(REQ_IS_INACTIVE); 1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("reqIsInactive"); 1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Evaluate RSP_IS_INACTIVE. 1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return true if the state machine is in the inactive state. 1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean rspIsInactive(Message response) { 1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville boolean retVal = response.arg1 == 1; 1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("rspIsInactive=" + retVal); 1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return retVal; 1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return true if the state machine is in the inactive state. 1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isInactiveSync() { 1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_IS_INACTIVE); 1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((response != null) && (response.what == RSP_IS_INACTIVE)) { 1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return rspIsInactive(response); 1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville log("rspIsInactive error response=" + response); 1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return false; 1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Request the Connection ID. 1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Response {@link #rspCid} 1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void reqCid() { 1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sendMessage(REQ_GET_CID); 1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("reqCid"); 1950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Evaluate a RSP_GET_CID message and return the cid. 1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 2000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param response Message 2010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return connection id or -1 if an error 2020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int rspCid(Message response) { 2040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int retVal = response.arg1; 2050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("rspCid=" + retVal); 2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return retVal; 2070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return connection id or -1 if an error 2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getCidSync() { 2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_GET_CID); 2140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((response != null) && (response.what == RSP_GET_CID)) { 2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return rspCid(response); 2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 2170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville log("rspCid error response=" + response); 2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return -1; 2190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Request the Reference Count. 2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Response {@link #rspRefCount} 2250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void reqRefCount() { 2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sendMessage(REQ_GET_REFCOUNT); 2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("reqRefCount"); 2290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Evaluate a RSP_GET_REFCOUNT message and return the refCount. 2330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 2340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param response Message 2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return ref count or -1 if an error 2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int rspRefCount(Message response) { 2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int retVal = response.arg1; 2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("rspRefCount=" + retVal); 2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return retVal; 2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return connection id or -1 if an error 2450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getRefCountSync() { 2470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_GET_REFCOUNT); 2480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((response != null) && (response.what == RSP_GET_REFCOUNT)) { 2490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return rspRefCount(response); 2500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 2510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville log("rspRefCount error response=" + response); 2520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return -1; 2530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Request the connections ApnSetting. 2580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Response {@link #rspApnSetting} 2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void reqApnSetting() { 2610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sendMessage(REQ_GET_APNSETTING); 2620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("reqApnSetting"); 2630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Evaluate a RSP_APN_SETTING message and return the ApnSetting. 2670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 2680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param response Message 2690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return ApnSetting, maybe null 2700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public ApnSetting rspApnSetting(Message response) { 2720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ApnSetting retVal = (ApnSetting) response.obj; 2730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("rspApnSetting=" + retVal); 2740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return retVal; 2750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Get the connections ApnSetting. 2790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 2800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return ApnSetting or null if an error 2810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public ApnSetting getApnSettingSync() { 2830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_GET_APNSETTING); 2840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((response != null) && (response.what == RSP_GET_APNSETTING)) { 2850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return rspApnSetting(response); 2860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 2870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville log("getApnSetting error response=" + response); 2880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return null; 2890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Request the connections LinkProperties. 2940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Response {@link #rspLinkProperties} 2950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void reqLinkProperties() { 2970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sendMessage(REQ_GET_LINK_PROPERTIES); 2980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("reqLinkProperties"); 2990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Evaluate RSP_GET_LINK_PROPERTIES 3030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 3040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param response 3050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return LinkProperties, maybe null. 3060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public LinkProperties rspLinkProperties(Message response) { 3080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville LinkProperties retVal = (LinkProperties) response.obj; 3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("rspLinkProperties=" + retVal); 3100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return retVal; 3110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Get the connections LinkProperties. 3150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 3160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return LinkProperties or null if an error 3170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public LinkProperties getLinkPropertiesSync() { 3190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_GET_LINK_PROPERTIES); 3200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((response != null) && (response.what == RSP_GET_LINK_PROPERTIES)) { 3210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return rspLinkProperties(response); 3220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 3230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville log("getLinkProperties error response=" + response); 3240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return null; 3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Request setting the connections LinkProperties.HttpProxy. 3300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Response RSP_SET_LINK_PROPERTIES when complete. 3310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void reqSetLinkPropertiesHttpProxy(ProxyProperties proxy) { 3330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sendMessage(REQ_SET_LINK_PROPERTIES_HTTP_PROXY, proxy); 3340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("reqSetLinkPropertiesHttpProxy proxy=" + proxy); 3350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Set the connections LinkProperties.HttpProxy 3390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setLinkPropertiesHttpProxySync(ProxyProperties proxy) { 3410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = 3420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sendMessageSynchronously(REQ_SET_LINK_PROPERTIES_HTTP_PROXY, proxy); 3430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((response != null) && (response.what == RSP_SET_LINK_PROPERTIES_HTTP_PROXY)) { 3440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("setLinkPropertiesHttpPoxy ok"); 3450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 3460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville log("setLinkPropertiesHttpPoxy error response=" + response); 3470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Request update LinkProperties from DataCallState 3520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Response {@link #rspUpdateLinkPropertiesDataCallState} 3530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void reqUpdateLinkPropertiesDataCallState(DataCallState newState) { 3550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sendMessage(REQ_UPDATE_LINK_PROPERTIES_DATA_CALL_STATE, newState); 3560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("reqUpdateLinkPropertiesDataCallState"); 3570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public UpdateLinkPropertyResult rspUpdateLinkPropertiesDataCallState(Message response) { 3600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville UpdateLinkPropertyResult retVal = (UpdateLinkPropertyResult)response.obj; 3610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("rspUpdateLinkPropertiesState: retVal=" + retVal); 3620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return retVal; 3630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Update link properties in the data connection 3670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 3680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return the removed and added addresses. 3690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public UpdateLinkPropertyResult updateLinkPropertiesDataCallStateSync(DataCallState newState) { 3710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = 3720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sendMessageSynchronously(REQ_UPDATE_LINK_PROPERTIES_DATA_CALL_STATE, newState); 3730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((response != null) && 3740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville (response.what == RSP_UPDATE_LINK_PROPERTIES_DATA_CALL_STATE)) { 3750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return rspUpdateLinkPropertiesDataCallState(response); 3760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 3770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville log("getLinkProperties error response=" + response); 3780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return new UpdateLinkPropertyResult(new LinkProperties()); 3790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Request the connections LinkCapabilities. 3840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Response {@link #rspLinkCapabilities} 3850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void reqLinkCapabilities() { 3870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sendMessage(REQ_GET_LINK_CAPABILITIES); 3880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("reqLinkCapabilities"); 3890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Evaluate RSP_GET_LINK_CAPABILITIES 3930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 3940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param response 3950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return LinkCapabilites, maybe null. 3960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public LinkCapabilities rspLinkCapabilities(Message response) { 3980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville LinkCapabilities retVal = (LinkCapabilities) response.obj; 3990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("rspLinkCapabilities=" + retVal); 4000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return retVal; 4010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Get the connections LinkCapabilities. 4050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 4060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return LinkCapabilities or null if an error 4070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public LinkCapabilities getLinkCapabilitiesSync() { 4090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_GET_LINK_CAPABILITIES); 4100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((response != null) && (response.what == RSP_GET_LINK_CAPABILITIES)) { 4110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return rspLinkCapabilities(response); 4120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 4130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville log("getLinkCapabilities error response=" + response); 4140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return null; 4150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Request the connections LinkCapabilities. 4200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Response RSP_RESET when complete 4210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void reqReset() { 4230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sendMessage(REQ_RESET); 4240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("reqReset"); 4250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Reset the connection and wait for it to complete. 4290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void resetSync() { 4310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_RESET); 4320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((response != null) && (response.what == RSP_RESET)) { 4330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("restSync ok"); 4340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 4350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville log("restSync error response=" + response); 4360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Request to add ApnContext association. 4410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Response RSP_ADD_APNCONTEXT when complete. 4420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void reqAddApnContext(ApnContext apnContext) { 4440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_ADD_APNCONTEXT, apnContext); 4450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("reqAddApnContext"); 4460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Add ApnContext association synchronoulsy. 4500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 4510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param ApnContext to associate 4520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void addApnContextSync(ApnContext apnContext) { 4540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_ADD_APNCONTEXT, apnContext); 4550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((response != null) && (response.what == RSP_ADD_APNCONTEXT)) { 4560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("addApnContext ok"); 4570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 4580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville log("addApnContext error response=" + response); 4590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Request to remove ApnContext association. 4640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Response RSP_REMOVE_APNCONTEXT when complete. 4650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void reqRemomveApnContext(ApnContext apnContext) { 4670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_REMOVE_APNCONTEXT, apnContext); 4680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("reqRemomveApnContext"); 4690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Remove ApnContext associateion. 4730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 4740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param ApnContext to dissociate 4750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void removeApnContextSync(ApnContext apnContext) { 4770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_REMOVE_APNCONTEXT, apnContext); 4780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((response != null) && (response.what == RSP_REMOVE_APNCONTEXT)) { 4790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("removeApnContext ok"); 4800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 4810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville log("removeApnContext error response=" + response); 4820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Request to retrive ApnContext List associated with DC. 4870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Response RSP_GET_APNCONTEXT_LIST when complete. 4880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void reqGetApnList(ApnContext apnContext) { 4900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_GET_APNCONTEXT_LIST); 4910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("reqGetApnList"); 4920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Retrieve Collection of ApnContext from the response message. 4960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 4970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param Message sent from DC in response to REQ_GET_APNCONTEXT_LIST. 4980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return Collection of ApnContext 4990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public Collection<ApnContext> rspApnList(Message response) { 5010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Collection<ApnContext> retVal = (Collection<ApnContext>)response.obj; 5020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (retVal == null) retVal = new ArrayList<ApnContext>(); 5030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return retVal; 5040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 5070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Retrieve collection of ApnContext currently associated with 5080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * the DataConnectionA synchronously. 5090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 5100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return Collection of ApnContext 5110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public Collection<ApnContext> getApnListSync() { 5130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_GET_APNCONTEXT_LIST); 5140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((response != null) && (response.what == RSP_GET_APNCONTEXT_LIST)) { 5150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("getApnList ok"); 5160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return rspApnList(response); 5170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 5180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville log("getApnList error response=" + response); 5190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // return dummy list with no entry 5200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return new ArrayList<ApnContext>(); 5210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 5250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Request to set Pending ReconnectIntent to DC. 5260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Response RSP_SET_RECONNECT_INTENT when complete. 5270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void reqSetReconnectIntent(PendingIntent intent) { 5290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_SET_RECONNECT_INTENT, intent); 5300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("reqSetReconnectIntent"); 5310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 5340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Set pending reconnect intent to DC synchronously. 5350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 5360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param PendingIntent to set. 5370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void setReconnectIntentSync(PendingIntent intent) { 5390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_SET_RECONNECT_INTENT, intent); 5400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((response != null) && (response.what == RSP_SET_RECONNECT_INTENT)) { 5410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("setReconnectIntent ok"); 5420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 5430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville log("setReconnectIntent error response=" + response); 5440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 5480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Request to get Pending ReconnectIntent to DC. 5490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Response RSP_GET_RECONNECT_INTENT when complete. 5500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void reqGetReconnectIntent() { 5520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_GET_RECONNECT_INTENT); 5530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("reqGetReconnectIntent"); 5540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 5570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Retrieve reconnect intent from response message from DC. 5580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 5590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param Message which contains the reconnect intent. 5600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return PendingIntent from the response. 5610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public PendingIntent rspReconnectIntent(Message response) { 5630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville PendingIntent retVal = (PendingIntent) response.obj; 5640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return retVal; 5650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 5680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Retrieve reconnect intent currently set in DC synchronously. 5690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 5700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return PendingIntent reconnect intent current ly set in DC 5710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public PendingIntent getReconnectIntentSync() { 5730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Message response = sendMessageSynchronously(REQ_GET_RECONNECT_INTENT); 5740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if ((response != null) && (response.what == RSP_GET_RECONNECT_INTENT)) { 5750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (DBG) log("getReconnectIntent ok"); 5760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return rspReconnectIntent(response); 5770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 5780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville log("getReconnectIntent error response=" + response); 5790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return null; 5800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Override 5840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String toString() { 5850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return dataConnection.getName(); 5860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private void log(String s) { 5890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville android.util.Log.d(mLogTag, "DataConnectionAc " + s); 5900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville} 592