Home | History | Annotate | Download | only in cat
      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 cmdDet;
     27 
     28     CommandParams(CommandDetails cmdDet) {
     29         this.cmdDet = cmdDet;
     30     }
     31 
     32     AppInterface.CommandType getCommandType() {
     33         return AppInterface.CommandType.fromInt(cmdDet.typeOfCommand);
     34     }
     35 
     36     boolean setIcon(Bitmap icon) { return true; }
     37 
     38     @Override
     39     public String toString() {
     40         return cmdDet.toString();
     41     }
     42 }
     43 
     44 class DisplayTextParams extends CommandParams {
     45     TextMessage textMsg;
     46 
     47     DisplayTextParams(CommandDetails cmdDet, TextMessage textMsg) {
     48         super(cmdDet);
     49         this.textMsg = textMsg;
     50     }
     51 
     52     boolean setIcon(Bitmap icon) {
     53         if (icon != null && textMsg != null) {
     54             textMsg.icon = icon;
     55             return true;
     56         }
     57         return false;
     58     }
     59 }
     60 
     61 class LaunchBrowserParams extends CommandParams {
     62     TextMessage confirmMsg;
     63     LaunchBrowserMode mode;
     64     String url;
     65 
     66     LaunchBrowserParams(CommandDetails cmdDet, TextMessage confirmMsg,
     67             String url, LaunchBrowserMode mode) {
     68         super(cmdDet);
     69         this.confirmMsg = confirmMsg;
     70         this.mode = mode;
     71         this.url = url;
     72     }
     73 
     74     boolean setIcon(Bitmap icon) {
     75         if (icon != null && confirmMsg != null) {
     76             confirmMsg.icon = icon;
     77             return true;
     78         }
     79         return false;
     80     }
     81 }
     82 
     83 class PlayToneParams extends CommandParams {
     84     TextMessage textMsg;
     85     ToneSettings settings;
     86 
     87     PlayToneParams(CommandDetails cmdDet, TextMessage textMsg,
     88             Tone tone, Duration duration, boolean vibrate) {
     89         super(cmdDet);
     90         this.textMsg = textMsg;
     91         this.settings = new ToneSettings(duration, tone, vibrate);
     92     }
     93 
     94     boolean setIcon(Bitmap icon) {
     95         if (icon != null && textMsg != null) {
     96             textMsg.icon = icon;
     97             return true;
     98         }
     99         return false;
    100     }
    101 }
    102 
    103 class CallSetupParams extends CommandParams {
    104     TextMessage confirmMsg;
    105     TextMessage callMsg;
    106 
    107     CallSetupParams(CommandDetails cmdDet, TextMessage confirmMsg,
    108             TextMessage callMsg) {
    109         super(cmdDet);
    110         this.confirmMsg = confirmMsg;
    111         this.callMsg = callMsg;
    112     }
    113 
    114     boolean setIcon(Bitmap icon) {
    115         if (icon == null) {
    116             return false;
    117         }
    118         if (confirmMsg != null && confirmMsg.icon == null) {
    119             confirmMsg.icon = icon;
    120             return true;
    121         } else if (callMsg != null && callMsg.icon == null) {
    122             callMsg.icon = icon;
    123             return true;
    124         }
    125         return false;
    126     }
    127 }
    128 
    129 class SelectItemParams extends CommandParams {
    130     Menu menu = null;
    131     boolean loadTitleIcon = false;
    132 
    133     SelectItemParams(CommandDetails cmdDet, Menu menu, boolean loadTitleIcon) {
    134         super(cmdDet);
    135         this.menu = menu;
    136         this.loadTitleIcon = loadTitleIcon;
    137     }
    138 
    139     boolean setIcon(Bitmap icon) {
    140         if (icon != null && menu != null) {
    141             if (loadTitleIcon && menu.titleIcon == null) {
    142                 menu.titleIcon = icon;
    143             } else {
    144                 for (Item item : menu.items) {
    145                     if (item.icon != null) {
    146                         continue;
    147                     }
    148                     item.icon = icon;
    149                     break;
    150                 }
    151             }
    152             return true;
    153         }
    154         return false;
    155     }
    156 }
    157 
    158 class GetInputParams extends CommandParams {
    159     Input input = null;
    160 
    161     GetInputParams(CommandDetails cmdDet, Input input) {
    162         super(cmdDet);
    163         this.input = input;
    164     }
    165 
    166     boolean setIcon(Bitmap icon) {
    167         if (icon != null && input != null) {
    168             input.icon = icon;
    169         }
    170         return true;
    171     }
    172 }
    173 
    174 /*
    175  * BIP (Bearer Independent Protocol) is the mechanism for SIM card applications
    176  * to access data connection through the mobile device.
    177  *
    178  * SIM utilizes proactive commands (OPEN CHANNEL, CLOSE CHANNEL, SEND DATA and
    179  * RECEIVE DATA to control/read/write data for BIP. Refer to ETSI TS 102 223 for
    180  * the details of proactive commands procedures and their structures.
    181  */
    182 class BIPClientParams extends CommandParams {
    183     TextMessage textMsg;
    184     boolean bHasAlphaId;
    185 
    186     BIPClientParams(CommandDetails cmdDet, TextMessage textMsg, boolean has_alpha_id) {
    187         super(cmdDet);
    188         this.textMsg = textMsg;
    189         this.bHasAlphaId = has_alpha_id;
    190     }
    191 
    192     boolean setIcon(Bitmap icon) {
    193         if (icon != null && textMsg != null) {
    194             textMsg.icon = icon;
    195             return true;
    196         }
    197         return false;
    198     }
    199 }
    200