1 /* 2 * Copyright (C) 2007 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.internal.telephony.cat; 18 19 import android.graphics.Bitmap; 20 21 /** 22 * Container class for proactive command parameters. 23 * 24 */ 25 class CommandParams { 26 CommandDetails mCmdDet; 27 28 CommandParams(CommandDetails cmdDet) { 29 mCmdDet = cmdDet; 30 } 31 32 AppInterface.CommandType getCommandType() { 33 return AppInterface.CommandType.fromInt(mCmdDet.typeOfCommand); 34 } 35 36 boolean setIcon(Bitmap icon) { return true; } 37 38 @Override 39 public String toString() { 40 return mCmdDet.toString(); 41 } 42 } 43 44 class DisplayTextParams extends CommandParams { 45 TextMessage mTextMsg; 46 47 DisplayTextParams(CommandDetails cmdDet, TextMessage textMsg) { 48 super(cmdDet); 49 mTextMsg = textMsg; 50 } 51 52 @Override 53 boolean setIcon(Bitmap icon) { 54 if (icon != null && mTextMsg != null) { 55 mTextMsg.icon = icon; 56 return true; 57 } 58 return false; 59 } 60 61 @Override 62 public String toString() { 63 return "TextMessage=" + mTextMsg + " " + super.toString(); 64 } 65 } 66 67 class LaunchBrowserParams extends CommandParams { 68 TextMessage mConfirmMsg; 69 LaunchBrowserMode mMode; 70 String mUrl; 71 72 LaunchBrowserParams(CommandDetails cmdDet, TextMessage confirmMsg, 73 String url, LaunchBrowserMode mode) { 74 super(cmdDet); 75 mConfirmMsg = confirmMsg; 76 mMode = mode; 77 mUrl = url; 78 } 79 80 @Override 81 boolean setIcon(Bitmap icon) { 82 if (icon != null && mConfirmMsg != null) { 83 mConfirmMsg.icon = icon; 84 return true; 85 } 86 return false; 87 } 88 89 @Override 90 public String toString() { 91 return "TextMessage=" + mConfirmMsg + " " + super.toString(); 92 } 93 } 94 95 class SetEventListParams extends CommandParams { 96 int[] mEventInfo; 97 SetEventListParams(CommandDetails cmdDet, int[] eventInfo) { 98 super(cmdDet); 99 this.mEventInfo = eventInfo; 100 } 101 } 102 103 class PlayToneParams extends CommandParams { 104 TextMessage mTextMsg; 105 ToneSettings mSettings; 106 107 PlayToneParams(CommandDetails cmdDet, TextMessage textMsg, 108 Tone tone, Duration duration, boolean vibrate) { 109 super(cmdDet); 110 mTextMsg = textMsg; 111 mSettings = new ToneSettings(duration, tone, vibrate); 112 } 113 114 @Override 115 boolean setIcon(Bitmap icon) { 116 if (icon != null && mTextMsg != null) { 117 mTextMsg.icon = icon; 118 return true; 119 } 120 return false; 121 } 122 } 123 124 class CallSetupParams extends CommandParams { 125 TextMessage mConfirmMsg; 126 TextMessage mCallMsg; 127 128 CallSetupParams(CommandDetails cmdDet, TextMessage confirmMsg, 129 TextMessage callMsg) { 130 super(cmdDet); 131 mConfirmMsg = confirmMsg; 132 mCallMsg = callMsg; 133 } 134 135 @Override 136 boolean setIcon(Bitmap icon) { 137 if (icon == null) { 138 return false; 139 } 140 if (mConfirmMsg != null && mConfirmMsg.icon == null) { 141 mConfirmMsg.icon = icon; 142 return true; 143 } else if (mCallMsg != null && mCallMsg.icon == null) { 144 mCallMsg.icon = icon; 145 return true; 146 } 147 return false; 148 } 149 } 150 151 class SelectItemParams extends CommandParams { 152 Menu mMenu = null; 153 boolean mLoadTitleIcon = false; 154 155 SelectItemParams(CommandDetails cmdDet, Menu menu, boolean loadTitleIcon) { 156 super(cmdDet); 157 mMenu = menu; 158 mLoadTitleIcon = loadTitleIcon; 159 } 160 161 @Override 162 boolean setIcon(Bitmap icon) { 163 if (icon != null && mMenu != null) { 164 if (mLoadTitleIcon && mMenu.titleIcon == null) { 165 mMenu.titleIcon = icon; 166 } else { 167 for (Item item : mMenu.items) { 168 if (item.icon != null) { 169 continue; 170 } 171 item.icon = icon; 172 break; 173 } 174 } 175 return true; 176 } 177 return false; 178 } 179 } 180 181 class GetInputParams extends CommandParams { 182 Input mInput = null; 183 184 GetInputParams(CommandDetails cmdDet, Input input) { 185 super(cmdDet); 186 mInput = input; 187 } 188 189 @Override 190 boolean setIcon(Bitmap icon) { 191 if (icon != null && mInput != null) { 192 mInput.icon = icon; 193 } 194 return true; 195 } 196 } 197 198 /* 199 * BIP (Bearer Independent Protocol) is the mechanism for SIM card applications 200 * to access data connection through the mobile device. 201 * 202 * SIM utilizes proactive commands (OPEN CHANNEL, CLOSE CHANNEL, SEND DATA and 203 * RECEIVE DATA to control/read/write data for BIP. Refer to ETSI TS 102 223 for 204 * the details of proactive commands procedures and their structures. 205 */ 206 class BIPClientParams extends CommandParams { 207 TextMessage mTextMsg; 208 boolean mHasAlphaId; 209 210 BIPClientParams(CommandDetails cmdDet, TextMessage textMsg, boolean has_alpha_id) { 211 super(cmdDet); 212 mTextMsg = textMsg; 213 mHasAlphaId = has_alpha_id; 214 } 215 216 @Override 217 boolean setIcon(Bitmap icon) { 218 if (icon != null && mTextMsg != null) { 219 mTextMsg.icon = icon; 220 return true; 221 } 222 return false; 223 } 224 } 225