/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.internal.telephony.cat;
import android.graphics.Bitmap;
/**
* Container class for proactive command parameters.
*
*/
class CommandParams {
CommandDetails mCmdDet;
CommandParams(CommandDetails cmdDet) {
mCmdDet = cmdDet;
}
AppInterface.CommandType getCommandType() {
return AppInterface.CommandType.fromInt(mCmdDet.typeOfCommand);
}
boolean setIcon(Bitmap icon) { return true; }
@Override
public String toString() {
return mCmdDet.toString();
}
}
class DisplayTextParams extends CommandParams {
TextMessage mTextMsg;
DisplayTextParams(CommandDetails cmdDet, TextMessage textMsg) {
super(cmdDet);
mTextMsg = textMsg;
}
@Override
boolean setIcon(Bitmap icon) {
if (icon != null && mTextMsg != null) {
mTextMsg.icon = icon;
return true;
}
return false;
}
@Override
public String toString() {
return "TextMessage=" + mTextMsg + " " + super.toString();
}
}
class LaunchBrowserParams extends CommandParams {
TextMessage mConfirmMsg;
LaunchBrowserMode mMode;
String mUrl;
LaunchBrowserParams(CommandDetails cmdDet, TextMessage confirmMsg,
String url, LaunchBrowserMode mode) {
super(cmdDet);
mConfirmMsg = confirmMsg;
mMode = mode;
mUrl = url;
}
@Override
boolean setIcon(Bitmap icon) {
if (icon != null && mConfirmMsg != null) {
mConfirmMsg.icon = icon;
return true;
}
return false;
}
@Override
public String toString() {
return "TextMessage=" + mConfirmMsg + " " + super.toString();
}
}
class SetEventListParams extends CommandParams {
int[] mEventInfo;
SetEventListParams(CommandDetails cmdDet, int[] eventInfo) {
super(cmdDet);
this.mEventInfo = eventInfo;
}
}
class PlayToneParams extends CommandParams {
TextMessage mTextMsg;
ToneSettings mSettings;
PlayToneParams(CommandDetails cmdDet, TextMessage textMsg,
Tone tone, Duration duration, boolean vibrate) {
super(cmdDet);
mTextMsg = textMsg;
mSettings = new ToneSettings(duration, tone, vibrate);
}
@Override
boolean setIcon(Bitmap icon) {
if (icon != null && mTextMsg != null) {
mTextMsg.icon = icon;
return true;
}
return false;
}
}
class CallSetupParams extends CommandParams {
TextMessage mConfirmMsg;
TextMessage mCallMsg;
CallSetupParams(CommandDetails cmdDet, TextMessage confirmMsg,
TextMessage callMsg) {
super(cmdDet);
mConfirmMsg = confirmMsg;
mCallMsg = callMsg;
}
@Override
boolean setIcon(Bitmap icon) {
if (icon == null) {
return false;
}
if (mConfirmMsg != null && mConfirmMsg.icon == null) {
mConfirmMsg.icon = icon;
return true;
} else if (mCallMsg != null && mCallMsg.icon == null) {
mCallMsg.icon = icon;
return true;
}
return false;
}
}
class SelectItemParams extends CommandParams {
Menu mMenu = null;
boolean mLoadTitleIcon = false;
SelectItemParams(CommandDetails cmdDet, Menu menu, boolean loadTitleIcon) {
super(cmdDet);
mMenu = menu;
mLoadTitleIcon = loadTitleIcon;
}
@Override
boolean setIcon(Bitmap icon) {
if (icon != null && mMenu != null) {
if (mLoadTitleIcon && mMenu.titleIcon == null) {
mMenu.titleIcon = icon;
} else {
for (Item item : mMenu.items) {
if (item.icon != null) {
continue;
}
item.icon = icon;
break;
}
}
return true;
}
return false;
}
}
class GetInputParams extends CommandParams {
Input mInput = null;
GetInputParams(CommandDetails cmdDet, Input input) {
super(cmdDet);
mInput = input;
}
@Override
boolean setIcon(Bitmap icon) {
if (icon != null && mInput != null) {
mInput.icon = icon;
}
return true;
}
}
/*
* BIP (Bearer Independent Protocol) is the mechanism for SIM card applications
* to access data connection through the mobile device.
*
* SIM utilizes proactive commands (OPEN CHANNEL, CLOSE CHANNEL, SEND DATA and
* RECEIVE DATA to control/read/write data for BIP. Refer to ETSI TS 102 223 for
* the details of proactive commands procedures and their structures.
*/
class BIPClientParams extends CommandParams {
TextMessage mTextMsg;
boolean mHasAlphaId;
BIPClientParams(CommandDetails cmdDet, TextMessage textMsg, boolean has_alpha_id) {
super(cmdDet);
mTextMsg = textMsg;
mHasAlphaId = has_alpha_id;
}
@Override
boolean setIcon(Bitmap icon) {
if (icon != null && mTextMsg != null) {
mTextMsg.icon = icon;
return true;
}
return false;
}
}