Added verizon versions of system menu patches
[webos-internals:imagineer1981s-modifications.git] / advanced / advanced-system-menus-framework-vzw.patch
1 --- .orig/etc/palm/persistentWindows.conf
2 +++ /etc/palm/persistentWindows.conf
3 @@ -1,6 +1,8 @@
4  {
5                 "com.palm.systemui": [
6 -                       "DeviceMenu"
7 +                       "DeviceMenu",
8 +                       "TodayMenu",
9 +                       "StatusMenu"
10                 ],
11  
12                 "com.palm.app.phone": [
13 --- .orig/usr/palm/frameworks/mojo/submissions/363/stylesheets/global-menus.css
14 +++ /usr/palm/frameworks/mojo/submissions/363/stylesheets/global-menus.css
15 @@ -626,9 +626,11 @@
16    padding-top: 28px;
17  }
18  
19 -/* Application and Device Menus */
20 +/* Status, Today, Device and Application Menus */
21  
22  #palm-app-menu.palm-popup-container,
23 +#palm-status-menu.palm-popup-container,
24 +#palm-today-menu.palm-popup-container,
25  #palm-device-menu.palm-popup-container {
26    font-family: "Prelude" !important;
27    text-align: left !important;
28 @@ -648,6 +650,8 @@
29  }
30  
31  #palm-app-menu.palm-popup-container.palm-touch-rows-7,
32 +#palm-status-menu.palm-popup-container.palm-touch-rows-7,
33 +#palm-today-menu.palm-popup-container.palm-touch-rows-7,
34  #palm-device-menu.palm-popup-container.palm-touch-rows-7 {
35    -webkit-border-image: url(../images/system-menu-background-solid.png) 30 28 35 28 repeat repeat;
36  }
37 @@ -655,24 +659,48 @@
38  #palm-app-menu.palm-popup-container {
39    top: -2px;
40    left: -6px;
41 -  min-width: 278px;
42 +  min-width: 306px;
43 +  max-width: 306px;
44 +  max-height: 413px;
45 +}
46 +
47 +#palm-status-menu.palm-popup-container {
48 +  top: -2px;
49 +  left: -6px;
50 +  min-width: 306px;
51 +  max-width: 306px;
52 +  max-height: 413px;
53 +}
54 +
55 +#palm-today-menu.palm-popup-container {
56 +  top: -2px;
57 +  left: 8px;
58 +  min-width: 306px;
59 +  max-width: 306px;
60    max-height: 413px;
61  }
62  
63  #palm-device-menu.palm-popup-container {
64    top: -2px;
65    right: -6px;
66 -  min-width: 278px;
67 +  min-width: 306px;
68 +  max-width: 306px;
69    max-height: 413px;
70  }
71  
72  #palm-app-menu > .palm-popup-wrapper,
73 +#palm-status-menu > .palm-popup-wrapper,
74 +#palm-today-menu > .palm-popup-wrapper,
75  #palm-device-menu > .palm-popup-wrapper {
76    margin: -58px -21px -48px -52px;
77  }
78  
79  #palm-app-menu .palm-popup-fade-top,
80  #palm-app-menu .palm-popup-fade-bottom,
81 +#palm-status-menu .palm-popup-fade-top,
82 +#palm-status-menu .palm-popup-fade-bottom,
83 +#palm-today-menu .palm-popup-fade-top,
84 +#palm-today-menu .palm-popup-fade-bottom,
85  #palm-device-menu .palm-popup-fade-top,
86  #palm-device-menu .palm-popup-fade-bottom {
87    margin-right: 9px;
88 @@ -687,6 +715,25 @@
89    left: -32px;
90    bottom: -24px;
91  }
92 +
93 +#palm-status-menu .palm-popup-fade-top {
94 +  left: -32px;
95 +  top: -27px;
96 +}
97 +#palm-status-menu .palm-popup-fade-bottom {
98 +  left: -32px;
99 +  bottom: -24px;
100 +}
101 +
102 +#palm-today-menu .palm-popup-fade-top {
103 +  left: -32px;
104 +  top: -27px;
105 +}
106 +#palm-today-menu .palm-popup-fade-bottom {
107 +  left: -32px;
108 +  bottom: -24px;
109 +}
110 +
111  #palm-device-menu .palm-popup-fade-top {
112    left: -33px;
113    top: -27px;
114 @@ -698,50 +745,72 @@
115  
116  
117  #palm-app-menu .palm-popup-fade-top > .fade-background,
118 +#palm-status-menu .palm-popup-fade-top > .fade-background,
119 +#palm-today-menu .palm-popup-fade-top > .fade-background,
120  #palm-device-menu .palm-popup-fade-top > .fade-background {
121    -webkit-border-image: url(../images/system-menu-fade-top.png) 0 24 0 24 repeat repeat;
122  }
123  #palm-app-menu .palm-popup-fade-top > .fade-arrow,
124 +#palm-status-menu .palm-popup-fade-top > .fade-arrow,
125 +#palm-today-menu .palm-popup-fade-top > .fade-arrow,
126  #palm-device-menu .palm-popup-fade-top > .fade-arrow {
127    background: url(../images/palm-popup-fade-arrow-up-dark.png) center center no-repeat;
128  }
129  #palm-app-menu .palm-popup-fade-bottom > .fade-background,
130 +#palm-status-menu .palm-popup-fade-bottom > .fade-background,
131 +#palm-today-menu .palm-popup-fade-bottom > .fade-background,
132  #palm-device-menu .palm-popup-fade-bottom > .fade-background {
133    -webkit-border-image: url(../images/system-menu-fade-bottom.png) 0 24 0 24 repeat repeat;
134  }
135  #palm-app-menu .palm-popup-fade-bottom > .fade-arrow,
136 +#palm-status-menu .palm-popup-fade-bottom > .fade-arrow,
137 +#palm-today-menu .palm-popup-fade-bottom > .fade-arrow,
138  #palm-device-menu .palm-popup-fade-bottom > .fade-arrow {
139    background: url(../images/palm-popup-fade-arrow-down-dark.png) center center no-repeat;
140  }
141  
142  #palm-app-menu.palm-touch-rows-7 .palm-popup-fade-top > .fade-background,
143 +#palm-status-menu.palm-touch-rows-7 .palm-popup-fade-top > .fade-background,
144 +#palm-today-menu.palm-touch-rows-7 .palm-popup-fade-top > .fade-background,
145  #palm-device-menu.palm-touch-rows-7 .palm-popup-fade-top > .fade-background {
146    -webkit-border-image: url(../images/system-menu-fade-top-solid.png) 0 24 0 24 repeat repeat;
147  }
148  #palm-app-menu.palm-touch-rows-7 .palm-popup-fade-bottom > .fade-background,
149 +#palm-status-menu.palm-touch-rows-7 .palm-popup-fade-bottom > .fade-background,
150 +#palm-today-menu.palm-touch-rows-7 .palm-popup-fade-bottom > .fade-background,
151  #palm-device-menu.palm-touch-rows-7 .palm-popup-fade-bottom > .fade-background {
152    -webkit-border-image: url(../images/system-menu-fade-bottom-solid.png) 0 24 0 24 repeat repeat;
153  }
154  
155  #palm-app-menu .palm-popup-content,
156 +#palm-status-menu .palm-popup-content,
157 +#palm-today-menu .palm-popup-content,
158  #palm-device-menu .palm-popup-content {
159    margin: 31px 0 26px 31px;
160  }
161  
162  #palm-app-menu .palm-row,
163 +#palm-status-menu .palm-row,
164 +#palm-today-menu .palm-row,
165  #palm-device-menu .palm-row {
166    background: url(../images/list-separator-dark-taper.png) bottom left no-repeat;
167  }
168  
169  #palm-app-menu .palm-row.single,
170 +#palm-status-menu .palm-row.single,
171 +#palm-today-menu .palm-row.single,
172  #palm-device-menu .palm-row.single,
173  #palm-app-menu .palm-row.last,
174 +#palm-status-menu .palm-row.last,
175 +#palm-today-menu .palm-row.last,
176  #palm-device-menu .palm-row.last {
177    background: none;
178    -webkit-border-image: none;
179  }
180  
181  #palm-app-menu .label,
182 +#palm-status-menu .label,
183 +#palm-today-menu .label,
184  #palm-device-menu .label {
185    color: #AAA;
186    text-shadow: #333 0 -1px 0;
187 @@ -760,14 +829,20 @@
188  }
189  
190  #palm-app-menu .palm-row.selected,
191 +#palm-status-menu .palm-row.selected,
192 +#palm-today-menu .palm-row.selected,
193  #palm-device-menu .palm-row.selected,
194  #palm-app-menu .palm-row.selected.submenu-group,
195 +#palm-status-menu .palm-row.selected.submenu-group,
196 +#palm-today-menu .palm-row.selected.submenu-group,
197  #palm-device-menu .palm-row.selected.submenu-group {
198    background: none;
199    -webkit-border-image: url(../images/system-menu-selection-gradient-default.png) 24 20 24 20 repeat repeat;
200  }
201  
202  #palm-app-menu .palm-popup-content > .palm-list > .menu-start.selected,
203 +#palm-status-menu .palm-popup-content > .palm-list > .menu-start.selected,
204 +#palm-today-menu .palm-popup-content > .palm-list > .menu-start.selected,
205  #palm-device-menu .palm-popup-content > .palm-list > .menu-start.selected,
206  #palm-app-menu .palm-row.first.selected.submenu-group {
207    background: none;
208 @@ -775,18 +850,24 @@
209  }
210  
211  #palm-app-menu .palm-popup-content > .palm-list > .menu-end.selected,
212 +#palm-status-menu .palm-popup-content > .palm-list > .menu-end.selected,
213 +#palm-today-menu .palm-popup-content > .palm-list > .menu-end.selected,
214  #palm-device-menu .palm-popup-content > .palm-list > .menu-end.selected {
215    background: none;
216    -webkit-border-image: url(../images/system-menu-selection-gradient-last.png) 24 20 24 20 repeat repeat;
217  }
218  
219  #palm-app-menu .palm-row.submenu-group,
220 +#palm-status-menu .palm-row.submenu-group,
221 +#palm-today-menu .palm-row.submenu-group,
222  #palm-device-menu .palm-row.submenu-group {
223    -webkit-border-image: none;
224    background: url(../images/system-menu-section-divider.png) bottom left no-repeat;
225  }
226  
227  #palm-app-menu .palm-drawer-container,
228 +#palm-status-menu .palm-drawer-container,
229 +#palm-today-menu .palm-drawer-container,
230  #palm-device-menu .palm-drawer-container {
231    position: relative;
232    top: 0px;
233 @@ -797,6 +878,8 @@
234  }
235  
236  #palm-app-menu .palm-drawer-contents,
237 +#palm-status-menu .palm-drawer-contents,
238 +#palm-today-menu .palm-drawer-contents,
239  #palm-device-menu .palm-drawer-contents {
240    margin: 0;
241    position: relative;
242 @@ -804,16 +887,22 @@
243  }
244  
245  #palm-app-menu .palm-drawer-contents .palm-row .title,
246 +#palm-status-menu .palm-drawer-contents .palm-row .title,
247 +#palm-today-menu .palm-drawer-contents .palm-row .title,
248  #palm-device-menu .palm-drawer-contents .palm-row .title {
249    margin-left: 14px;
250  }
251  
252  #palm-app-menu .palm-row .title.dim,
253 +#palm-status-menu .palm-row .title.dim,
254 +#palm-today-menu .palm-row .title.dim,
255  #palm-device-menu .palm-row .title.dim {
256    color: #BBB;
257  }
258  
259  #palm-app-menu .palm-drawer-contents .palm-row .label,
260 +#palm-status-menu .palm-drawer-contents .palm-row .label,
261 +#palm-today-menu .palm-drawer-contents .palm-row .label,
262  #palm-device-menu .palm-drawer-contents .palm-row .label {
263    margin-right: 24px;
264  }
265 --- .orig/usr/palm/frameworks/mojo2/submissions/93/stylesheets/global-menus.css
266 +++ /usr/palm/frameworks/mojo2/submissions/93/stylesheets/global-menus.css
267 @@ -626,9 +626,11 @@
268    padding-top: 28px;
269  }
270  
271 -/* Application and Device Menus */
272 +/* Status, Today, Device and Application Menus */
273  
274  #palm-app-menu.palm-popup-container,
275 +#palm-status-menu.palm-popup-container,
276 +#palm-today-menu.palm-popup-container,
277  #palm-device-menu.palm-popup-container {
278    font-family: "Prelude" !important;
279    text-align: left !important;
280 @@ -648,6 +650,8 @@
281  }
282  
283  #palm-app-menu.palm-popup-container.palm-touch-rows-7,
284 +#palm-status-menu.palm-popup-container.palm-touch-rows-7,
285 +#palm-today-menu.palm-popup-container.palm-touch-rows-7,
286  #palm-device-menu.palm-popup-container.palm-touch-rows-7 {
287    -webkit-border-image: url(../images/system-menu-background-solid.png) 30 28 35 28 repeat repeat;
288  }
289 @@ -655,24 +659,48 @@
290  #palm-app-menu.palm-popup-container {
291    top: -2px;
292    left: -6px;
293 -  min-width: 278px;
294 +  min-width: 306px;
295 +  max-width: 306px;
296 +  max-height: 413px;
297 +}
298 +
299 +#palm-status-menu.palm-popup-container {
300 +  top: -2px;
301 +  left: -6px;
302 +  min-width: 306px;
303 +  max-width: 306px;
304 +  max-height: 413px;
305 +}
306 +
307 +#palm-today-menu.palm-popup-container {
308 +  top: -2px;
309 +  left: 8px;
310 +  min-width: 306px;
311 +  max-width: 306px;
312    max-height: 413px;
313  }
314  
315  #palm-device-menu.palm-popup-container {
316    top: -2px;
317    right: -6px;
318 -  min-width: 278px;
319 +  min-width: 306px;
320 +  max-width: 306px;
321    max-height: 413px;
322  }
323  
324  #palm-app-menu > .palm-popup-wrapper,
325 +#palm-status-menu > .palm-popup-wrapper,
326 +#palm-today-menu > .palm-popup-wrapper,
327  #palm-device-menu > .palm-popup-wrapper {
328    margin: -58px -21px -48px -52px;
329  }
330  
331  #palm-app-menu .palm-popup-fade-top,
332  #palm-app-menu .palm-popup-fade-bottom,
333 +#palm-status-menu .palm-popup-fade-top,
334 +#palm-status-menu .palm-popup-fade-bottom,
335 +#palm-today-menu .palm-popup-fade-top,
336 +#palm-today-menu .palm-popup-fade-bottom,
337  #palm-device-menu .palm-popup-fade-top,
338  #palm-device-menu .palm-popup-fade-bottom {
339    margin-right: 9px;
340 @@ -687,6 +715,22 @@
341    left: -32px;
342    bottom: -24px;
343  }
344 +#palm-status-menu .palm-popup-fade-top {
345 +  left: -32px;
346 +  top: -27px;
347 +}
348 +#palm-status-menu .palm-popup-fade-bottom {
349 +  left: -32px;
350 +  bottom: -24px;
351 +}
352 +#palm-today-menu .palm-popup-fade-top {
353 +  left: -32px;
354 +  top: -27px;
355 +}
356 +#palm-today-menu .palm-popup-fade-bottom {
357 +  left: -32px;
358 +  bottom: -24px;
359 +}
360  #palm-device-menu .palm-popup-fade-top {
361    left: -33px;
362    top: -27px;
363 @@ -698,50 +742,72 @@
364  
365  
366  #palm-app-menu .palm-popup-fade-top > .fade-background,
367 +#palm-status-menu .palm-popup-fade-top > .fade-background,
368 +#palm-today-menu .palm-popup-fade-top > .fade-background,
369  #palm-device-menu .palm-popup-fade-top > .fade-background {
370    -webkit-border-image: url(../images/system-menu-fade-top.png) 0 24 0 24 repeat repeat;
371  }
372  #palm-app-menu .palm-popup-fade-top > .fade-arrow,
373 +#palm-status-menu .palm-popup-fade-top > .fade-arrow,
374 +#palm-today-menu .palm-popup-fade-top > .fade-arrow,
375  #palm-device-menu .palm-popup-fade-top > .fade-arrow {
376    background: url(../images/palm-popup-fade-arrow-up-dark.png) center center no-repeat;
377  }
378  #palm-app-menu .palm-popup-fade-bottom > .fade-background,
379 +#palm-status-menu .palm-popup-fade-bottom > .fade-background,
380 +#palm-today-menu .palm-popup-fade-bottom > .fade-background,
381  #palm-device-menu .palm-popup-fade-bottom > .fade-background {
382    -webkit-border-image: url(../images/system-menu-fade-bottom.png) 0 24 0 24 repeat repeat;
383  }
384  #palm-app-menu .palm-popup-fade-bottom > .fade-arrow,
385 +#palm-status-menu .palm-popup-fade-bottom > .fade-arrow,
386 +#palm-today-menu .palm-popup-fade-bottom > .fade-arrow,
387  #palm-device-menu .palm-popup-fade-bottom > .fade-arrow {
388    background: url(../images/palm-popup-fade-arrow-down-dark.png) center center no-repeat;
389  }
390  
391  #palm-app-menu.palm-touch-rows-7 .palm-popup-fade-top > .fade-background,
392 +#palm-status-menu.palm-touch-rows-7 .palm-popup-fade-top > .fade-background,
393 +#palm-today-menu.palm-touch-rows-7 .palm-popup-fade-top > .fade-background,
394  #palm-device-menu.palm-touch-rows-7 .palm-popup-fade-top > .fade-background {
395    -webkit-border-image: url(../images/system-menu-fade-top-solid.png) 0 24 0 24 repeat repeat;
396  }
397  #palm-app-menu.palm-touch-rows-7 .palm-popup-fade-bottom > .fade-background,
398 +#palm-status-menu.palm-touch-rows-7 .palm-popup-fade-bottom > .fade-background,
399 +#palm-today-menu.palm-touch-rows-7 .palm-popup-fade-bottom > .fade-background,
400  #palm-device-menu.palm-touch-rows-7 .palm-popup-fade-bottom > .fade-background {
401    -webkit-border-image: url(../images/system-menu-fade-bottom-solid.png) 0 24 0 24 repeat repeat;
402  }
403  
404  #palm-app-menu .palm-popup-content,
405 +#palm-status-menu .palm-popup-content,
406 +#palm-today-menu .palm-popup-content,
407  #palm-device-menu .palm-popup-content {
408    margin: 31px 0 26px 31px;
409  }
410  
411  #palm-app-menu .palm-row,
412 +#palm-status-menu .palm-row,
413 +#palm-today-menu .palm-row,
414  #palm-device-menu .palm-row {
415    background: url(../images/list-separator-dark-taper.png) bottom left no-repeat;
416  }
417  
418  #palm-app-menu .palm-row.single,
419 +#palm-status-menu .palm-row.single,
420 +#palm-today-menu .palm-row.single,
421  #palm-device-menu .palm-row.single,
422  #palm-app-menu .palm-row.last,
423 +#palm-status-menu .palm-row.last,
424 +#palm-today-menu .palm-row.last,
425  #palm-device-menu .palm-row.last {
426    background: none;
427    -webkit-border-image: none;
428  }
429  
430  #palm-app-menu .label,
431 +#palm-status-menu .label,
432 +#palm-today-menu .label,
433  #palm-device-menu .label {
434    color: #AAA;
435    text-shadow: #333 0 -1px 0;
436 @@ -760,14 +826,20 @@
437  }
438  
439  #palm-app-menu .palm-row.selected,
440 +#palm-status-menu .palm-row.selected,
441 +#palm-today-menu .palm-row.selected,
442  #palm-device-menu .palm-row.selected,
443  #palm-app-menu .palm-row.selected.submenu-group,
444 +#palm-status-menu .palm-row.selected.submenu-group,
445 +#palm-today-menu .palm-row.selected.submenu-group,
446  #palm-device-menu .palm-row.selected.submenu-group {
447    background: none;
448    -webkit-border-image: url(../images/system-menu-selection-gradient-default.png) 24 20 24 20 repeat repeat;
449  }
450  
451  #palm-app-menu .palm-popup-content > .palm-list > .menu-start.selected,
452 +#palm-status-menu .palm-popup-content > .palm-list > .menu-start.selected,
453 +#palm-today-menu .palm-popup-content > .palm-list > .menu-start.selected,
454  #palm-device-menu .palm-popup-content > .palm-list > .menu-start.selected,
455  #palm-app-menu .palm-row.first.selected.submenu-group {
456    background: none;
457 @@ -775,24 +847,32 @@
458  }
459  
460  #palm-app-menu .palm-popup-content > .palm-list > .menu-end.selected,
461 +#palm-status-menu .palm-popup-content > .palm-list > .menu-end.selected,
462 +#palm-today-menu .palm-popup-content > .palm-list > .menu-end.selected,
463  #palm-device-menu .palm-popup-content > .palm-list > .menu-end.selected {
464    background: none;
465    -webkit-border-image: url(../images/system-menu-selection-gradient-last.png) 24 20 24 20 repeat repeat;
466  }
467  
468  #palm-app-menu .palm-popup-content > .palm-list > .single.selected,
469 +#palm-status-menu .palm-popup-content > .palm-list > .single.selected,
470 +#palm-today-menu .palm-popup-content > .palm-list > .single.selected,
471  #palm-device-menu .palm-popup-content > .palm-list > .single.selected {
472    background: none;
473    -webkit-border-image: url(../images/system-menu-selection-gradient-single.png) 24 20 24 20 repeat repeat;
474  }
475  
476  #palm-app-menu .palm-row.submenu-group,
477 +#palm-status-menu .palm-row.submenu-group,
478 +#palm-today-menu .palm-row.submenu-group,
479  #palm-device-menu .palm-row.submenu-group {
480    -webkit-border-image: none;
481    background: url(../images/system-menu-section-divider.png) bottom left no-repeat;
482  }
483  
484  #palm-app-menu .palm-drawer-container,
485 +#palm-status-menu .palm-drawer-container,
486 +#palm-today-menu .palm-drawer-container,
487  #palm-device-menu .palm-drawer-container {
488    position: relative;
489    top: 0px;
490 @@ -803,6 +883,8 @@
491  }
492  
493  #palm-app-menu .palm-drawer-contents,
494 +#palm-status-menu .palm-drawer-contents,
495 +#palm-today-menu .palm-drawer-contents,
496  #palm-device-menu .palm-drawer-contents {
497    margin: 0;
498    position: relative;
499 @@ -810,16 +892,22 @@
500  }
501  
502  #palm-app-menu .palm-drawer-contents .palm-row .title,
503 +#palm-status-menu .palm-drawer-contents .palm-row .title,
504 +#palm-today-menu .palm-drawer-contents .palm-row .title,
505  #palm-device-menu .palm-drawer-contents .palm-row .title {
506    margin-left: 14px;
507  }
508  
509  #palm-app-menu .palm-row .title.dim,
510 +#palm-status-menu .palm-row .title.dim,
511 +#palm-today-menu .palm-row .title.dim,
512  #palm-device-menu .palm-row .title.dim {
513    color: #BBB;
514  }
515  
516  #palm-app-menu .palm-drawer-contents .palm-row .label,
517 +#palm-status-menu .palm-drawer-contents .palm-row .label,
518 +#palm-today-menu .palm-drawer-contents .palm-row .label,
519  #palm-device-menu .palm-drawer-contents .palm-row .label {
520    margin-right: 24px;
521  }
522 --- .orig/usr/palm/applications/com.palm.app.screenlock/app/controllers/app-assistant.js
523 +++ /usr/palm/applications/com.palm.app.screenlock/app/controllers/app-assistant.js
524 @@ -6,8 +6,25 @@
525  
526  function StageAssistant(stageController) {
527    this.stageController = stageController
528 -  this.stageController.pushScene('securityconfig')
529  }
530  
531 +StageAssistant.prototype.initialize = function() {
532 +}
533  
534 +StageAssistant.prototype.setup = function() {
535 +       var params = Mojo.getLaunchParameters();
536 +       
537 +       if((params) && (params.mode)) {
538 +               if(params.mode == "none")
539 +                       this.stageController.pushScene('securityconfig', "none");
540 +               else if(params.mode == "pin")
541 +                       this.stageController.pushScene('securityconfig', "pin");
542 +               else if(params.mode == "password")
543 +                       this.stageController.pushScene('securityconfig', "password");
544 +               else
545 +                       this.stageController.pushScene('securityconfig');
546 +       }
547 +       else
548 +               this.stageController.pushScene('securityconfig');
549 +}
550  
551 --- .orig/usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js
552 +++ /usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js
553 @@ -1,7 +1,9 @@
554  /* Copyright 2009 Palm, Inc.  All rights reserved. */
555  
556  var SecurityconfigAssistant = Class.create({
557 -       initialize: function() {
558 +       initialize: function(mode) {
559 +               this.mode = mode;
560 +               
561                 this.switchAppOnInfo = $L("Swiping the entire length of the gesture area will switch to the next or previous app.");
562                 this.switchAppOffInfo = $L("Any right to left swipe on the gesture area will perform the back gesture.");
563                 this.newSecurity = '';  
564 @@ -44,7 +46,9 @@
565         },
566                 
567         setup: function(){
568 -               
569 +               if(this.mode)
570 +                       this.controller.get('main').hide();
571 +                       
572                 //this.controller.get('fixedtimerrow').hide();
573                         
574                 this.controller.setupWidget('showAlerts', this.onOffToggleOpt, this.alertToggleModel);
575 @@ -154,6 +158,27 @@
576                 this.currentSecurity = payload.lockMode || 'none';
577                 this.showModifyRow();
578                 this.revertChanges();
579 +               
580 +               if(this.mode) {
581 +                       for(var i = 0; i < this.availableSecurity.length; i++) {
582 +                               if(this.availableSecurity[i].value == this.mode) {
583 +                                       this.newSecurity = this.mode;   
584 +                                       
585 +                                       if((this.currentSecurity === this.mode) && (this.mode === 'pin'))
586 +                                               this.controller.stageController.pushScene({name: "pin", automaticFocusAdvance: false},"changePin",this);
587 +                                       else if((this.currentSecurity === this.mode) && (this.mode === 'password'))
588 +                                               this.controller.stageController.pushScene({name: "password", automaticFocusAdvance: false},"changePassword",this);
589 +                                       else if(this.currentSecurity === 'none')
590 +                                               this.changeSecureLock(this.mode,false);
591 +                                       else if(this.currentSecurity === 'pin') 
592 +                                               this.askPin();
593 +                                       else if(this.currentSecurity === 'password')
594 +                                               this.askPassword();
595 +                                       
596 +                                       return;
597 +                               }
598 +                       }
599 +               }
600         },
601         
602         handleSystemlockValue: function(payload) {
603 @@ -362,8 +387,7 @@
604                         this.controller.stageController.pushScene({name: "pin", automaticFocusAdvance: false},"changePin",this);
605                 }
606                 else if(this.currentSecurity == 'password') {
607 -                       this.askPassword();
608 -                       this.newSecurity = "password";
609 +                       this.controller.stageController.pushScene({name: "password", automaticFocusAdvance: false},"changePassword",this);                      this.newSecurity = "password";
610                 }                       
611         },
612  
613 @@ -423,16 +447,16 @@
614                 if(pinCorrect)
615                         this.changeSecureLock(this.newSecurity,true);
616                 else {
617 +                       if(this.mode)
618 +                               this.controller.window.close();
619 +
620                         Mojo.Log.info("Pin was wrong");
621                         this.revertChanges();
622                 }
623         },
624         
625         askPassword: function() {
626 -               this.dialogBox = this.controller.showDialog({
627 -                       template: 'template/password-box',                      
628 -                       assistant: new VerifyPasswordAssistant(this,this.systemlockValue),                      
629 -               });
630 +               this.controller.stageController.pushScene({name: "password", automaticFocusAdvance: false},"askPassword",this); 
631         },
632         
633         passwordVerified: function(passwordCorrect) {
634 @@ -440,6 +464,9 @@
635                         this.changeSecureLock(this.newSecurity,false);
636                 }
637                 else {
638 +                       if(this.mode)
639 +                               this.controller.window.close();
640 +                       
641                         Mojo.Log.info("Password was wrong");
642                         this.revertChanges();
643                         
644 @@ -448,23 +475,37 @@
645         
646         changeSecureLock: function(newSetting,setFocus) {
647                 if(newSetting == 'pin') {
648 -                       this.showPINDialogBox();                                
649 +                       if(this.currentSecurity == 'password')
650 +                               this.showPINDialogBox.bind(this).delay(1);
651 +                       else
652 +                               this.showPINDialogBox();                                
653                 }
654                 else if (newSetting == 'password') {
655 -                       this.showPasswordDialogBox(setFocus);                           
656 +                       if(this.currentSecurity == 'pin')
657 +                               this.showPasswordDialogBox.bind(this, setFocus).delay(1);                               
658 +                       else
659 +                               this.showPasswordDialogBox(setFocus);
660                 }
661                 else {
662                         Mojo.Log.info("Security is Off");
663                         this.currentSecurity = 'none';
664                         $('lockImg').hide();
665 -                       this.setSystemlockModeReq = SystemService.setSystemlockValue('none','');
666 +                       this.setSystemlockModeReq = SystemService.setSystemlockValue('none','', this.changedSystemlockValue.bind(this));
667                         this.showModifyRow();
668                 }       
669         },
670         
671 +       changedSystemlockValue: function() {
672 +               if(this.mode)
673 +                       this.controller.window.close();
674 +       },
675 +       
676         setPinCode: function(pincode) {
677                 
678                 if(pincode === '') {
679 +                       if(this.mode)
680 +                               this.controller.window.close();
681 +
682                         Mojo.Log.info("PIN code is Emplty");
683                         this.revertChanges();
684                         return;
685 @@ -474,6 +515,10 @@
686         
687         handleSetPasscodeResponse: function(response) {
688                 Mojo.Log.error("Response "+ Object.toJSON(response));
689 +               
690 +               if(this.mode)
691 +                       this.controller.window.close();
692 +               
693                 if(response.returnValue) {
694                         this.currentSecurity = 'pin';
695                         $('lockImg').show();
696 @@ -485,6 +530,9 @@
697         },
698         
699         pinAlreadySet: function() {
700 +               if(this.mode)
701 +                       this.controller.window.close();
702 +               
703                 this.currentSecurity = 'pin';
704                 $('lockImg').show();
705                 this.policyEnforced = true;
706 @@ -496,6 +544,9 @@
707         },
708         
709         setPassword: function(password) {
710 +               if(this.mode)
711 +                       this.controller.window.close();
712 +
713                 Mojo.Log.info("Entered Password "+ password);
714                 if(password === '') {
715                         Mojo.Log.info("Password is Emplty");
716 @@ -510,6 +561,9 @@
717         },
718         
719         passwordAlreadySet: function(password) {
720 +               if(this.mode)
721 +                       this.controller.window.close();
722 +       
723                 this.currentSecurity = 'password';
724                 this.systemlockValue = password;
725                 this.policyEnforced = true;
726 @@ -519,10 +573,7 @@
727         
728         
729         showPasswordDialogBox: function(setFocus) {             
730 -               this.dialogBox = this.controller.showDialog({
731 -                       template: 'template/security-password-box',
732 -                       assistant: new PasswordAssistant(this,setFocus),                        
733 -               });             
734 +               this.controller.stageController.pushScene({name: "password", automaticFocusAdvance: false},"enterPassword",this,setFocus);      
735         },
736  
737         revertChanges: function() {
738 @@ -645,7 +696,7 @@
739         },
740  });
741  
742 -
743 +/*
744  var VerifyPasswordAssistant = Class.create({
745         
746         initialize: function(sceneAssistant) {
747 @@ -920,5 +971,5 @@
748                 }
749         }               
750         
751 -});
752 +}); */
753  
754 --- .orig/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js
755 +++ /usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js
756 @@ -18,6 +18,7 @@
757                 
758                 this.bluetoothState = 'Off';
759                 this.wifiState = 'Off'; 
760 +               this.gpsState = 'Off';
761                 this.wifiRadio = false;
762                 this.dualRSSI = false;
763                 this.ruim = false;
764 @@ -32,14 +33,23 @@
765                 Mojo.Dom.get('datanet').className = 'off';
766                 Mojo.Dom.get('wifi').className = 'off';
767                 Mojo.Dom.get('bluetooth').className = 'off';
768 +               Mojo.Dom.get('gps').className = 'off';
769 +               Mojo.Dom.get('ringer').className = 'off';
770 +               Mojo.Dom.get('devicemenu').className = "";
771                 Mojo.Dom.get('roaming').hide();
772                 Mojo.Dom.get('tty').hide();
773                 Mojo.Dom.get('hac').hide();
774                 Mojo.Dom.get('callforward').hide();
775                 Mojo.Dom.get('vpn').hide();
776 +               Mojo.Dom.get('appmenu').hide();
777                 
778                 this.delayedOpenSearchEngineAvailable = Mojo.Function.debounce(undefined, this.handleOpenSearchEngineAvailable.bind(this), 10, this.controller.window);
779 -               this.showDeviceMenuFn = Mojo.Function.debounce(undefined, this.showDeviceMenu.bind(this), .10, this.controller.window);
780 +               this.showDeviceMenuFn = Mojo.Function.debounce(undefined, this.showDeviceMenu.bind(this, false), .10, this.controller.window);
781 +               this.showTodayMenuFn = Mojo.Function.debounce(undefined, this.showTodayMenu.bind(this, false), .10, this.controller.window);
782 +               this.showStatusMenuFn = Mojo.Function.debounce(undefined, this.showStatusMenu.bind(this, false), .10, this.controller.window);
783 +               this.editDeviceMenuFn = Mojo.Function.debounce(undefined, this.showDeviceMenu.bind(this, true), .10, this.controller.window);
784 +               this.editTodayMenuFn = Mojo.Function.debounce(undefined, this.showTodayMenu.bind(this, true), .10, this.controller.window);
785 +               this.editStatusMenuFn = Mojo.Function.debounce(undefined, this.showStatusMenu.bind(this, true), .10, this.controller.window);
786                 
787                 this.uiAlertsMethods["subscribeToBackupStatus"] = this.handleBackupStatusNotifications.bind(this);
788                 this.uiAlertsMethods["registerForLocationServiceNotifications"] = this.handleLocationServiceNotifications.bind(this);
789 @@ -55,9 +65,9 @@
790         
791                 this.getBuildName();
792                 
793 -               //Create the Device Menu Window. But do not do this if this is a frist use run.
794 +               //Create the System Menu Windows. But do not do this if this is a frist use run.
795                 if(!PalmSystem.isMinimal){
796 -                       this.showDeviceMenu();
797 +                       this.initSystemMenus();
798                 }       
799                                                 
800                 // Initialize the Battery Power Nofication and get the initial value
801 @@ -72,6 +82,9 @@
802                 //Get the Carrier Name by querying the Carrier DB
803                 this.getCarrierName();
804                 
805 +               // Initialize the Gps icon once the service is running
806 +               this.initOnServerStart("com.palm.location", this.gpsInit.bind(this), this.gpsDeinit.bind(this));
807 +               
808                 // Initialize the Bluetooth icon once the service is running
809                 this.initOnServerStart("com.palm.btmonitor", this.btMonitorInit.bind(this), this.btMonitorDeinit.bind(this));
810                 this.initOnServerStart("com.palm.bluetooth", this.btInit.bind(this), this.btDeInit.bind(this));
811 @@ -101,6 +114,9 @@
812                 //Subscribe to Powerd Notification.
813                 this.powerInit();
814                 
815 +               //Subscribe for Ringer Switch Status
816 +               this.ringerSwitchInit();
817 +
818                 //Subscribe to Application Manager 
819                 this.initOnServerStart("com.palm.applicationManager", this.appMgrInit.bind(this));
820                 
821 @@ -115,6 +131,8 @@
822                                 
823                 Mojo.Event.listen(Mojo.Dom.get('appmenu'),'mojo-tap', this.appMenuHandleTap.bindAsEventListener(this));
824                 Mojo.Event.listen(Mojo.Dom.get('devicemenu'),'mojo-tap', this.deviceMenuHandleTap.bindAsEventListener(this));
825 +               Mojo.Event.listen(Mojo.Dom.get('todaymenu'),'mojo-tap', this.todayMenuHandleTap.bindAsEventListener(this));
826 +               Mojo.Event.listen(Mojo.Dom.get('statusmenu'),'mojo-tap', this.statusMenuHandleTap.bindAsEventListener(this));
827                                                 
828                 this.registerForeGroundApp();
829                 this.registerStatusSettings();  
830 @@ -321,8 +339,9 @@
831         //If it is First Use, Do not change the App Name.
832         if(PalmSystem.isMinimal) {
833                 this.foregroundAppID = payload.id;
834 -               Mojo.Dom.get('appname').hide();
835 +               Mojo.Dom.get('appmenu').hide();
836                 Mojo.Dom.get('carrier').show();
837 +               Mojo.Dom.get('devicemenu').className = "";
838                 return;
839         }
840         
841 @@ -355,7 +374,8 @@
842                 
843                 if (!this.deviceLocked) {
844                         Mojo.Dom.get('carrier').hide();
845 -                       Mojo.Dom.get('appname').show();
846 +                       Mojo.Dom.get('appmenu').show();
847 +                       Mojo.Dom.get('devicemenu').className = "devicemenu-appmenu";
848                 }
849                 this.foregroundAppID = payload.id;
850                 
851 @@ -364,8 +384,9 @@
852                         this.closeTutorialDashboard();
853         }
854         else{
855 -               Mojo.Dom.get('appname').hide();
856 +               Mojo.Dom.get('appmenu').hide();
857                 Mojo.Dom.get('carrier').show();
858 +               Mojo.Dom.get('devicemenu').className = "";
859                 this.foregroundAppID=null;
860         }
861  },
862 @@ -452,11 +473,13 @@
863                 }
864                 if (payload.locked || this.foregroundAppID == null) {
865                         Mojo.Dom.get('carrier').show();
866 -                       Mojo.Dom.get('appname').hide();
867 +                       Mojo.Dom.get('appmenu').hide();
868 +                       Mojo.Dom.get('devicemenu').className = "";
869                 }
870                 else {
871                         Mojo.Dom.get('carrier').hide();
872 -                       Mojo.Dom.get('appname').show();
873 +                       Mojo.Dom.get('appmenu').show();
874 +                       Mojo.Dom.get('devicemenu').className = "devicemenu-appmenu";
875                 }
876         }       
877         
878 @@ -529,6 +552,127 @@
879         }
880  },
881  
882 +// System menus
883 +
884 +initSystemMenus: function() {
885 +       this.showStatusMenu();
886 +       this.showTodayMenu();
887 +       this.showDeviceMenu();
888 +},
889 +
890 +closeSystemMenus: function(skip) {
891 +       if(skip != "status") {
892 +               var statusStageController = Mojo.Controller.getAppController().getStageController("StatusMenu");
893 +               
894 +               if(statusStageController)
895 +                       statusStageController.delegateToSceneAssistant("close");
896 +       }
897 +
898 +       if(skip != "today") {
899 +               var todayStageController = Mojo.Controller.getAppController().getStageController("TodayMenu");
900 +               
901 +               if(todayStageController)
902 +                       todayStageController.delegateToSceneAssistant("close");
903 +       }
904 +       
905 +       if(skip != "device") {
906 +               var deviceStageController = Mojo.Controller.getAppController().getStageController("DeviceMenu");
907 +               
908 +               if(deviceStageController)
909 +                       deviceStageController.delegateToSceneAssistant("close");
910 +       }
911 +},
912 +
913 +// Status menu
914 +
915 +statusMenuHandleTap: function(event) { //show/hide statusmenu
916 +       // Ignore the notification if it's in First Use.
917 +       
918 +       if(PalmSystem.isMinimal)
919 +               return;
920 +       
921 +       var target = event.target;
922 +       var i = 0;
923 +       var level = 2;
924 +       
925 +       while((target.getAttribute('id') != 'statusmenu') && (i < level)) {
926 +               target = target.up();
927 +               i++;
928 +       }
929 +       
930 +       if(target) {
931 +               if(target.getAttribute('id') == 'statusmenu') {
932 +                       if((event.up) && (event.up.altKey || event.up.metaKey))
933 +                               this.editStatusMenuFn();
934 +                       else
935 +                               this.showStatusMenuFn();
936 +               }
937 +       }
938 +},
939 +
940 +showStatusMenu: function(edit) {
941 +       var stageController = Mojo.Controller.getAppController().getStageController("StatusMenu");
942 +       if (stageController) {
943 +               this.closeSystemMenus("status");
944 +               
945 +               stageController.delegateToSceneAssistant("toggleStatusMenu", edit);
946 +       } else {
947 +               this.statusMenuCreatedHandler = this.statusMenuCreated.bind(this);
948 +               Mojo.Controller.getAppController().createStageWithCallback({name:"StatusMenu",lightweight: true}, 
949 +                       this.statusMenuCreatedHandler, "menu");
950 +       }
951 +},
952 +
953 +statusMenuCreated: function(stageController) {
954 +       stageController.pushScene('statusmenu',this);
955 +},
956 +
957 +// Today menu
958 +
959 +todayMenuHandleTap: function(event) { //show/hide todaymenu
960 +       //Ignore the notification if it's in First Use.
961 +       
962 +       if(PalmSystem.isMinimal)
963 +               return;
964 +       
965 +       var target = event.target;
966 +       var i = 0;
967 +       var level = 2;
968 +       
969 +       while((target.getAttribute('id') != 'todaymenu') && (i < level)) {
970 +               target = target.up();
971 +               i++;
972 +       }
973 +       
974 +       if(target) {
975 +               if(target.getAttribute('id') == 'todaymenu') {
976 +                       if((event.up) && (event.up.altKey || event.up.metaKey))
977 +                               this.editTodayMenuFn();
978 +                       else
979 +                               this.showTodayMenuFn();
980 +               }                       
981 +       }
982 +},
983 +
984 +showTodayMenu: function(edit) {
985 +       var stageController = Mojo.Controller.getAppController().getStageController("TodayMenu");
986 +       if (stageController) {
987 +               this.closeSystemMenus("today");
988 +               
989 +               stageController.delegateToSceneAssistant("toggleTodayMenu", edit);
990 +       } else {
991 +               this.todayMenuCreatedHandler = this.todayMenuCreated.bind(this);
992 +               Mojo.Controller.getAppController().createStageWithCallback({name:"TodayMenu",lightweight: true}, 
993 +                       this.todayMenuCreatedHandler, "menu");
994 +       }
995 +},
996 +
997 +todayMenuCreated: function(stageController) {
998 +       stageController.pushScene('todaymenu',this);
999 +},
1000 +
1001 +// Device menu
1002 +
1003  deviceMenuHandleTap: function(event){//show/hide devicemenu
1004         
1005         //Ignore the notification if it's in First Use.
1006 @@ -546,16 +690,21 @@
1007                 i++;
1008         }
1009         if (target) {
1010 -               if(target.getAttribute('id') == 'devicemenu'){//show/hide deviceMenu
1011 -                       this.showDeviceMenuFn();
1012 +               if(target.getAttribute('id') == 'devicemenu') {
1013 +                       if((event.up) && (event.up.altKey || event.up.metaKey))
1014 +                               this.editDeviceMenuFn();
1015 +                       else
1016 +                               this.showDeviceMenuFn();
1017                 }
1018         }
1019  },
1020  
1021 -showDeviceMenu: function() {
1022 +showDeviceMenu: function(edit) {
1023                 var stageController = Mojo.Controller.getAppController().getStageController("DeviceMenu");
1024                 if (stageController) {
1025 -                       stageController.delegateToSceneAssistant("toggleDeviceMenu");
1026 +                       this.closeSystemMenus("device");
1027 +                       
1028 +                       stageController.delegateToSceneAssistant("toggleDeviceMenu", edit);                     
1029                 } else {
1030                         this.deviceMenuCreatedHandler = this.deviceMenuCreated.bind(this);
1031                         Mojo.Controller.getAppController().createStageWithCallback({
1032 @@ -693,6 +842,11 @@
1033                                 this.callForwardNotificationSession = null;     
1034                         }
1035                 }
1036 +               var stageController = Mojo.Controller.getAppController().getStageController("DeviceMenu");
1037 +               
1038 +               if (stageController) {
1039 +                       stageController.delegateToSceneAssistant("updatePhoneState");
1040 +               }
1041                 this.updatePhoneAppName();
1042         }
1043  },
1044 @@ -1121,6 +1275,11 @@
1045                         //Close all phone related / NITZ alerts.
1046                         this.closePhoneAlerts();                                
1047                 }
1048 +               var stageController = Mojo.Controller.getAppController().getStageController("DeviceMenu");
1049 +               
1050 +               if (stageController) {
1051 +                       stageController.delegateToSceneAssistant("updatePhoneState");
1052 +               }
1053         }
1054         else if (payload.eventNetwork && this.phoneRadioState) {
1055                 var networkMsg = payload.eventNetwork;
1056 @@ -1757,6 +1916,51 @@
1057  },
1058  
1059  /*
1060 +* Initialize GPS status on device menu
1061 +*/
1062 +
1063 +gpsInit:function(payload) {
1064 +       // Initial value
1065 +       this.gpsState = 'Off';
1066 +       
1067 +       this.gpsGetRadioStatus();
1068 +},
1069 +
1070 +gpsGetRadioStatus:function() {
1071 +       if(this.gpsRadioStatusRequest) {
1072 +               this.gpsRadioStatusRequest.cancel();
1073 +       }
1074 +       
1075 +       this.gpsRadioStatusRequest=new Mojo.Service.Request('palm://com.palm.location/',{
1076 +               method:'getUseGps', parameters: {},
1077 +               onSuccess: this.gpsHandleRadioStatus.bind(this)
1078 +       });
1079 +},
1080 +
1081 +gpsHandleRadioStatus:function(payload) {
1082 +       if (payload.useGps != undefined) {
1083 +               if(payload.useGps) {
1084 +                       this.gpsState = 'On';
1085 +                       Mojo.Dom.get('gps').className = 'on';
1086 +               }                       
1087 +               else {
1088 +                       this.gpsState = 'Off';
1089 +                       Mojo.Dom.get('gps').className = 'off';
1090 +               }
1091 +
1092 +               // Update the Device Menu
1093 +               var stageController = Mojo.Controller.getAppController().getStageController("DeviceMenu");
1094 +               
1095 +               if (stageController) {
1096 +                       stageController.delegateToSceneAssistant("updateGpsState");
1097 +               }
1098 +       }
1099 +},
1100 +
1101 +gpsDeinit:function(payload) {
1102 +},
1103 +
1104 +/*
1105   * Initialize Bluetooth icon on status bar 
1106   */
1107  btInit:function(payload){
1108 @@ -1966,6 +2170,8 @@
1109   * Handle power and charging notifications
1110   */
1111  handlePowerNotifications: function(payload) {
1112 +
1113 +       this.gpsGetRadioStatus();
1114         
1115         Mojo.Log.info("SystemUI Power Payload "+ Object.toJSON(payload));
1116         if(!this.powerdServiceUp) {
1117 @@ -1976,6 +2182,10 @@
1118                 this.queryBatteryStatusReq.cancel();
1119                 this.queryBatteryStatusReq = undefined;
1120         }       
1121 +       // Is the temperature info provided?
1122 +       if(payload.temperature_C) {
1123 +               this.batteryTemp = payload.temperature_C;
1124 +       }
1125         // Is the battery level provided?
1126         if (payload.percent_ui != undefined) {
1127                 
1128 @@ -2046,7 +2256,10 @@
1129                         //Update the System Menu
1130                         var stageController = Mojo.Controller.getAppController().getStageController("DeviceMenu");
1131                         if (stageController) {
1132 -                               stageController.delegateToSceneAssistant("updateBatteryLevel", this.batteryLevel);                      
1133 +                               if(this.isCharging)
1134 +                                       stageController.delegateToSceneAssistant("updateBatteryInfo", this.batteryLevel, "Charging");
1135 +                               else
1136 +                                       stageController.delegateToSceneAssistant("updateBatteryInfo", this.batteryLevel, "Discharging");
1137                         }
1138                         
1139                          //Update the Software Update Alert
1140 @@ -2154,6 +2367,17 @@
1141         return this.batteryLevel;
1142  },
1143  
1144 +getBatteryState: function() {
1145 +       if(this.isCharging)
1146 +               return "Charging";
1147 +       else
1148 +               return "Discharging";
1149 +},
1150 +
1151 +getBatteryTemp: function() {
1152 +       return this.batteryTemp;
1153 +},
1154 +
1155  queryBatteryStatus: function() {
1156         this.queryBatteryStatusReq = new Mojo.Service.Request('palm://com.palm.power/com/palm/power/', {
1157                 method: 'batteryStatusQuery',});
1158 @@ -2167,6 +2391,7 @@
1159         this.lastBatteryLevel = 0;
1160         this.chargingBannerShown = false;
1161         this.batteryLevel = 0;
1162 +       this.batteryTemp = 0;
1163         // Subscribe to Battery Power Notifications
1164         this.powerNotificationSession = new Mojo.Service.Request('palm://com.palm.bus/signal/', {
1165                 method: 'addmatch',
1166 @@ -2216,6 +2441,27 @@
1167  },
1168  
1169  /*
1170 + * Initialize ringer switch
1171 + */
1172 +
1173 +ringerSwitchInit: function() {
1174 +       this.controller.serviceRequest('palm://com.palm.keys/switches', {
1175 +               method:'status', parameters: {"subscribe":true},
1176 +               onSuccess: function(payload) {
1177 +                       this.controller.serviceRequest('palm://com.palm.audio/media', {
1178 +                               method:'status',
1179 +                               onSuccess: function(response) {
1180 +                                       if(!response['ringer switch'])
1181 +                                               Mojo.Dom.get('ringer').className = 'off';
1182 +                                       else
1183 +                                               Mojo.Dom.get('ringer').className = 'on';   
1184 +                               }.bind(this)
1185 +                       });
1186 +               }.bind(this)
1187 +       });
1188 +},
1189 +
1190 +/*
1191   * Handle WAN notifications
1192   */
1193  handleWANNotifications: function(payload) {
1194 @@ -2225,6 +2471,22 @@
1195          if(payload.returnValue != undefined && payload.returnValue)
1196                 return;
1197                 
1198 +        if(payload.disablewan === 'on')
1199 +               this.dataConnState = false;
1200 +        else if(payload.disablewan === 'off')
1201 +               this.dataConnState = true;
1202 +
1203 +       var stageController = Mojo.Controller.getAppController().getStageController("DeviceMenu");
1204 +               
1205 +       if (stageController) {
1206 +               stageController.delegateToSceneAssistant("updateDataState");
1207 +       }
1208 +
1209 +        if(payload.roamGuard === 'disable')
1210 +               this.dataRoamState = true;
1211 +        else if(payload.roamGuard === 'enable')
1212 +               this.dataRoamState = false;
1213 +        
1214          var mipFailureCode, causeCode; 
1215                         
1216          if (payload.networkstatus == "attached" && payload.connectedservices && payload.connectedservices.length > 0) { 
1217 @@ -2952,6 +3214,10 @@
1218                 if (stageController) {
1219                         stageController.delegateToSceneAssistant("updateAirplaneModeProgress");
1220                 }       
1221 +               var stageController2 = Mojo.Controller.getAppController().getStageController("StatusMenu");     
1222 +               if (stageController2) {
1223 +                       stageController2.delegateToSceneAssistant("updateAirplaneModeProgress");
1224 +               }       
1225                 if (this.airplaneMode === false) 
1226                         this.disableFlightMode();
1227                 else {
1228 @@ -2963,6 +3229,10 @@
1229                 if (stageController) {
1230                         stageController.delegateToSceneAssistant("updateAirplaneModeSettings");
1231                 }
1232 +               var stageController2 = Mojo.Controller.getAppController().getStageController("StatusMenu");     
1233 +               if (stageController2) {
1234 +                       stageController2.delegateToSceneAssistant("updateAirplaneModeSettings");
1235 +               }       
1236         }       
1237         this.airplaneModeInitialQueryDone = true;
1238         if(this.telephonyPowerQueryPayload) {
1239 @@ -2986,6 +3256,14 @@
1240                 });     
1241  },
1242  
1243 +getAirplaneModeInProgress: function() {
1244 +       return this.apModeInProgress;
1245 +},
1246 +
1247 +setAirplaneModeInProgress: function(inprogress) {
1248 +       this.apModeInProgress = inprogress;
1249 +},
1250 +
1251  //Disable Airplane Mode by turning on Phone and other radios.
1252  disableFlightMode: function() {
1253         Mojo.Log.info("System UI - Disabling Airplane Mode");
1254 @@ -3121,6 +3399,12 @@
1255                 this.airplaneModeTriggered = false;
1256                 stageController.delegateToSceneAssistant("updateAirplaneModeSettings");
1257         }       
1258 +
1259 +       var stageController2 = Mojo.Controller.getAppController().getStageController("StatusMenu");     
1260 +
1261 +       if (apModeDone && stageController2) {
1262 +               stageController2.delegateToSceneAssistant("updateAirplaneModeProgress");
1263 +       }       
1264  },
1265  
1266  //Clear the Hash before enable / disable the Airplane mode
1267 @@ -3234,6 +3518,39 @@
1268                         
1269  },
1270  
1271 +getCurrentPhoneState: function() {
1272 +       if(this.phoneRadioState) {
1273 +               if(this.carrierText.length > 0)
1274 +                       return this.carrierText;
1275 +               else
1276 +                       return 'On';
1277 +       }
1278 +       else
1279 +               return 'Off';
1280 +},
1281 +
1282 +getCurrentDataState: function() {
1283 +       if(this.dataConnState) {
1284 +               if(this.carrierText.length > 0)
1285 +                       return this.carrierText;
1286 +               else
1287 +                       return 'On';
1288 +       }
1289 +       else
1290 +               return 'Off';
1291 +},
1292 +
1293 +getRoamingDataState: function() {      
1294 +       if(this.dataRoamState)
1295 +               return 'On';
1296 +       else
1297 +               return 'Off';
1298 +},
1299 +
1300 +getCurrentGpsState: function() {
1301 +       return this.gpsState;
1302 +},
1303 +
1304  getCurrentBluetoothState: function() {
1305         return this.bluetoothState;
1306  },
1307 @@ -4591,6 +4908,8 @@
1308         // Telephony Variables
1309         phoneType: null,
1310         phoneRadioState: null,
1311 +       dataConnState: null,
1312 +       dataRoamState: null,
1313         phoneRadioNotificationSession: null,
1314         signalNotificationSession: null,
1315         networkNotificationSession: null,
1316 --- .orig/usr/lib/luna/system/luna-systemui/app/views/bar/bar-scene.html
1317 +++ /usr/lib/luna/system/luna-systemui/app/views/bar/bar-scene.html
1318 @@ -5,15 +5,10 @@
1319                         <span id="today"></span> 
1320                 </div>
1321         </div>
1322 -       <div id="appmenu">
1323 -               <div id="carrier" class="carrier-wrapper truncating-text"></div>
1324 -               <div class="appname-container">
1325 -                       <div id="appname" class="appname-wrapper truncating-text"></div>
1326 -               </div>
1327 -       </div>
1328 -
1329 +       
1330         <div id="devicemenu">
1331                 <div id="power"></div>
1332 +               <div id="ringer"></div>
1333                 <div id="rssi"></div>
1334                 <div id="ev1x">
1335                         <div id="rssi-ev"></div>
1336 @@ -24,8 +19,21 @@
1337                 <div id="wifi"></div>
1338                 <div id="vpn"></div>
1339                 <div id="bluetooth"></div>
1340 +               <div id="gps"></div>
1341                 <div id="tty"></div>
1342                 <div id="callforward"></div>
1343                 <div id="hac"></div>
1344         </div>
1345 -</div>
1346 \ No newline at end of file
1347 +
1348 +       <div id="statusmenu">
1349 +               <div id="carrier" class="carrier-wrapper truncating-text"></div>                                
1350 +       </div>
1351 +       
1352 +       <div id="todaymenu"></div>
1353 +       
1354 +       <div id="appmenu">
1355 +               <div class="appname-container">
1356 +                       <div id="appname" class="appname-wrapper truncating-text"></div>
1357 +               </div>
1358 +       </div>
1359 +</div>
1360 --- .orig/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css
1361 +++ /usr/lib/luna/system/luna-systemui/stylesheets/systemui.css
1362 @@ -129,6 +129,7 @@
1363  #tty,
1364  #hac,
1365  #callforward,
1366 +#ringer,
1367  #gps,
1368  #ev1x {
1369         float: right;
1370 @@ -173,6 +174,18 @@
1371  #power.battery-charging-11 { background-image: url(../images/battery-charging-11.png); }
1372  #power.battery-charged { background-image: url(../images/battery-charged.png); }
1373  
1374 +#ringer {
1375 +       width: 20px;
1376 +}
1377 +
1378 +#ringer.off {
1379 +       background: url(../../../../../palm/applications/com.palm.app.soundsandalerts/images/prefs-mute.png) center left no-repeat;
1380 +}
1381 +
1382 +#ringer.on {
1383 +       display: none;
1384 +}
1385 +
1386  #rssi {
1387         width: 19px;
1388  }
1389 @@ -273,6 +286,18 @@
1390  #bluetooth.connecting { background-image: url(../images/bluetooth-connecting.png); }
1391  #bluetooth.connected { background-image: url(../images/bluetooth-connected.png); }
1392  
1393 +#gps.off {
1394 +       display: none;
1395 +}
1396 +
1397 +#gps.on {
1398 +       background: url(../images/gps-on.png) center center no-repeat;
1399 +}
1400 +
1401 +#gps.active{
1402 +       background: url(../images/gps-active.png) center center no-repeat;
1403 +}
1404 +
1405  #tty {
1406         width: 16px;
1407         background-image: url(../images/tty.png);
1408 @@ -308,3 +333,27 @@
1409  .in-drawer-list .palm-row.last {
1410         background: url(../images/list-separator-dark-taper.png) bottom left no-repeat !important;
1411  }
1412 +
1413 +#statusmenu {
1414 +       color: #fff;
1415 +       position: fixed;
1416 +       margin: 0;
1417 +       top: 0;
1418 +       left: 0;
1419 +       height: 28px;
1420 +       width: 110px;
1421 +       padding: 0;
1422 +}
1423 +
1424 +#todaymenu {
1425 +       color: #fff;
1426 +       position: fixed;
1427 +       margin: 0;
1428 +       top: 0;
1429 +       left: 110px;
1430 +       right: 110px;
1431 +       height: 28px;
1432 +       width: 100px;
1433 +       padding: 0;
1434 +}
1435 +
1436 --- .orig/usr/palm/applications/com.palm.app.screenlock/resources/es/strings.json
1437 +++ /usr/palm/applications/com.palm.app.screenlock/resources/es/strings.json
1438 @@ -80,5 +80,9 @@
1439         "Zero": "Cero",
1440         "confirm password...": "confirmar contraseña…",
1441         "enter password...": "introducir contraseña…",
1442 -       "never": "nunca"
1443 +       "never": "nunca",
1444 +  "Enter Password": "",
1445 +  "Enter New Password": "",
1446 +  "Password...": "",
1447 +  "Password Again...": ""
1448  }