CatCmdMessage.java revision 86968438e444728053137c764cc37cf9c0a15d16
10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/* 20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2007 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.cat; 180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 190825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Parcel; 200825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Parcelable; 210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/** 230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Class used to pass CAT messages from telephony to application. Application 240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * should call getXXX() to get commands's specific values. 250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 270825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic class CatCmdMessage implements Parcelable { 280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // members 290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CommandDetails mCmdDet; 300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private TextMessage mTextMsg; 310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private Menu mMenu; 320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private Input mInput; 330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private BrowserSettings mBrowserSettings = null; 340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private ToneSettings mToneSettings = null; 350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private CallSettings mCallSettings = null; 360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /* 380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Container for Launch Browser command settings. 390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public class BrowserSettings { 410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String url; 420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public LaunchBrowserMode mode; 430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /* 460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Container for Call Setup command settings. 470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public class CallSettings { 490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public TextMessage confirmMsg; 500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public TextMessage callMsg; 510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CatCmdMessage(CommandParams cmdParams) { 540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCmdDet = cmdParams.cmdDet; 550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch(getCmdType()) { 560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SET_UP_MENU: 570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SELECT_ITEM: 580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mMenu = ((SelectItemParams) cmdParams).menu; 590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case DISPLAY_TEXT: 610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SET_UP_IDLE_MODE_TEXT: 620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SEND_DTMF: 630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SEND_SMS: 640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SEND_SS: 650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SEND_USSD: 660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mTextMsg = ((DisplayTextParams) cmdParams).textMsg; 670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case GET_INPUT: 690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case GET_INKEY: 700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mInput = ((GetInputParams) cmdParams).input; 710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case LAUNCH_BROWSER: 730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mTextMsg = ((LaunchBrowserParams) cmdParams).confirmMsg; 740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mBrowserSettings = new BrowserSettings(); 750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mBrowserSettings.url = ((LaunchBrowserParams) cmdParams).url; 760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mBrowserSettings.mode = ((LaunchBrowserParams) cmdParams).mode; 770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case PLAY_TONE: 790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville PlayToneParams params = (PlayToneParams) cmdParams; 800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mToneSettings = params.settings; 810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mTextMsg = params.textMsg; 820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 8386968438e444728053137c764cc37cf9c0a15d16Siddartha Pothapragada case GET_CHANNEL_STATUS: 8486968438e444728053137c764cc37cf9c0a15d16Siddartha Pothapragada mTextMsg = ((CallSetupParams) cmdParams).confirmMsg; 8586968438e444728053137c764cc37cf9c0a15d16Siddartha Pothapragada break; 860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SET_UP_CALL: 870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallSettings = new CallSettings(); 880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallSettings.confirmMsg = ((CallSetupParams) cmdParams).confirmMsg; 890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallSettings.callMsg = ((CallSetupParams) cmdParams).callMsg; 900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case OPEN_CHANNEL: 920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case CLOSE_CHANNEL: 930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case RECEIVE_DATA: 940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SEND_DATA: 950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville BIPClientParams param = (BIPClientParams) cmdParams; 960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mTextMsg = param.textMsg; 970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public CatCmdMessage(Parcel in) { 1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCmdDet = in.readParcelable(null); 1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mTextMsg = in.readParcelable(null); 1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mMenu = in.readParcelable(null); 1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mInput = in.readParcelable(null); 1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (getCmdType()) { 1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case LAUNCH_BROWSER: 1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mBrowserSettings = new BrowserSettings(); 1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mBrowserSettings.url = in.readString(); 1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mBrowserSettings.mode = LaunchBrowserMode.values()[in.readInt()]; 1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case PLAY_TONE: 1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mToneSettings = in.readParcelable(null); 1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SET_UP_CALL: 1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallSettings = new CallSettings(); 1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallSettings.confirmMsg = in.readParcelable(null); 1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallSettings.callMsg = in.readParcelable(null); 1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void writeToParcel(Parcel dest, int flags) { 1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeParcelable(mCmdDet, 0); 1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeParcelable(mTextMsg, 0); 1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeParcelable(mMenu, 0); 1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeParcelable(mInput, 0); 1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch(getCmdType()) { 1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case LAUNCH_BROWSER: 1300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeString(mBrowserSettings.url); 1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeInt(mBrowserSettings.mode.ordinal()); 1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case PLAY_TONE: 1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeParcelable(mToneSettings, 0); 1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SET_UP_CALL: 1370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeParcelable(mCallSettings.confirmMsg, 0); 1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeParcelable(mCallSettings.callMsg, 0); 1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Parcelable.Creator<CatCmdMessage> CREATOR = new Parcelable.Creator<CatCmdMessage>() { 1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public CatCmdMessage createFromParcel(Parcel in) { 1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return new CatCmdMessage(in); 1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public CatCmdMessage[] newArray(int size) { 1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return new CatCmdMessage[size]; 1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville }; 1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int describeContents() { 1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return 0; 1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /* external API to be used by application */ 1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public AppInterface.CommandType getCmdType() { 1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return AppInterface.CommandType.fromInt(mCmdDet.typeOfCommand); 1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public Menu getMenu() { 1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mMenu; 1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public Input geInput() { 1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mInput; 1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public TextMessage geTextMessage() { 1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mTextMsg; 1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public BrowserSettings getBrowserSettings() { 1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mBrowserSettings; 1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public ToneSettings getToneSettings() { 1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mToneSettings; 1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public CallSettings getCallSettings() { 1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mCallSettings; 1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville} 186