Commit 8c38c4378e9a3a4deda5bce42ce83c92ab149c6b
- Diff rendering mode:
- inline
- side by side
|   | |||
| 13 | 13 | Mojo.Menu.helpItem | |
| 14 | 14 | ] | |
| 15 | 15 | }, | |
| 16 | @@ -115,6 +116,77 @@ | ||
| 16 | @@ -115,6 +116,84 @@ | ||
| 17 | 17 | handleCommand: function(event) { | |
| 18 | 18 | if (event.type == Mojo.Event.command) { | |
| 19 | 19 | switch (event.command) { | |
| 20 | 20 | + case 'advanced': | |
| 21 | + SystemManagerService.showQuickLaunch(false); | ||
| 21 | + this.showQLBar = true; | ||
| 22 | + if(this.kQuickLaunchHeight==0) { | ||
| 23 | + this.showQLBar = false; | ||
| 24 | + } else { | ||
| 25 | + SystemManagerService.showQuickLaunch(false); | ||
| 26 | + } | ||
| 22 | 27 | + this.controller.serviceRequest('palm://com.palm.connectionmanager', { | |
| 23 | 28 | + method: 'getnovacommode', | |
| 24 | 29 | + parameters: {}, | |
| … | … | ||
| 47 | 47 | + onChoose: function(value){ | |
| 48 | 48 | + if(value=='reset') { | |
| 49 | 49 | + this.controller.serviceRequest('palm://com.palm.connectionmanager', { | |
| 50 | + method: 'setnovacommode', | ||
| 50 | + method: 'getnovacommode', | ||
| 51 | 51 | + parameters: { | |
| 52 | 52 | + isEnabled:!this.inDevMode | |
| 53 | 53 | + }, | |
| … | … | ||
| 61 | 61 | + }.bind(this) | |
| 62 | 62 | + }); | |
| 63 | 63 | + } | |
| 64 | + SystemManagerService.showQuickLaunch(true); | ||
| 64 | + SystemManagerService.showQuickLaunch(this.showQLBar); | ||
| 65 | 65 | + }.bind(this), | |
| 66 | 66 | + title: "Restart Device?", | |
| 67 | 67 | + message: "Your device needs to restart for this action to happen.", | |
| 68 | + preventCancel: false, | ||
| 68 | 69 | + choices: [ | |
| 69 | 70 | + {label:"Continue and reset", value:'reset', type:'negative'}, | |
| 70 | 71 | + {label:"Cancel", value:'cancel'} | |
| … | … | ||
| 76 | 76 | + method: 'rescanFileindexer', | |
| 77 | 77 | + parameters: {} | |
| 78 | 78 | + }); | |
| 79 | + SystemManagerService.showQuickLaunch(true); | ||
| 79 | + SystemManagerService.showQuickLaunch(this.showQLBar); | ||
| 80 | 80 | + } else if(value=='rescanapps') { | |
| 81 | 81 | + this.controller.serviceRequest('com.palm.applicationManager', { | |
| 82 | 82 | + method: 'rescan', | |
| 83 | 83 | + parameters: {} | |
| 84 | 84 | + }); | |
| 85 | + SystemManagerService.showQuickLaunch(true); | ||
| 85 | + SystemManagerService.showQuickLaunch(this.showQLBar); | ||
| 86 | 86 | + } else { | |
| 87 | + SystemManagerService.showQuickLaunch(true); | ||
| 87 | + SystemManagerService.showQuickLaunch(this.showQLBar); | ||
| 88 | 88 | + } | |
| 89 | 89 | + }.bind(this), | |
| 90 | 90 | + title: "Advanced Options", | |
| 91 | 91 | + message: "", | |
| 92 | + preventCancel: false, | ||
| 92 | 93 | + choices: choices | |
| 93 | 94 | + }); | |
| 94 | 95 | + }.bind(this) |
browser/browser-mega-mix.patch
(217 / 0)
|   | |||
| 1 | Name: Browser Mega Mix | ||
| 2 | Version: 1.3.5-1 | ||
| 3 | Author: mamouton, Suggestions from chrislo combination of fritos1406's No Icons in browser app, full screen, and no refresh | ||
| 4 | Description: Hides All Icons In The Browser shows icon while loading. Fullscreen Browser and No Refresh | ||
| 5 | Description: Adds Enable Disable options in the app menu for the scroll feature using the gesture area in landscape | ||
| 6 | Enable Gesture Scroll: Gesture+e | ||
| 7 | Disable Gesture Scroll: Gesture+d | ||
| 8 | |||
| 9 | Adds shortcut keys to the launcher. Hold onto Gesture+key to execute | ||
| 10 | New Card: Gesture+n | ||
| 11 | Add Bookmark: Gesture+m | ||
| 12 | Add To Launcher: Gesture+l | ||
| 13 | Bookmarks: Gesture+b | ||
| 14 | History: Gesture+h | ||
| 15 | Share Page: Gesture+s | ||
| 16 | |||
| 17 | --- .orig/usr/palm/applications/com.palm.app.browser/app/controllers/widget_webview.js | ||
| 18 | +++ /usr/palm/applications/com.palm.app.browser/app/controllers/widget_webview.js | ||
| 19 | @@ -1542,7 +1542,7 @@ | ||
| 20 | } | ||
| 21 | else { | ||
| 22 | if (this._serverConnectTimer === undefined) { | ||
| 23 | - this._serverConnectTimer = this.controller.window.setTimeout(this._connectAdapterToServer, 3000); | ||
| 24 | + this._serverConnectTimer = this.controller.window.setTimeout(this._connectAdapterToServer, 60000); | ||
| 25 | } | ||
| 26 | } | ||
| 27 | }, | ||
| 28 | |||
| 29 | --- .orig/usr/palm/applications/com.palm.app.browser/app/controllers/page-assistant.js | ||
| 30 | +++ /usr/palm/applications/com.palm.app.browser/app/controllers/page-assistant.js | ||
| 31 | @@ -299,6 +299,9 @@ | ||
| 32 | |||
| 33 | this._updateOrientation(); | ||
| 34 | |||
| 35 | + // FullScreen Browser | ||
| 36 | + this.controller.enableFullScreenMode(true); | ||
| 37 | + | ||
| 38 | // Update any pending web preferences changes | ||
| 39 | AppAssistant.WebPreferences.activate(this._webView.mojo); | ||
| 40 | |||
| 41 | @@ -1862,7 +1865,7 @@ | ||
| 42 | if (!this._addressBar.hasFocus()) { | ||
| 43 | this._addressBar.hide(); | ||
| 44 | this.chrome.hide(); | ||
| 45 | - | ||
| 46 | + this.controller.enableFullScreenMode(true); | ||
| 47 | // Only focus this webview widget if this assistant has | ||
| 48 | // focus. All page-assisants can receive 'moved' events | ||
| 49 | // so we have to be careful when explicitly setting the | ||
| 50 | @@ -1885,7 +1888,7 @@ | ||
| 51 | //Mojo.Log.info("-> TOP > 0 SO SHOWING"); | ||
| 52 | this._addressBar.show(); | ||
| 53 | this.chrome.show(); | ||
| 54 | - | ||
| 55 | + this.controller.enableFullScreenMode(false); | ||
| 56 | } else { | ||
| 57 | //Mojo.Log.info("-> TOP == 0 Do Nothing."); | ||
| 58 | // Do nothing. | ||
| 59 | --- .orig/usr/palm/applications/com.palm.app.browser/app/controllers/page-controls.js | ||
| 60 | +++ /usr/palm/applications/com.palm.app.browser/app/controllers/page-controls.js | ||
| 61 | @@ -98,7 +98,8 @@ | ||
| 62 | type: 'idle', | ||
| 63 | label: MenuData.NavigationMenu.Reload.label, | ||
| 64 | icon: MenuData.NavigationMenu.Reload.icon, | ||
| 65 | - command: MenuData.NavigationMenu.Reload.command | ||
| 66 | + command: MenuData.NavigationMenu.Reload.command, | ||
| 67 | + | ||
| 68 | }; | ||
| 69 | |||
| 70 | if (this._animation) { | ||
| 71 | @@ -111,6 +112,7 @@ | ||
| 72 | // The spacer... right aligns the following button. | ||
| 73 | this._model.items.push(idleModel); | ||
| 74 | this._controller.modelChanged(this._model); | ||
| 75 | + this._controller.setMenuVisible(Mojo.Menu.commandMenu, false); | ||
| 76 | |||
| 77 | this._currentPageModel = idleModel; | ||
| 78 | }, | ||
| 79 | @@ -141,6 +143,7 @@ | ||
| 80 | this._model.items.push(progressModel); | ||
| 81 | this._controller.modelChanged(this._model); | ||
| 82 | this._animation.start(0); | ||
| 83 | + this._controller.setMenuVisible(Mojo.Menu.commandMenu, true); | ||
| 84 | |||
| 85 | this._currentPageModel = progressModel; | ||
| 86 | |||
| 87 | @@ -186,6 +189,7 @@ | ||
| 88 | this._model.items.push(searchModel); | ||
| 89 | this._controller.modelChanged(this._model); | ||
| 90 | this._animation.start(); | ||
| 91 | + this._controller.setMenuVisible(Mojo.Menu.commandMenu, true); | ||
| 92 | |||
| 93 | this._currentPageModel = searchModel; | ||
| 94 | |||
| 95 | --- .orig/usr/palm/applications/com.palm.app.browser/app/controllers/page-assistant.js | ||
| 96 | +++ /usr/palm/applications/com.palm.app.browser/app/controllers/page-assistant.js | ||
| 97 | @@ -90,7 +90,7 @@ | ||
| 98 | this._updateOrientation(); | ||
| 99 | |||
| 100 | // Allow override of 'back' gesture in landscape mode. | ||
| 101 | - this.controller.useLandscapePageUpDown(true); | ||
| 102 | + this.controller.useLandscapePageUpDown(false); | ||
| 103 | |||
| 104 | // Create the browser server status control. | ||
| 105 | this._browserServerStatus = new BrowserServerStatus(this.controller); | ||
| 106 | @@ -787,8 +787,15 @@ | ||
| 107 | this.appMenuModel = { | ||
| 108 | visible: true, | ||
| 109 | items: [ | ||
| 110 | - MenuData.ApplicationMenu.NewCard, | ||
| 111 | - MenuData.ApplicationMenu.AddBookmark, | ||
| 112 | + { | ||
| 113 | + label: $L("On/Off Gesture"), | ||
| 114 | + items: [ | ||
| 115 | + {label:$L('Enable Gesture'), shortcut:'e', command:'enable-gesture-cmd'}, | ||
| 116 | + {label:$L('Disable Gesture'), shortcut:'d', command:'disable-gesture-cmd'}, | ||
| 117 | + ] | ||
| 118 | + }, | ||
| 119 | + {label:$L('New Card'), shortcut:'n', command:'new-page-cmd'}, | ||
| 120 | + {label:$L('Add Bookmark'), shortcut:'m', command:'add-bookmark-cmd'}, | ||
| 121 | { | ||
| 122 | label: $L("Page"), | ||
| 123 | items: [ | ||
| 124 | @@ -792,8 +792,10 @@ | ||
| 125 | { | ||
| 126 | label: $L("Page"), | ||
| 127 | items: [ | ||
| 128 | - MenuData.ApplicationMenu.AddToLauncher, | ||
| 129 | - MenuData.ApplicationMenu.SharePage] | ||
| 130 | + {label:$L('Add To Launcher'), shortcut:'l', command:'add-launch-icon-cmd'}, | ||
| 131 | + {label:$L('Share Page'), shortcut:'s', command:'share-page-cmd'}, | ||
| 132 | + {label:$L('Refresh Page'), shortcut:'r', command:'refresh'}, | ||
| 133 | + ] | ||
| 134 | }, | ||
| 135 | MenuData.ApplicationMenu.ShowBookmarks, | ||
| 136 | MenuData.ApplicationMenu.ShowHistory] | ||
| 137 | @@ -795,8 +796,9 @@ | ||
| 138 | MenuData.ApplicationMenu.AddToLauncher, | ||
| 139 | MenuData.ApplicationMenu.SharePage] | ||
| 140 | }, | ||
| 141 | - MenuData.ApplicationMenu.ShowBookmarks, | ||
| 142 | - MenuData.ApplicationMenu.ShowHistory] | ||
| 143 | + {label:$L('Bookmarks'), shortcut:'b', command:'show-bookmarks-cmd'}, | ||
| 144 | + {label:$L('History'), shortcut:'h', command:'show-history-cmd'}, | ||
| 145 | + ] | ||
| 146 | }; | ||
| 147 | |||
| 148 | this.controller.setupWidget(Mojo.Menu.appMenu, undefined, this.appMenuModel); | ||
| 149 | @@ -2077,6 +2084,10 @@ | ||
| 150 | case MenuData.ApplicationMenu.NewCard.command: | ||
| 151 | this._newBrowserPage(); | ||
| 152 | break; | ||
| 153 | + | ||
| 154 | + case MenuData.ApplicationMenu.EnableGesture.command: | ||
| 155 | + this.controller.useLandscapePageUpDown(true); | ||
| 156 | + break; | ||
| 157 | |||
| 158 | case MenuData.ApplicationMenu.AddBookmark.command: | ||
| 159 | urlReference = new UrlReference(this.currentUrl, this.currentTitle, new Date()); | ||
| 160 | @@ -2078,6 +2089,10 @@ | ||
| 161 | this._newBrowserPage(); | ||
| 162 | break; | ||
| 163 | |||
| 164 | + case MenuData.ApplicationMenu.DisableGesture.command: | ||
| 165 | + this.controller.useLandscapePageUpDown(false); | ||
| 166 | + break; | ||
| 167 | + | ||
| 168 | case MenuData.ApplicationMenu.AddBookmark.command: | ||
| 169 | urlReference = new UrlReference(this.currentUrl, this.currentTitle, new Date()); | ||
| 170 | this._createDefaultBookmarkImages(urlReference); | ||
| 171 | --- .orig/usr/palm/applications/com.palm.app.browser/app/controllers/page-applicationmenu.js | ||
| 172 | +++ /usr/palm/applications/com.palm.app.browser/app/controllers/page-applicationmenu.js | ||
| 173 | @@ -11,6 +11,18 @@ | ||
| 174 | command: 'new-page-cmd' | ||
| 175 | }, | ||
| 176 | |||
| 177 | + EnableGesture: { | ||
| 178 | + label: $L('Enable Gesture'), | ||
| 179 | + command: 'enable-gesture-cmd', | ||
| 180 | + checkEnabled: true | ||
| 181 | + }, | ||
| 182 | + | ||
| 183 | + DisableGesture: { | ||
| 184 | + label: $L('Disable Gesture'), | ||
| 185 | + command: 'disable-gesture-cmd', | ||
| 186 | + checkEnabled: true | ||
| 187 | + }, | ||
| 188 | + | ||
| 189 | SharePage: { | ||
| 190 | label: $L('Share'), | ||
| 191 | command: 'share-page-cmd', | ||
| 192 | |||
| 193 | --- .orig/usr/palm/applications/com.palm.app.browser/app/controllers/startpage-assistant.js | ||
| 194 | +++ /usr/palm/applications/com.palm.app.browser/app/controllers/startpage-assistant.js | ||
| 195 | @@ -23,7 +23,7 @@ | ||
| 196 | this._updateOrientation(); | ||
| 197 | |||
| 198 | // Allow override of 'back' gesture in landscape mode. | ||
| 199 | - this.controller.useLandscapePageUpDown(true); | ||
| 200 | + this.controller.useLandscapePageUpDown(false); | ||
| 201 | |||
| 202 | // Listen for scene scope keyboard events. | ||
| 203 | this.controller.listen(this.controller.sceneElement, Mojo.Event.keydown, this._onKeyDownEventHandler); | ||
| 204 | @@ -42,6 +42,13 @@ | ||
| 205 | this.appMenuModel = { | ||
| 206 | visible: true, | ||
| 207 | items: [ | ||
| 208 | + { | ||
| 209 | + label: $L("On/Off Gesture"), | ||
| 210 | + items: [ | ||
| 211 | + {label:$L('Enable Gesture'), shortcut:'e', command:'enable-gesture-cmd'}, | ||
| 212 | + {label:$L('Disable Gesture'), shortcut:'d', command:'disable-gesture-cmd'}, | ||
| 213 | + ] | ||
| 214 | + }, | ||
| 215 | MenuData.ApplicationMenu.NewCard, | ||
| 216 | MenuData.ApplicationMenu.AddBookmark, | ||
| 217 | { |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js b/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 2 | index aa6a2b7..f08ef3f 100644 | ||
| 1 | Name: Personal Avatar Left Side | ||
| 2 | Version: 1.3.5-4 | ||
| 3 | Author: Elryon, dBsooner, Jason Robitaille | ||
| 4 | Description: This will enable a personal avatar on the left side of the conversation (MIT license) | ||
| 5 | |||
| 3 | 6 | --- a/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | |
| 4 | 7 | +++ b/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | |
| 5 | 8 | @@ -1409,7 +1409,7 @@ var ChatviewAssistant = Class.create({ | |
| … | … | ||
| 52 | 52 | } | |
| 53 | 53 | .their-chat .avatar { | |
| 54 | 54 | width: 40px; | |
| 55 | @@ -637,14 +647,23 @@ img.avatar-overlay { | ||
| 55 | @@ -637,10 +647,20 @@ img.avatar-overlay { | ||
| 56 | 56 | } | |
| 57 | 57 | ||
| 58 | 58 | /* Disabling MY avatar because we are not doing this for 1.0 2008-11-05*/ | |
| … | … | ||
| 75 | 75 | +.my-chat .avatar { | |
| 76 | 76 | width: 40px; | |
| 77 | 77 | height: 40px; | |
| 78 | } | ||
| 79 | - | ||
| 80 | .message.status-success { | ||
| 81 | color: #000000; | ||
| 82 | 78 | } |
|   | |||
| 1 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 2 | =================================================================== | ||
| 3 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 4 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 5 | @@ -1669,9 +1669,210 @@ | ||
| 6 | this.addTextToClipboard(text); | ||
| 7 | } else if (value == 'delete-cmd') { | ||
| 8 | this.handleMessageDeleteFromContextMenu(messageId, index); | ||
| 9 | + } else if (value === "twitter-retweet-cmd") { | ||
| 10 | + Mojo.Log.info("twitter-retweet-cmd"); | ||
| 11 | + this.twitterRetweet(text); | ||
| 12 | + } else if (value === "twitter-reply-cmd") { | ||
| 13 | + Mojo.Log.info("twitter-reply-cmd"); | ||
| 14 | + this.twitterReply(text); | ||
| 15 | + } else if (value === "twitter-leave-user-cmd") { | ||
| 16 | + Mojo.Log.info("twitter-leave-user-cmd"); | ||
| 17 | + this.twitterLeaveUser(text); | ||
| 18 | } | ||
| 19 | }, | ||
| 20 | |||
| 21 | + twitterSkipChain: function (body) { | ||
| 22 | + var originally_from, chainlink, result; | ||
| 23 | + var modified = false; | ||
| 24 | + Mojo.Log.info("twitterSkipChain(%j)", body); | ||
| 25 | + while (true) { | ||
| 26 | + // skip past any RT/via chains. | ||
| 27 | + if (/^\s*rt(?:\s*@\s*|\s+)([_A-Za-z0-9]+)(?:\s*:\s*|\s+)/i.test(body)) { | ||
| 28 | + // RT@user:... (space optional before or after @ and :) | ||
| 29 | + // RT user ... | ||
| 30 | + chainlink = RegExp.match; | ||
| 31 | + originally_from = RegExp.$1; | ||
| 32 | + body = RegExp.rightContext; | ||
| 33 | + Mojo.Log.info("twitterSkipChain: skipping 'RT' chain link: %j", chainlink); | ||
| 34 | + modified = true; | ||
| 35 | + } | ||
| 36 | + else if (/^\s*(?:[\(\[\{]\s*)?via(?:\s*@\s*|\s+)[_A-Za-z0-9]+(?:\s*[\)\]\}])?(?:\s*:\s*|\s+)/i.test(body)) { | ||
| 37 | + // (via@user):... | ||
| 38 | + // via user ... | ||
| 39 | + chainlink = RegExp.match; | ||
| 40 | + body = RegExp.rightContext; | ||
| 41 | + Mojo.Log.info("twitterSkipChain: skipping 'via' chain link: %j", chainlink); | ||
| 42 | + modified = true; | ||
| 43 | + } | ||
| 44 | + else { | ||
| 45 | + break; | ||
| 46 | + } | ||
| 47 | + } | ||
| 48 | + if (modified) { | ||
| 49 | + result = { | ||
| 50 | + body: body, | ||
| 51 | + originally_from: originally_from | ||
| 52 | + }; | ||
| 53 | + } | ||
| 54 | + Mojo.Log.info("twitterSkipChain: returning %j", result); | ||
| 55 | + return result; | ||
| 56 | + }, | ||
| 57 | + | ||
| 58 | + twitterParseMessage: function (text) { | ||
| 59 | + var from, originally_from, body, chain, result; | ||
| 60 | + Mojo.Log.info("twitterParseMessage(%j)", text); | ||
| 61 | + if (/^Direct from (\S+):\s*(.*)/i.test(text)) { | ||
| 62 | + from = RegExp.$1; | ||
| 63 | + body = RegExp.$2; | ||
| 64 | + result = { | ||
| 65 | + direct: true, | ||
| 66 | + from: from, | ||
| 67 | + body: body | ||
| 68 | + }; | ||
| 69 | + } | ||
| 70 | + else if (/^(\S+):\s*(.*)/.test(text)) { | ||
| 71 | + from = RegExp.$1; | ||
| 72 | + originally_from = from; | ||
| 73 | + body = RegExp.$2; | ||
| 74 | + chain = this.twitterSkipChain(body); | ||
| 75 | + if (chain) { | ||
| 76 | + if ("originally_from" in chain) { | ||
| 77 | + originally_from = chain.originally_from; | ||
| 78 | + } | ||
| 79 | + body = chain.body; | ||
| 80 | + } | ||
| 81 | + result = { | ||
| 82 | + direct: false, | ||
| 83 | + from: from, | ||
| 84 | + originally_from: originally_from, | ||
| 85 | + body: body | ||
| 86 | + }; | ||
| 87 | + } | ||
| 88 | + Mojo.Log.info("twitterParseMessage: returning %j", result); | ||
| 89 | + return result; | ||
| 90 | + }, | ||
| 91 | + | ||
| 92 | + twitterRetweet: function (text) { | ||
| 93 | + Mojo.Log.info("twitterRetweet(%j)", text); | ||
| 94 | + var tweet = this.twitterParseMessage(text); | ||
| 95 | + if (tweet) { | ||
| 96 | + Mojo.Log.info("twitterRetweet: is an actionable tweet."); | ||
| 97 | + if (tweet.direct) { | ||
| 98 | + this.twitterErrorDialog("You cannot retweet a direct message."); | ||
| 99 | + } | ||
| 100 | + else { | ||
| 101 | + if (tweet.originally_from === tweet.from) { | ||
| 102 | + this.twitterSetTextFieldValue( | ||
| 103 | + "RT @" + tweet.originally_from + ": " + tweet.body | ||
| 104 | + ); | ||
| 105 | + } | ||
| 106 | + else { | ||
| 107 | + this.twitterSetTextFieldValue( | ||
| 108 | + "RT @" + tweet.originally_from + | ||
| 109 | + " via @" + tweet.from + ": " + tweet.body | ||
| 110 | + ); | ||
| 111 | + } | ||
| 112 | + } | ||
| 113 | + } | ||
| 114 | + else { | ||
| 115 | + Mojo.Log.info("twitterRetweet: is not an actionable tweet."); | ||
| 116 | + } | ||
| 117 | + }, | ||
| 118 | + | ||
| 119 | + twitterErrorDialog: function (error) { | ||
| 120 | + this.controller.showAlertDialog({ | ||
| 121 | + onChoose: function () { }, | ||
| 122 | + title: $L("Error"), | ||
| 123 | + message: $L(error), | ||
| 124 | + preventCancel: false, | ||
| 125 | + choices: [{ label: $L('Dismiss'), value: 'Dismiss' }] | ||
| 126 | + }); | ||
| 127 | + }, | ||
| 128 | + | ||
| 129 | + twitterWarningDialog: function (warning) { | ||
| 130 | + this.controller.showAlertDialog({ | ||
| 131 | + onChoose: function () { }, | ||
| 132 | + title: $L("Warning"), | ||
| 133 | + message: $L(warning), | ||
| 134 | + preventCancel: false, | ||
| 135 | + choices: [{ label: $L('OK'), value: 'OK' }] | ||
| 136 | + }); | ||
| 137 | + }, | ||
| 138 | + | ||
| 139 | + twitterSetTextFieldValue: function (text) { | ||
| 140 | + var self = this; | ||
| 141 | + var value = this.messageTextElement.value; | ||
| 142 | + if (/\S/.test(value)) { | ||
| 143 | + this.controller.showAlertDialog({ | ||
| 144 | + onChoose: function (choice) { | ||
| 145 | + if (choice) { | ||
| 146 | + self.twitterSetTextFieldValueRaw(text); | ||
| 147 | + } | ||
| 148 | + }, | ||
| 149 | + title: "Erase existing message?", | ||
| 150 | + message: "Your current message:\n" + value, | ||
| 151 | + preventCancel: false, | ||
| 152 | + choices: [{ label: $L('Yes'), value: true }, | ||
| 153 | + { label: $L('No'), value: false }] | ||
| 154 | + }); | ||
| 155 | + } | ||
| 156 | + else { | ||
| 157 | + this.twitterSetTextFieldValueRaw(text); | ||
| 158 | + } | ||
| 159 | + }, | ||
| 160 | + | ||
| 161 | + twitterSetTextFieldValueRaw: function (text) { | ||
| 162 | + this.setTextFieldValue(text); | ||
| 163 | + this.moveCursorToEndOfTextField(); | ||
| 164 | + if (text.length > 140) { | ||
| 165 | + this.twitterWarningDialog("Your submission is longer than 140 characters. " + | ||
| 166 | + "Please shorten before sending."); | ||
| 167 | + } | ||
| 168 | + }, | ||
| 169 | + | ||
| 170 | + twitterReply: function (text) { | ||
| 171 | + Mojo.Log.info("twitterReply(%j)", text); | ||
| 172 | + var tweet = this.twitterParseMessage(text); | ||
| 173 | + if (tweet) { | ||
| 174 | + Mojo.Log.info("twitterReply: is an actionable tweet."); | ||
| 175 | + if (tweet.direct) { | ||
| 176 | + this.twitterSetTextFieldValue("D " + tweet.from + " "); | ||
| 177 | + } | ||
| 178 | + else { | ||
| 179 | + this.twitterSetTextFieldValue("@" + tweet.from + " "); | ||
| 180 | + } | ||
| 181 | + } | ||
| 182 | + else { | ||
| 183 | + Mojo.Log.info("twitterReply: is not an actionable tweet."); | ||
| 184 | + } | ||
| 185 | + }, | ||
| 186 | + | ||
| 187 | + twitterLeaveUser: function (text) { | ||
| 188 | + Mojo.Log.info("twitterLeaveUser(%j)", text); | ||
| 189 | + var tweet = this.twitterParseMessage(text); | ||
| 190 | + if (tweet) { | ||
| 191 | + Mojo.Log.info("twitterLeaveUser: is an actionable tweet."); | ||
| 192 | + if (tweet.direct) { | ||
| 193 | + this.twitterSetTextFieldValue("leave " + tweet.from); | ||
| 194 | + } | ||
| 195 | + else { | ||
| 196 | + this.twitterSetTextFieldValue("leave " + tweet.from); | ||
| 197 | + } | ||
| 198 | + } | ||
| 199 | + else { | ||
| 200 | + Mojo.Log.info("twitterLeaveUser: is not an actionable tweet."); | ||
| 201 | + } | ||
| 202 | + }, | ||
| 203 | + | ||
| 204 | + moveCursorToEndOfTextField: function () { | ||
| 205 | + var widget = this.controller.get('messageTextWidget'); | ||
| 206 | + if (widget) { | ||
| 207 | + widget = widget.mojo; | ||
| 208 | + } | ||
| 209 | + var len = widget.getValue().length; | ||
| 210 | + widget.setCursorPosition(len, len); | ||
| 211 | + }, | ||
| 212 | + | ||
| 213 | /** | ||
| 214 | * context menu handler for tap on MMS in chat list | ||
| 215 | * | ||
| 216 | @@ -1794,14 +1995,31 @@ | ||
| 217 | |||
| 218 | var composeParams; | ||
| 219 | if ((messageType == "SMS") || (messageType == "IM")) { | ||
| 220 | - this.controller.popupSubmenu({ | ||
| 221 | - onChoose: this.handleContextMenuSelectSmsIm.bind(this, event.item.textForCopying, messageId, event.index), | ||
| 222 | - placeNear: eventTarget.target, | ||
| 223 | - items: [ | ||
| 224 | + var menuItems = [ | ||
| 225 | {label: $L('Forward'), command: 'forward-cmd'}, | ||
| 226 | {label: $L('Copy Text'), command: 'copy-cmd'}, | ||
| 227 | {label: $L('Delete'), command: 'delete-cmd'} | ||
| 228 | - ] | ||
| 229 | + ]; | ||
| 230 | + var lcDisplayName = this.chatDisplayName.toLowerCase(); | ||
| 231 | + if (lcDisplayName === "twitter" || | ||
| 232 | + lcDisplayName === "40404") { | ||
| 233 | + var text = event.item.textForCopying; | ||
| 234 | + var tweet = this.twitterParseMessage(text); | ||
| 235 | + if (tweet) { | ||
| 236 | + if (!tweet.direct) { | ||
| 237 | + menuItems.push({ label: $L('Retweet'), | ||
| 238 | + command: 'twitter-retweet-cmd' }); | ||
| 239 | + } | ||
| 240 | + menuItems.push({ label: $L('Reply'), | ||
| 241 | + command: 'twitter-reply-cmd' }); | ||
| 242 | + menuItems.push({ label: $L('Leave User'), | ||
| 243 | + command: 'twitter-leave-user-cmd' }); | ||
| 244 | + } | ||
| 245 | + } | ||
| 246 | + this.controller.popupSubmenu({ | ||
| 247 | + onChoose: this.handleContextMenuSelectSmsIm.bind(this, event.item.textForCopying, messageId, event.index), | ||
| 248 | + placeNear: eventTarget.target, | ||
| 249 | + items: menuItems | ||
| 250 | }); | ||
| 251 | |||
| 252 | } else if (messageType == "MMS") { |
|   | |||
| 1 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/notification-assistant.js | ||
| 2 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/notification-assistant.js | ||
| 3 | @@ -157,6 +157,10 @@ | ||
| 4 | |||
| 5 | if (Object.keys(notificationData).length > 0 && this.Messaging.messagingPrefs.enableNotification) { | ||
| 6 | var notificationType = notificationData.notificationType; | ||
| 7 | + this.serviceRequest = new Mojo.Service.Request | ||
| 8 | + ("palm://com.palm.vibrate", { | ||
| 9 | + method: 'vibrate', parameters: { 'period': 0,'duration': 2000 } | ||
| 10 | + }); | ||
| 11 | if (notificationType == this.Messaging.notificationTypes.newMessage) { | ||
| 12 | // if the new message is an MMS, retrieve the part data | ||
| 13 | if (notificationData.messageType == "MMS") { |
|   | |||
| 1 | Name: Top Bar Ringer Switch | ||
| 2 | Version: 1.3.5.2-4 | ||
| 3 | Author: frause | ||
| 4 | Description: Adds icon to top bar when ringer switch is activated. If my Top Bar Icon And Percent Small White patch is installed, the percent value is removed when the mute icon is displayed to reduce witdh of the icon row. (MIT license) | ||
| 5 | |||
| 6 | |||
| 7 | --- /usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js.orig Fri Jan 15 23:04:41 2010 | ||
| 8 | +++ /usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js Fri Jan 15 23:30:12 2010 | ||
| 9 | @@ -2870,7 +2871,15 @@ | ||
| 10 | }, | ||
| 11 | |||
| 12 | audioInit: function() { | ||
| 13 | - | ||
| 14 | + | ||
| 15 | + this.controller.serviceRequest('palm://com.palm.audio/ringtone', { | ||
| 16 | + method:'status', | ||
| 17 | + parameters: {subscribe:true}, | ||
| 18 | + onSuccess: function(response) { | ||
| 19 | + this.displayMutedIcon(!response['ringer switch']); | ||
| 20 | + }.bind(this) | ||
| 21 | + }); | ||
| 22 | + | ||
| 23 | //Subscribe to Audio Manager for Phone status Notifications. | ||
| 24 | this.audioPhoneNotificationSession = new Mojo.Service.Request('palm://com.palm.audio/phone', { | ||
| 25 | method: 'status', | ||
| 26 | @@ -2902,6 +2911,17 @@ | ||
| 27 | return; | ||
| 28 | |||
| 29 | this.handleAudioNotifications(payload,'phone'); | ||
| 30 | +}, | ||
| 31 | + | ||
| 32 | +displayMutedIcon: function(mute) { | ||
| 33 | + if(mute) { | ||
| 34 | + $('ringer').className = 'off'; | ||
| 35 | + $('batpercent').className = 'hide'; | ||
| 36 | + } | ||
| 37 | + else { | ||
| 38 | + $('ringer').className = 'on'; | ||
| 39 | + $('batpercent').className = 'show'; | ||
| 40 | + } | ||
| 41 | }, | ||
| 42 | |||
| 43 | handleMediaAudioNotifications: function(payload) { | ||
| 44 | --- /usr/lib/luna/system/luna-systemui/app/views/bar/bar-scene.html.orig Fri Jan 15 23:17:58 2010 | ||
| 45 | +++ /usr/lib/luna/system/luna-systemui/app/views/bar/bar-scene.html Fri Jan 15 22:57:11 2010 | ||
| 46 | @@ -19,6 +19,8 @@ | ||
| 47 | <div id="devicemenu"> | ||
| 48 | <div id="power"> | ||
| 49 | </div> | ||
| 50 | + <div id="ringer"> | ||
| 51 | + </div> | ||
| 52 | <div id="rssi"> | ||
| 53 | </div> | ||
| 54 | <div id="roaming"> | ||
| 55 | --- /usr/lib/luna/system/luna-systemui/stylesheets/systemui.css.orig Fri Jan 15 23:20:50 2010 | ||
| 56 | +++ /usr/lib/luna/system/luna-systemui/stylesheets/systemui.css Fri Jan 15 23:31:21 2010 | ||
| 57 | @@ -122,6 +122,7 @@ | ||
| 58 | #tty, | ||
| 59 | #hac, | ||
| 60 | #callforward, | ||
| 61 | +#ringer, | ||
| 62 | #gps { | ||
| 63 | float: right; | ||
| 64 | height: 20px; | ||
| 65 | @@ -217,6 +218,21 @@ | ||
| 66 | background: url(../images/battery-charged.png) center center no-repeat; | ||
| 67 | } | ||
| 68 | |||
| 69 | +#ringer { | ||
| 70 | + width: 20px; | ||
| 71 | + margin-left: 2px; | ||
| 72 | +} | ||
| 73 | +#ringer.off { | ||
| 74 | + background: url(../../../../../palm/applications/com.palm.app.clock/images/prefs-mute.png) center left no-repeat; | ||
| 75 | +} | ||
| 76 | +#ringer.on { | ||
| 77 | + display: none; | ||
| 78 | +} | ||
| 79 | +#batpercent.hide { | ||
| 80 | + display: none; | ||
| 81 | +} | ||
| 82 | +#batpercent.show { | ||
| 83 | +} | ||
| 84 | |||
| 85 | #rssi { | ||
| 86 | width: 19px; |

