CatCmdMessage.java revision 22d85a8e3a575a6d01d2c788587971657dfe20c6
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) { 5422d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mCmdDet = cmdParams.mCmdDet; 550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch(getCmdType()) { 560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SET_UP_MENU: 570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SELECT_ITEM: 5822d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mMenu = ((SelectItemParams) cmdParams).mMenu; 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: 6622d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mTextMsg = ((DisplayTextParams) cmdParams).mTextMsg; 670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case GET_INPUT: 690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case GET_INKEY: 7022d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mInput = ((GetInputParams) cmdParams).mInput; 710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case LAUNCH_BROWSER: 7322d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mTextMsg = ((LaunchBrowserParams) cmdParams).mConfirmMsg; 740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mBrowserSettings = new BrowserSettings(); 7522d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mBrowserSettings.url = ((LaunchBrowserParams) cmdParams).mUrl; 7622d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mBrowserSettings.mode = ((LaunchBrowserParams) cmdParams).mMode; 770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case PLAY_TONE: 790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville PlayToneParams params = (PlayToneParams) cmdParams; 8022d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mToneSettings = params.mSettings; 8122d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mTextMsg = params.mTextMsg; 820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 8386968438e444728053137c764cc37cf9c0a15d16Siddartha Pothapragada case GET_CHANNEL_STATUS: 8422d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mTextMsg = ((CallSetupParams) cmdParams).mConfirmMsg; 8586968438e444728053137c764cc37cf9c0a15d16Siddartha Pothapragada break; 860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SET_UP_CALL: 870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallSettings = new CallSettings(); 8822d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mCallSettings.confirmMsg = ((CallSetupParams) cmdParams).mConfirmMsg; 8922d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mCallSettings.callMsg = ((CallSetupParams) cmdParams).mCallMsg; 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; 9622d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mTextMsg = param.mTextMsg; 970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 98cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville case PROVIDE_LOCAL_INFORMATION: 99cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville case REFRESH: 100cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville case SET_UP_EVENT_LIST: 101cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville default: 102cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville break; 1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public CatCmdMessage(Parcel in) { 1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCmdDet = in.readParcelable(null); 1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mTextMsg = in.readParcelable(null); 1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mMenu = in.readParcelable(null); 1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mInput = in.readParcelable(null); 1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch (getCmdType()) { 1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case LAUNCH_BROWSER: 1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mBrowserSettings = new BrowserSettings(); 1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mBrowserSettings.url = in.readString(); 1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mBrowserSettings.mode = LaunchBrowserMode.values()[in.readInt()]; 1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case PLAY_TONE: 1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mToneSettings = in.readParcelable(null); 1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SET_UP_CALL: 1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallSettings = new CallSettings(); 1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallSettings.confirmMsg = in.readParcelable(null); 1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mCallSettings.callMsg = in.readParcelable(null); 1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 125cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville default: 126cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville break; 1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 130cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void writeToParcel(Parcel dest, int flags) { 1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeParcelable(mCmdDet, 0); 1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeParcelable(mTextMsg, 0); 1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeParcelable(mMenu, 0); 1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeParcelable(mInput, 0); 1360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch(getCmdType()) { 1370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case LAUNCH_BROWSER: 1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeString(mBrowserSettings.url); 1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeInt(mBrowserSettings.mode.ordinal()); 1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case PLAY_TONE: 1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeParcelable(mToneSettings, 0); 1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case SET_UP_CALL: 1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeParcelable(mCallSettings.confirmMsg, 0); 1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville dest.writeParcelable(mCallSettings.callMsg, 0); 1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 148cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville default: 149cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville break; 1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Parcelable.Creator<CatCmdMessage> CREATOR = new Parcelable.Creator<CatCmdMessage>() { 154cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public CatCmdMessage createFromParcel(Parcel in) { 1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return new CatCmdMessage(in); 1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 159cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public CatCmdMessage[] newArray(int size) { 1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return new CatCmdMessage[size]; 1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville }; 1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 165cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville @Override 1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int describeContents() { 1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return 0; 1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /* external API to be used by application */ 1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public AppInterface.CommandType getCmdType() { 1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return AppInterface.CommandType.fromInt(mCmdDet.typeOfCommand); 1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public Menu getMenu() { 1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mMenu; 1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public Input geInput() { 1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mInput; 1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public TextMessage geTextMessage() { 1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mTextMsg; 1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public BrowserSettings getBrowserSettings() { 1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mBrowserSettings; 1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public ToneSettings getToneSettings() { 1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mToneSettings; 1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public CallSettings getCallSettings() { 1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mCallSettings; 1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville} 199