Commit 083dbfb41e5dfaa69911e0921027cacaaab5360d
- Diff rendering mode:
- inline
- side by side
|   | |||
| 1 | Name: Advanced Options in Launcher | ||
| 2 | Version: 1.3.5.1-1 | ||
| 3 | Author: Jason Robitaille | ||
| 4 | Description: Adds additional options to the launcher's menu: turn on/off DevMode, rescan fileindexer, and rescan applications (MIT license) | ||
| 5 | |||
| 6 | --- .orig/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 7 | +++ /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 8 | @@ -28,6 +28,7 @@ | ||
| 9 | Mojo.Menu.editItem, | ||
| 10 | { label: $L('List Apps...'), command: 'listapps' }, | ||
| 11 | { label: $L('Default Applications'), command: 'defaultapps'}, | ||
| 12 | + { label: $L('Advanced Options'), command: 'advanced'}, | ||
| 13 | Mojo.Menu.helpItem | ||
| 14 | ] | ||
| 15 | }, | ||
| 16 | @@ -115,6 +116,77 @@ | ||
| 17 | handleCommand: function(event) { | ||
| 18 | if (event.type == Mojo.Event.command) { | ||
| 19 | switch (event.command) { | ||
| 20 | + case 'advanced': | ||
| 21 | + SystemManagerService.showQuickLaunch(false); | ||
| 22 | + this.controller.serviceRequest('palm://com.palm.connectionmanager', { | ||
| 23 | + method: 'getnovacommode', | ||
| 24 | + parameters: {}, | ||
| 25 | + onSuccess: function(response){ | ||
| 26 | + var choices = [ | ||
| 27 | + {label:"Toggle DevMode", value:'devmode'}, | ||
| 28 | + {label:"Rescan Fileindexer", value:'fileindexer'}, | ||
| 29 | + {label:"Rescan Applications", value:'rescanapps'}, | ||
| 30 | + {label:"Cancel", value:'cancel', type:'secondary'} | ||
| 31 | + ]; | ||
| 32 | + this.inDevMode = response.isEnabled; | ||
| 33 | + if(this.inDevMode) { | ||
| 34 | + choices[0].label = "Turn off DevMode"; | ||
| 35 | + } else { | ||
| 36 | + choices[0].label = "Turn on DevMode"; | ||
| 37 | + } | ||
| 38 | + this.controller.showAlertDialog({ | ||
| 39 | + onChoose: function(value) { | ||
| 40 | + if(value=='devmode') { | ||
| 41 | + this.controller.showAlertDialog({ | ||
| 42 | + onChoose: function(value){ | ||
| 43 | + if(value=='reset') { | ||
| 44 | + this.controller.serviceRequest('palm://com.palm.connectionmanager', { | ||
| 45 | + method: 'setnovacommode', | ||
| 46 | + parameters: { | ||
| 47 | + isEnabled:!this.inDevMode | ||
| 48 | + }, | ||
| 49 | + onSuccess: function() { | ||
| 50 | + this.controller.serviceRequest('palm://com.palm.power/shutdown', { | ||
| 51 | + method: 'machineReboot', | ||
| 52 | + parameters: { | ||
| 53 | + reason:"User initiated/DevMode status change" | ||
| 54 | + } | ||
| 55 | + }); | ||
| 56 | + }.bind(this) | ||
| 57 | + }); | ||
| 58 | + } | ||
| 59 | + SystemManagerService.showQuickLaunch(true); | ||
| 60 | + }.bind(this), | ||
| 61 | + title: "Restart Device?", | ||
| 62 | + message: "Your device needs to restart for this action to happen.", | ||
| 63 | + choices: [ | ||
| 64 | + {label:"Continue and reset", value:'reset', type:'negative'}, | ||
| 65 | + {label:"Cancel", value:'cancel'} | ||
| 66 | + ] | ||
| 67 | + }); | ||
| 68 | + } else if(value=='fileindexer') { | ||
| 69 | + this.controller.serviceRequest('palm://ca.canucksoftware.filemgr', { | ||
| 70 | + method: 'rescanFileindexer', | ||
| 71 | + parameters: {} | ||
| 72 | + }); | ||
| 73 | + SystemManagerService.showQuickLaunch(true); | ||
| 74 | + } else if(value=='rescanapps') { | ||
| 75 | + this.controller.serviceRequest('com.palm.applicationManager', { | ||
| 76 | + method: 'rescan', | ||
| 77 | + parameters: {} | ||
| 78 | + }); | ||
| 79 | + SystemManagerService.showQuickLaunch(true); | ||
| 80 | + } else { | ||
| 81 | + SystemManagerService.showQuickLaunch(true); | ||
| 82 | + } | ||
| 83 | + }.bind(this), | ||
| 84 | + title: "Advanced Options", | ||
| 85 | + message: "", | ||
| 86 | + choices: choices | ||
| 87 | + }); | ||
| 88 | + }.bind(this) | ||
| 89 | + }); | ||
| 90 | + break; | ||
| 91 | case Mojo.Menu.helpCmd: | ||
| 92 | ApplicationService.launch(this.helpInfo.id, this.helpInfo.params); | ||
| 93 | break; |
|   | |||
| 1 | Name: Named Pages in App Launcher | ||
| 2 | Version: 1.3.5-2 | ||
| 3 | Author: l.m.orchard@pobox.com | ||
| 4 | Description: This patch adds a name to each page in the launcher. Hold the Orange key or gesture area and tap the header to rename a page. Tapping on the name header brings up a submenu for navigating directly to any named page. You can also move an app to another page by using a selector in the app's info dialog, summoned via Orange-tap on an app in the launcher. This patch works better with the "app-launcher-enable-add-delete-pages" and "app-launcher-gesture-tap-for-info-and-delete" patches, and may conflict with the "app-launcher-wrap-pages" patch. | ||
| 5 | |||
| 6 | Index: /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 7 | =================================================================== | ||
| 8 | --- .orig/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 9 | +++ /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 10 | @@ -62,6 +62,9 @@ var LauncherAssistant = Class.create({ | ||
| 11 | |||
| 12 | this.dragStartHandler = this.onDragStart.bindAsEventListener(this); | ||
| 13 | this.launchApp = this.launchApp.bind(this); | ||
| 14 | + | ||
| 15 | + this.page_names_cookie = new Mojo.Model.Cookie('page_names'); | ||
| 16 | + this.page_names = this.page_names_cookie.get() || []; | ||
| 17 | }, | ||
| 18 | |||
| 19 | setup: function() { | ||
| 20 | @@ -77,6 +80,9 @@ var LauncherAssistant = Class.create({ | ||
| 21 | } | ||
| 22 | ); | ||
| 23 | |||
| 24 | + Mojo.listen($('page-category'), Mojo.Event.tap, | ||
| 25 | + this.handlePageNameTap.bindAsEventListener(this)); | ||
| 26 | + | ||
| 27 | this.globalSearchAssistant = new GlobalSearchAssistant(this.controller, this); | ||
| 28 | |||
| 29 | // HACK: The launcher starts out launched and deactive. | ||
| 30 | @@ -241,6 +247,12 @@ var LauncherAssistant = Class.create({ | ||
| 31 | } | ||
| 32 | |||
| 33 | this.pageDivs = $$('.launcher_page'); | ||
| 34 | + | ||
| 35 | + if (createPage) { | ||
| 36 | + this.page_names.splice(newPageIndex, 0, []); | ||
| 37 | + this.updatePageHeader(); | ||
| 38 | + this.savePageNames(); | ||
| 39 | + } | ||
| 40 | |||
| 41 | // extend the horizontal scrollers internal width | ||
| 42 | pagesContainer.style.width = (this.pageDivs.length*this.kPageWidth)+'px'; | ||
| 43 | @@ -302,6 +314,11 @@ var LauncherAssistant = Class.create({ | ||
| 44 | |||
| 45 | // remove the pages indicator | ||
| 46 | this.deletePageIndicator(); | ||
| 47 | + | ||
| 48 | + // Splice out the name for this page. | ||
| 49 | + this.page_names.splice(pageIndex, 1); | ||
| 50 | + this.updatePageHeader(); | ||
| 51 | + this.savePageNames(); | ||
| 52 | |||
| 53 | // snap to a valid location | ||
| 54 | if (pageIndex >= this.pageDivs.length) { | ||
| 55 | @@ -587,6 +604,7 @@ var LauncherAssistant = Class.create({ | ||
| 56 | this.globalSearchAssistant.enable(false); | ||
| 57 | |||
| 58 | var appInfoAssistant = new AppInfoAssistant(appInfo, | ||
| 59 | + this, | ||
| 60 | this.controller, | ||
| 61 | function() { | ||
| 62 | delete this.appDialog; | ||
| 63 | @@ -658,6 +676,9 @@ var LauncherAssistant = Class.create({ | ||
| 64 | |||
| 65 | /* Updates the positions of all page indicators. */ | ||
| 66 | updatePageIndicators: function() { | ||
| 67 | + | ||
| 68 | + // Ensure that the view menu tabs reflect the active page. (LMO) | ||
| 69 | + this.updatePageHeader(); | ||
| 70 | |||
| 71 | if (this.indicators.length <= 0) { | ||
| 72 | return; | ||
| 73 | @@ -778,6 +799,134 @@ var LauncherAssistant = Class.create({ | ||
| 74 | onLaunchCompleted: function(response) { | ||
| 75 | |||
| 76 | delete this.launchRequest; | ||
| 77 | - } | ||
| 78 | + }, | ||
| 79 | + | ||
| 80 | + /** | ||
| 81 | + * Handle tap and meta-tap on the launcher page name header. | ||
| 82 | + */ | ||
| 83 | + handlePageNameTap: function (event) { | ||
| 84 | + if (event.up && event.up.altKey || event.up && event.up.metaKey) { | ||
| 85 | + // Handle alt-tap or meta-tap on page header to rename page. | ||
| 86 | + | ||
| 87 | + // Hide the quick launch panel and disable the global search so | ||
| 88 | + // that the dialog is fully visible and usable. | ||
| 89 | + SystemManagerService.showQuickLaunch(false); | ||
| 90 | + this.globalSearchAssistant.enable(false); | ||
| 91 | + | ||
| 92 | + // Invoke the page rename dialog. | ||
| 93 | + this.renamePageDialog = this.controller.showDialog({ | ||
| 94 | + template: 'launcher/dialogs/rename-page', | ||
| 95 | + assistant: new RenamePageAssistant( | ||
| 96 | + this, function () { | ||
| 97 | + delete this.renamePageDialog; | ||
| 98 | + SystemManagerService.showQuickLaunch(true); | ||
| 99 | + this.globalSearchAssistant.enable(true); | ||
| 100 | + }.bind(this) | ||
| 101 | + ) | ||
| 102 | + }); | ||
| 103 | + | ||
| 104 | + } else { | ||
| 105 | + // Handle tap on page header to invoke page menu. | ||
| 106 | + | ||
| 107 | + // Hide the quick launch panel so there's room for the full menu. | ||
| 108 | + SystemManagerService.showQuickLaunch(false); | ||
| 109 | + | ||
| 110 | + // Invoke the page menu. | ||
| 111 | + this.controller.popupSubmenu({ | ||
| 112 | + placeNear: event.target, | ||
| 113 | + // Construct the menu based on the names for each page, placing | ||
| 114 | + // the checkmark appropriately. | ||
| 115 | + items: this.pageDivs.map(function (alias, idx) { | ||
| 116 | + return { | ||
| 117 | + command: idx, | ||
| 118 | + label: this.getPageName(idx), | ||
| 119 | + chosen: (idx == this.activePageIndex) | ||
| 120 | + }; | ||
| 121 | + }, this), | ||
| 122 | + onChoose: function (command) { | ||
| 123 | + // Reveal the quick launch bar and jump to the chosen page. | ||
| 124 | + SystemManagerService.showQuickLaunch(true); | ||
| 125 | + this.gotoPage(command); | ||
| 126 | + }.bind(this) | ||
| 127 | + }); | ||
| 128 | + | ||
| 129 | + } | ||
| 130 | + }, | ||
| 131 | + | ||
| 132 | + /** | ||
| 133 | + * Get the name for a numbered page. | ||
| 134 | + * | ||
| 135 | + * @param {integer} idx Page number | ||
| 136 | + */ | ||
| 137 | + getPageName: function (idx) { | ||
| 138 | + if (Object.isUndefined(idx)) { idx = this.activePageIndex; } | ||
| 139 | + return this.page_names[idx] || ('#'+(idx+1)); | ||
| 140 | + }, | ||
| 141 | + | ||
| 142 | + /** | ||
| 143 | + * Set the name for a numbered page. | ||
| 144 | + * | ||
| 145 | + * @param {integer} idx Page number | ||
| 146 | + * @param {string} name Page name | ||
| 147 | + */ | ||
| 148 | + setPageName: function (idx, name) { | ||
| 149 | + this.page_names[idx] = name; | ||
| 150 | + this.savePageNames(); | ||
| 151 | + }, | ||
| 152 | + | ||
| 153 | + /** | ||
| 154 | + * Save the current state of page names | ||
| 155 | + */ | ||
| 156 | + savePageNames: function () { | ||
| 157 | + this.page_names_cookie.put(this.page_names); | ||
| 158 | + }, | ||
| 159 | + | ||
| 160 | + /** | ||
| 161 | + * Update the view menu tabs to reflect a given page index. (LMO) | ||
| 162 | + * | ||
| 163 | + * @param {int} idx Page index. | ||
| 164 | + */ | ||
| 165 | + updatePageHeader: function (idx) { | ||
| 166 | + if (Object.isUndefined(idx)) { idx = this.activePageIndex; } | ||
| 167 | + this.controller.get('page-category').update(this.getPageName(idx)); | ||
| 168 | + }, | ||
| 169 | + | ||
| 170 | + /** | ||
| 171 | + * Switch directly to a page. (LMO) | ||
| 172 | + * | ||
| 173 | + * @param {int} idx Page index. | ||
| 174 | + */ | ||
| 175 | + gotoPage: function (idx) { | ||
| 176 | + var idx = parseInt(idx); | ||
| 177 | + if (Object.isUndefined(this.pageDivs[idx])) { | ||
| 178 | + // Bail if attempting to move to a nonexistent page. | ||
| 179 | + return false; | ||
| 180 | + } | ||
| 181 | + // Move to the page, update the on-scene indicators. | ||
| 182 | + $('launcher_root').mojo.setSnapIndex(idx, true); | ||
| 183 | + this.activePageIndex = idx; | ||
| 184 | + this.updatePageIndicators(); | ||
| 185 | + return true; | ||
| 186 | + }, | ||
| 187 | + | ||
| 188 | + /** | ||
| 189 | + * Move an app from its existing page to the first position of a new page. | ||
| 190 | + * Launcher is also switched to that destination page to show the move. | ||
| 191 | + * | ||
| 192 | + * @param {string} launchPointId Launch point ID in the apps list | ||
| 193 | + * @param {integer} page_idx Destination page number | ||
| 194 | + */ | ||
| 195 | + moveAppToPage: function (launchPointId, page_idx) { | ||
| 196 | + var from = this.pagesModel.findApplication(launchPointId), | ||
| 197 | + to = { page: parseInt(page_idx), position: 0 }; | ||
| 198 | + // Move the page in the launcher layout | ||
| 199 | + this.moveApp(launchPointId, to); | ||
| 200 | + // Move the page in the page model | ||
| 201 | + this.pagesModel.moveApplication(from, to); | ||
| 202 | + // Save the page model changes | ||
| 203 | + this.pagesModel.save(); | ||
| 204 | + // Switch to the page to show the change | ||
| 205 | + this.gotoPage(page_idx); | ||
| 206 | + } | ||
| 207 | |||
| 208 | }); | ||
| 209 | Index: /usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 210 | =================================================================== | ||
| 211 | --- .orig/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 212 | +++ /usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 213 | @@ -59,7 +59,7 @@ body.palm-default | ||
| 214 | width: 100%; | ||
| 215 | z-index: 29; | ||
| 216 | height: 24px; | ||
| 217 | - top: 1px; | ||
| 218 | + top: 45px; /* Insert some space for the page selector (LMO) */ | ||
| 219 | background: url(../images/fade-arrow-up.png) center center no-repeat; | ||
| 220 | -webkit-palm-mouse-target: ignore; | ||
| 221 | } | ||
| 222 | @@ -106,7 +106,7 @@ body.palm-default | ||
| 223 | } | ||
| 224 | |||
| 225 | .page_scroller_container { | ||
| 226 | - margin-top: 10px; | ||
| 227 | + margin-top: 55px; /* Insert some space for the page selector (LMO) */ | ||
| 228 | margin-bottom: -20px; | ||
| 229 | } | ||
| 230 | |||
| 231 | Index: /usr/lib/luna/system/luna-applauncher/app/controllers/global-search-assistant.js | ||
| 232 | =================================================================== | ||
| 233 | --- .orig/usr/lib/luna/system/luna-applauncher/app/controllers/global-search-assistant.js | ||
| 234 | +++ /usr/lib/luna/system/luna-applauncher/app/controllers/global-search-assistant.js | ||
| 235 | @@ -246,6 +246,10 @@ GlobalSearchAssistant = Class.create({ | ||
| 236 | }, | ||
| 237 | |||
| 238 | onKeyDown: function(event) { | ||
| 239 | + if (!this.searchEnabled) { | ||
| 240 | + // HACK: The event.stop() below disables text entry in dialogs | ||
| 241 | + return; | ||
| 242 | + } | ||
| 243 | |||
| 244 | this.searchField.mojo.focus(); | ||
| 245 | |||
| 246 | @@ -262,6 +266,10 @@ GlobalSearchAssistant = Class.create({ | ||
| 247 | }, | ||
| 248 | |||
| 249 | onKeyUp: function(event) { | ||
| 250 | + if (!this.searchEnabled) { | ||
| 251 | + // HACK: The event.stop() below disables text entry in dialogs | ||
| 252 | + return; | ||
| 253 | + } | ||
| 254 | |||
| 255 | // block key events from global search | ||
| 256 | if (!this.searchEnabled) { | ||
| 257 | @@ -279,6 +287,10 @@ GlobalSearchAssistant = Class.create({ | ||
| 258 | }, | ||
| 259 | |||
| 260 | onKeyPress: function(event) { | ||
| 261 | + if (!this.searchEnabled) { | ||
| 262 | + // HACK: The event.stop() below disables text entry in dialogs | ||
| 263 | + return; | ||
| 264 | + } | ||
| 265 | |||
| 266 | // block key events from global search and from repeating until the first key has been processed | ||
| 267 | if (!this.searchEnabled || | ||
| 268 | Index: /usr/lib/luna/system/luna-applauncher/app/views/launcher/launcher-scene.html | ||
| 269 | =================================================================== | ||
| 270 | --- .orig/usr/lib/luna/system/luna-applauncher/app/views/launcher/launcher-scene.html | ||
| 271 | +++ /usr/lib/luna/system/luna-applauncher/app/views/launcher/launcher-scene.html | ||
| 272 | @@ -18,6 +18,7 @@ | ||
| 273 | </div> | ||
| 274 | |||
| 275 | <div id="launcher-main"> | ||
| 276 | + <div id="page-category" class="palm-header center" x-mojo-touch-feedback="immediate">...</div> | ||
| 277 | <div id="launcher_root" x-mojo-element="Scroller"> | ||
| 278 | <div id="pages_container"></div> | ||
| 279 | </div> | ||
| 280 | Index: /usr/lib/luna/system/luna-applauncher/sources.json | ||
| 281 | =================================================================== | ||
| 282 | --- .orig/usr/lib/luna/system/luna-applauncher/sources.json | ||
| 283 | +++ /usr/lib/luna/system/luna-applauncher/sources.json | ||
| 284 | @@ -27,6 +27,10 @@ | ||
| 285 | { | ||
| 286 | "source": "app\/models\/launcher-pages.js" | ||
| 287 | }, | ||
| 288 | + | ||
| 289 | + { | ||
| 290 | + "source": "app\/controllers\/rename-page-assistant.js" | ||
| 291 | + }, | ||
| 292 | |||
| 293 | { | ||
| 294 | "source": "app\/models\/ApplicationService.js" | ||
| 295 | Index: /usr/lib/luna/system/luna-applauncher/app/controllers/app-info-assistant.js | ||
| 296 | =================================================================== | ||
| 297 | --- .orig/usr/lib/luna/system/luna-applauncher/app/controllers/app-info-assistant.js | ||
| 298 | +++ /usr/lib/luna/system/luna-applauncher/app/controllers/app-info-assistant.js | ||
| 299 | @@ -1,8 +1,9 @@ | ||
| 300 | /* Copyright 2009 Palm, Inc. All rights reserved. */ | ||
| 301 | |||
| 302 | var AppInfoAssistant = Class.create({ | ||
| 303 | - initialize: function(appInfo, sceneController, closeCallback) { | ||
| 304 | + initialize: function(appInfo, parent, sceneController, closeCallback) { | ||
| 305 | this.sceneController = sceneController; | ||
| 306 | + this.parent = parent; | ||
| 307 | this.appInfo = appInfo; | ||
| 308 | this.isDynamic = this.isDynamicLaunchPoint(this.appInfo); | ||
| 309 | this.closeCallback = closeCallback; | ||
| 310 | @@ -43,6 +44,29 @@ var AppInfoAssistant = Class.create({ | ||
| 311 | if (!this.isDynamic) { | ||
| 312 | this.appSizeRequest = ApplicationService.getAppSize(this.appInfo.id, this.onGetAppSize.bind(this)); | ||
| 313 | } | ||
| 314 | + | ||
| 315 | + // Find the page for the app being inspected. | ||
| 316 | + var app_page = this.parent.pagesModel | ||
| 317 | + .findApplication(this.appInfo.launchPointId); | ||
| 318 | + | ||
| 319 | + // Build the list selector for switching pages. | ||
| 320 | + this.sceneController.setupWidget( | ||
| 321 | + 'page_name', | ||
| 322 | + { | ||
| 323 | + label: $L('Page'), | ||
| 324 | + choices: this.parent.pageDivs.map(function (alias, idx) { | ||
| 325 | + return { | ||
| 326 | + value: idx, | ||
| 327 | + label: this.parent.getPageName(idx) | ||
| 328 | + }; | ||
| 329 | + }, this) | ||
| 330 | + }, | ||
| 331 | + this.page_name_model = { | ||
| 332 | + value: app_page.page, disabled: false | ||
| 333 | + } | ||
| 334 | + ); | ||
| 335 | + this.sceneController.listen('page_name', Mojo.Event.propertyChange, | ||
| 336 | + this.onPageNameChanged.bindAsEventListener(this)); | ||
| 337 | }, | ||
| 338 | |||
| 339 | insertVersion: function() { | ||
| 340 | @@ -148,6 +172,10 @@ var AppInfoAssistant = Class.create({ | ||
| 341 | this.sceneController.get('app-size').update(sizeInKBytes + $L('K')); | ||
| 342 | } | ||
| 343 | }, | ||
| 344 | + | ||
| 345 | + onPageNameChanged: function (event) { | ||
| 346 | + this.parent.moveAppToPage(this.appInfo.launchPointId, event.value); | ||
| 347 | + }, | ||
| 348 | |||
| 349 | cleanup: function() { | ||
| 350 | if (this.appSizeRequest) { | ||
| 351 | Index: /usr/lib/luna/system/luna-applauncher/app/views/launcher/dialogs/app-info.html | ||
| 352 | =================================================================== | ||
| 353 | --- .orig/usr/lib/luna/system/luna-applauncher/app/views/launcher/dialogs/app-info.html | ||
| 354 | +++ /usr/lib/luna/system/luna-applauncher/app/views/launcher/dialogs/app-info.html | ||
| 355 | @@ -8,6 +8,16 @@ | ||
| 356 | </div> | ||
| 357 | <div class="palm-dialog-separator"></div> | ||
| 358 | <div class="palm-dialog-buttons"> | ||
| 359 | + <div class="palm-group unlabeled"> | ||
| 360 | + <div class="palm-list"> | ||
| 361 | + <div class="palm-row single"> | ||
| 362 | + <div class="palm-row-wrapper"> | ||
| 363 | + <div x-mojo-element="ListSelector" | ||
| 364 | + id="page_name" name="page_name"></div> | ||
| 365 | + </div> | ||
| 366 | + </div> | ||
| 367 | + </div> | ||
| 368 | + </div> | ||
| 369 | <div id='delete-btn' x-mojo-element="Button"></div> | ||
| 370 | <div id='done-btn' x-mojo-element="Button"></div> | ||
| 371 | </div> | ||
| 372 | Index: /usr/lib/luna/system/luna-applauncher/app/controllers/rename-page-assistant.js | ||
| 373 | =================================================================== | ||
| 374 | --- /dev/null | ||
| 375 | +++ /usr/lib/luna/system/luna-applauncher/app/controllers/rename-page-assistant.js | ||
| 376 | @@ -0,0 +1,76 @@ | ||
| 377 | +/** | ||
| 378 | + * Assistant managing the page rename dialog. | ||
| 379 | + */ | ||
| 380 | +RenamePageAssistant = Class.create({ | ||
| 381 | + | ||
| 382 | + initialize: function (parent, closeCallback) { | ||
| 383 | + this.parent = parent; | ||
| 384 | + this.closeCallback = closeCallback; | ||
| 385 | + }, | ||
| 386 | + | ||
| 387 | + setup: function (widget) { | ||
| 388 | + this.widget = widget; | ||
| 389 | + | ||
| 390 | + var idx = this.parent.activePageIndex, | ||
| 391 | + page_name = this.parent.getPageName(idx); | ||
| 392 | + | ||
| 393 | + this.parent.controller.setupWidget( | ||
| 394 | + 'page_rename_field', | ||
| 395 | + { | ||
| 396 | + textReplacement: false, | ||
| 397 | + focus: true, | ||
| 398 | + hintText: 'enter page name...', | ||
| 399 | + changeOnKeyPress: true | ||
| 400 | + }, | ||
| 401 | + this.page_name_model = { | ||
| 402 | + value: page_name, | ||
| 403 | + disabled: false | ||
| 404 | + } | ||
| 405 | + ); | ||
| 406 | + this.parent.controller.listen( | ||
| 407 | + 'page_rename_field', | ||
| 408 | + Mojo.Event.propertyChange, | ||
| 409 | + this.handleChange.bindAsEventListener(this) | ||
| 410 | + ); | ||
| 411 | + | ||
| 412 | + setTimeout(function () { | ||
| 413 | + // HACK: Auto-focus the rename field after setup is done. | ||
| 414 | + this.parent.controller.get('page_rename_field').mojo.focus(); | ||
| 415 | + }.bind(this), 1); | ||
| 416 | + | ||
| 417 | + this.parent.controller.setupWidget('rename_button', {}, | ||
| 418 | + { buttonLabel: $L('Rename') }); | ||
| 419 | + this.parent.controller.listen('rename_button', Mojo.Event.tap, | ||
| 420 | + this.handleRename.bindAsEventListener(this)); | ||
| 421 | + | ||
| 422 | + this.parent.controller.setupWidget('cancel_button', {}, | ||
| 423 | + { buttonLabel: $L('Cancel') }); | ||
| 424 | + this.parent.controller.listen('cancel_button', Mojo.Event.tap, | ||
| 425 | + this.handleCancel.bindAsEventListener(this)); | ||
| 426 | + }, | ||
| 427 | + | ||
| 428 | + handleChange: function (event) { | ||
| 429 | + if (event && Mojo.Char.isEnterKey(event.originalEvent.keyCode)) { | ||
| 430 | + this.handleRename(event); | ||
| 431 | + } | ||
| 432 | + }, | ||
| 433 | + | ||
| 434 | + handleRename: function (event) { | ||
| 435 | + this.parent.setPageName( | ||
| 436 | + this.parent.activePageIndex, | ||
| 437 | + this.parent.controller.get('page_rename_field').mojo.getValue() | ||
| 438 | + ); | ||
| 439 | + this.parent.updatePageHeader(); | ||
| 440 | + this.widget.mojo.close(); | ||
| 441 | + }, | ||
| 442 | + | ||
| 443 | + handleCancel: function (event) { | ||
| 444 | + this.widget.mojo.close(); | ||
| 445 | + }, | ||
| 446 | + | ||
| 447 | + cleanup: function() { | ||
| 448 | + this.closeCallback(); | ||
| 449 | + }, | ||
| 450 | + | ||
| 451 | + EOF:null | ||
| 452 | +}); | ||
| 453 | Index: /usr/lib/luna/system/luna-applauncher/app/views/launcher/dialogs/rename-page.html | ||
| 454 | =================================================================== | ||
| 455 | --- /dev/null | ||
| 456 | +++ /usr/lib/luna/system/luna-applauncher/app/views/launcher/dialogs/rename-page.html | ||
| 457 | @@ -0,0 +1,24 @@ | ||
| 458 | +<div id="palm-dialog-content" class="palm-dialog-content"> | ||
| 459 | + <div class="palm-dialog-title"> | ||
| 460 | + Rename Page | ||
| 461 | + </div> | ||
| 462 | + <div class="palm-dialog-separator"></div> | ||
| 463 | + <div class="textfield-group" x-mojo-focus-highlight="true"> | ||
| 464 | + <div class="title"> | ||
| 465 | + <div class="label">Name</div> | ||
| 466 | + <div id="page_rename_field" name="page_rename_field" | ||
| 467 | + x-mojo-element="TextField"></div> | ||
| 468 | + </div> | ||
| 469 | + </div> | ||
| 470 | +</div> | ||
| 471 | + | ||
| 472 | +<div class="palm-dialog-buttons"> | ||
| 473 | + <div id="rename_button" class="palm-button affirmative" | ||
| 474 | + x-mojo-touch-feedback="immediatePersistent"> | ||
| 475 | + <div class="palm-button-wrapper" x-mojo-loc="">Rename</div> | ||
| 476 | + </div> | ||
| 477 | + <div id="cancel_button" class="palm-button dismiss" | ||
| 478 | + x-mojo-touch-feedback="immediatePersistent"> | ||
| 479 | + <div class="palm-button-wrapper" x-mojo-loc="">Cancel</div> | ||
| 480 | + </div> | ||
| 481 | +</div> |
|   | |||
| 1 | --- /usr/palm/applications/com.palm.app.contacts/app/controllers/list-assistant.js.orig 2009-08-19 19:19:40.000000000 -0400 | ||
| 2 | +++ /usr/palm/applications/com.palm.app.contacts/app/controllers/list-assistant.js 2010-01-08 01:11:12.380734400 -0500 | ||
| 1 | --- /usr/palm/applications/com.palm.app.contacts/app/controllers/list-assistant.js.orig Thu Jan 14 13:02:13 2010 | ||
| 2 | +++ /usr/palm/applications/com.palm.app.contacts/app/controllers/list-assistant.js Thu Jan 14 13:22:18 2010 | ||
| 3 | 3 | @@ -284,6 +284,9 @@ | |
| 4 | 4 | items: [Mojo.Menu.editItem,{ | |
| 5 | 5 | label:$L("Send All to Car Kit"), | |
| … | … | ||
| 10 | 10 | }, prefsItem, { | |
| 11 | 11 | label: $LL('Help'), | |
| 12 | 12 | command: Mojo.Menu.helpCmd | |
| 13 | @@ -463,12 +466,31 @@ | ||
| 13 | @@ -461,6 +464,8 @@ | ||
| 14 | }); | ||
| 15 | }else if (event.type == Mojo.Event.command && event.command === Mojo.Menu.prefsCmd) { | ||
| 14 | 16 | this.controller.stageController.pushScene('prefs'); | |
| 15 | }else if (event.type == Mojo.Event.command && event.command == "sendcontacts") { | ||
| 16 | this.sendContacts(); | ||
| 17 | 17 | + }else if (event.type == Mojo.Event.command && event.command == "emailcontacts") { | |
| 18 | 18 | + this.emailContacts(); | |
| 19 | }else if (event.type == Mojo.Event.command && event.command == "sendcontacts") { | ||
| 20 | this.sendContacts(); | ||
| 19 | 21 | } | |
| 20 | if (event.type == Mojo.Event.commandEnable && event.command == Mojo.Menu.prefsCmd) { | ||
| 21 | // funkay! this is apparently how you declare you want to activate the prefs menu item | ||
| 22 | event.stopPropagation(); | ||
| 22 | @@ -470,6 +475,23 @@ | ||
| 23 | 23 | } | |
| 24 | 24 | }, | |
| 25 | + | ||
| 26 | + emailContacts:function(){ | ||
| 27 | + this.vcardRequest = AppAssistant.contactsService.makeVCardList(this.controller, { | ||
| 28 | + stripPhoneNumbers:false | ||
| 29 | + }, this.gotVCard.bind(this, "email")); | ||
| 30 | + var cancelFn = function(){ | ||
| 31 | + this.vcardRequest.cancel(); | ||
| 32 | + this.vcardRequest = null; | ||
| 33 | + }.bind(this) | ||
| 34 | + console.log("Setting up a dialog"); | ||
| 35 | + this.sendContactsPopupAssistant = new SendContactsPopupAssistant(this.controller, cancelFn); | ||
| 36 | + this.controller.showDialog({ | ||
| 37 | + template: 'list/send-contact-popup', | ||
| 38 | + assistant: this.sendContactsPopupAssistant, | ||
| 39 | + preventCancel:true | ||
| 40 | + }); | ||
| 25 | |||
| 26 | + emailContacts:function(){ | ||
| 27 | + this.vcardRequest = AppAssistant.contactsService.makeVCardList(this.controller, { | ||
| 28 | + stripPhoneNumbers:false | ||
| 29 | + }, this.gotVCard.bind(this, "email")); | ||
| 30 | + var cancelFn = function(){ | ||
| 31 | + this.vcardRequest.cancel(); | ||
| 32 | + this.vcardRequest = null; | ||
| 33 | + }.bind(this) | ||
| 34 | + console.log("Setting up a dialog"); | ||
| 35 | + this.sendContactsPopupAssistant = new SendContactsPopupAssistant(this.controller, cancelFn); | ||
| 36 | + this.controller.showDialog({ | ||
| 37 | + template: 'list/send-contact-popup', | ||
| 38 | + assistant: this.sendContactsPopupAssistant, | ||
| 39 | + preventCancel:true | ||
| 40 | + }); | ||
| 41 | 41 | + }, | |
| 42 | |||
| 42 | + | ||
| 43 | 43 | sendContacts:function(){ | |
| 44 | |||
| 44 | |||
| 45 | var params = {"type":"bluetooth", "onSuccess":this.bluetoothResponse.bind(this)}; | ||
| 45 | 46 | @@ -479,7 +501,7 @@ | |
| 46 | |||
| 47 | |||
| 47 | 48 | bluetoothResponse:function(response){ | |
| 48 | 49 | if (response == "BT-On" || response == "BT-StartingUp") { | |
| 49 | 50 | - this.vcardRequest = AppAssistant.contactsService.makeVCardList(this.controller, {stripPhoneNumbers:true}, this.gotVCard.bind(this)); | |
| … | … | ||
| 55 | 55 | @@ -494,18 +516,39 @@ | |
| 56 | 56 | } | |
| 57 | 57 | }, | |
| 58 | |||
| 58 | |||
| 59 | 59 | - gotVCard:function(resp){ | |
| 60 | 60 | - var appArgs = { | |
| 61 | 61 | - appId:"com.palm.app.bluetooth", | |
| 62 | 62 | - name:"btopp" | |
| 63 | - } | ||
| 63 | + gotVCard:function(type,resp){ | ||
| 64 | + if (type == "bluetooth") { | ||
| 65 | + var appArgs = { | ||
| 66 | + appId:"com.palm.app.bluetooth", | ||
| 67 | + name:"btopp" | ||
| 68 | + } | ||
| 69 | + var sceneArgs = { | ||
| 70 | + file:resp.file | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | + this.sendContactsPopupAssistant.widget.mojo.close(); | ||
| 74 | + | ||
| 75 | + this.controller.stageController.pushScene(appArgs, sceneArgs) | ||
| 76 | } | ||
| 64 | 77 | - var sceneArgs = { | |
| 65 | 78 | - file:resp.file | |
| 66 | - } | ||
| 79 | + else if (type == "email") { | ||
| 80 | + var vcfPath = resp.file; | ||
| 81 | + | ||
| 82 | + this.sendContactsPopupAssistant.widget.mojo.close(); | ||
| 83 | + | ||
| 84 | + this.controller.serviceRequest('palm://com.palm.applicationManager', { | ||
| 85 | + method: 'open', | ||
| 86 | + parameters: { | ||
| 87 | + id: 'com.palm.app.email', | ||
| 88 | + params: { | ||
| 89 | + summary: 'Palm Contacts', | ||
| 90 | + attachments: [{ | ||
| 91 | + fullPath:vcfPath, | ||
| 92 | + mimeType:'text/x-vcard' | ||
| 93 | + }] | ||
| 94 | + } | ||
| 95 | + } | ||
| 96 | + }); | ||
| 97 | } | ||
| 67 | 98 | - | |
| 68 | 99 | - this.sendContactsPopupAssistant.widget.mojo.close(); | |
| 69 | 100 | - | |
| 70 | 101 | - this.controller.stageController.pushScene(appArgs, sceneArgs) | |
| 71 | + gotVCard:function(type, resp){ | ||
| 72 | + if (type == "bluetooth") { | ||
| 73 | + var appArgs = { | ||
| 74 | + appId:"com.palm.app.bluetooth", | ||
| 75 | + name:"btopp" | ||
| 76 | + } | ||
| 77 | + var sceneArgs = { | ||
| 78 | + file:resp.file | ||
| 79 | + } | ||
| 80 | + | ||
| 81 | + this.sendContactsPopupAssistant.widget.mojo.close(); | ||
| 82 | + | ||
| 83 | + this.controller.stageController.pushScene(appArgs, sceneArgs) | ||
| 84 | + } | ||
| 85 | + else if (type == "email") { | ||
| 86 | + var vcfPath = resp.file; | ||
| 87 | + | ||
| 88 | + this.sendContactsPopupAssistant.widget.mojo.close(); | ||
| 89 | + | ||
| 90 | + this.controller.serviceRequest('palm://com.palm.applicationManager', { | ||
| 91 | + method: 'open', | ||
| 92 | + parameters: { | ||
| 93 | + id: 'com.palm.app.email', | ||
| 94 | + params: { | ||
| 95 | + summary: 'Palm Contacts', | ||
| 96 | + attachments: [{ | ||
| 97 | + fullPath:vcfPath, | ||
| 98 | + mimeType:'text/x-vcard' | ||
| 99 | + }] | ||
| 100 | + } | ||
| 101 | + } | ||
| 102 | + }); | ||
| 103 | + } | ||
| 104 | 102 | }, | |
| 105 | |||
| 103 | |||
| 106 | 104 | handleListTap: function(event){ |
|   | |||
| 1 | --- .orig/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 2 | +++ /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 3 | @@ -532,7 +532,7 @@ | ||
| 4 | .chat-entry.their-chat .chat-balloon { | ||
| 5 | border-width: 10px; | ||
| 6 | -webkit-border-image: url(../images/chatview/chat-balloon-left-selected.png) 10 10 10 10 stretch stretch; | ||
| 7 | - -webkit-border-image: url(../images/chatview/chat-balloon-left.png) 10 10 10 10 stretch stretch; | ||
| 8 | + -webkit-border-image: url(/media/internal/scrims/chat-balloon-left.png) 10 10 10 10 stretch stretch; | ||
| 9 | } | ||
| 10 | .chat-entry.selected .chat-balloon { | ||
| 11 | -webkit-border-image: url(../images/chatview/empty.png) 10 10 10 10 stretch stretch; | ||
| 12 | @@ -541,7 +541,7 @@ | ||
| 13 | -webkit-border-image: url(../images/chatview/chat-balloon-left-error.png) 10 10 10 10 stretch stretch; | ||
| 14 | } | ||
| 15 | .chat-entry.my-chat .chat-balloon { | ||
| 16 | - -webkit-border-image: url(../images/chatview/chat-balloon-right.png) 10 10 10 10 stretch stretch; | ||
| 17 | + -webkit-border-image: url(/media/internal/scrims/chat-balloon-right.png) 10 10 10 10 stretch stretch; | ||
| 18 | } | ||
| 19 | .chat-entry.my-chat.error .chat-balloon { | ||
| 20 | -webkit-border-image: url(../images/chatview/chat-balloon-right-error.png) 10 10 10 10 stretch stretch; | ||
| 21 | \ No newline at end of file |
misc/misc-scrim-multi.patch
(153 / 0)
|   | |||
| 1 | --- .orig/usr/palm/applications/com.palm.app.browser/stylesheets/browser.css | ||
| 2 | +++ /usr/palm/applications/com.palm.app.browser/stylesheets/browser.css | ||
| 3 | @@ -1,6 +1,7 @@ | ||
| 4 | /* | ||
| 5 | * Copyright 2008-2009 Palm, Inc. All rights reserved. | ||
| 6 | */ | ||
| 7 | + | ||
| 8 | body { | ||
| 9 | margin: 0px; | ||
| 10 | padding: 0px; | ||
| 11 | @@ -279,7 +280,7 @@ | ||
| 12 | } | ||
| 13 | |||
| 14 | #start-page-background { | ||
| 15 | - background: url(../images/background-bookmarks-grid.png) center center no-repeat; | ||
| 16 | + background: #000 url(/media/internal/scrims/browser-scrim.png) center center no-repeat; | ||
| 17 | position: fixed; | ||
| 18 | top: 0px; | ||
| 19 | left: 0px; | ||
| 20 | |||
| 21 | |||
| 22 | --- .orig/usr/palm/applications/com.palm.app.contacts/stylesheets/list.css | ||
| 23 | +++ /usr/palm/applications/com.palm.app.contacts/stylesheets/list.css | ||
| 24 | @@ -4,6 +4,11 @@ | ||
| 25 | */ | ||
| 26 | |||
| 27 | /* List Common */ | ||
| 28 | +body.wallpaper, | ||
| 29 | + body.palm-default { | ||
| 30 | + background: #000 url(/media/internal/scrims/contacts-scrim.png); | ||
| 31 | + color:#fff; | ||
| 32 | +} | ||
| 33 | |||
| 34 | div.hidden { | ||
| 35 | display: none; | ||
| 36 | \ No newline at end of file | ||
| 37 | |||
| 38 | --- .orig/usr/palm/applications/com.palm.app.email/stylesheets/email.css | ||
| 39 | +++ /usr/palm/applications/com.palm.app.email/stylesheets/email.css | ||
| 40 | @@ -21,6 +21,11 @@ | ||
| 41 | * email folder-list specifics | ||
| 42 | * | ||
| 43 | **************************************************************************************************/ | ||
| 44 | +body.wallpaper, | ||
| 45 | + body.palm-default { | ||
| 46 | + background: #000 url(/media/internal/scrims/email-scrim.png); | ||
| 47 | + color:#fff; | ||
| 48 | +} | ||
| 49 | |||
| 50 | .email-folder-list .palm-row-wrapper { | ||
| 51 | min-height: 50px; | ||
| 52 | \ No newline at end of file | ||
| 53 | |||
| 54 | --- .orig/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 55 | +++ /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 56 | @@ -6,7 +6,11 @@ | ||
| 57 | /************************************************************************************************** | ||
| 58 | * First Launch | ||
| 59 | **************************************************************************************************/ | ||
| 60 | - | ||
| 61 | +body.wallpaper, | ||
| 62 | + body.palm-default { | ||
| 63 | + background: url(/media/internal/scrims/messaging-scrim.png) 0 0 fixed no-repeat; | ||
| 64 | + color:#fff; | ||
| 65 | +} | ||
| 66 | .palm-button.accountType { | ||
| 67 | text-align: left; | ||
| 68 | } | ||
| 69 | @@ -615,6 +619,7 @@ | ||
| 70 | padding: 1px 0; | ||
| 71 | font-size: 18px; | ||
| 72 | word-wrap: break-word !important; | ||
| 73 | +color: #fff; | ||
| 74 | } | ||
| 75 | .their-chat .chat-balloon-wrapper { | ||
| 76 | padding-right: 8px; | ||
| 77 | \ No newline at end of file | ||
| 78 | --- .orig/usr/palm/applications/com.palm.app.musicplayer/stylesheets/music-player.css | ||
| 79 | +++ /usr/palm/applications/com.palm.app.musicplayer/stylesheets/music-player.css | ||
| 80 | @@ -9,7 +9,7 @@ | ||
| 81 | |||
| 82 | body.wallpaper, | ||
| 83 | body.palm-default { | ||
| 84 | - background: url(../images/background.png) 0 0 fixed; | ||
| 85 | + background:#000 url(/media/internal/scrims/music-player-scrim.png) 0 0 fixed; | ||
| 86 | color: white; | ||
| 87 | } | ||
| 88 | |||
| 89 | |||
| 90 | --- .orig/usr/palm/applications/com.palm.app.notes/stylesheets/notes-app.css | ||
| 91 | +++ /usr/palm/applications/com.palm.app.notes/stylesheets/notes-app.css | ||
| 92 | @@ -6,7 +6,7 @@ | ||
| 93 | */ | ||
| 94 | |||
| 95 | .notes-background { | ||
| 96 | - background: url(../images/notes-background.png) top left no-repeat !important; | ||
| 97 | + background:#000 url(/media/internal/scrims/notes-scrim.png) top left no-repeat !important; | ||
| 98 | position: fixed; | ||
| 99 | width: 100%; | ||
| 100 | height: 100%; | ||
| 101 | |||
| 102 | --- .orig/usr/palm/applications/com.palm.app.phone/stylesheets/phone.css | ||
| 103 | +++ /usr/palm/applications/com.palm.app.phone/stylesheets/phone.css | ||
| 104 | @@ -31,7 +31,7 @@ | ||
| 105 | } | ||
| 106 | |||
| 107 | body.palm-default { | ||
| 108 | - background: #000 url(../images/backdrop-phone.png) 0 0 fixed no-repeat; | ||
| 109 | + background: #000 url(/media/internal/scrims/phone-scrim.png) 0 0 fixed no-repeat; | ||
| 110 | } | ||
| 111 | |||
| 112 | body.no-wallpaper { | ||
| 113 | \ No newline at end of file | ||
| 114 | --- .orig/usr/palm/applications/com.palm.app.photos/stylesheets/photos.css | ||
| 115 | +++ /usr/palm/applications/com.palm.app.photos/stylesheets/photos.css | ||
| 116 | @@ -297,7 +297,7 @@ | ||
| 117 | top: 0; | ||
| 118 | left: 0; | ||
| 119 | z-index: -100; | ||
| 120 | - background: #000 url(../images/background.png) no-repeat; | ||
| 121 | + background: #000 url(/media/internal/scrims/photos-scrim.png) no-repeat; | ||
| 122 | } | ||
| 123 | |||
| 124 | /*Album List View Specific Styles*/ | ||
| 125 | |||
| 126 | |||
| 127 | --- .orig/usr/palm/applications/com.telenav.app.sprintnavigation/stylesheets/telenav.css | ||
| 128 | +++ /usr/palm/applications/com.telenav.app.sprintnavigation/stylesheets/telenav.css | ||
| 129 | @@ -3,6 +3,11 @@ | ||
| 130 | color: #FEE100; /*From sprint UI guidelines */ | ||
| 131 | text-align: center; | ||
| 132 | } | ||
| 133 | +body.wallpaper, | ||
| 134 | + body.palm-default { | ||
| 135 | + background:#000 url(/media/internal/scrims/sprintnav-scrim.png) 0 0 fixed no-repeat; | ||
| 136 | + color:#fff; | ||
| 137 | +} | ||
| 138 | |||
| 139 | .palm-button.spinner { | ||
| 140 | float: right; | ||
| 141 | |||
| 142 | ---.orig/usr/palm/applications/com.palm.app.videoplayer.launcher/stylesheets/media-video.css | ||
| 143 | +++ /usr/palm/applications/com.palm.app.videoplayer.launcher/stylesheets/media-video.css | ||
| 144 | @@ -4,7 +4,7 @@ | ||
| 145 | */ | ||
| 146 | |||
| 147 | body.palm-default { | ||
| 148 | - background: url(../images/background.png) 0 0 fixed no-repeat; | ||
| 149 | + background: #000 url(/media/internal/scrims/video-player-scrim.png) 0 0 fixed no-repeat; | ||
| 150 | color: white; | ||
| 151 | } | ||
| 152 | |||
| 153 |
|   | |||
| 1 | Name: Emoticons using sym+k & sym+z (keys reversed) | ||
| 2 | Version: 1.3.5-1 | ||
| 3 | Author: xanthinealkaloid | ||
| 4 | Description: Use the sym key and letter K (words) or Z (symbols) to bring up the built-in emoticons list. | ||
| 5 | Description: Index: /usr/palm/frameworks/mojo/submissions/200.72/resources/en_us/alternatechars_table.json | ||
| 6 | =================================================================== | ||
| 7 | --- /usr/palm/frameworks/mojo/submissions/200.72/resources/en_us/alternatechars_table.json | ||
| 8 | +++ /usr/palm/frameworks/mojo/submissions/200.72/resources/en_us/alternatechars_table.json | ||
| 9 | @@ -10,1 +10,1 @@ | ||
| 10 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 11 | + {"keyCode": 75, "letter":"k", "list": [":doh",":mad",":wtf",":cool",":cry",":eek",":sad",":omg",":grin",":kiss",":lol",":evil",":meh",":sick",":smile",":wink",":yuck",":eww",":heart",":angel",":redface"]}, | ||
| 12 | @@ -25,1 +25,1 @@ | ||
| 13 | - {"keyCode": 90, "letter":"z", "list": ["ž","Ž","•"]}, | ||
| 14 | + {"keyCode": 90, "letter":"z", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",">:-)",">:-(","<3","ž","Ž","•"]}, |
|   | |||
| 1 | Name: Emoticons using sym+k & sym+z | ||
| 2 | Version: 1.3.5-1 | ||
| 3 | Author: xanthinealkaloid | ||
| 4 | Description: Use the sym key and letter K (symbols) or Z (words) to bring up the built-in emoticons list. | ||
| 5 | Index: /usr/palm/frameworks/mojo/submissions/200.72/resources/en_us/alternatechars_table.json | ||
| 6 | =================================================================== | ||
| 7 | --- /usr/palm/frameworks/mojo/submissions/200.72/resources/en_us/alternatechars_table.json | ||
| 8 | +++ /usr/palm/frameworks/mojo/submissions/200.72/resources/en_us/alternatechars_table.json | ||
| 9 | @@ -10,1 +10,1 @@ | ||
| 10 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 11 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",">:-)",">:-(","<3"]}, | ||
| 12 | @@ -25,1 +25,1 @@ | ||
| 13 | - {"keyCode": 90, "letter":"z", "list": ["ž","Ž","•"]}, | ||
| 14 | + {"keyCode": 90, "letter":"z", "list": ["ž","Ž","•",":doh",":mad",":wtf",":cool",":cry",":eek",":sad",":omg",":grin",":kiss",":lol",":evil",":meh",":sick",":smile",":wink",":yuck",":eww",":heart",":angel",":redface"]}, |
|   | |||
| 1 | Name: Advanced Reset Options | ||
| 2 | Version: 1.3.5.1-1 | ||
| 3 | Author: Jason Robitaille | ||
| 4 | Description: On power button hold, it goes straight to the reset options, with airplaine mode, java restart, and luna restart added, and skips the swap-battery/shutdown prompt. (MIT license) | ||
| 5 | |||
| 6 | --- .orig/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 7 | +++ /usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 8 | @@ -2426,7 +2426,7 @@ | ||
| 9 | var f = function(stageController){ | ||
| 10 | stageController.pushScene('poweroffalert',this); | ||
| 11 | }.bind(this); | ||
| 12 | - var params = {name: 'PowerOffAlert', height: 175,lightweight:true}; | ||
| 13 | + var params = {name: 'PowerOffAlert', height: 345,lightweight:true}; | ||
| 14 | appController.createStageWithCallback(params,f,'popupalert'); | ||
| 15 | } | ||
| 16 | //Close the Storage Alert and create a USB dashboard. | ||
| 17 | --- .orig/usr/lib/luna/system/luna-systemui/app/views/poweroffalert/poweroffalert-scene.html | ||
| 18 | +++ /usr/lib/luna/system/luna-systemui/app/views/poweroffalert/poweroffalert-scene.html | ||
| 19 | @@ -1,5 +1,8 @@ | ||
| 20 | <div class="system-notification power-off"> | ||
| 21 | <div class="palm-notification-button affirmative" x-mojo-tap-highlight="immediate" id='flightmode' x-mojo-loc=''></div> | ||
| 22 | - <div class="palm-notification-button negative" x-mojo-tap-highlight="immediate" id='poweroff' x-mojo-loc=''>Power</div> | ||
| 23 | + <div class="palm-notification-button alternate" x-mojo-tap-highlight="immediate" id='java' x-mojo-loc=''>Java-Services Restart</div> | ||
| 24 | + <div class="palm-notification-button alternate" x-mojo-tap-highlight="immediate" id='luna' x-mojo-loc=''>Luna Restart</div> | ||
| 25 | + <div class="palm-notification-button alternate" x-mojo-tap-highlight="immediate" id='restart' x-mojo-loc=''>Device Restart</div> | ||
| 26 | + <div class="palm-notification-button negative" x-mojo-tap-highlight="immediate" id='shutdown' x-mojo-loc=''>Shut Down</div> | ||
| 27 | <div class="palm-notification-button" x-mojo-tap-highlight="immediate" id='cancel' x-mojo-loc=''>Cancel</div> | ||
| 28 | </div> | ||
| 29 | \ No newline at end of file | ||
| 30 | --- .orig/usr/lib/luna/system/luna-systemui/app/controllers/poweroffalert-assistant.js | ||
| 31 | +++ /usr/lib/luna/system/luna-systemui/app/controllers/poweroffalert-assistant.js | ||
| 32 | @@ -7,7 +7,10 @@ | ||
| 33 | |||
| 34 | setup: function() { | ||
| 35 | var flightMode = this.flightMode.bindAsEventListener(this); | ||
| 36 | - var powerOff = this.powerOff.bindAsEventListener(this); | ||
| 37 | + var java = this.java.bindAsEventListener(this); | ||
| 38 | + var luna = this.luna.bindAsEventListener(this); | ||
| 39 | + var restart = this.restart.bindAsEventListener(this); | ||
| 40 | + var shutdown = this.shutdown.bindAsEventListener(this); | ||
| 41 | var cancel = this.cancel.bindAsEventListener(this); | ||
| 42 | var launchAirplaneModeHelp = this.launchAirplaneModeHelp.bindAsEventListener(this); | ||
| 43 | this.flightMode = this.barAssistant.getAirplaneMode(); | ||
| 44 | @@ -16,7 +19,10 @@ | ||
| 45 | else | ||
| 46 | this.controller.get('flightmode').innerHTML = "<div class='info-icon' id='airplaneInfo' x-mojo-touch-feedback='immediate'></div>" + $L('Airplane Mode'); | ||
| 47 | |||
| 48 | - this.controller.get('poweroff').addEventListener(Mojo.Event.tap, powerOff); | ||
| 49 | this.controller.get('flightmode').addEventListener(Mojo.Event.tap, flightMode); | ||
| 50 | + this.controller.get('java').addEventListener(Mojo.Event.tap, java); | ||
| 51 | + this.controller.get('luna').addEventListener(Mojo.Event.tap, luna); | ||
| 52 | + this.controller.get('restart').addEventListener(Mojo.Event.tap, restart); | ||
| 53 | + this.controller.get('shutdown').addEventListener(Mojo.Event.tap, shutdown); | ||
| 54 | this.controller.get('cancel').addEventListener(Mojo.Event.tap, cancel); | ||
| 55 | this.controller.get('airplaneInfo').addEventListener(Mojo.Event.tap, launchAirplaneModeHelp); | ||
| 56 | @@ -46,6 +52,32 @@ | ||
| 57 | this.controller.window.close(); | ||
| 58 | }, | ||
| 59 | |||
| 60 | + java: function() { | ||
| 61 | + this.controller.serviceRequest('palm://ca.canucksoftware.systoolsmgr', { | ||
| 62 | + method: "javaRestart", | ||
| 63 | + parameters: {} | ||
| 64 | + }); | ||
| 65 | + this.controller.window.close(); | ||
| 66 | + }, | ||
| 67 | + | ||
| 68 | + luna: function() { | ||
| 69 | + this.controller.serviceRequest('palm://ca.canucksoftware.systoolsmgr', { | ||
| 70 | + method: "lunaRestart", | ||
| 71 | + parameters: {} | ||
| 72 | + }); | ||
| 73 | + this.controller.window.close(); | ||
| 74 | + }, | ||
| 75 | + | ||
| 76 | + restart: function() { | ||
| 77 | + this.barAssistant.machineReboot("Restart selected by User in PowerOff Dialog"); | ||
| 78 | + this.controller.window.close(); | ||
| 79 | + }, | ||
| 80 | + | ||
| 81 | + shutdown:function() { | ||
| 82 | + this.barAssistant.machineOffNow("Shutdown request by User"); | ||
| 83 | + this.controller.window.close(); | ||
| 84 | + }, | ||
| 85 | + | ||
| 86 | flightMode:function(event) { | ||
| 87 | |||
| 88 | var targetId = event.target.id; |
|   | |||
| 1 | 1 | Name: Reset Options On Power Button Hold | |
| 2 | Version: 1.3.5-1 | ||
| 2 | Version: 1.3.5-3 | ||
| 3 | 3 | Author: Jason Robitaille | |
| 4 | Description: Goes straight to the reset options, skipping the airplaine mode part, on power button hold (MIT license) | ||
| 4 | Description: On power button hold, it goes straight to the reset options, with airplaine mode added, and skips the swap-battery/shutdown prompt, (MIT license) | ||
| 5 | 5 | ||
| 6 | 6 | --- .orig/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | |
| 7 | 7 | +++ /usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | |
| 8 | @@ -308,7 +308,7 @@ | ||
| 9 | |||
| 10 | if(!this.deviceLocked) { | ||
| 11 | var appController = Mojo.Controller.getAppController(); | ||
| 12 | - var stageController = appController.getStageProxy("PowerOffAlert"); | ||
| 13 | + var stageController = appController.getStageProxy("ResetOptionAlert"); | ||
| 14 | if(stageController) | ||
| 15 | stageController.delegateToSceneAssistant("cancelTimer"); | ||
| 16 | } | ||
| 17 | @@ -2346,7 +2346,7 @@ | ||
| 18 | showPowerOffAlert: function() { | ||
| 19 | |||
| 20 | var appController = Mojo.Controller.getAppController(); | ||
| 21 | - var stageController = appController.getStageProxy("PowerOffAlert"); | ||
| 22 | + var stageController = appController.getStageProxy("ResetOptionAlert"); | ||
| 23 | // if the window already exists, don't do anything | ||
| 24 | if (!stageController) { | ||
| 25 | // Create a popuo alert | ||
| 26 | @@ -2351,7 +2351,7 @@ | ||
| 27 | if (!stageController) { | ||
| 28 | // Create a popuo alert | ||
| 8 | @@ -2426,7 +2426,7 @@ | ||
| 29 | 9 | var f = function(stageController){ | |
| 30 | - stageController.pushScene('poweroffalert',this); | ||
| 31 | + stageController.pushScene('resetalert',this); | ||
| 32 | }.bind(this); | ||
| 33 | var params = {name: 'PowerOffAlert', height: 175,lightweight:true}; | ||
| 34 | appController.createStageWithCallback(params,f,'popupalert'); | ||
| 35 | @@ -2353,7 +2353,7 @@ | ||
| 36 | var f = function(stageController){ | ||
| 37 | 10 | stageController.pushScene('poweroffalert',this); | |
| 38 | 11 | }.bind(this); | |
| 39 | 12 | - var params = {name: 'PowerOffAlert', height: 175,lightweight:true}; | |
| 40 | + var params = {name: 'ResetOptionAlert', height: 175,lightweight:true}; | ||
| 13 | + var params = {name: 'PowerOffAlert', height: 230,lightweight:true}; | ||
| 41 | 14 | appController.createStageWithCallback(params,f,'popupalert'); | |
| 42 | 15 | } | |
| 43 | 16 | //Close the Storage Alert and create a USB dashboard. | |
| 17 | --- .orig/usr/lib/luna/system/luna-systemui/app/views/poweroffalert/poweroffalert-scene.html | ||
| 18 | +++ /usr/lib/luna/system/luna-systemui/app/views/poweroffalert/poweroffalert-scene.html | ||
| 19 | @@ -1,5 +1,6 @@ | ||
| 20 | <div class="system-notification power-off"> | ||
| 21 | <div class="palm-notification-button affirmative" x-mojo-tap-highlight="immediate" id='flightmode' x-mojo-loc=''></div> | ||
| 22 | - <div class="palm-notification-button negative" x-mojo-tap-highlight="immediate" id='poweroff' x-mojo-loc=''>Power</div> | ||
| 23 | + <div class="palm-notification-button alternate" x-mojo-tap-highlight="immediate" id='restart' x-mojo-loc=''>Restart</div> | ||
| 24 | + <div class="palm-notification-button negative" x-mojo-tap-highlight="immediate" id='shutdown' x-mojo-loc=''>Shut Down</div> | ||
| 25 | <div class="palm-notification-button" x-mojo-tap-highlight="immediate" id='cancel' x-mojo-loc=''>Cancel</div> | ||
| 26 | </div> | ||
| 27 | \ No newline at end of file | ||
| 28 | --- .orig/usr/lib/luna/system/luna-systemui/app/controllers/poweroffalert-assistant.js | ||
| 29 | +++ /usr/lib/luna/system/luna-systemui/app/controllers/poweroffalert-assistant.js | ||
| 30 | @@ -7,7 +7,8 @@ | ||
| 31 | |||
| 32 | setup: function() { | ||
| 33 | var flightMode = this.flightMode.bindAsEventListener(this); | ||
| 34 | - var powerOff = this.powerOff.bindAsEventListener(this); | ||
| 35 | + var restart = this.restart.bindAsEventListener(this); | ||
| 36 | + var shutdown = this.shutdown.bindAsEventListener(this); | ||
| 37 | var cancel = this.cancel.bindAsEventListener(this); | ||
| 38 | var launchAirplaneModeHelp = this.launchAirplaneModeHelp.bindAsEventListener(this); | ||
| 39 | this.flightMode = this.barAssistant.getAirplaneMode(); | ||
| 40 | @@ -16,7 +17,8 @@ | ||
| 41 | else | ||
| 42 | this.controller.get('flightmode').innerHTML = "<div class='info-icon' id='airplaneInfo' x-mojo-touch-feedback='immediate'></div>" + $L('Airplane Mode'); | ||
| 43 | |||
| 44 | - this.controller.get('poweroff').addEventListener(Mojo.Event.tap, powerOff); | ||
| 45 | this.controller.get('flightmode').addEventListener(Mojo.Event.tap, flightMode); | ||
| 46 | + this.controller.get('restart').addEventListener(Mojo.Event.tap, restart); | ||
| 47 | + this.controller.get('shutdown').addEventListener(Mojo.Event.tap, shutdown); | ||
| 48 | this.controller.get('cancel').addEventListener(Mojo.Event.tap, cancel); | ||
| 49 | this.controller.get('airplaneInfo').addEventListener(Mojo.Event.tap, launchAirplaneModeHelp); | ||
| 50 | @@ -46,6 +48,16 @@ | ||
| 51 | this.controller.window.close(); | ||
| 52 | }, | ||
| 53 | |||
| 54 | + restart: function() { | ||
| 55 | + this.barAssistant.machineReboot("Restart selected by User in PowerOff Dialog"); | ||
| 56 | + this.controller.window.close(); | ||
| 57 | + }, | ||
| 58 | + | ||
| 59 | + shutdown:function() { | ||
| 60 | + this.barAssistant.machineOffNow("Shutdown request by User"); | ||
| 61 | + this.controller.window.close(); | ||
| 62 | + }, | ||
| 63 | + | ||
| 64 | flightMode:function(event) { | ||
| 65 | |||
| 66 | var targetId = event.target.id; |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.phoneprefs/app/controllers/preflist-assistant.js b/usr/palm/applications/com.palm.app.phoneprefs/app/controllers/preflist-assistant.js | ||
| 2 | index 4c1b0e2..97610bf 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.phoneprefs/app/controllers/preflist-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.phoneprefs/app/controllers/preflist-assistant.js | ||
| 5 | @@ -224,7 +224,8 @@ var PreflistAssistant = Class.create({ | ||
| 1 | Name: Roam only | ||
| 2 | Version: 1.3.5 -1 | ||
| 3 | Author: mamouton orginally created by wmv5 | ||
| 4 | Description: Enable roam only in phone preference screen | ||
| 5 | |||
| 6 | --- .orig/usr/palm/applications/com.palm.app.phoneprefs/app/controllers/preflist-assistant.js | ||
| 7 | +++ /usr/palm/applications/com.palm.app.phoneprefs/app/controllers/preflist-assistant.js | ||
| 8 | @@ -233,7 +233,8 @@ | ||
| 6 | 9 | ||
| 7 | 10 | this.voiceRoamingChoices = [ | |
| 8 | 11 | {label: this.carrierOnlyLabel,value: "homeonly"}, | |
| 9 | 12 | - {label : $L("Automatic"),value: "any"} | |
| 10 | 13 | + {label : $L("Automatic"),value: "any"}, | |
| 11 | + {label : "Roam Only",value: "roamonly"} | ||
| 14 | + {label : $L("Roam Only"),value: "roamonly"} | ||
| 12 | 15 | ], | |
| 13 | 16 | ||
| 14 | 17 | this.voiceRoamingModel = { | |
| 15 | @@ -1230,6 +1231,11 @@ voiceNumberSetDone: function(payload){ | ||
| 16 | $('dataroamingrow').show(); | ||
| 17 | $('voiceRoamingRow').removeClassName('last'); | ||
| 18 | } | ||
| 19 | + else if(payload.extended.mode == 'roamonly') { | ||
| 20 | + this.voiceRoamingModel.currentVoiceRoaming = "roamonly"; | ||
| 21 | + $('dataroamingrow').show(); | ||
| 22 | + $('voiceRoamingRow').removeClassName('last'); | ||
| 23 | + } | ||
| 24 | else { | ||
| 25 | this.voiceRoamingModel.currentVoiceRoaming = "homeonly"; | ||
| 26 | $('dataroamingrow').hide(); | ||
| 18 | @@ -1465,13 +1466,13 @@ | ||
| 19 | // if update happens while we are open and band selection | ||
| 20 | // was previously allowed (assuming based on choices == 3) | ||
| 21 | // put things back | ||
| 22 | - if (this.voiceRoamingChoices.length == 3) { | ||
| 23 | - this.voiceRoamingChoices[1] = { | ||
| 24 | - label: $L("Automatic"), | ||
| 25 | - value: "any" | ||
| 26 | - }; | ||
| 27 | - this.voiceRoamingChoices.pop(); | ||
| 28 | - } | ||
| 29 | + //if (this.voiceRoamingChoices.length == 3) { | ||
| 30 | + //this.voiceRoamingChoices[1] = { | ||
| 31 | + //label: $L("Automatic"), | ||
| 32 | + //value: "any" | ||
| 33 | + //}; | ||
| 34 | + //this.voiceRoamingChoices.pop(); | ||
| 35 | + //} | ||
| 36 | |||
| 37 | if (payload.extended.mode == 'any') { | ||
| 38 | this.voiceRoamingModel.currentVoiceRoaming = "any"; | ||
| 39 | @@ -1477,8 +1478,8 @@ | ||
| 40 | this.voiceRoamingModel.currentVoiceRoaming = "any"; | ||
| 41 | $('dataroamingrow').show(); | ||
| 42 | } else { | ||
| 43 | - this.voiceRoamingModel.currentVoiceRoaming = "homeonly"; | ||
| 44 | - $('dataroamingrow').hide(); | ||
| 45 | + this.voiceRoamingModel.currentVoiceRoaming = "roamonly"; | ||
| 46 | + $('dataroamingrow').show(); | ||
| 47 | } | ||
| 48 | } | ||
| 49 | this.controller.modelChanged(this.voiceRoamingModel); |
|   | |||
| 1 | Name: Enable USB Passthrough | ||
| 2 | Version: 1.3.5-1 | ||
| 3 | Author: Ebag333 | ||
| 4 | Description: Removes the required code for USB Passthrough and adds the icon to the launcher. | ||
| 5 | |||
| 6 | --- .orig/usr/palm/applications/com.palm.app.usbpassthrough/app/controllers/usbpassthrough-assistant.js | ||
| 7 | +++ /usr/palm/applications/com.palm.app.usbpassthrough/app/controllers/usbpassthrough-assistant.js | ||
| 8 | @@ -176,8 +176,8 @@ | ||
| 9 | |||
| 10 | if (this.isActivationFile != true) { | ||
| 11 | $('masterGroup').style.display = 'none'; | ||
| 12 | - $('menuGroup').style.display = 'none'; // show menu | ||
| 13 | - $('entryGroup').style.display = 'block'; | ||
| 14 | + $('menuGroup').style.display = 'block'; // show menu | ||
| 15 | + $('entryGroup').style.display = 'none'; | ||
| 16 | } | ||
| 17 | } catch (e) { | ||
| 18 | Mojo.Log.error ("main.activate(): exception: " + e) | ||
| 19 | --- .orig/usr/palm/applications/com.palm.app.usbpassthrough/appinfo.json | ||
| 20 | +++ /usr/palm/applications/com.palm.app.usbpassthrough/appinfo.json | ||
| 21 | @@ -6,7 +6,7 @@ | ||
| 22 | "icon": "icon.png", | ||
| 23 | "version": "1.0.27", | ||
| 24 | "noWindow": false, | ||
| 25 | - "visible": false, | ||
| 26 | + "visible": true, | ||
| 27 | "vendor": "Palm, Inc." | ||
| 28 | } | ||
| 29 |
|   | |||
| 1 | 1 | Name: Really Silent Ringer Switch Mute | |
| 2 | 2 | Version: 1.3.5.1-1 | |
| 3 | 3 | Author: Jason Robitaille | |
| 4 | Description: Flicking the ringer switch to off will mute every aspect of the webOS, music and games included. (MIT license) | ||
| 4 | Description: Flicking the ringer switch to off will mute every aspect of the webOS, music and games included. Will not mute alarms nor the phone speaker (though will mute ringtone). If a wired or wireless headset/headphones are connected, mute will be cancelled. (MIT license) | ||
| 5 | 5 | ||
| 6 | 6 | --- .orig/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | |
| 7 | 7 | +++ /usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | |
| 8 | @@ -2891,6 +2891,71 @@ | ||
| 8 | @@ -2891,6 +2891,41 @@ | ||
| 9 | 9 | method: 'status', | |
| 10 | 10 | parameters: {"subscribe":true}, | |
| 11 | 11 | onSuccess: this.handleVoiceDialingAudioNotifications.bind(this)}); | |
| 12 | 12 | + | |
| 13 | 13 | + this.controller.serviceRequest('palm://com.palm.audio/media', { | |
| 14 | 14 | + method:'status', | |
| 15 | + parameters: {}, | ||
| 15 | + parameters: {subscribe:true}, | ||
| 16 | 16 | + onSuccess: function(response) { | |
| 17 | 17 | + this.setMutedSystem(!response['ringer switch']); | |
| 18 | 18 | + this.setMutedRingtone(!response['ringer switch']); | |
| 19 | + this.setMutedMedia(!response['ringer switch']); | ||
| 20 | + this.setMutedPhone(!response['ringer switch']); | ||
| 19 | + this.setMutedMedia(!response['ringer switch'] && (response.scenario=="media_back_speaker")); | ||
| 21 | 20 | + }.bind(this) | |
| 22 | + }); | ||
| 23 | + | ||
| 24 | + this.controller.serviceRequest('palm://com.palm.keys/switches', { | ||
| 25 | + method:'status', | ||
| 26 | + parameters: {subscribe:true}, | ||
| 27 | + onSuccess: this.handleRingerNotifications.bind(this) | ||
| 28 | + }); | ||
| 29 | +}, | ||
| 30 | + | ||
| 31 | +handleRingerNotifications: function(payload) { | ||
| 32 | + if(payload.key=="ringer") { | ||
| 33 | + if(payload.state=="up") { //unmute | ||
| 34 | + this.setMutedSystem(false); | ||
| 35 | + this.setMutedRingtone(false); | ||
| 36 | + this.setMutedMedia(false); | ||
| 37 | + this.setMutedPhone(false); | ||
| 38 | + } else if(payload.state=="down") { //mute | ||
| 39 | + this.setMutedSystem(true); | ||
| 40 | + this.setMutedRingtone(true); | ||
| 41 | + this.setMutedMedia(true); | ||
| 42 | + this.setMutedPhone(true); | ||
| 43 | + } | ||
| 44 | + } | ||
| 45 | +}, | ||
| 46 | + | ||
| 47 | +setMutedPhone: function(mute) { | ||
| 48 | + this.controller.serviceRequest('palm://com.palm.audio/phone', { | ||
| 49 | + method:'setMuted', | ||
| 50 | + parameters:{muted:mute} | ||
| 51 | 21 | + }); | |
| 52 | 22 | +}, | |
| 53 | 23 | + |
|   | |||
| 1 | Name: Add Date dd-MMM-yy | ||
| 2 | Version: 1.3.5.2-1 | ||
| 3 | Author: AnthonyK | ||
| 4 | Description: Adds date to the top bar next to the time in format dd-MMM-yy. (e.g 13-Jan-10) | ||
| 5 | |||
| 6 | --- .orig/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 7 | +++ /usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 8 | @@ -2552,7 +2552,8 @@ | ||
| 9 | } | ||
| 10 | } | ||
| 11 | format = format.replace(/\s?a\s?/,""); | ||
| 12 | - $('clock').innerHTML = Mojo.Format.formatDate(date, {time: format}); | ||
| 13 | + var formatDate = Mojo.Format.formatDate(date, 'dd-MMM-yy'); | ||
| 14 | + $('clock').innerHTML = formatDate+' '+Mojo.Format.formatDate(date, {time:format}); | ||
| 15 | $('today').innerHTML = Mojo.Format.formatDate(date,{date:'short'}); | ||
| 16 | }, | ||
| 17 |
|   | |||
| 1 | Name: YouTube Video Downloads | ||
| 2 | Version: 1.3.5-2 | ||
| 3 | Author: Jason Robitaille | ||
| 4 | Description: Adds a download option for videos in the YouTube app (MIT license) | ||
| 5 | |||
| 6 | --- .orig/usr/palm/applications/com.palm.app.youtube/app/controllers/video-assistant.js | ||
| 7 | +++ /usr/palm/applications/com.palm.app.youtube/app/controllers/video-assistant.js | ||
| 8 | @@ -16,6 +16,8 @@ | ||
| 9 | this.cmdMenuModel = {items: [{label: $L('More'), submenu:'more-menu'}, | ||
| 10 | {label: $L('Share'), submenu:'share-menu'}]}; | ||
| 11 | |||
| 12 | + this.moreMenuModel.items[2] = {label: $L('Download'), command:'download', disabled:false}; | ||
| 13 | + this.currProgress = -1; | ||
| 14 | this.controller.setupWidget('more-menu', undefined, this.moreMenuModel); | ||
| 15 | this.controller.setupWidget('share-menu', undefined, this.shareMenuModel); | ||
| 16 | this.controller.setupWidget(Mojo.Menu.commandMenu, {menuClass: "no-fade"}, this.cmdMenuModel); | ||
| 17 | @@ -53,6 +55,53 @@ | ||
| 18 | } | ||
| 19 | event.stop(event); | ||
| 20 | } | ||
| 21 | + else if (event.command == 'download') { | ||
| 22 | + this.moreMenuModel.items[2] = {label: $L('-Downloading-'), command:'download', disabled:true}; | ||
| 23 | + this.controller.modelChanged(this.moreMenuModel); | ||
| 24 | + var filename = this.video.title; | ||
| 25 | + filename = filename.replace(/\s/ig, " "); | ||
| 26 | + filename = filename.replace(/[^a-z0-9_-]/ig, ""); | ||
| 27 | + //if(filename.length>30) { | ||
| 28 | + // filename = filename.substring(0, 29) + "..."; | ||
| 29 | + //} | ||
| 30 | + this.dlRequest = this.controller.serviceRequest('palm://com.palm.downloadmanager/', { | ||
| 31 | + method: 'download', | ||
| 32 | + parameters: { | ||
| 33 | + target: this.video.link, | ||
| 34 | + mime: "video/mp4", | ||
| 35 | + targetFilename: filename + ".mp4", | ||
| 36 | + subscribe: true | ||
| 37 | + }, | ||
| 38 | + onSuccess: function(response) { | ||
| 39 | + if(response.completed) { | ||
| 40 | + this.dlRequest.cancel(); | ||
| 41 | + this.moreMenuModel.items[2] = {label: $L('Download'), command:'download', disabled:false}; | ||
| 42 | + this.controller.modelChanged(this.moreMenuModel); | ||
| 43 | + this.controller.showBanner("Download finished!", ""); | ||
| 44 | + | ||
| 45 | + } else { | ||
| 46 | + if(response.amountReceived && response.amountTotal) { | ||
| 47 | + var percent = (response.amountReceived / response.amountTotal)*100; | ||
| 48 | + percent = Math.round(percent); | ||
| 49 | + if(percent!=NaN) { | ||
| 50 | + if(this.currProgress != percent) { | ||
| 51 | + this.currProgress = percent; | ||
| 52 | + this.controller.showBanner("Downloading: " + percent + "%", ""); | ||
| 53 | + } | ||
| 54 | + } | ||
| 55 | + } | ||
| 56 | + } | ||
| 57 | + }.bind(this), | ||
| 58 | + onFailure: function(fail) { | ||
| 59 | + this.dlRequest.cancel(); | ||
| 60 | + Mojo.Controller.errorDialog(fail.errorText); | ||
| 61 | + this.moreMenuModel.items[2] = {label: $L('Download'), command:'download', disabled:false}; | ||
| 62 | + this.controller.modelChanged(this.moreMenuModel); | ||
| 63 | + this.currProgress = -1; | ||
| 64 | + }.bind(this) | ||
| 65 | + }); | ||
| 66 | + event.stop(event); | ||
| 67 | + } | ||
| 68 | else if (event.command == 'related') { | ||
| 69 | if (this.video.related_url && this.video.related_url != "") { | ||
| 70 | Mojo.Controller.stageController.pushScene("search", this.video.related_url, "related"); | ||
| 71 | @@ -86,7 +135,8 @@ | ||
| 72 | moreMenuModel: {label: $L('More'), | ||
| 73 | items: [ | ||
| 74 | {label: $L('More from This Author'), command:'more'}, | ||
| 75 | - {label: $L('Related Videos'), command:'related' } | ||
| 76 | + {label: $L('Related Videos'), command:'related' }, | ||
| 77 | + {label: $L('Download'), command:'download' } | ||
| 78 | ]}, | ||
| 79 | |||
| 80 | shareMenuModel: {label: $L('Share'), |

