Commit 261036cc4010523a3bc13bd74b9fce6dcc32e70d

  • avatar
  • dBsooner's Stuff <dbsooner @del…ge.vision5.com>
  • Mon Feb 08 06:32:36 CET 2010
  • Tree SHA1: 0f1ce63
  • Parent SHA1: a4aaa15 (Add patch that allows theme css overrides in scope of developing theme api structure. Will find a better name and fix the naming convention once it's all ready.)
  • raw diff | raw patch
14 New, 1 Updated patches.
  
1diff --git a/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js b/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js
2index bebbad2..5814b08 100644
3--- a/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js
4+++ b/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js
5@@ -10,7 +10,7 @@ var LauncherAssistant = Class.create({
6 */
7 kQuickLaunchHeight: 67,
8
9- kPageIndicatorSpacing: 6, /* spacing between each page indicator */
10+ kPageIndicatorSpacing: 1, /* spacing between each page indicator */
11 kPageMargin: 10, /* 10 pixel margin on each side of a page */
12 kPageWidthNoMargin: NaN,
13 kPageWidth: NaN,
14@@ -23,8 +23,8 @@ var LauncherAssistant = Class.create({
15 visible: true,
16 label: $L('Launcher'),
17 items: [
18- /*{ label: $L('New page'), command: 'newpage' },
19- { label: $L('Delete page'), command: 'deletepage' },*/
20+ { label: $L('New page'), command: 'newpage' },
21+ { label: $L('Delete page'), command: 'deletepage' },
22 Mojo.Menu.editItem,
23 { label: $L('List Apps...'), command: 'listapps' },
24 { label: $L('Default Applications'), command: 'defaultapps'},
25@@ -124,7 +124,7 @@ var LauncherAssistant = Class.create({
26 case 'defaultapps':
27 ApplicationService.launch(this.deviceInfo.id, this.deviceInfo.defaultAppParams);
28 break;
29- /*
30+ //start add del page code
31 case 'newpage':
32 if (this.pageDivs.length < 10) {
33 this.insertPage(this.activePageIndex, true);
34@@ -138,7 +138,7 @@ var LauncherAssistant = Class.create({
35 }
36 }
37 break;
38- */
39+ //end add del page code
40 }
41 }
42 else if (event.type === Mojo.Event.commandEnable) {
43@@ -341,9 +341,9 @@ var LauncherAssistant = Class.create({
44 newAppDiv = $(newAppInfo.launchPointId);
45 Mojo.assert(newAppDiv !== undefined, "Application (%d) was inserted into the DOM but unable to be retrieved!", newAppInfo.launchPointId);
46 if (isNaN(this.kAppWidth) || isNaN(this.kAppHeight)) {
47- this.kAppWidth = newAppDiv.getWidth();
48- this.kAppHeight = newAppDiv.getHeight();
49- this.kAppsPerRow = Math.round(this.kPageWidthNoMargin / this.kAppWidth);
50+ this.kAppWidth = 80;
51+ this.kAppHeight = 88;
52+ this.kAppsPerRow = 4;
53 }
54
55 Mojo.listen(newAppDiv, Mojo.Event.tap, this.onAppTapped.bindAsEventListener(this));
56@@ -541,7 +541,7 @@ var LauncherAssistant = Class.create({
57 /* determines the position of an app element at appIndex within a page */
58 calculateAppPosition: function(appIndex) {
59 return {
60- left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) + this.kPageMargin),
61+ left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) - 10),
62 top: (Math.floor(appIndex/this.kAppsPerRow) * this.kAppHeight)
63 };
64 },
65@@ -723,7 +723,7 @@ var LauncherAssistant = Class.create({
66 onAppTapped: function(event) {
67 var target = event.currentTarget;
68 var appInfo = target._info;
69- if (event.up && event.up.altKey) {
70+ if (event.up && event.up.altKey || event.up && event.up.metaKey) {
71 // open app-info dialog
72 this.showAppInfoMenu(appInfo);
73 } else if (!this.feedbackTimeout) { // are we already trying to launch something?
74diff --git a/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css b/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css
75index 545460c..bd17230 100644
76--- a/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css
77+++ b/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css
78@@ -125,7 +125,7 @@ body.palm-default
79
80 .launcher_page .name {
81 position:absolute;
82- top: 68px;
83+ top: 60px;
84 width:100px;
85 height: 34px;
86 max-height: 34px;
87@@ -134,7 +134,7 @@ body.palm-default
88 color:white;
89 text-align:center;
90 font-weight:bold;
91- font-size: 14px;
92+ font-size: 12px;
93 overflow: hidden;
94 text-overflow: ellipsis;
95 z-index:5;
96@@ -263,8 +263,8 @@ body.palm-default
97 }
98
99 .draggable {
100- width:64px;
101- height:64px;
102+ width:60px;
103+ height:60px;
104 margin: 0 auto;
105 -webkit-user-drag: any;
106 -webkit-user-select: none;
107@@ -312,8 +312,8 @@ body.palm-default
108
109 #app-icon {
110 float:left;
111- width:64px;
112- height:64px;
113+ width:60px;
114+ height:60px;
115 background: center center no-repeat;
116 }
117
  
1diff --git a/usr/palm/applications/com.palm.app.youtube/appinfo.json b/usr/palm/applications/com.palm.app.youtube/appinfo.json
2index d6bb057..93094ae 100644
3--- a/usr/palm/applications/com.palm.app.youtube/appinfo.json
4+++ b/usr/palm/applications/com.palm.app.youtube/appinfo.json
5@@ -4,6 +4,7 @@
6 "main": "index.html",
7 "keywords": ["Videos", "Movies"],
8 "id": "com.palm.app.youtube",
9- "icon": "icon.png"
10+ "icon": "icon.png",
11+ "visible": "false"
12 }
13
  
1diff --git a/usr/palm/applications/com.palm.app.clock/app/controllers/ring-assistant.js b/usr/palm/applications/com.palm.app.clock/app/controllers/ring-assistant.js
2index 4f99313..a1ece54 100644
3--- a/usr/palm/applications/com.palm.app.clock/app/controllers/ring-assistant.js
4+++ b/usr/palm/applications/com.palm.app.clock/app/controllers/ring-assistant.js
5@@ -5,6 +5,7 @@ var RingAssistant = Class.create({
6 initialize: function(params){
7 this.appControl = Mojo.Controller.getAppController();
8 this.appAssistant = this.appControl.assistant;
9+ this.settings = this.appAssistant.settings;
10
11 this.alarmOff = this.alarmOff.bindAsEventListener(this);
12 this.snooze = this.snooze.bindAsEventListener(this);
13@@ -55,7 +56,7 @@ var RingAssistant = Class.create({
14 } else if (this.shortSnooze) {
15 this.alarm.snooze(true /* short snooze */);
16 } else {
17- this.alarm.snooze();
18+ this.alarm.snooze(false /* not short snooze */, this.settings.snoozeDurationGet());
19 }
20 },
21
22diff --git a/usr/palm/applications/com.palm.app.clock/app/controllers/settings-assistant.js b/usr/palm/applications/com.palm.app.clock/app/controllers/settings-assistant.js
23index 65c8202..f6f3aef 100644
24--- a/usr/palm/applications/com.palm.app.clock/app/controllers/settings-assistant.js
25+++ b/usr/palm/applications/com.palm.app.clock/app/controllers/settings-assistant.js
26@@ -1,6 +1,30 @@
27 /* Copyright 2009 Palm, Inc. All rights reserved. */
28
29 var SettingsAssistant = Class.create({
30+ // values for snooze duration listselector
31+ snoozeDurationChoices: [
32+ {
33+ label: $L("3 min."),
34+ value: 3
35+ },
36+ {
37+ label: $L("5 min."),
38+ value: 5
39+ },
40+ {
41+ label: $L("10 min."),
42+ value: 10
43+ },
44+ {
45+ label: $L("15 min."),
46+ value: 15
47+ },
48+ {
49+ label: $L("20 min."),
50+ value: 20
51+ },
52+ ],
53+
54 initialize: function(settings, themes, onThemeChange) {
55 this.appController = Mojo.Controller.getAppController();
56
57@@ -14,7 +38,7 @@ var SettingsAssistant = Class.create({
58 this.initializeSettings();
59
60 this.onKeyPress = this.onKeyPress.bind(this);
61-
62+ this.onSnoozeDurationChange = this.onSnoozeDurationChange.bind(this); // event handler for snooze duration list handler
63 this.easterString = "";
64
65 },
66@@ -22,8 +46,12 @@ var SettingsAssistant = Class.create({
67 // VERY IMPORTANT: UI for ringer switch has OPPOSITE MEANING of variable
68 // it's reversed here for display and must be reversed back when saving
69 initializeSettings: function() {
70- this.settingsModel = { };
71- this.settingsModel.ringerSwitchObeyed = !(this.settings.ringerSwitchObeyedGet());
72+ this.settingsModel = {
73+ ringerSwitchObeyed: !(this.settings.ringerSwitchObeyedGet()),
74+ snoozeDuration: this.settings.snoozeDurationGet() // load setting for snooze duration into scene’s model
75+ }
76+
77+
78 },
79
80 setup: function() {
81@@ -50,6 +78,15 @@ var SettingsAssistant = Class.create({
82
83 this.controller.get('theme_set').observe(Mojo.Event.tap, this.onThemeSelect);
84
85+ this.controller.setupWidget('snoozeduration', { // setup snooze duration's listselector widget
86+ label: $L('length'),
87+ choices: this.snoozeDurationChoices,
88+ modelProperty: 'snoozeDuration',
89+ labelPlacement: Mojo.Widget.labelPlacementLeft
90+ }, this.settingsModel);
91+
92+ this.controller.listen('snoozeduration', Mojo.Event.propertyChange, this.onSnoozeDurationChange);
93+
94 this.controller.listen(this.controller.sceneElement, Mojo.Event.keypress, this.onKeyPress);
95
96 },
97@@ -74,6 +111,10 @@ var SettingsAssistant = Class.create({
98 this.settings.ringerSwitchObeyedSet(!(this.settingsModel.ringerSwitchObeyed));
99 },
100
101+ onSnoozeDurationChange: function() { // respond to events on list selector widget
102+ this.settings.snoozeDurationSet(this.settingsModel.snoozeDuration);
103+ },
104+
105 themeUpdate: function() {
106 var theme = this.themes.getCurrentTheme();
107 this.controller.get('theme_name').textContent = this.themes.getNicename(theme.name);
108diff --git a/usr/palm/applications/com.palm.app.clock/app/models/alarm.js b/usr/palm/applications/com.palm.app.clock/app/models/alarm.js
109index c8e1353..f43591f 100644
110--- a/usr/palm/applications/com.palm.app.clock/app/models/alarm.js
111+++ b/usr/palm/applications/com.palm.app.clock/app/models/alarm.js
112@@ -341,12 +341,18 @@ var Alarm = Class.create({
113 },
114
115 // snooze this alarm. pass true to indicate that it was snoozed by another popup opening
116- snooze: function(alarmInterrupted) {
117+ snooze: function(alarmInterrupted, duration) {
118 var newParams = Alarm.kAlarmLaunchParams.evalJSON();
119 newParams.params.id = this.id;
120 if (alarmInterrupted) {
121 newParams.params.alarmInterrupted = true;
122 }
123+
124+ if (duration) {
125+ duration = "00:" + duration + ":00"
126+ } else {
127+ duration = Alarm.kAlarmSnoozeDuration;
128+ }
129 var newParamsJSON = Object.toJSON(newParams);
130 this.schedulerSetRequest = new Mojo.Service.Request(Alarm.kAlarmSchedulerUri, {
131 method: "set",
132@@ -355,7 +361,7 @@ var Alarm = Class.create({
133 "key": Alarm.kAlarmSchedulerKeySnooze+this.id,
134 "uri": Alarm.kAlarmLaunchUri,
135 "params": newParamsJSON,
136- "in": (alarmInterrupted ? Alarm.kAlarmSnoozeInterruptedDuration : Alarm.kAlarmSnoozeDuration)
137+ "in": (alarmInterrupted ? Alarm.kAlarmSnoozeInterruptedDuration : duration)
138 },
139 onSuccess: function(payload) {
140 // Mojo.Log.info("Alarm: snooze succeeded");
141diff --git a/usr/palm/applications/com.palm.app.clock/app/models/settings.js b/usr/palm/applications/com.palm.app.clock/app/models/settings.js
142index a311fdf..0d62185 100644
143--- a/usr/palm/applications/com.palm.app.clock/app/models/settings.js
144+++ b/usr/palm/applications/com.palm.app.clock/app/models/settings.js
145@@ -36,7 +36,8 @@ var Settings = Class.create({
146 timePickerInterval: 5,
147 dashboardHide: false,
148 ringerSwitchObeyed: false,
149- initialized: true
150+ initialized: true,
151+ snoozeDuration: 5
152 };
153
154 this.save();
155@@ -72,7 +73,16 @@ var Settings = Class.create({
156
157 ringerSwitchObeyedGet: function() {
158 return this.values.ringerSwitchObeyed;
159- }
160+ },
161+
162+ snoozeDurationGet: function() {
163+ return this.values.snoozeDuration || 5
164+ },
165+
166+ snoozeDurationSet: function(value) {
167+ this.values.snoozeDuration = value;
168+ this.save();
169+ },
170
171 });
172
173diff --git a/usr/palm/applications/com.palm.app.clock/app/views/settings/settings-scene.html b/usr/palm/applications/com.palm.app.clock/app/views/settings/settings-scene.html
174index 9daf393..32d1281 100644
175--- a/usr/palm/applications/com.palm.app.clock/app/views/settings/settings-scene.html
176+++ b/usr/palm/applications/com.palm.app.clock/app/views/settings/settings-scene.html
177@@ -34,4 +34,14 @@
178 </div>
179 </div>
180
181+ <div class="palm-group">
182+ <div class="palm-group-title">
183+ <span x-mojo-loc=''>snooze</span>
184+ </div>
185+ <div class="palm-list">
186+ <div class="palm-row single">
187+ <div id="snoozeduration" x-mojo-element="ListSelector"></div>
188+ </div>
189+ </div>
190+ </div>
191 </div>
  
1diff --git a/usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js b/usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js
2index 461cba0..eba7ec0 100644
3--- a/usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js
4+++ b/usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js
5@@ -847,6 +847,6 @@ ComposeAssistant.replaceURIs = function(originalText, email) {
6
7 ComposeAssistant.kAppMenuHighPriority = $L('Set as High Priority');
8 ComposeAssistant.kAppMenuNormalPriority = $L('Set as Normal Priority');
9-ComposeAssistant.kEmptySignatureRegex = /<span id="signature"><div style="font-family: arial, sans-serif; font-size: 12px;color: #999999;">[<br>]*<\/div>[<br>]*<\/span>/
10+ComposeAssistant.kEmptySignatureRegex = /<span id="signature"><div style="font-family: Arial, sans-serif; font-size: 13px;color: #999999;">[<br>]*<\/div>[<br>]*<\/span>/
11 ComposeAssistant.kForwardDraftDelimeter = "<span id='FORWARD_DRAFT_TEXT' class='display:none'></span>";
12
13diff --git a/usr/palm/applications/com.palm.app.email/app/models/Email.js b/usr/palm/applications/com.palm.app.email/app/models/Email.js
14index 68953d4..fd7c9bf 100644
15--- a/usr/palm/applications/com.palm.app.email/app/models/Email.js
16+++ b/usr/palm/applications/com.palm.app.email/app/models/Email.js
17@@ -159,7 +159,7 @@ var Email = Class.create({
18 if (r.displayName === r.address)
19 toStr = r.displayName;
20 else
21- toStr = "#{displayName} <#{address}>".interpolate(r);
22+ toStr = "#{displayName}".interpolate(r);
23 toAddressList.push(toStr);
24 }
25 } else if (r.role === EmailRecipient.roleCc) {
26@@ -168,7 +168,7 @@ var Email = Class.create({
27 if (r.displayName === r.address)
28 ccStr = r.displayName;
29 else
30- ccStr = "#{displayName} <#{address}>".interpolate(r);
31+ ccStr = "#{displayName}".interpolate(r);
32 ccAddressList.push(ccStr);
33 }
34 }
35@@ -180,20 +180,34 @@ var Email = Class.create({
36 this.text += $L("<b>From:</b> ") + "#{displayName}".interpolate(fromObj).escapeHTML() + "<br/>";
37 }
38 else {
39- this.text += $L("<b>From:</b> ") + "#{displayName} <#{address}>".interpolate(fromObj).escapeHTML() + "<br/>"
40+ this.text += $L("<b>From:</b> ") + "#{displayName}".interpolate(fromObj).escapeHTML() + "<br/>"
41 };
42- this.text += $L("<b>Date:</b> ") + Mojo.Format.formatDate(new Date(parseInt(original.timeStamp)), {date:'medium', time:'short'}) + "<br/>";
43- this.text += $L("<b>Subject:</b> #{summary}").interpolate(original) + "<br/>";
44+ this.text += $L("<b>Sent:</b> ") + Mojo.Format.formatDate(new Date(parseInt(original.timeStamp)), {date:'full', time:'short'}) + "<br/>";
45 if (toAddressList.length > 0) {
46 this.text += $L("<b>To:</b> ") + "#{list}".interpolate({list:toAddressList.join("; ")}).escapeHTML() + "<br/>";
47 }
48 if (ccAddressList.length > 0) {
49- this.text += $L("<b>CC:</b> ") + "#{list}".interpolate({list:ccAddressList.join("; ")}).escapeHTML() + "<br/>";
50+ this.text += $L("<b>Cc:</b> ") + "#{list}".interpolate({list:ccAddressList.join("; ")}).escapeHTML() + "<br/>";
51 }
52+ this.text += $L("<b>Subject:</b> #{summary}").interpolate(original) + "<br/>";
53 this.text += "<br/>";
54 } else {
55 this.text = Email.kReplyForwardSetupElems;
56- this.text += $L("#{displayName} wrote:").interpolate(fromObj) + "<br/><br/>";
57+ if (fromObj.displayName === fromObj.address) {
58+ this.text += $L("<b>From:</b> ") + "#{displayName}".interpolate(fromObj).escapeHTML() + "<br/>";
59+ }
60+ else {
61+ this.text += $L("<b>From:</b> ") + "#{displayName}".interpolate(fromObj).escapeHTML() + "<br/>"
62+ };
63+ this.text += $L("<b>Sent:</b> ") + Mojo.Format.formatDate(new Date(parseInt(original.timeStamp)), {date:'full', time:'short'}) + "<br/>";
64+ if (toAddressList.length > 0) {
65+ this.text += $L("<b>To:</b> ") + "#{list}".interpolate({list:toAddressList.join("; ")}).escapeHTML() + "<br/>";
66+ }
67+ if (ccAddressList.length > 0) {
68+ this.text += $L("<b>Cc:</b> ") + "#{list}".interpolate({list:ccAddressList.join("; ")}).escapeHTML() + "<br/>";
69+ }
70+ this.text += $L("<b>Subject:</b> #{summary}").interpolate(original) + "<br/>";
71+ this.text += "<br/>";
72 }
73 this.originalText = original.text;
74 } else {
75@@ -367,8 +381,8 @@ Email.getPriorityClass = function(priority) {
76 return priority;
77 }
78
79-Email.kSignaturePlaceholder = "<span style='font-family:Prelude, Verdana, san-serif;'><br><br></span><span id='signature'></span>";
80-Email.kReplyForwardSetupElems = "<br><br>" + Email.kSignaturePlaceholder + "<span style='color:navy; font-family:Prelude, Verdana, san-serif; '><hr align='left' style='width:75%'/>";
81+Email.kSignaturePlaceholder = "<span style='font-family:Prelude, Arial, san-serif; font-size:13px; color:black;'><br><br></span><span id='signature'></span>";
82+Email.kReplyForwardSetupElems = "<span style='font-family:Prelude, Arial, san-serif; font-size:13px'>" + Email.kSignaturePlaceholder + "<hr align='left' style='width:75%'/>";
83
84 Email.kSubjectPrefixRe = $L("Re: ");
85 Email.kSubjectPrefixFw = $L("Fw: ");
  
1diff --git a/usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js b/usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js
2index 461cba0..d22cb1e 100644
3--- a/usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js
4+++ b/usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js
5@@ -847,6 +847,6 @@ ComposeAssistant.replaceURIs = function(originalText, email) {
6
7 ComposeAssistant.kAppMenuHighPriority = $L('Set as High Priority');
8 ComposeAssistant.kAppMenuNormalPriority = $L('Set as Normal Priority');
9-ComposeAssistant.kEmptySignatureRegex = /<span id="signature"><div style="font-family: arial, sans-serif; font-size: 12px;color: #999999;">[<br>]*<\/div>[<br>]*<\/span>/
10+ComposeAssistant.kEmptySignatureRegex = /<span id="signature"><div style="font-family: Calibri, sans-serif; font-size: 15px;color: #999999;">[<br>]*<\/div>[<br>]*<\/span>/
11 ComposeAssistant.kForwardDraftDelimeter = "<span id='FORWARD_DRAFT_TEXT' class='display:none'></span>";
12
13diff --git a/usr/palm/applications/com.palm.app.email/app/models/Email.js b/usr/palm/applications/com.palm.app.email/app/models/Email.js
14index 68953d4..107977b 100644
15--- a/usr/palm/applications/com.palm.app.email/app/models/Email.js
16+++ b/usr/palm/applications/com.palm.app.email/app/models/Email.js
17@@ -159,7 +159,7 @@ var Email = Class.create({
18 if (r.displayName === r.address)
19 toStr = r.displayName;
20 else
21- toStr = "#{displayName} <#{address}>".interpolate(r);
22+ toStr = "#{displayName}".interpolate(r);
23 toAddressList.push(toStr);
24 }
25 } else if (r.role === EmailRecipient.roleCc) {
26@@ -168,7 +168,7 @@ var Email = Class.create({
27 if (r.displayName === r.address)
28 ccStr = r.displayName;
29 else
30- ccStr = "#{displayName} <#{address}>".interpolate(r);
31+ ccStr = "#{displayName}".interpolate(r);
32 ccAddressList.push(ccStr);
33 }
34 }
35@@ -180,20 +180,34 @@ var Email = Class.create({
36 this.text += $L("<b>From:</b> ") + "#{displayName}".interpolate(fromObj).escapeHTML() + "<br/>";
37 }
38 else {
39- this.text += $L("<b>From:</b> ") + "#{displayName} <#{address}>".interpolate(fromObj).escapeHTML() + "<br/>"
40+ this.text += $L("<b>From:</b> ") + "#{displayName}".interpolate(fromObj).escapeHTML() + "<br/>"
41 };
42- this.text += $L("<b>Date:</b> ") + Mojo.Format.formatDate(new Date(parseInt(original.timeStamp)), {date:'medium', time:'short'}) + "<br/>";
43- this.text += $L("<b>Subject:</b> #{summary}").interpolate(original) + "<br/>";
44+ this.text += $L("<b>Sent:</b> ") + Mojo.Format.formatDate(new Date(parseInt(original.timeStamp)), {date:'full', time:'short'}) + "<br/>";
45 if (toAddressList.length > 0) {
46 this.text += $L("<b>To:</b> ") + "#{list}".interpolate({list:toAddressList.join("; ")}).escapeHTML() + "<br/>";
47 }
48 if (ccAddressList.length > 0) {
49- this.text += $L("<b>CC:</b> ") + "#{list}".interpolate({list:ccAddressList.join("; ")}).escapeHTML() + "<br/>";
50+ this.text += $L("<b>Cc:</b> ") + "#{list}".interpolate({list:ccAddressList.join("; ")}).escapeHTML() + "<br/>";
51 }
52+ this.text += $L("<b>Subject:</b> #{summary}").interpolate(original) + "<br/>";
53 this.text += "<br/>";
54 } else {
55 this.text = Email.kReplyForwardSetupElems;
56- this.text += $L("#{displayName} wrote:").interpolate(fromObj) + "<br/><br/>";
57+ if (fromObj.displayName === fromObj.address) {
58+ this.text += $L("<b>From:</b> ") + "#{displayName}".interpolate(fromObj).escapeHTML() + "<br/>";
59+ }
60+ else {
61+ this.text += $L("<b>From:</b> ") + "#{displayName}".interpolate(fromObj).escapeHTML() + "<br/>"
62+ };
63+ this.text += $L("<b>Sent:</b> ") + Mojo.Format.formatDate(new Date(parseInt(original.timeStamp)), {date:'full', time:'short'}) + "<br/>";
64+ if (toAddressList.length > 0) {
65+ this.text += $L("<b>To:</b> ") + "#{list}".interpolate({list:toAddressList.join("; ")}).escapeHTML() + "<br/>";
66+ }
67+ if (ccAddressList.length > 0) {
68+ this.text += $L("<b>Cc:</b> ") + "#{list}".interpolate({list:ccAddressList.join("; ")}).escapeHTML() + "<br/>";
69+ }
70+ this.text += $L("<b>Subject:</b> #{summary}").interpolate(original) + "<br/>";
71+ this.text += "<br/>";
72 }
73 this.originalText = original.text;
74 } else {
75@@ -367,8 +381,8 @@ Email.getPriorityClass = function(priority) {
76 return priority;
77 }
78
79-Email.kSignaturePlaceholder = "<span style='font-family:Prelude, Verdana, san-serif;'><br><br></span><span id='signature'></span>";
80-Email.kReplyForwardSetupElems = "<br><br>" + Email.kSignaturePlaceholder + "<span style='color:navy; font-family:Prelude, Verdana, san-serif; '><hr align='left' style='width:75%'/>";
81+Email.kSignaturePlaceholder = "<span style='font-family:Prelude, Calibri, san-serif; font-size:15px; color:black;'><br><br></span><span id='signature'></span>";
82+Email.kReplyForwardSetupElems = "<span style='font-family:Prelude, Calibri, san-serif; font-size:15px'>" + Email.kSignaturePlaceholder + "<hr align='left' style='width:75%'/>";
83
84 Email.kSubjectPrefixRe = $L("Re: ");
85 Email.kSubjectPrefixFw = $L("Fw: ");
  
1diff --git a/usr/palm/applications/com.palm.app.messaging/app/utilities/CharacterCounter.js b/usr/palm/applications/com.palm.app.messaging/app/utilities/CharacterCounter.js
2index 2aca4c6..9127273 100644
3--- a/usr/palm/applications/com.palm.app.messaging/app/utilities/CharacterCounter.js
4+++ b/usr/palm/applications/com.palm.app.messaging/app/utilities/CharacterCounter.js
5@@ -46,7 +46,7 @@ var CharacterCounter = Class.create({
6 var textSavedBeforePaste; // used to revert a paste event if the max length is exceeded
7 var selectionStartSavedBeforePaste = 0;
8 var selectionEndSavedBeforePaste = 0;
9- var multiMessageHeaderTemplate = new Template($L("(#{currentSegmentIndex} of #{lastSegmentIndex}) "));
10+ var multiMessageHeaderTemplate = new Template($L("[#{currentSegmentIndex}/#{lastSegmentIndex}] "));
11
12 var segmentCounterUI = {
13 containerElement: null,
  
1diff --git a/etc/palm/luna.conf b/etc/palm/luna.conf
2index 1da9b34..5d900ec 100644
3--- a/etc/palm/luna.conf
4+++ b/etc/palm/luna.conf
5@@ -74,7 +74,7 @@ ShowGestures=false
6 FailAllMigration=false
7
8 [LaunchAtBoot]
9-Applications=com.palm.app.phone;com.palm.app.email;com.palm.app.calendar;com.palm.app.messaging;com.palm.app.contacts;com.palm.app.camera
10+Applications=com.palm.app.phone;com.palm.app.email;com.palm.app.calendar;com.palm.app.messaging;com.palm.app.contacts;com.palm.app.camera;com.palm.app.brightnessunlinked
11
12 [KeepAlive]
13 Applications=com.palm.app.phone
  
1Index: /etc/palm/download.conf
2===================================================================
3--- /dev/null
4+++ /etc/palm/download.conf
5@@ -0,0 +1,8 @@
6+#Tested to work with WebOS 1.2.1
7+#Mark R (Diomark) 10/20/09
1diff --git a/etc/palm/downloadManager.conf b/etc/palm/downloadManager.conf
2index 9581289..613f5f1 100644
3--- a/etc/palm/downloadManager.conf
4+++ b/etc/palm/downloadManager.conf
5@@ -8,3 +8,11 @@ AutoResume=true
6 BeAggressive__Bee_Eee_AGGRESSIVE=true
7 AppCompatibilityMode=false
8
9+#Tested to work with WebOS 1.3.5
10+#Mark R (Diomark) 01/04/10
811+#unthrottles the download manager from 64kb/sec to unlimited
912+
1013+[DownloadManager]
  
1diff --git a/etc/palm/autoreplace/en_us/text-edit-autoreplace b/etc/palm/autoreplace/en_us/text-edit-autoreplace
2index 1becac5..7f10bcf 100644
3--- a/etc/palm/autoreplace/en_us/text-edit-autoreplace
4+++ b/etc/palm/autoreplace/en_us/text-edit-autoreplace
5@@ -12,6 +12,7 @@ accademic|academic
6 accademy|academy
7 acccused|accused
8 acceptence|acceptance
9+accepteble|acceptable
10 acceptible|acceptable
11 accessable|accessible
12 accidentaly|accidentally
13@@ -52,6 +53,8 @@ acquaintence|acquaintance
14 acquaintences|acquaintances
15 acquiantence|acquaintance
16 acquiantences|acquaintances
17+aquire|acquire
18+aquit|acquit
19 activites|activities
20 activly|actively
21 actualy|actually
22@@ -271,6 +274,7 @@ assualted|assaulted
23 asteriod|asteroid
24 asume|assume
25 atempting|attempting
26+athiest|atheist
27 atorney|attorney
28 atributed|attributed
29 attemp|attempt
30@@ -345,6 +349,7 @@ beleiving|believing
31 belive|believe
32 belived|believed
33 belives|beliefs
34+bellweather|bellwether
35 beng|being
36 benificial|beneficial
37 benifit|benefit
38@@ -377,6 +382,7 @@ cacuses|caucuses
39 cahracters|characters
40 calaber|caliber
41 calander|calendar
42+calender|calendar
43 caluclate|calculate
44 caluclated|calculated
45 caluculate|calculate
46@@ -424,6 +430,7 @@ chalenging|challenging
47 challange|challenge
48 challanged|challenged
49 challege|challenge
50+changable|changeable
51 Champange|Champagne
52 charachter|character
53 charachters|characters
54@@ -457,8 +464,10 @@ coctail|cocktail
55 colateral|collateral
56 colelctive|collective
57 collecton|collection
58+collectable|collectible
59 collegue|colleague
60 collegues|colleagues
61+colum|column
62 comander|commander
63 comany|company
64 comapany|company
65@@ -526,6 +535,9 @@ confortable|comfortable
66 congradulations|congratulations
67 congresional|congressional
68 conscent|consent
69+conchience|conscience
70+conchiensious|conscientious
71+conscous|conscious
72 consciouness|consciousness
73 consdider|consider
74 consdidered|considered
75@@ -622,6 +634,7 @@ curch|church
76 curcuit|circuit
77 currenly|currently
78 dael|deal
79+daquiri|daiquiri
80 damenor|demeanor
81 decendant|descendant
82 decendent|descendant
83@@ -728,6 +741,7 @@ discribes|describes
84 discribing|describing
85 disctinction|distinction
86 disctinctive|distinctive
87+disipline|discipline
88 disiplined|disciplined
89 disolved|dissolved
90 disover|discover
91@@ -773,6 +787,9 @@ dramtic|dramatic
92 dreasm|dreams
93 driectly|directly
94 drnik|drink
95+drnuk|drunk
96+drunkeness|drunkenness
97+dumbell|dumbbell
98 durig|during
99 durring|during
100 duting|during
101@@ -856,6 +873,7 @@ epsiode|episode
102 equialent|equivalent
103 equiped|equipped
104 equippment|equipment
105+equiptment|equipment
106 equivelant|equivalent
107 equivelent|equivalent
108 equivilant|equivalent
109@@ -895,6 +913,7 @@ excange|exchange
110 excecute|execute
111 excecuted|executed
112 excecution|execution
113+excede|exceed
114 excedded|exceeded
115 excelent|excellent
116 excellant|excellent
117@@ -913,6 +932,10 @@ exerciese|exercises
118 exersize|exercise
119 exerternal|external
120 exhibtion|exhibition
121+excilirate|exhilarate
122+excilarate|exhilarate
123+excilirating|exhilarating
124+excilarating|exhilarating
125 exibition|exhibition
126 exicting|exciting
127 existance|existence
128@@ -953,6 +976,7 @@ fidn|find
129 fiel|feel
130 fiels|feels
131 fiercly|fiercely
132+firey|fiery
133 fightings|fighting
134 fimilies|families
135 finacial|financial
136@@ -1055,6 +1079,7 @@ hapening|happening
137 happend|happened
138 happended|happened
139 happenned|happened
140+harrass|harass
141 harasment|harassment
142 harassement|harassment
143 harrasment|harassment
144@@ -1076,6 +1101,9 @@ hertiage|heritage
145 hes|he's
146 hesistant|hesitant
147 hieght|height
148+heighth|height
149+hieghth|height
150+heirarchy|hierarchy
151 higer|higher
152 higest|highest
153 higway|highway
154@@ -1114,6 +1142,7 @@ idaeidae|idea
155 idaes|ideas
156 identicial|identical
157 idesa|ideas
158+ignorence|ignorance
159 ill|I'll
160 illess|illness
161 illiegal|illegal
162@@ -1125,6 +1154,8 @@ imagin|imagine
163 imaginery|imaginary
164 imanent|imminent
165 imcomplete|incomplete
166+imediate|immediate
167+immedeate|immediate
168 imediately|immediately
169 imense|immense
170 imigrant|immigrant
171@@ -1169,6 +1200,7 @@ indipendent|independent
172 indipendently|independently
173 indpendent|independent
174 indpendently|independently
175+indispensible|indispensable
176 indulgue|indulge
177 indutrial|industrial
178 indviduals|individuals
179@@ -1192,6 +1224,7 @@ inlcuding|including
180 inmigrant|immigrant
181 inmigrants|immigrants
182 inocence|innocence
183+innoculate|inoculate
184 inofficial|unofficial
185 inot|into
186 inproving|improving
187@@ -1251,12 +1284,15 @@ ive|I've
188 iwll|will
189 iwth|with
190 jeapardy|jeopardy
191+jewelery|jewelry
192 jouney|journey
193 jstu|just
194 jsut|just
195 judical|judicial
196 juducial|judicial
197+judgement|judgment
198 juristiction|jurisdiction
199+kernal|kernel
200 kindergarden|kindergarten
201 knifes|knives
202 knive|knife
203@@ -1280,6 +1316,8 @@ layed|laid
204 leage|league
205 leanr|lean
206 leathal|lethal
207+liason|liaison
208+liesure|leisure
209 lefted|left
210 legitamate|legitimate
211 legitmate|legitimate
212@@ -1295,9 +1333,11 @@ liekd|liked
213 lieuenant|lieutenant
214 lieved|lived
215 liftime|lifetime
216+lightening|lightning
217 likelyhood|likelihood
218 liscense|license
219 lisence|license
220+licence|license
221 lisense|license
222 litature|literature
223 literture|literature
224@@ -1346,7 +1386,11 @@ meaninng|meaning
225 mear|mere
226 mechandise|merchandise
227 medacine|medicine
228+midieval|medieval
229+midevil|medieval
230+medeval|medieval
231 memeber|member
232+momento|memento
233 menally|mentally
234 messanger|messenger
235 messenging|messaging
236@@ -1356,6 +1400,9 @@ mileu|milieu
237 miliary|military
238 milion|million
239 miliraty|military
240+milennium|millennium
241+millenium|millennium
242+milenium|millennium
243 millioniare|millionaire
244 millitary|military
245 millon|million
246@@ -1364,6 +1411,7 @@ minature|miniature
247 ministery|ministry
248 minstry|ministry
249 minumum|minimum
250+miniscule|minuscule
251 mirrorred|mirrored
252 mischeivous|mischievous
253 mischevious|mischievous
254@@ -1372,6 +1420,7 @@ misdameanor|misdemeanor
255 misdemenor|misdemeanor
256 misile|missile
257 missle|missile
258+mispell|misspell
259 misterious|mysterious
260 mistery|mystery
261 misteryous|mysterious
262@@ -1447,6 +1496,8 @@ noteably|notably
263 noth|north
264 nothern|northern
265 noticable|noticeable
266+noticeible|noticeable
267+noticible|noticeable
268 noticably|noticeably
269 noticeing|noticing
270 noticible|noticeable
271@@ -1482,6 +1533,8 @@ occassions|occasions
272 occationally|occasionally
273 occour|occur
274 occurance|occurrence
275+ocurance|occurrence
276+ocurrance|occurrence
277 occured|occurred
278 occurence|occurrence
279 occuring|occurring
280@@ -1562,6 +1615,7 @@ particulary|particularly
281 pary|party
282 pased|passed
283 pasengers|passengers
284+passtime|pastime
285 paticular|particular
286 payed|paid
287 peageant|pageant
288@@ -1588,6 +1642,7 @@ permenantly|permanently
289 peronal|personal
290 perosnality|personality
291 perphas|perhaps
292+perseverence|perseverance
293 persistant|persistent
294 personel|personal
295 personell|personnel
296@@ -1603,12 +1658,16 @@ phenomonenon|phenomenon
297 phenomonon|phenomenon
298 philisophy|philosophy
299 philosphy|philosophy
300+pheonix|Phoenix
301+phoenix|Phoenix
302 physicaly|physically
303 pich|pitch
304 pinapple|pineapple
305 pinnaple|pineapple
306 planed|planned
307 plausable|plausible
308+playright|playwright
309+playwrite|playwright
310 pleasent|pleasant
311 plesant|pleasant
312 poenis|penis
313@@ -1657,6 +1716,8 @@ practially|practically
314 practicaly|practically
315 practicly|practically
316 pratice|practice
317+preccede|precede
318+preceede|precede
319 precedessor|predecessor
320 preceeded|preceded
321 precentage|percentage
322@@ -1722,6 +1783,8 @@ prominant|prominent
323 promotted|promoted
324 pronouced|pronounced
325 pronounched|pronounced
326+pronounciation|pronunciation
327+pronunsiation|pronunciation
328 proove|prove
329 prooved|proved
330 prophacy|prophecy
331@@ -1750,6 +1813,9 @@ pwoer|power
332 pyscic|psychic
333 qtuie|quiet
334 questonable|questionable
335+questionaire|questionnaire
336+questionnair|questionnaire
337+questionair|questionnaire
338 quicklyu|quickly
339 quitted|quit
340 qutie|quiet
341@@ -1766,6 +1832,7 @@ reasearch|research
342 rebiulding|rebuilding
343 rebounce|rebound
344 reccomend|recommend
345+recomend|recommend
346 reccomendations|recommendations
347 reccomended|recommended
348 reccommend|recommend
349@@ -1775,6 +1842,7 @@ reched|reached
350 recided|resided
351 recident|resident
352 recidents|residents
353+reciept|receipt
354 recieve|receive
355 recieved|received
356 reciever|receiver
357@@ -1796,6 +1864,8 @@ recuiting|recruiting
358 rediculous|ridiculous
359 refect|reflect
360 refered|referred
361+refferred|referred
362+reffered|referred
363 referiang|referring
364 refering|referring
365 refernces|references
366@@ -1825,6 +1895,7 @@ releived|relieved
367 releiver|reliever
368 releses|releases
369 relevent|relevant
370+relavent|relevant
371 religeous|religious
372 religous|religious
373 relitavely|relatively
374@@ -1851,6 +1922,8 @@ repsectively|respectively
375 requirment|requirement
376 requred|required
377 resaurant|restaurant
378+restarant|restaurant
379+restuarant|restaurant
380 resembelance|resemblance
381 resembes|resembles
382 resemblence|resemblance
383@@ -1890,7 +1963,9 @@ returnd|returned
384 revolutionar|revolutionary
385 rewriet|rewrite
386 rhythem|rhythm
387+rhythum|rhythm
388 rhythim|rhythm
389+rime|rhyme
390 rininging|ringing
391 rised|rose
392 rocord|record
393@@ -1918,6 +1993,7 @@ sattelites|satellites
394 saught|sought
395 saveing|saving
396 schedual|schedule
397+scedule|schedule
398 scholarhip|scholarship
399 scientfic|scientific
400 scientifc|scientific
401@@ -1949,6 +2025,8 @@ seperating|separating
402 seperation|separation
403 seperatist|separatist
404 sergent|sergeant
405+sergant|sergeant
406+sergaent|sergeant
407 settelement|settlement
408 settlment|settlement
409 severeal|several
410@@ -2124,6 +2202,8 @@ sufficent|sufficient
411 sumary|summary
412 sunglases|sunglasses
413 suop|soup
414+supercede|supersede
415+superceed|supersede
416 suphisticated|sophisticated
417 supose|suppose
418 suposed|supposed
419@@ -2293,8 +2373,11 @@ troups|troops
420 truely|truly
421 turnk|trunk
422 tust|trust
423+twelth|twelfth
424+twelveth|twelfth
425 twon|town
426 twpo|two
427+tyrany|tyranny
428 tyhat|that
429 tyhe|they
430 typcial|typical
431@@ -2404,9 +2487,11 @@ wasnt|wasn't
432 wass|was
433 watn|want
434 weaponary|weaponry
435+wether|weather
436 weas|was
437 wehn|when
438 weild|wield
439+wierd|weird
440 wereabouts|whereabouts
441 werent|weren't
442 weve|we've
  
1diff --git a/usr/palm/applications/com.palm.app.phone/app/controllers/announcer-assistant.js b/usr/palm/applications/com.palm.app.phone/app/controllers/announcer-assistant.js
2index 681ae4c..ae23b5e 100644
3--- a/usr/palm/applications/com.palm.app.phone/app/controllers/announcer-assistant.js
4+++ b/usr/palm/applications/com.palm.app.phone/app/controllers/announcer-assistant.js
5@@ -377,14 +377,8 @@ var AnnouncerAssistant = Class.create({
6 // tapping the message calls that number back and decrements the missed count
7 var messageCallback = function() {
8 var call = this.missed.pop();
9- this.appAssistant.launchDial(call.number);
10- var count = this.missed.length
11- if (count === 0) {
12+ this.appAssistant.launchMissed();
13 this.announceMissedDashboardClear();
14- } else {
15- var lastCall = this.missed[count-1];
16- this.announceUpdate("misseddash",lastCall.displayName, lastCall.message, count,lastCall.timestamp);
17- }
18 }.bind(this);
19
20 this.announce("misseddash", "notification-small-missed.png", false, "missed",
  
1diff --git a/usr/palm/applications/com.palm.app.email/app/controllers/email-dashboard-assistant.js b/usr/palm/applications/com.palm.app.email/app/controllers/email-dashboard-assistant.js
2index 4431398..79ec5cf 100644
3--- a/usr/palm/applications/com.palm.app.email/app/controllers/email-dashboard-assistant.js
4+++ b/usr/palm/applications/com.palm.app.email/app/controllers/email-dashboard-assistant.js
5@@ -39,8 +39,10 @@ var EmailDashboardAssistant = Class.create({
6
7 this.controller.sceneElement.stopObserving(Mojo.Event.tap, this.boundTapHandler);
8 // turn off throbber
9+ /*
10 Mojo.Log.info('Turning off throbber');
11 this.controller.stageController.indicateNewContent(false);
12+ */
13 },
14
15 tapHandler: function(event) {
16@@ -79,8 +81,10 @@ var EmailDashboardAssistant = Class.create({
17 var latestDetails;
18
19 // turn on throbber
20+ /*
21 Mojo.Log.info('Turning on throbber for new email notification');
22 this.controller.stageController.indicateNewContent(true);
23+ */
24
25 // update notifications if they are changed.
26 this.notifications = notificationInfo;
  
1diff --git a/usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js b/usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js
2index 86eb675..705bb0a 100644
3--- a/usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js
4+++ b/usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js
5@@ -50,8 +50,8 @@ var SecurityconfigAssistant = Class.create({
6 this.controller.setupWidget('showAlerts', this.onOffToggleOpt, this.alertToggleModel);
7 Mojo.Event.listen($('showAlerts'),'mojo-property-change', this.toggleShowAlerts.bindAsEventListener(this));
8
9- //this.controller.setupWidget('blinkAlerts', this.onOffToggleOpt, this.ledThrobberToggleModel);
10- //Mojo.Event.listen($('blinkAlerts'),'mojo-property-change', this.toggleLEDThrobber.bindAsEventListener(this));
11+ this.controller.setupWidget('blinkAlerts', this.onOffToggleOpt, this.ledThrobberToggleModel);
12+ Mojo.Event.listen($('blinkAlerts'),'mojo-property-change', this.toggleLEDThrobber.bindAsEventListener(this));
13
14 this.controller.setupWidget('switchApps', this.onOffToggleOpt, this.switchApptoggleModel);
15 Mojo.Event.listen($('switchApps'),'mojo-property-change', this.toggleSwitchApps.bindAsEventListener(this));
16@@ -288,10 +288,10 @@ var SecurityconfigAssistant = Class.create({
17 }
18 }
19
20- /*if (payload.LEDThrobberEnabled != undefined) {
21+ if (payload.LEDThrobberEnabled != undefined) {
22 this.ledThrobberToggleModel.value = payload.LEDThrobberEnabled;
23 this.controller.modelChanged(this.ledThrobberToggleModel, this);
24- }*/
25+ }
26
27 //Demo Device -- Hide the PIN / Password options.
28 if(payload.onDeviceDemoRunning != undefined && payload.onDeviceDemoRunning === true) {
29diff --git a/usr/palm/applications/com.palm.app.screenlock/app/views/securityconfig/securityconfig-scene.html b/usr/palm/applications/com.palm.app.screenlock/app/views/securityconfig/securityconfig-scene.html
30index a97b61b..a9dea46 100644
31--- a/usr/palm/applications/com.palm.app.screenlock/app/views/securityconfig/securityconfig-scene.html
32+++ b/usr/palm/applications/com.palm.app.screenlock/app/views/securityconfig/securityconfig-scene.html
33@@ -94,17 +94,17 @@
34 <div class="title capitalize" x-mojo-loc=''>Show when locked</div>
35 </div>
36 </div>
37- <!--<div class="palm-row last">
38+ <div class="palm-row last">
39 <div class="palm-row-wrapper">
40 <div x-mojo-element="ToggleButton" id="blinkAlerts"></div>
41 <div class="title capitalize" x-mojo-loc=''>Blink notifications</div>
42 </div>
43- </div>-->
44+ </div>
45 </div>
46 </div>
47
48- <!--<div class="palm-info-text single" x-mojo-loc=''>
49+ <div class="palm-info-text single" x-mojo-loc=''>
50 The gesture area blinks when new notifications arrive.
51- </div>-->
52+ </div>
53
54 </div>
55diff --git a/usr/palm/applications/com.palm.app.screenlock/resources/de_de/views/securityconfig/securityconfig-scene.html b/usr/palm/applications/com.palm.app.screenlock/resources/de_de/views/securityconfig/securityconfig-scene.html
56index f6d8796..01c5c4e 100644
57--- a/usr/palm/applications/com.palm.app.screenlock/resources/de_de/views/securityconfig/securityconfig-scene.html
58+++ b/usr/palm/applications/com.palm.app.screenlock/resources/de_de/views/securityconfig/securityconfig-scene.html
59@@ -94,17 +94,17 @@
60 <div class="title capitalize">Bei Sperre anzeigen</div>
61 </div>
62 </div>
63- <!--<div class="palm-row last">
64+ <div class="palm-row last">
65 <div class="palm-row-wrapper">
66 <div x-mojo-element="ToggleButton" id="blinkAlerts"></div>
67 <div class="title capitalize" x-mojo-loc=''>Blink notifications</div>
68 </div>
69- </div>-->
70+ </div>
71 </div>
72 </div>
73
74- <!--<div class="palm-info-text single" x-mojo-loc=''>
75+ <div class="palm-info-text single" x-mojo-loc=''>
76 The gesture area blinks when new notifications arrive.
77- </div>-->
78+ </div>
79
80 </div>
  
1diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js
2index 6fdbb39..d8ce7eb 100644
3--- a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js
4+++ b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js
5@@ -2552,7 +2552,9 @@ updateClockEveryMinute: function() {
6 }
7 }
8 format = format.replace(/\s?a\s?/,"");
9- $('clock').innerHTML = Mojo.Format.formatDate(date, {time: format});
10+ var formatDate = Mojo.Format.formatDate(date, {date:'short'});
11+ formatDate = formatDate.substr(0, formatDate.lastIndexOf('/')+formatDate.lastIndexOf('.')+1);
12+ $('clock').innerHTML = formatDate+'&nbsp;&nbsp;&nbsp;'+Mojo.Format.formatDate(date, {time:format});
13 $('today').innerHTML = Mojo.Format.formatDate(date,{date:'short'});
14 },
15
  
1diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/devicemenu-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/devicemenu-assistant.js
2index 2a42b1a..8d0651b 100644
3--- a/usr/lib/luna/system/luna-systemui/app/controllers/devicemenu-assistant.js
4+++ b/usr/lib/luna/system/luna-systemui/app/controllers/devicemenu-assistant.js
5@@ -27,16 +27,13 @@ var DevicemenuAssistant = Class.create({
6 //Add a touchable row class
7 this.controller.get('palm-device-menu').addClassName('palm-touch-rows-'+Mojo.Environment.DeviceInfo.touchableRows);
8
9- var date = new Date();
10- this.controller.get('dm_date').innerHTML = Mojo.Format.formatDate(date,{date:'EEE '}) + Mojo.Format.formatDate(date,{date:'long'});
11- var msg = $L("Battery: #{batlevel}");
12- this.controller.get('dm_battery').innerHTML = new Template(msg).evaluate({"batlevel": Mojo.Format.formatPercent(this.barAssistant.getBatteryLevel())});
13-
14 this.modesModel = {scrollbars: false, mode: "vertical"},
15 this.controller.setupWidget('devicescroller', {}, this.modesModel);
16 this.menuscroller = this.controller.get('devicescroller');
17
18 this.drawerModel = {myOpenProperty:false};
19+ this.controller.setupWidget('brightSlider', {minValue: 1, maxValue: 100}, this.brightModel = { value: 50});
20+ this.controller.setupWidget('brightdetails', {modelProperty:'myOpenProperty'}, this.drawerModel);
21 this.controller.setupWidget('wifidetails', {modelProperty:'myOpenProperty'}, this.drawerModel);
22 this.controller.setupWidget('btdetails', {modelProperty:'myOpenProperty'}, this.drawerModel);
23 this.wifidrawer = this.controller.get('wifidetails');
24@@ -61,14 +58,6 @@ var DevicemenuAssistant = Class.create({
25 //Spinner for WiFi
26 this.controller.setupWidget('wifiSpinner', this.spinnerAttrs, this.spinnerModel);
27
28- //Spinner for Airplande Mode
29- //this.controller.setupWidget('apSpinner', this.spinnerAttrs, this.apSpinnerModel);
30-
31- if(this.barAssistant.getAirplaneMode())
32- this.controller.get('dm_airplanemode_status').innerHTML = $L('Turn off Airplane Mode');
33- else
34- this.controller.get('dm_airplanemode_status').innerHTML = $L('Turn on Airplane Mode');
35-
36 var btstate = this.barAssistant.getCurrentBluetoothState();
37 if(btstate === 'Off') {
38 this.controller.get('btmsg').innerHTML = $L('Off');
39@@ -113,9 +102,13 @@ var DevicemenuAssistant = Class.create({
40 },
41
42 activate: function() {
43- this.controller.get('dm_airplanemode').addEventListener(Mojo.Event.tap, this.toggleAirplaneMode.bindAsEventListener(this));
44+ this.controller.get('brightSlider').addEventListener(Mojo.Event.propertyChange, this.handleBrightSlider.bindAsEventListener(this));
45+ this.controller.get('brightRow').addEventListener(Mojo.Event.tap, this.handleBrightTap.bindAsEventListener(this));
46 this.controller.get('wifilist').addEventListener(Mojo.Event.listTap,this.handleWiFiTap.bindAsEventListener(this));
47+ this.controller.get('dm_data').addEventListener(Mojo.Event.tap, this.toggleData.bindAsEventListener(this));
48+ this.controller.get('dm_gps').addEventListener(Mojo.Event.tap, this.toggleGPS.bindAsEventListener(this));
49 this.controller.get('btlist').addEventListener(Mojo.Event.listTap,this.handleBTTap.bindAsEventListener(this));
50+ this.controller.get('dm_flash').addEventListener(Mojo.Event.tap, this.toggleFlash.bindAsEventListener(this));
51 this.controller.get('dm_wifi').addEventListener(Mojo.Event.tap, this.togglewifiList.bindAsEventListener(this));
52 this.controller.get('dm_bluetooth').addEventListener(Mojo.Event.tap, this.togglebluetoothList.bindAsEventListener(this));
53 this.controller.get('wifi_radio').addEventListener(Mojo.Event.tap, this.toggleWifiRadio.bindAsEventListener(this));
54@@ -131,6 +124,18 @@ var DevicemenuAssistant = Class.create({
55 Mojo.Log.error("Device Menu - Clean up called");
56 },
57
58+ handleBrightTap: function(event) {
59+ this.controller.get('brightdetails').mojo.setOpenState(!this.controller.get('brightdetails').mojo.getOpenState());
60+ },
61+
62+ handleBrightSlider: function(event) {
63+ this.controller.serviceRequest('palm://com.palm.display/control', {
64+ method: 'setProperty',
65+ parameters:{maximumBrightness:Math.round(event.value)}
66+ });
67+ this.controller.get('dm_brightness').innerText = "Brightness: " + Math.round(event.value) + "%";
68+ },
69+
70 wifiAPList: [],
71 btdeviceList: [],
72
73@@ -169,13 +174,55 @@ var DevicemenuAssistant = Class.create({
74 //this.apSpinnerModel.spinning = false;
75 //this.controller.modelChanged(this.apSpinnerModel);
76
77- if(this.barAssistant.getAirplaneMode()) {
78- this.controller.get('dm_airplanemode_status').innerHTML = $L('Turn off Airplane Mode');
79+ //if(this.barAssistant.getAirplaneMode()) {
80+ // this.controller.get('dm_airplanemode_status').innerHTML = $L('Turn off Airplane Mode');
81+ //}
82+ //else {
83+ // this.controller.get('dm_airplanemode_status').innerHTML = $L('Turn on Airplane Mode');
84+ //}
85+ //this.apModeInProgress = false;
86+ },
87+
88+ toggleGPS: function(event) {
89+ this.gpsEnabled = !this.gpsEnabled;
90+ this.controller.serviceRequest('palm://com.palm.location', {
91+ method: 'setUseGps',
92+ parameters: {
93+ useGps: this.gpsEnabled
94 }
95- else {
96- this.controller.get('dm_airplanemode_status').innerHTML = $L('Turn on Airplane Mode');
97+ });
98+ this.setGPSLabel();
99+ },
100+
101+ setGPSLabel: function() {
102+ if(this.gpsEnabled) {
103+ this.controller.get('gpsStatus').innerText = "On";
104+ } else {
105+ this.controller.get('gpsStatus').innerText = "Off";
106+ }
107+ },
108+
109+ toggleFlash: function() {
110+ if(this.flashVal==0) {
111+ this.flashVal = 100;
112+ } else {
113+ this.flashVal = 0;
114+ }
115+ this.controller.serviceRequest('palm://ca.canucksoftware.systoolsmgr', {
116+ method: 'flashOn',
117+ parameters: {
118+ value: this.flashVal
119+ }
120+ });
121+ this.setFlashLabel();
122+ },
123+
124+ setFlashLabel: function() {
125+ if(this.flashVal==0) {
126+ this.controller.get('flashStatus').innerText = "Off";
127+ } else {
128+ this.controller.get('flashStatus').innerText = "On";
129 }
130- this.apModeInProgress = false;
131 },
132
133 toggleBTRadio: function(event) {
134@@ -920,6 +967,25 @@ var DevicemenuAssistant = Class.create({
135 this.controller.modelChanged(this.spinnerModel);
136 },
137
138+ toggleData: function(event) {
139+ if(this.dataDisabled=="on") {
140+ this.dataDisabled = "off";
141+ } else {
142+ this.dataDisabled = "on";
143+ }
144+ this.controller.serviceRequest('palm://com.palm.wan', {
145+ method: 'set',
146+ parameters: {
147+ disablewan: this.dataDisabled
148+ }
149+ });
150+ this.setDataLabel();
151+ },
152+
153+ setDataLabel: function() {
154+ if(this.dataDisabled=="off") {this.controller.get('dataStatus').innerText = "on";} else {this.controller.get('dataStatus').innerText = "off";}
155+ },
156+
157 close: function() {
158
159 if (this.btdrawer.mojo.getOpenState()) {
160@@ -932,6 +998,7 @@ var DevicemenuAssistant = Class.create({
161 this.controller.hideWidgetContainer(this.controller.get('wifidetails'));
162 this.wifidrawer.mojo.setOpenState(false);
163 }
164+ this.controller.get('brightdetails').mojo.setOpenState(false);
165 //this.isVisible = false;
166 if(this.isVisible){
167 this.toggleDeviceMenu();
168@@ -972,9 +1039,33 @@ var DevicemenuAssistant = Class.create({
169 //this.controller.stageController.deactivate();
170 }
171 else {
172+ this.controller.serviceRequest('palm://com.palm.connectionmanager', {
173+ method: 'getstatus',
174+ parameters: {},
175+ onSuccess: function(response) {
176+ if(response.wan.state === "disconnected") {
177+ this.dataDisabled = "on";
178+ } else if(response.wan.state === "connected") {
179+ this.dataDisabled = "off";
180+ }
181+ this.setDataLabel();
182+ }.bind(this)
183+ });
184 this.isVisible = true;
185- var date = new Date();
186- this.controller.get('dm_date').innerHTML = Mojo.Format.formatDate(date,{date:'EEE '}) + Mojo.Format.formatDate(date,{date:'long'});
187+ this.controller.serviceRequest('palm://com.palm.display/control', {
188+ method: 'getProperty',
189+ parameters:{properties:['maximumBrightness']},
190+ onSuccess: function(response) {
191+ if(response.maximumBrightness != undefined) {
192+ this.brightModel.value = parseInt(response.maximumBrightness);
193+ this.controller.modelChanged(this.brightModel);
194+ this.controller.get('dm_brightness').innerText = "Brightness: " + response.maximumBrightness + "%";
195+ } else {
196+ this.controller.get('dm_brightness').innerText = "Brightness: ??%";
197+ }
198+ }.bind(this)
199+ });
200+
201 this.controller.stageController.activate();
202
203 var animateDialog = function(){
204@@ -987,6 +1078,25 @@ var DevicemenuAssistant = Class.create({
205 );
206 }
207
208+ this.controller.serviceRequest('palm://com.palm.location', {
209+ method: 'getUseGps',
210+ parameters: {},
211+ onSuccess: function(response) {
212+ this.gpsEnabled = response.useGps;
213+ this.setGPSLabel();
214+ }.bind(this)
215+ });
216+
217+ this.flashVal = 0;
218+ this.controller.serviceRequest('palm://ca.canucksoftware.systoolsmgr', {
219+ method: 'flashState',
220+ parameters: {},
221+ onSuccess: function(response) {
222+ this.flashVal = response.value;
223+ this.setFlashLabel();
224+ }.bind(this)
225+ });
226+
227 //animate the scrim onto the scene and then the submenu
228 Mojo.Animation.animateStyle(this.scrim, 'opacity', 'bezier', {
229 from: 0,
230@@ -1004,10 +1114,6 @@ var DevicemenuAssistant = Class.create({
231 },
232
233 updateBatteryLevel: function(batlevel) {
234- var msg = $L("Battery: #{batlevel}");
235- this.controller.get('dm_battery').innerHTML = new Template(msg).evaluate({
236- "batlevel": Mojo.Format.formatPercent(batlevel)
237- });
238 },
239
240 });
241diff --git a/usr/lib/luna/system/luna-systemui/app/views/devicemenu/devicemenu-scene.html b/usr/lib/luna/system/luna-systemui/app/views/devicemenu/devicemenu-scene.html
242index 933094e..03711e8 100644
243--- a/usr/lib/luna/system/luna-systemui/app/views/devicemenu/devicemenu-scene.html
244+++ b/usr/lib/luna/system/luna-systemui/app/views/devicemenu/devicemenu-scene.html
245@@ -14,16 +14,16 @@
246 <div id="devicescroller" class="palm-popup-content" x-mojo-element="Scroller">
247 <div class="palm-list">
248
249- <div class="palm-row first"><div class="palm-row-wrapper">
250- <div id="dm_date" class="title dim"></div>
251- </div></div>
252-
253- <div class="palm-section-divider">
254+ <div class="palm-row first" id="brightRow" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper">
255+ <div id="dm_brightness" class="title">&nbsp;
256 </div>
257+ </div></div>
258
259- <div class="palm-row"><div class="palm-row-wrapper">
260- <div id="dm_battery" class="title dim"></div>
261+ <div id="brightdetails" x-mojo-element="Drawer">
262+ <div class="palm-row first"><div class="palm-row-wrapper">
263+ <div x-mojo-element="Slider" id="brightSlider" style="padding-top: 30px; height: 50px;"></div>
264 </div></div>
265+ </div>
266
267 <div class="palm-section-divider">
268 </div>
269@@ -94,10 +94,25 @@
270
271 <div class="palm-section-divider"></div>
272
273- <div id="dm_airplanemode" class="palm-row last menu-end" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper">
274- <div id="dm_airplanemode_status" class="title truncating-text">
275+ <div class="palm-row" id="dm_data" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper">
276+ <div class="title truncating-text">
277+ <div class="label right" id="dataStatus">&nbsp;</div>
278+ <span x-mojo-loc=''>Data Connection</span>
279+ </div>
280+ </div></div>
281+
282+ <div class="palm-row" id="dm_gps" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper">
283+ <div class="title truncating-text">
284+ <div class="label right" id="gpsStatus">&nbsp;</div>
285+ <span x-mojo-loc=''>GPS</span>
286+ </div>
287+ </div></div>
288+
289+ <div class="palm-row last menu-end" id="dm_flash"><div class="palm-row-wrapper">
290+ <div class="title truncating-text">
291+ <div class="label right" id="flashStatus">&nbsp;</div>
292+ <span x-mojo-loc=''>Flashlight</span>
293 </div>
294- <!--<div id='apSpinner' class='label' x-mojo-element="Spinner"></div>-->
295 </div></div>
296
297 </div>
  
1diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/devicemenu-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/devicemenu-assistant.js
2index 2a42b1a..68efae5 100644
3--- a/usr/lib/luna/system/luna-systemui/app/controllers/devicemenu-assistant.js
4+++ b/usr/lib/luna/system/luna-systemui/app/controllers/devicemenu-assistant.js
5@@ -39,8 +39,10 @@ var DevicemenuAssistant = Class.create({
6 this.drawerModel = {myOpenProperty:false};
7 this.controller.setupWidget('wifidetails', {modelProperty:'myOpenProperty'}, this.drawerModel);
8 this.controller.setupWidget('btdetails', {modelProperty:'myOpenProperty'}, this.drawerModel);
9+ this.controller.setupWidget('gsmdetails', {modelProperty:'myOpenProperty'}, this.drawerModel);
10 this.wifidrawer = this.controller.get('wifidetails');
11 this.btdrawer = this.controller.get('btdetails');
12+ this.gsmdrawer = this.controller.get('gsmdetails');
13
14 this.wifiListModel = {
15 items: this.wifiAPList
16@@ -69,6 +71,8 @@ var DevicemenuAssistant = Class.create({
17 else
18 this.controller.get('dm_airplanemode_status').innerHTML = $L('Turn on Airplane Mode');
19
20+ this.controller.get('ratStatus').innerText = "???";
21+
22 var btstate = this.barAssistant.getCurrentBluetoothState();
23 if(btstate === 'Off') {
24 this.controller.get('btmsg').innerHTML = $L('Off');
25@@ -118,10 +122,14 @@ var DevicemenuAssistant = Class.create({
26 this.controller.get('btlist').addEventListener(Mojo.Event.listTap,this.handleBTTap.bindAsEventListener(this));
27 this.controller.get('dm_wifi').addEventListener(Mojo.Event.tap, this.togglewifiList.bindAsEventListener(this));
28 this.controller.get('dm_bluetooth').addEventListener(Mojo.Event.tap, this.togglebluetoothList.bindAsEventListener(this));
29+ this.controller.get('gsm_umts').addEventListener(Mojo.Event.tap, this.togglegsmList.bindAsEventListener(this));
30 this.controller.get('wifi_radio').addEventListener(Mojo.Event.tap, this.toggleWifiRadio.bindAsEventListener(this));
31 this.controller.get('bt_radio').addEventListener(Mojo.Event.tap, this.toggleBTRadio.bindAsEventListener(this));
32 this.controller.get('bt_pref').addEventListener(Mojo.Event.tap,this.handleBluetoothLaunch.bindAsEventListener(this));
33 this.controller.get('wifi_pref').addEventListener(Mojo.Event.tap,this.handleWiFiLaunch.bindAsEventListener(this));
34+ this.controller.get('gsm_umts_auto').addEventListener(Mojo.Event.tap, this.toggleGSM_Auto.bindAsEventListener(this));
35+ this.controller.get('gsm_umts_2g').addEventListener(Mojo.Event.tap, this.toggleGSM_2G.bindAsEventListener(this));
36+ this.controller.get('gsm_umts_3g').addEventListener(Mojo.Event.tap, this.toggleGSM_3G.bindAsEventListener(this));
37 this.controller.get('scrim').addEventListener(Mojo.Event.tap, this.toggleDeviceMenu.bindAsEventListener(this));
38 //Close the App because this is a first launch.
39 this.toggleDeviceMenu();
40@@ -178,6 +186,59 @@ var DevicemenuAssistant = Class.create({
41 this.apModeInProgress = false;
42 },
43
44+ toggleGSM_Auto: function(event) {
45+ this.toggleGSM(event, "automatic");
46+ },
47+
48+ toggleGSM_2G: function(event) {
49+ this.toggleGSM(event, "gsm");
50+ },
51+
52+ toggleGSM_3G: function(event) {
53+ this.toggleGSM(event, "umts");
54+ },
55+
56+ // "automatic", "gsm", "umts"
57+ toggleGSM: function(event, rat) {
58+ this.currentRat = rat;
59+ var request = new Mojo.Service.Request('palm://com.palm.telephony', {
60+ method: "ratSet",
61+ parameters: {
62+ "mode": this.currentRat
63+ },
64+ onSuccess: function(response) {},
65+ onFailure: function(response) {},
66+ });
67+ if(this.currentRat == "gsm") {
68+ this.controller.get('ratStatus').innerText = "2G";
69+ } else if(this.currentRat == "umts") {
70+ this.controller.get('ratStatus').innerText = "3G";
71+ } else if(this.currentRat == "automatic") {
72+ this.controller.get('ratStatus').innerText = "Auto";
73+ } else {
74+ this.controller.get('ratStatus').innerText = "???";
75+ }
76+ this.toggleDeviceMenu.bind(this).delay(0.2);
77+ },
78+
79+ /*
80+ * Toggles the Bluetooth List to show and Hide when tapping on the Bluetooth Row.
81+ */
82+ togglegsmList: function(event) {
83+
84+ //Ignore the tap event if Airplane Mode is in Progress
85+ if(this.apModeInProgress)
86+ return;
87+
88+ if (this.gsmdrawer.mojo.getOpenState()) {
89+ this.controller.hideWidgetContainer(this.controller.get('gsmdetails'));
90+ }
91+ else {
92+ this.controller.showWidgetContainer(this.controller.get('gsmdetails'));
93+ }
94+ this.gsmdrawer.mojo.setOpenState(!this.gsmdrawer.mojo.getOpenState());
95+ },
96+
97 toggleBTRadio: function(event) {
98 if(RadioState.get('bluetooth')) {
99 BtService.radiooff(null,null);
100@@ -932,6 +993,10 @@ var DevicemenuAssistant = Class.create({
101 this.controller.hideWidgetContainer(this.controller.get('wifidetails'));
102 this.wifidrawer.mojo.setOpenState(false);
103 }
104+ if (this.gsmdrawer.mojo.getOpenState()) {
105+ this.controller.hideWidgetContainer(this.controller.get('gsmdetails'));
106+ this.gsmdrawer.mojo.setOpenState(false);
107+ }
108 //this.isVisible = false;
109 if(this.isVisible){
110 this.toggleDeviceMenu();
111diff --git a/usr/lib/luna/system/luna-systemui/app/views/devicemenu/devicemenu-scene.html b/usr/lib/luna/system/luna-systemui/app/views/devicemenu/devicemenu-scene.html
112index 933094e..ddabc80 100644
113--- a/usr/lib/luna/system/luna-systemui/app/views/devicemenu/devicemenu-scene.html
114+++ b/usr/lib/luna/system/luna-systemui/app/views/devicemenu/devicemenu-scene.html
115@@ -94,6 +94,37 @@
116
117 <div class="palm-section-divider"></div>
118
119+ <div class="palm-row" id="gsm_umts" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper">
120+ <div class="title truncating-text">
121+ <div class="label right" id="ratStatus">&nbsp;</div>
122+ <span>Network Type</span>
123+ </div>
124+ </div></div>
125+
126+ <div id='gsmdetails' x-mojo-element="Drawer">
127+
128+ <div id="gsm_umts_auto" class="palm-row last" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper">
129+ <div class="title truncating-text">
130+ <span>Auto</span>
131+ </div>
132+ </div></div>
133+
134+ <div id="gsm_umts_2g" class="palm-row last" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper">
135+ <div class="title truncating-text">
136+ <span>2G</span>
137+ </div>
138+ </div></div>
139+
140+ <div id="gsm_umts_3g" class="palm-row last" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper">
141+ <div class="title truncating-text">
142+ <span>3G</span>
143+ </div>
144+ </div></div>
145+
146+ </div>
147+
148+ <div class="palm-section-divider"></div>
149+
150 <div id="dm_airplanemode" class="palm-row last menu-end" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper">
151 <div id="dm_airplanemode_status" class="title truncating-text">
152 </div>
153diff --git a/usr/lib/luna/system/luna-systemui/resources/de_de/views/devicemenu/devicemenu-scene.html b/usr/lib/luna/system/luna-systemui/resources/de_de/views/devicemenu/devicemenu-scene.html
154index 12e75c8..3a271f9 100644
155--- a/usr/lib/luna/system/luna-systemui/resources/de_de/views/devicemenu/devicemenu-scene.html
156+++ b/usr/lib/luna/system/luna-systemui/resources/de_de/views/devicemenu/devicemenu-scene.html
157@@ -94,6 +94,37 @@
158
159 <div class="palm-section-divider"></div>
160
161+ <div class="palm-row" id="gsm_umts" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper">
162+ <div class="title truncating-text">
163+ <div class="label right" id="ratStatus">&nbsp;</div>
164+ <span>Netzwerktyp</span>
165+ </div>
166+ </div></div>
167+
168+ <div id='gsmdetails' x-mojo-element="Drawer">
169+
170+ <div id="gsm_umts_auto" class="palm-row first" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper">
171+ <div class="title truncating-text">
172+ <span>Auto</span>
173+ </div>
174+ </div></div>
175+
176+ <div id="gsm_umts_2g" class="palm-row" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper">
177+ <div class="title truncating-text">
178+ <span>2G</span>
179+ </div>
180+ </div></div>
181+
182+ <div id="gsm_umts_3g" class="palm-row last" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper">
183+ <div class="title truncating-text">
184+ <span>3G</span>
185+ </div>
186+ </div></div>
187+
188+ </div>
189+
190+ <div class="palm-section-divider"></div>
191+
192 <div id="dm_airplanemode" class="palm-row last menu-end" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper">
193 <div id="dm_airplanemode_status" class="title truncating-text">
194 </div>