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