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 
17 package com.android.systemui.statusbar.policy;
18 
19 import com.android.systemui.R;
20 import com.android.systemui.statusbar.policy.MobileSignalController.MobileIconGroup;
21 
22 class 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 QS_ICON_LTE = R.drawable.ic_qs_signal_lte;
212     static final int QS_ICON_3G = R.drawable.ic_qs_signal_3g;
213     static final int QS_ICON_4G = R.drawable.ic_qs_signal_4g;
214     static final int QS_ICON_1X = R.drawable.ic_qs_signal_1x;
215     static final int QS_ICON_CARRIER_NETWORK_CHANGE =
216             R.drawable.ic_qs_signal_carrier_network_change_animation;
217 
218     static final MobileIconGroup CARRIER_NETWORK_CHANGE = new MobileIconGroup(
219             "CARRIER_NETWORK_CHANGE",
220             TelephonyIcons.TELEPHONY_CARRIER_NETWORK_CHANGE,
221             TelephonyIcons.QS_TELEPHONY_CARRIER_NETWORK_CHANGE,
222             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
223             0, 0,
224             TelephonyIcons.ICON_CARRIER_NETWORK_CHANGE,
225             TelephonyIcons.QS_ICON_CARRIER_NETWORK_CHANGE,
226             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
227             R.string.accessibility_carrier_network_change_mode,
228             0,
229             false,
230             0
231             );
232 
233     static final MobileIconGroup THREE_G = new MobileIconGroup(
234             "3G",
235             TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
236             TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
237             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
238             0, 0,
239             TelephonyIcons.TELEPHONY_NO_NETWORK,
240             TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
241             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
242             R.string.accessibility_data_connection_3g,
243             TelephonyIcons.ICON_3G,
244             true,
245             TelephonyIcons.QS_DATA_3G
246             );
247 
248     static final MobileIconGroup WFC = new MobileIconGroup(
249             "WFC",
250             TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
251             TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
252             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
253             0, 0,
254             TelephonyIcons.TELEPHONY_NO_NETWORK,
255             TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
256             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
257             0, 0, false, 0
258             );
259 
260     static final MobileIconGroup UNKNOWN = new MobileIconGroup(
261             "Unknown",
262             TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
263             TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
264             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
265             0, 0,
266             TelephonyIcons.TELEPHONY_NO_NETWORK,
267             TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
268             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
269             0, 0, false, 0
270             );
271 
272     static final MobileIconGroup E = new MobileIconGroup(
273             "E",
274             TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
275             TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
276             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
277             0, 0,
278             TelephonyIcons.TELEPHONY_NO_NETWORK,
279             TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
280             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
281             R.string.accessibility_data_connection_edge,
282             TelephonyIcons.ICON_E,
283             false,
284             TelephonyIcons.QS_DATA_E
285             );
286 
287     static final MobileIconGroup ONE_X = new MobileIconGroup(
288             "1X",
289             TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
290             TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
291             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
292             0, 0,
293             TelephonyIcons.TELEPHONY_NO_NETWORK,
294             TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
295             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
296             R.string.accessibility_data_connection_cdma,
297             TelephonyIcons.ICON_1X,
298             true,
299             TelephonyIcons.QS_DATA_1X
300             );
301 
302     static final MobileIconGroup G = new MobileIconGroup(
303             "G",
304             TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
305             TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
306             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
307             0, 0,
308             TelephonyIcons.TELEPHONY_NO_NETWORK,
309             TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
310             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
311             R.string.accessibility_data_connection_gprs,
312             TelephonyIcons.ICON_G,
313             false,
314             TelephonyIcons.QS_DATA_G
315             );
316 
317     static final MobileIconGroup H = new MobileIconGroup(
318             "H",
319             TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
320             TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
321             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
322             0, 0,
323             TelephonyIcons.TELEPHONY_NO_NETWORK,
324             TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
325             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
326             R.string.accessibility_data_connection_3_5g,
327             TelephonyIcons.ICON_H,
328             false,
329             TelephonyIcons.QS_DATA_H
330             );
331 
332     static final MobileIconGroup FOUR_G = new MobileIconGroup(
333             "4G",
334             TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
335             TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
336             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
337             0, 0,
338             TelephonyIcons.TELEPHONY_NO_NETWORK,
339             TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
340             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
341             R.string.accessibility_data_connection_4g,
342             TelephonyIcons.ICON_4G,
343             true,
344             TelephonyIcons.QS_DATA_4G
345             );
346 
347     static final MobileIconGroup LTE = new MobileIconGroup(
348             "LTE",
349             TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
350             TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
351             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
352             0, 0,
353             TelephonyIcons.TELEPHONY_NO_NETWORK,
354             TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
355             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
356             R.string.accessibility_data_connection_lte,
357             TelephonyIcons.ICON_LTE,
358             true,
359             TelephonyIcons.QS_DATA_LTE
360             );
361 
362     static final MobileIconGroup ROAMING = new MobileIconGroup(
363             "Roaming",
364             TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH_ROAMING,
365             TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
366             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
367             0, 0,
368             TelephonyIcons.TELEPHONY_NO_NETWORK,
369             TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
370             AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
371             R.string.accessibility_data_connection_roaming,
372             TelephonyIcons.ROAMING_ICON,
373             false,
374             TelephonyIcons.QS_DATA_R
375             );
376 }
377 
378