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.NetworkControllerImpl.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    static final int[] QS_DATA_R = {
72        R.drawable.ic_qs_signal_r,
73        R.drawable.ic_qs_signal_r
74    };
75
76    //***** Data connection icons
77
78    //GSM/UMTS
79    static final int[][] DATA_G = {
80            { R.drawable.stat_sys_data_fully_connected_g,
81              R.drawable.stat_sys_data_fully_connected_g,
82              R.drawable.stat_sys_data_fully_connected_g,
83              R.drawable.stat_sys_data_fully_connected_g },
84            { R.drawable.stat_sys_data_fully_connected_g,
85              R.drawable.stat_sys_data_fully_connected_g,
86              R.drawable.stat_sys_data_fully_connected_g,
87              R.drawable.stat_sys_data_fully_connected_g }
88        };
89
90    static final int[] QS_DATA_G = {
91        R.drawable.ic_qs_signal_g,
92        R.drawable.ic_qs_signal_g
93    };
94
95    static final int[][] DATA_3G = {
96            { R.drawable.stat_sys_data_fully_connected_3g,
97              R.drawable.stat_sys_data_fully_connected_3g,
98              R.drawable.stat_sys_data_fully_connected_3g,
99              R.drawable.stat_sys_data_fully_connected_3g },
100            { R.drawable.stat_sys_data_fully_connected_3g,
101              R.drawable.stat_sys_data_fully_connected_3g,
102              R.drawable.stat_sys_data_fully_connected_3g,
103              R.drawable.stat_sys_data_fully_connected_3g }
104        };
105
106    static final int[] QS_DATA_3G = {
107        R.drawable.ic_qs_signal_3g,
108        R.drawable.ic_qs_signal_3g
109    };
110
111    static final int[][] DATA_E = {
112            { R.drawable.stat_sys_data_fully_connected_e,
113              R.drawable.stat_sys_data_fully_connected_e,
114              R.drawable.stat_sys_data_fully_connected_e,
115              R.drawable.stat_sys_data_fully_connected_e },
116            { R.drawable.stat_sys_data_fully_connected_e,
117              R.drawable.stat_sys_data_fully_connected_e,
118              R.drawable.stat_sys_data_fully_connected_e,
119              R.drawable.stat_sys_data_fully_connected_e }
120        };
121
122    static final int[] QS_DATA_E = {
123        R.drawable.ic_qs_signal_e,
124        R.drawable.ic_qs_signal_e
125    };
126
127    //3.5G
128    static final int[][] DATA_H = {
129            { R.drawable.stat_sys_data_fully_connected_h,
130              R.drawable.stat_sys_data_fully_connected_h,
131              R.drawable.stat_sys_data_fully_connected_h,
132              R.drawable.stat_sys_data_fully_connected_h },
133            { R.drawable.stat_sys_data_fully_connected_h,
134              R.drawable.stat_sys_data_fully_connected_h,
135              R.drawable.stat_sys_data_fully_connected_h,
136              R.drawable.stat_sys_data_fully_connected_h }
137    };
138
139    static final int[] QS_DATA_H = {
140                R.drawable.ic_qs_signal_h,
141                R.drawable.ic_qs_signal_h
142    };
143
144    //CDMA
145    // Use 3G icons for EVDO data and 1x icons for 1XRTT data
146    static final int[][] DATA_1X = {
147            { R.drawable.stat_sys_data_fully_connected_1x,
148              R.drawable.stat_sys_data_fully_connected_1x,
149              R.drawable.stat_sys_data_fully_connected_1x,
150              R.drawable.stat_sys_data_fully_connected_1x },
151            { R.drawable.stat_sys_data_fully_connected_1x,
152              R.drawable.stat_sys_data_fully_connected_1x,
153              R.drawable.stat_sys_data_fully_connected_1x,
154              R.drawable.stat_sys_data_fully_connected_1x }
155            };
156
157    static final int[] QS_DATA_1X = {
158        R.drawable.ic_qs_signal_1x,
159        R.drawable.ic_qs_signal_1x
160    };
161
162    // LTE and eHRPD
163    static final int[][] DATA_4G = {
164            { R.drawable.stat_sys_data_fully_connected_4g,
165              R.drawable.stat_sys_data_fully_connected_4g,
166              R.drawable.stat_sys_data_fully_connected_4g,
167              R.drawable.stat_sys_data_fully_connected_4g },
168            { R.drawable.stat_sys_data_fully_connected_4g,
169              R.drawable.stat_sys_data_fully_connected_4g,
170              R.drawable.stat_sys_data_fully_connected_4g,
171              R.drawable.stat_sys_data_fully_connected_4g }
172        };
173
174    static final int[] QS_DATA_4G = {
175        R.drawable.ic_qs_signal_4g,
176        R.drawable.ic_qs_signal_4g
177    };
178
179    // LTE branded "LTE"
180    static final int[][] DATA_LTE = {
181            { R.drawable.stat_sys_data_fully_connected_lte,
182                    R.drawable.stat_sys_data_fully_connected_lte,
183                    R.drawable.stat_sys_data_fully_connected_lte,
184                    R.drawable.stat_sys_data_fully_connected_lte },
185            { R.drawable.stat_sys_data_fully_connected_lte,
186                    R.drawable.stat_sys_data_fully_connected_lte,
187                    R.drawable.stat_sys_data_fully_connected_lte,
188                    R.drawable.stat_sys_data_fully_connected_lte }
189    };
190
191    static final int[] QS_DATA_LTE = {
192        R.drawable.ic_qs_signal_lte,
193        R.drawable.ic_qs_signal_lte
194    };
195
196    static final int FLIGHT_MODE_ICON = R.drawable.stat_sys_airplane_mode;
197    static final int ROAMING_ICON = R.drawable.stat_sys_data_fully_connected_roam;
198    static final int ICON_LTE = R.drawable.stat_sys_data_fully_connected_lte;
199    static final int ICON_G = R.drawable.stat_sys_data_fully_connected_g;
200    static final int ICON_E = R.drawable.stat_sys_data_fully_connected_e;
201    static final int ICON_H = R.drawable.stat_sys_data_fully_connected_h;
202    static final int ICON_3G = R.drawable.stat_sys_data_fully_connected_3g;
203    static final int ICON_4G = R.drawable.stat_sys_data_fully_connected_4g;
204    static final int ICON_1X = R.drawable.stat_sys_data_fully_connected_1x;
205
206    static final int QS_ICON_LTE = R.drawable.ic_qs_signal_lte;
207    static final int QS_ICON_3G = R.drawable.ic_qs_signal_3g;
208    static final int QS_ICON_4G = R.drawable.ic_qs_signal_4g;
209    static final int QS_ICON_1X = R.drawable.ic_qs_signal_1x;
210
211    static final MobileIconGroup THREE_G = new MobileIconGroup(
212            "3G",
213            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
214            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
215            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
216            0, 0,
217            TelephonyIcons.TELEPHONY_NO_NETWORK,
218            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
219            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
220            R.string.accessibility_data_connection_3g,
221            TelephonyIcons.ICON_3G,
222            true,
223            TelephonyIcons.QS_DATA_3G
224            );
225
226    static final MobileIconGroup UNKNOWN = new MobileIconGroup(
227            "Unknown",
228            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
229            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
230            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
231            0, 0,
232            TelephonyIcons.TELEPHONY_NO_NETWORK,
233            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
234            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
235            0, 0, false, new int[2]
236            );
237
238    static final MobileIconGroup E = new MobileIconGroup(
239            "E",
240            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
241            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
242            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
243            0, 0,
244            TelephonyIcons.TELEPHONY_NO_NETWORK,
245            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
246            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
247            R.string.accessibility_data_connection_edge,
248            TelephonyIcons.ICON_E,
249            false,
250            TelephonyIcons.QS_DATA_E
251            );
252
253    static final MobileIconGroup ONE_X = new MobileIconGroup(
254            "1X",
255            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
256            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
257            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
258            0, 0,
259            TelephonyIcons.TELEPHONY_NO_NETWORK,
260            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
261            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
262            R.string.accessibility_data_connection_cdma,
263            TelephonyIcons.ICON_1X,
264            true,
265            TelephonyIcons.QS_DATA_1X
266            );
267
268    static final MobileIconGroup G = new MobileIconGroup(
269            "G",
270            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
271            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
272            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
273            0, 0,
274            TelephonyIcons.TELEPHONY_NO_NETWORK,
275            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
276            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
277            R.string.accessibility_data_connection_gprs,
278            TelephonyIcons.ICON_G,
279            false,
280            TelephonyIcons.QS_DATA_G
281            );
282
283    static final MobileIconGroup H = new MobileIconGroup(
284            "H",
285            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
286            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
287            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
288            0, 0,
289            TelephonyIcons.TELEPHONY_NO_NETWORK,
290            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
291            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
292            R.string.accessibility_data_connection_3_5g,
293            TelephonyIcons.ICON_H,
294            false,
295            TelephonyIcons.QS_DATA_H
296            );
297
298    static final MobileIconGroup FOUR_G = new MobileIconGroup(
299            "4G",
300            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
301            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
302            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
303            0, 0,
304            TelephonyIcons.TELEPHONY_NO_NETWORK,
305            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
306            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
307            R.string.accessibility_data_connection_4g,
308            TelephonyIcons.ICON_4G,
309            true,
310            TelephonyIcons.QS_DATA_4G
311            );
312
313    static final MobileIconGroup LTE = new MobileIconGroup(
314            "LTE",
315            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH,
316            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
317            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
318            0, 0,
319            TelephonyIcons.TELEPHONY_NO_NETWORK,
320            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
321            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
322            R.string.accessibility_data_connection_lte,
323            TelephonyIcons.ICON_LTE,
324            true,
325            TelephonyIcons.QS_DATA_LTE
326            );
327
328    static final MobileIconGroup ROAMING = new MobileIconGroup(
329            "Roaming",
330            TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH_ROAMING,
331            TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH,
332            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
333            0, 0,
334            TelephonyIcons.TELEPHONY_NO_NETWORK,
335            TelephonyIcons.QS_TELEPHONY_NO_NETWORK,
336            AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
337            R.string.accessibility_data_connection_roaming,
338            TelephonyIcons.ROAMING_ICON,
339            false,
340            TelephonyIcons.QS_DATA_R
341            );
342}
343
344