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.graphics.Bitmap;
200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/**
220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Container class for proactive command parameters.
230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
250825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleclass CommandParams {
260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    CommandDetails cmdDet;
270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    CommandParams(CommandDetails cmdDet) {
290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this.cmdDet = cmdDet;
300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    AppInterface.CommandType getCommandType() {
330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return AppInterface.CommandType.fromInt(cmdDet.typeOfCommand);
340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    boolean setIcon(Bitmap icon) { return true; }
370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Override
390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String toString() {
400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return cmdDet.toString();
410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
440825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleclass DisplayTextParams extends CommandParams {
450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    TextMessage textMsg;
460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    DisplayTextParams(CommandDetails cmdDet, TextMessage textMsg) {
480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        super(cmdDet);
490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this.textMsg = textMsg;
500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    boolean setIcon(Bitmap icon) {
530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (icon != null && textMsg != null) {
540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            textMsg.icon = icon;
550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return true;
560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return false;
580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
610825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleclass LaunchBrowserParams extends CommandParams {
620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    TextMessage confirmMsg;
630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    LaunchBrowserMode mode;
640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    String url;
650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    LaunchBrowserParams(CommandDetails cmdDet, TextMessage confirmMsg,
670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            String url, LaunchBrowserMode mode) {
680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        super(cmdDet);
690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this.confirmMsg = confirmMsg;
700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this.mode = mode;
710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this.url = url;
720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    boolean setIcon(Bitmap icon) {
750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (icon != null && confirmMsg != null) {
760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            confirmMsg.icon = icon;
770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return true;
780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return false;
800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
830825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleclass PlayToneParams extends CommandParams {
840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    TextMessage textMsg;
850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    ToneSettings settings;
860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    PlayToneParams(CommandDetails cmdDet, TextMessage textMsg,
880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Tone tone, Duration duration, boolean vibrate) {
890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        super(cmdDet);
900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this.textMsg = textMsg;
910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this.settings = new ToneSettings(duration, tone, vibrate);
920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    boolean setIcon(Bitmap icon) {
950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (icon != null && textMsg != null) {
960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            textMsg.icon = icon;
970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return true;
980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return false;
1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleclass CallSetupParams extends CommandParams {
1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    TextMessage confirmMsg;
1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    TextMessage callMsg;
1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    CallSetupParams(CommandDetails cmdDet, TextMessage confirmMsg,
1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            TextMessage callMsg) {
1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        super(cmdDet);
1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this.confirmMsg = confirmMsg;
1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this.callMsg = callMsg;
1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    boolean setIcon(Bitmap icon) {
1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (icon == null) {
1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return false;
1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (confirmMsg != null && confirmMsg.icon == null) {
1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            confirmMsg.icon = icon;
1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return true;
1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } else if (callMsg != null && callMsg.icon == null) {
1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            callMsg.icon = icon;
1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return true;
1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return false;
1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleclass SelectItemParams extends CommandParams {
1300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    Menu menu = null;
1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    boolean loadTitleIcon = false;
1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    SelectItemParams(CommandDetails cmdDet, Menu menu, boolean loadTitleIcon) {
1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        super(cmdDet);
1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this.menu = menu;
1360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this.loadTitleIcon = loadTitleIcon;
1370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    boolean setIcon(Bitmap icon) {
1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (icon != null && menu != null) {
1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (loadTitleIcon && menu.titleIcon == null) {
1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                menu.titleIcon = icon;
1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            } else {
1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                for (Item item : menu.items) {
1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    if (item.icon != null) {
1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        continue;
1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    }
1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    item.icon = icon;
1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    break;
1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return true;
1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return false;
1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleclass GetInputParams extends CommandParams {
1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    Input input = null;
1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    GetInputParams(CommandDetails cmdDet, Input input) {
1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        super(cmdDet);
1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this.input = input;
1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    boolean setIcon(Bitmap icon) {
1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (icon != null && input != null) {
1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            input.icon = icon;
1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return true;
1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/*
1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * BIP (Bearer Independent Protocol) is the mechanism for SIM card applications
1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * to access data connection through the mobile device.
1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * SIM utilizes proactive commands (OPEN CHANNEL, CLOSE CHANNEL, SEND DATA and
1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * RECEIVE DATA to control/read/write data for BIP. Refer to ETSI TS 102 223 for
1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * the details of proactive commands procedures and their structures.
1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleclass BIPClientParams extends CommandParams {
1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    TextMessage textMsg;
1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    boolean bHasAlphaId;
1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    BIPClientParams(CommandDetails cmdDet, TextMessage textMsg, boolean has_alpha_id) {
1870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        super(cmdDet);
1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this.textMsg = textMsg;
1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this.bHasAlphaId = has_alpha_id;
1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    boolean setIcon(Bitmap icon) {
1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (icon != null && textMsg != null) {
1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            textMsg.icon = icon;
1950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return true;
1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return false;
1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
200