1/*
2 * Copyright (C) 2008 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
17package com.android.systemui.statusbar.policy;
18
19import com.android.systemui.R;
20import com.android.systemui.statusbar.policy.MobileSignalController.MobileIconGroup;
21
22class TelephonyIcons {
23    //***** Signal strength icons
24
25    static final int TELEPHONY_NUM_LEVELS = 5;
26
27    //GSM/UMTS
28    static final int TELEPHONY_NO_NETWORK = R.drawable.stat_sys_signal_null;
29
30    static final int[][] TELEPHONY_SIGNAL_STRENGTH = {
31        { R.drawable.stat_sys_signal_0,
32          R.drawable.stat_sys_signal_1,
33          R.drawable.stat_sys_signal_2,
34          R.drawable.stat_sys_signal_3,
35          R.drawable.stat_sys_signal_4 },
36        { R.drawable.stat_sys_signal_0_fully,
37          R.drawable.stat_sys_signal_1_fully,
38          R.drawable.stat_sys_signal_2_fully,
39          R.drawable.stat_sys_signal_3_fully,
40          R.drawable.stat_sys_signal_4_fully }
41    };
42
43    static final int QS_TELEPHONY_NO_NETWORK = R.drawable.ic_qs_signal_no_signal;
44
45    static final int[][] QS_TELEPHONY_SIGNAL_STRENGTH = {
46        { R.drawable.ic_qs_signal_0,
47          R.drawable.ic_qs_signal_1,
48          R.drawable.ic_qs_signal_2,
49          R.drawable.ic_qs_signal_3,
50          R.drawable.ic_qs_signal_4 },
51        { R.drawable.ic_qs_signal_full_0,
52          R.drawable.ic_qs_signal_full_1,
53          R.drawable.ic_qs_signal_full_2,
54          R.drawable.ic_qs_signal_full_3,
55          R.drawable.ic_qs_signal_full_4 }
56    };
57
58    static final int[][] TELEPHONY_SIGNAL_STRENGTH_ROAMING = {
59        { R.drawable.stat_sys_signal_0,
60          R.drawable.stat_sys_signal_1,
61          R.drawable.stat_sys_signal_2,
62          R.drawable.stat_sys_signal_3,
63          R.drawable.stat_sys_signal_4 },
64        { R.drawable.stat_sys_signal_0_fully,
65          R.drawable.stat_sys_signal_1_fully,
66          R.drawable.stat_sys_signal_2_fully,
67          R.drawable.stat_sys_signal_3_fully,
68          R.drawable.stat_sys_signal_4_fully }
69    };
70
71    //CarrierNetworkChange
72    static final int[][] TELEPHONY_CARRIER_NETWORK_CHANGE = {
73            { R.drawable.stat_sys_signal_carrier_network_change_animation,
74              R.drawable.stat_sys_signal_carrier_network_change_animation,
75              R.drawable.stat_sys_signal_carrier_network_change_animation,
76              R.drawable.stat_sys_signal_carrier_network_change_animation,
77              R.drawable.stat_sys_signal_carrier_network_change_animation },
78            { R.drawable.stat_sys_signal_carrier_network_change_animation,
79              R.drawable.stat_sys_signal_carrier_network_change_animation,
80              R.drawable.stat_sys_signal_carrier_network_change_animation,
81              R.drawable.stat_sys_signal_carrier_network_change_animation,
82              R.drawable.stat_sys_signal_carrier_network_change_animation }
83        };
84
85    static final int[][] QS_TELEPHONY_CARRIER_NETWORK_CHANGE = {
86        { R.drawable.ic_qs_signal_carrier_network_change_animation,
87          R.drawable.ic_qs_signal_carrier_network_change_animation,
88          R.drawable.ic_qs_signal_carrier_network_change_animation,
89          R.drawable.ic_qs_signal_carrier_network_change_animation,
90          R.drawable.ic_qs_signal_carrier_network_change_animation },
91        { R.drawable.ic_qs_signal_carrier_network_change_animation,
92          R.drawable.ic_qs_signal_carrier_network_change_animation,
93          R.drawable.ic_qs_signal_carrier_network_change_animation,
94          R.drawable.ic_qs_signal_carrier_network_change_animation,
95          R.drawable.ic_qs_signal_carrier_network_change_animation }
96    };
97
98    static final int QS_DATA_R = R.drawable.ic_qs_signal_r;
99
100    //***** Data connection icons
101
102    //GSM/UMTS
103    static final int[][] DATA_G = {
104            { R.drawable.stat_sys_data_fully_connected_g,
105              R.drawable.stat_sys_data_fully_connected_g,
106              R.drawable.stat_sys_data_fully_connected_g,
107              R.drawable.stat_sys_data_fully_connected_g },
108            { R.drawable.stat_sys_data_fully_connected_g,
109              R.drawable.stat_sys_data_fully_connected_g,
110              R.drawable.stat_sys_data_fully_connected_g,
111              R.drawable.stat_sys_data_fully_connected_g }
112        };
113
114    static final int QS_DATA_G = R.drawable.ic_qs_signal_g;
115
116    static final int[][] DATA_3G = {
117            { R.drawable.stat_sys_data_fully_connected_3g,
118              R.drawable.stat_sys_data_fully_connected_3g,
119              R.drawable.stat_sys_data_fully_connected_3g,
120              R.drawable.stat_sys_data_fully_connected_3g },
121            { R.drawable.stat_sys_data_fully_connected_3g,
122              R.drawable.stat_sys_data_fully_connected_3g,
123              R.drawable.stat_sys_data_fully_connected_3g,
124              R.drawable.stat_sys_data_fully_connected_3g }
125        };
126
127    static final int QS_DATA_3G = R.drawable.ic_qs_signal_3g;
128
129    static final int[][] DATA_E = {
130            { R.drawable.stat_sys_data_fully_connected_e,
131              R.drawable.stat_sys_data_fully_connected_e,
132              R.drawable.stat_sys_data_fully_connected_e,
133              R.drawable.stat_sys_data_fully_connected_e },
134            { R.drawable.stat_sys_data_fully_connected_e,
135              R.drawable.stat_sys_data_fully_connected_e,
136              R.drawable.stat_sys_data_fully_connected_e,
137              R.drawable.stat_sys_data_fully_connected_e }
138        };
139
140    static final int QS_DATA_E = R.drawable.ic_qs_signal_e;
141
142    //3.5G
143    static final int[][] DATA_H = {
144            { R.drawable.stat_sys_data_fully_connected_h,
145              R.drawable.stat_sys_data_fully_connected_h,
146              R.drawable.stat_sys_data_fully_connected_h,
147              R.drawable.stat_sys_data_fully_connected_h },
148            { R.drawable.stat_sys_data_fully_connected_h,
149              R.drawable.stat_sys_data_fully_connected_h,
150              R.drawable.stat_sys_data_fully_connected_h,
151              R.drawable.stat_sys_data_fully_connected_h }
152    };
153
154    static final int QS_DATA_H = R.drawable.ic_qs_signal_h;
155
156    //CDMA
157    // Use 3G icons for EVDO data and 1x icons for 1XRTT data
158    static final int[][] DATA_1X = {
159            { R.drawable.stat_sys_data_fully_connected_1x,
160              R.drawable.stat_sys_data_fully_connected_1x,
161              R.drawable.stat_sys_data_fully_connected_1x,
162              R.drawable.stat_sys_data_fully_connected_1x },
163            { R.drawable.stat_sys_data_fully_connected_1x,
164              R.drawable.stat_sys_data_fully_connected_1x,
165              R.drawable.stat_sys_data_fully_connected_1x,
166              R.drawable.stat_sys_data_fully_connected_1x }
167            };
168
169    static final int QS_DATA_1X = R.drawable.ic_qs_signal_1x;
170
171    // LTE and eHRPD
172    static final int[][] DATA_4G = {
173            { R.drawable.stat_sys_data_fully_connected_4g,
174              R.drawable.stat_sys_data_fully_connected_4g,
175              R.drawable.stat_sys_data_fully_connected_4g,
176              R.drawable.stat_sys_data_fully_connected_4g },
177            { R.drawable.stat_sys_data_fully_connected_4g,
178              R.drawable.stat_sys_data_fully_connected_4g,
179              R.drawable.stat_sys_data_fully_connected_4g,
180              R.drawable.stat_sys_data_fully_connected_4g }
181        };
182
183    static final int QS_DATA_4G = R.drawable.ic_qs_signal_4g;
184
185    // LTE branded "LTE"
186    static final int[][] DATA_LTE = {
187            { R.drawable.stat_sys_data_fully_connected_lte,
188                    R.drawable.stat_sys_data_fully_connected_lte,
189                    R.drawable.stat_sys_data_fully_connected_lte,
190                    R.drawable.stat_sys_data_fully_connected_lte },
191            { R.drawable.stat_sys_data_fully_connected_lte,
192                    R.drawable.stat_sys_data_fully_connected_lte,
193                    R.drawable.stat_sys_data_fully_connected_lte,
194                    R.drawable.stat_sys_data_fully_connected_lte }
195    };
196
197    static final int QS_DATA_LTE = R.drawable.ic_qs_signal_lte;
198
199    static final int FLIGHT_MODE_ICON = R.drawable.stat_sys_airplane_mode;
200    static final int ROAMING_ICON = R.drawable.stat_sys_data_fully_connected_roam;
201    static final int ICON_LTE = R.drawable.stat_sys_data_fully_connected_lte;
202    static final int ICON_G = R.drawable.stat_sys_data_fully_connected_g;
203    static final int ICON_E = R.drawable.stat_sys_data_fully_connected_e;
204    static final int ICON_H = R.drawable.stat_sys_data_fully_connected_h;
205    static final int ICON_3G = R.drawable.stat_sys_data_fully_connected_3g;
206    static final int ICON_4G = R.drawable.stat_sys_data_fully_connected_4g;
207    static final int ICON_1X = R.drawable.stat_sys_data_fully_connected_1x;
208    static final int ICON_CARRIER_NETWORK_CHANGE =
209            R.drawable.stat_sys_signal_carrier_network_change_animation;
210
211    static final int ICON_DATA_DISABLED = R.drawable.stat_sys_data_disabled;
212
213    static final int QS_ICON_LTE = R.drawable.ic_qs_signal_lte;
214    static final int QS_ICON_3G = R.drawable.ic_qs_signal_3g;
215    static final int QS_ICON_4G = R.drawable.ic_qs_signal_4g;
216    static final int QS_ICON_1X = R.drawable.ic_qs_signal_1x;
217    static final int QS_ICON_CARRIER_NETWORK_CHANGE =
218            R.drawable.ic_qs_signal_carrier_network_change_animation;
219
220    static final int QS_ICON_DATA_DISABLED = R.drawable.ic_qs_data_disabled;
221
222    static final MobileIconGroup CARRIER_NETWORK_CHANGE = new MobileIconGroup(
223            "CARRIER_NETWORK_CHANGE",
224            TelephonyIcons.TELEPHONY_CARRIER_NETWORK_CHANGE,
225            TelephonyIcons.QS_TELEPHONY_CARRIER_NETWORK_CHANGE,
226            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
227            0, 0,
228            TelephonyIcons.ICON_CARRIER_NETWORK_CHANGE,
229            TelephonyIcons.QS_ICON_CARRIER_NETWORK_CHANGE,
230            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
231            R.string.accessibility_carrier_network_change_mode,
232            0,
233            false,
234            0
235            );
236
237    static final MobileIconGroup THREE_G = new MobileIconGroup(
238            "3G",
239            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
240            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
241            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
242            0, 0,
243            TelephonyIcons.TELEPHONY_NO_NETWORK,
244            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
245            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
246            R.string.accessibility_data_connection_3g,
247            TelephonyIcons.ICON_3G,
248            true,
249            TelephonyIcons.QS_DATA_3G
250            );
251
252    static final MobileIconGroup WFC = new MobileIconGroup(
253            "WFC",
254            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
255            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
256            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
257            0, 0,
258            TelephonyIcons.TELEPHONY_NO_NETWORK,
259            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
260            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
261            0, 0, false, 0
262            );
263
264    static final MobileIconGroup UNKNOWN = new MobileIconGroup(
265            "Unknown",
266            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
267            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
268            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
269            0, 0,
270            TelephonyIcons.TELEPHONY_NO_NETWORK,
271            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
272            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
273            0, 0, false, 0
274            );
275
276    static final MobileIconGroup E = new MobileIconGroup(
277            "E",
278            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
279            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
280            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
281            0, 0,
282            TelephonyIcons.TELEPHONY_NO_NETWORK,
283            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
284            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
285            R.string.accessibility_data_connection_edge,
286            TelephonyIcons.ICON_E,
287            false,
288            TelephonyIcons.QS_DATA_E
289            );
290
291    static final MobileIconGroup ONE_X = new MobileIconGroup(
292            "1X",
293            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
294            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
295            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
296            0, 0,
297            TelephonyIcons.TELEPHONY_NO_NETWORK,
298            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
299            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
300            R.string.accessibility_data_connection_cdma,
301            TelephonyIcons.ICON_1X,
302            true,
303            TelephonyIcons.QS_DATA_1X
304            );
305
306    static final MobileIconGroup G = new MobileIconGroup(
307            "G",
308            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
309            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
310            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
311            0, 0,
312            TelephonyIcons.TELEPHONY_NO_NETWORK,
313            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
314            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
315            R.string.accessibility_data_connection_gprs,
316            TelephonyIcons.ICON_G,
317            false,
318            TelephonyIcons.QS_DATA_G
319            );
320
321    static final MobileIconGroup H = new MobileIconGroup(
322            "H",
323            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
324            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
325            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
326            0, 0,
327            TelephonyIcons.TELEPHONY_NO_NETWORK,
328            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
329            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
330            R.string.accessibility_data_connection_3_5g,
331            TelephonyIcons.ICON_H,
332            false,
333            TelephonyIcons.QS_DATA_H
334            );
335
336    static final MobileIconGroup FOUR_G = new MobileIconGroup(
337            "4G",
338            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
339            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
340            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
341            0, 0,
342            TelephonyIcons.TELEPHONY_NO_NETWORK,
343            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
344            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
345            R.string.accessibility_data_connection_4g,
346            TelephonyIcons.ICON_4G,
347            true,
348            TelephonyIcons.QS_DATA_4G
349            );
350
351    static final MobileIconGroup LTE = new MobileIconGroup(
352            "LTE",
353            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
354            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
355            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
356            0, 0,
357            TelephonyIcons.TELEPHONY_NO_NETWORK,
358            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
359            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
360            R.string.accessibility_data_connection_lte,
361            TelephonyIcons.ICON_LTE,
362            true,
363            TelephonyIcons.QS_DATA_LTE
364            );
365
366    static final MobileIconGroup ROAMING = new MobileIconGroup(
367            "Roaming",
368            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH_ROAMING,
369            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
370            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
371            0, 0,
372            TelephonyIcons.TELEPHONY_NO_NETWORK,
373            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
374            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
375            R.string.accessibility_data_connection_roaming,
376            TelephonyIcons.ROAMING_ICON,
377            false,
378            TelephonyIcons.QS_DATA_R
379            );
380
381    static final MobileIconGroup DATA_DISABLED = new MobileIconGroup(
382            "DataDisabled",
383            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
384            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
385            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
386            0, 0,
387            TelephonyIcons.TELEPHONY_NO_NETWORK,
388            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
389            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
390            R.string.accessibility_cell_data_off,
391            TelephonyIcons.ICON_DATA_DISABLED,
392            false,
393            TelephonyIcons.QS_ICON_DATA_DISABLED
394            );
395}
396
397