Commit b8d4ed1f273f293339e13e6cad8d82c6507da2eb
- Diff rendering mode:
- inline
- side by side
amazonstore/amazon_evdo.patch
(0 / 28)
|   | |||
| 1 | Index: /usr/palm/applications/com.palm.app.amazonstore/app/models/download-manager.js | ||
| 2 | =================================================================== | ||
| 3 | --- .orig/usr/palm/applications/com.palm.app.amazonstore/app/models/download-manager.js | ||
| 4 | +++ /usr/palm/applications/com.palm.app.amazonstore/app/models/download-manager.js | ||
| 5 | @@ -437,9 +437,9 @@ var DownloadManager = Class.create({ | ||
| 6 | }).bind(this)); | ||
| 7 | } | ||
| 8 | |||
| 9 | - if (userInitiated && AppAssistant.connectionResponse.wifi.state == "disconnected") { | ||
| 10 | - this.showWifiRequiredDialog(); | ||
| 11 | - } | ||
| 12 | + //if (userInitiated && AppAssistant.connectionResponse.wifi.state == "disconnected") { | ||
| 13 | + //this.showWifiRequiredDialog(); | ||
| 14 | + //} | ||
| 15 | } | ||
| 16 | else if (userInitiated) { | ||
| 17 | Mojo.Log.info("Amazon App: DOWNLOAD MANGER purchaseCB: purchase FAILED"); | ||
| 18 | @@ -462,8 +462,8 @@ var DownloadManager = Class.create({ | ||
| 19 | // download only if wifi is on | ||
| 20 | Mojo.Log.info("Amazon App: DOWNLOAD MANGER download: wifi: %s, userInitiated: %s", AppAssistant.connectionResponse.wifi.state, userInitiated); | ||
| 21 | |||
| 22 | - if (AppAssistant.connectionResponse.wifi.state == "connected") { | ||
| 23 | - if ( (this.IpInterfaceSet != "" && this.IpInterfaceSet == AppAssistant.connectionResponse.wifi.ipAddress) | ||
| 24 | + if (true || AppAssistant.connectionResponse.wifi.state == "connected") { | ||
| 25 | + if (true || (this.IpInterfaceSet != "" && this.IpInterfaceSet == AppAssistant.connectionResponse.wifi.ipAddress) | ||
| 26 | || PalmSystem.version.indexOf("desktop") >= 0) | ||
| 27 | { | ||
| 28 | Mojo.Log.info("Amazon App: DOWNLOAD MANGER download: track: %s, serviceRequestCounter: %d", track.title, this.serviceRequestCounter); |
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js b/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 2 | index 4da3e85..590fab5 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 5 | @@ -10,7 +10,7 @@ var LauncherAssistant = Class.create({ | ||
| 6 | */ | ||
| 7 | kQuickLaunchHeight: 67, | ||
| 8 | |||
| 9 | - kPageIndicatorSpacing: 6, /* spacing between each page indicator */ | ||
| 10 | + kPageIndicatorSpacing: 1, /* spacing between each page indicator */ | ||
| 11 | kPageMargin: 10, /* 10 pixel margin on each side of a page */ | ||
| 12 | kPageWidthNoMargin: NaN, | ||
| 13 | kPageWidth: NaN, | ||
| 14 | @@ -324,9 +324,9 @@ var LauncherAssistant = Class.create({ | ||
| 15 | var newAppDiv = $(newAppInfo.launchPointId); | ||
| 16 | Mojo.assert(newAppDiv !== undefined, "Application (%d) was inserted into the DOM but unable to be retrieved!", newAppInfo.launchPointId); | ||
| 17 | if (isNaN(this.kAppWidth) || isNaN(this.kAppHeight)) { | ||
| 18 | - this.kAppWidth = newAppDiv.getWidth(); | ||
| 19 | - this.kAppHeight = newAppDiv.getHeight(); | ||
| 20 | - this.kAppsPerRow = Math.round(this.kPageWidthNoMargin / this.kAppWidth); | ||
| 21 | + this.kAppWidth = 75; | ||
| 22 | + this.kAppHeight = 90; | ||
| 23 | + this.kAppsPerRow = 4; | ||
| 24 | } | ||
| 25 | |||
| 26 | Mojo.listen(newAppDiv, Mojo.Event.tap, this.onAppTapped.bindAsEventListener(this)); | ||
| 27 | @@ -439,7 +439,7 @@ var LauncherAssistant = Class.create({ | ||
| 28 | /* determines the position of an app element at appIndex within a page */ | ||
| 29 | calculateAppPosition: function(appIndex) { | ||
| 30 | return { | ||
| 31 | - left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) + this.kPageMargin), | ||
| 32 | + left: (((appIndex % this.kAppsPerRow) * this.kAppWidth)), | ||
| 33 | top: (Math.floor(appIndex/this.kAppsPerRow) * this.kAppHeight) | ||
| 34 | }; | ||
| 35 | }, | ||
| 36 | diff --git a/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css b/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 37 | index b1244af..0abf90f 100644 | ||
| 38 | --- a/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 39 | +++ b/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 40 | @@ -121,8 +121,8 @@ body.palm-default | ||
| 41 | |||
| 42 | .launcher_page .name { | ||
| 43 | position:absolute; | ||
| 44 | - top: 68px; | ||
| 45 | - width:100px; | ||
| 46 | + top: 48px; | ||
| 47 | + width:80px; | ||
| 48 | height: 34px; | ||
| 49 | max-height: 34px; | ||
| 50 | clear:both; | ||
| 51 | @@ -130,7 +130,8 @@ body.palm-default | ||
| 52 | color:white; | ||
| 53 | text-align:center; | ||
| 54 | font-weight:bold; | ||
| 55 | - font-size: 14px; | ||
| 56 | + font-size: 11px; | ||
| 57 | + left: 10px; | ||
| 58 | overflow: hidden; | ||
| 59 | text-overflow: ellipsis; | ||
| 60 | z-index:5; | ||
| 61 | @@ -164,8 +165,8 @@ body.palm-default | ||
| 62 | } | ||
| 63 | |||
| 64 | .draggable { | ||
| 65 | - width:64px; | ||
| 66 | - height:64px; | ||
| 67 | + width:48px; | ||
| 68 | + height:48px; | ||
| 69 | margin: 0 auto; | ||
| 70 | -webkit-user-drag: any; | ||
| 71 | -webkit-user-select: none; | ||
| 72 | @@ -213,8 +214,8 @@ body.palm-default | ||
| 73 | |||
| 74 | #app-icon { | ||
| 75 | float:left; | ||
| 76 | - width:64px; | ||
| 77 | - height:64px; | ||
| 78 | + width:32px; | ||
| 79 | + height:32px; | ||
| 80 | background: center center no-repeat; | ||
| 81 | } | ||
| 82 |
|   | |||
| 1 | 4X4 Launcher page for webOS 1.2.0 | ||
| 2 | diff --git a/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js b/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 3 | index 4da3e85..48fc720 100644 | ||
| 4 | --- a/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 5 | +++ b/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 6 | @@ -10,7 +10,7 @@ var LauncherAssistant = Class.create({ | ||
| 7 | */ | ||
| 8 | kQuickLaunchHeight: 67, | ||
| 9 | |||
| 10 | - kPageIndicatorSpacing: 6, /* spacing between each page indicator */ | ||
| 11 | + kPageIndicatorSpacing: 1, /* spacing between each page indicator */ | ||
| 12 | kPageMargin: 10, /* 10 pixel margin on each side of a page */ | ||
| 13 | kPageWidthNoMargin: NaN, | ||
| 14 | kPageWidth: NaN, | ||
| 15 | @@ -324,9 +324,9 @@ var LauncherAssistant = Class.create({ | ||
| 16 | var newAppDiv = $(newAppInfo.launchPointId); | ||
| 17 | Mojo.assert(newAppDiv !== undefined, "Application (%d) was inserted into the DOM but unable to be retrieved!", newAppInfo.launchPointId); | ||
| 18 | if (isNaN(this.kAppWidth) || isNaN(this.kAppHeight)) { | ||
| 19 | - this.kAppWidth = newAppDiv.getWidth(); | ||
| 20 | - this.kAppHeight = newAppDiv.getHeight(); | ||
| 21 | - this.kAppsPerRow = Math.round(this.kPageWidthNoMargin / this.kAppWidth); | ||
| 22 | + this.kAppWidth = 80; | ||
| 23 | + this.kAppHeight = 85; | ||
| 24 | + this.kAppsPerRow = 4; | ||
| 25 | } | ||
| 26 | |||
| 27 | Mojo.listen(newAppDiv, Mojo.Event.tap, this.onAppTapped.bindAsEventListener(this)); | ||
| 28 | @@ -439,7 +439,7 @@ var LauncherAssistant = Class.create({ | ||
| 29 | /* determines the position of an app element at appIndex within a page */ | ||
| 30 | calculateAppPosition: function(appIndex) { | ||
| 31 | return { | ||
| 32 | - left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) + this.kPageMargin), | ||
| 33 | + left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) - 10), | ||
| 34 | top: (Math.floor(appIndex/this.kAppsPerRow) * this.kAppHeight) | ||
| 35 | }; | ||
| 36 | }, | ||
| 37 | diff --git a/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css b/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 38 | index b1244af..61ea830 100644 | ||
| 39 | --- a/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 40 | +++ b/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 41 | @@ -121,8 +121,9 @@ body.palm-default | ||
| 42 | |||
| 43 | .launcher_page .name { | ||
| 44 | position:absolute; | ||
| 45 | - top: 68px; | ||
| 46 | - width:100px; | ||
| 47 | + top: 48px; | ||
| 48 | + left:9px; | ||
| 49 | + width:80px; | ||
| 50 | height: 34px; | ||
| 51 | max-height: 34px; | ||
| 52 | clear:both; | ||
| 53 | @@ -130,7 +131,7 @@ body.palm-default | ||
| 54 | color:white; | ||
| 55 | text-align:center; | ||
| 56 | font-weight:bold; | ||
| 57 | - font-size: 14px; | ||
| 58 | + font-size: 12px; | ||
| 59 | overflow: hidden; | ||
| 60 | text-overflow: ellipsis; | ||
| 61 | z-index:5; | ||
| 62 | @@ -164,8 +165,8 @@ body.palm-default | ||
| 63 | } | ||
| 64 | |||
| 65 | .draggable { | ||
| 66 | - width:64px; | ||
| 67 | - height:64px; | ||
| 68 | + width:48px; | ||
| 69 | + height:48px; | ||
| 70 | margin: 0 auto; | ||
| 71 | -webkit-user-drag: any; | ||
| 72 | -webkit-user-select: none; | ||
| 73 | @@ -213,8 +214,8 @@ body.palm-default | ||
| 74 | |||
| 75 | #app-icon { | ||
| 76 | float:left; | ||
| 77 | - width:64px; | ||
| 78 | - height:64px; | ||
| 79 | + width:32px; | ||
| 80 | + height:32px; | ||
| 81 | background: center center no-repeat; | ||
| 82 | } |
|   | |||
| 1 | More icons per row with reduced margins and increase space between columns | ||
| 2 | |||
| 3 | Updated for 1.2 | ||
| 4 | |||
| 5 | Variation by StoneRyno of the original patch | ||
| 6 | |||
| 7 | Index: /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 8 | =================================================================== | ||
| 9 | --- .orig/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 10 | +++ /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 11 | @@ -10,7 +10,7 @@ var LauncherAssistant = Class.create({ | ||
| 12 | */ | ||
| 13 | kQuickLaunchHeight: 67, | ||
| 14 | |||
| 15 | - kPageIndicatorSpacing: 6, /* spacing between each page indicator */ | ||
| 16 | + kPageIndicatorSpacing: 1, /* spacing between each page indicator */ | ||
| 17 | kPageMargin: 10, /* 10 pixel margin on each side of a page */ | ||
| 18 | kPageWidthNoMargin: NaN, | ||
| 19 | kPageWidth: NaN, | ||
| 20 | @@ -324,9 +324,9 @@ var LauncherAssistant = Class.create({ | ||
| 21 | var newAppDiv = $(newAppInfo.launchPointId); | ||
| 22 | Mojo.assert(newAppDiv !== undefined, "Application (%d) was inserted into the DOM but unable to be retrieved!", newAppInfo.launchPointId); | ||
| 23 | if (isNaN(this.kAppWidth) || isNaN(this.kAppHeight)) { | ||
| 24 | - this.kAppWidth = newAppDiv.getWidth(); | ||
| 25 | - this.kAppHeight = newAppDiv.getHeight(); | ||
| 26 | - this.kAppsPerRow = Math.round(this.kPageWidthNoMargin / this.kAppWidth); | ||
| 27 | + this.kAppWidth = 64; | ||
| 28 | + this.kAppHeight = 90; | ||
| 29 | + this.kAppsPerRow = 5; | ||
| 30 | } | ||
| 31 | |||
| 32 | Mojo.listen(newAppDiv, Mojo.Event.tap, this.onAppTapped.bindAsEventListener(this)); | ||
| 33 | @@ -439,7 +439,7 @@ var LauncherAssistant = Class.create({ | ||
| 34 | /* determines the position of an app element at appIndex within a page */ | ||
| 35 | calculateAppPosition: function(appIndex) { | ||
| 36 | return { | ||
| 37 | - left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) + this.kPageMargin), | ||
| 38 | + left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) - 18), | ||
| 39 | top: (Math.floor(appIndex/this.kAppsPerRow) * this.kAppHeight) | ||
| 40 | }; | ||
| 41 | }, | ||
| 42 | Index: /usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 43 | =================================================================== | ||
| 44 | --- .orig/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 45 | +++ /usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 46 | @@ -121,7 +121,7 @@ body.palm-default | ||
| 47 | |||
| 48 | .launcher_page .name { | ||
| 49 | position:absolute; | ||
| 50 | - top: 68px; | ||
| 51 | + top: 48px; | ||
| 52 | width:100px; | ||
| 53 | height: 34px; | ||
| 54 | max-height: 34px; | ||
| 55 | @@ -130,7 +130,7 @@ body.palm-default | ||
| 56 | color:white; | ||
| 57 | text-align:center; | ||
| 58 | font-weight:bold; | ||
| 59 | - font-size: 14px; | ||
| 60 | + font-size: 9px; | ||
| 61 | overflow: hidden; | ||
| 62 | text-overflow: ellipsis; | ||
| 63 | z-index:5; | ||
| 64 | @@ -164,8 +164,8 @@ body.palm-default | ||
| 65 | } | ||
| 66 | |||
| 67 | .draggable { | ||
| 68 | - width:64px; | ||
| 69 | - height:64px; | ||
| 70 | + width:48px; | ||
| 71 | + height:48px; | ||
| 72 | margin: 0 auto; | ||
| 73 | -webkit-user-drag: any; | ||
| 74 | -webkit-user-select: none; | ||
| 75 | @@ -213,8 +213,8 @@ body.palm-default | ||
| 76 | |||
| 77 | #app-icon { | ||
| 78 | float:left; | ||
| 79 | - width:64px; | ||
| 80 | - height:64px; | ||
| 81 | + width:32px; | ||
| 82 | + height:32px; | ||
| 83 | background: center center no-repeat; | ||
| 84 | } | ||
| 85 |
|   | |||
| 1 | 5X4 Launcher page for webOS 1.2.1 | ||
| 2 | Index: /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 3 | =================================================================== | ||
| 4 | --- .orig/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 5 | +++ /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 6 | @@ -10,7 +10,7 @@ var LauncherAssistant = Class.create({ | ||
| 7 | */ | ||
| 8 | kQuickLaunchHeight: 67, | ||
| 9 | |||
| 10 | - kPageIndicatorSpacing: 6, /* spacing between each page indicator */ | ||
| 11 | + kPageIndicatorSpacing: 1, /* spacing between each page indicator */ | ||
| 12 | kPageMargin: 10, /* 10 pixel margin on each side of a page */ | ||
| 13 | kPageWidthNoMargin: NaN, | ||
| 14 | kPageWidth: NaN, | ||
| 15 | @@ -324,9 +324,9 @@ var LauncherAssistant = Class.create({ | ||
| 16 | var newAppDiv = $(newAppInfo.launchPointId); | ||
| 17 | Mojo.assert(newAppDiv !== undefined, "Application (%d) was inserted into the DOM but unable to be retrieved!", newAppInfo.launchPointId); | ||
| 18 | if (isNaN(this.kAppWidth) || isNaN(this.kAppHeight)) { | ||
| 19 | - this.kAppWidth = newAppDiv.getWidth(); | ||
| 20 | - this.kAppHeight = newAppDiv.getHeight(); | ||
| 21 | - this.kAppsPerRow = Math.round(this.kPageWidthNoMargin / this.kAppWidth); | ||
| 22 | + this.kAppWidth = 64; | ||
| 23 | + this.kAppHeight = 85; | ||
| 24 | + this.kAppsPerRow = 5; | ||
| 25 | } | ||
| 26 | |||
| 27 | Mojo.listen(newAppDiv, Mojo.Event.tap, this.onAppTapped.bindAsEventListener(this)); | ||
| 28 | @@ -439,7 +439,7 @@ var LauncherAssistant = Class.create({ | ||
| 29 | /* determines the position of an app element at appIndex within a page */ | ||
| 30 | calculateAppPosition: function(appIndex) { | ||
| 31 | return { | ||
| 32 | - left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) + this.kPageMargin), | ||
| 33 | + left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) - 18), | ||
| 34 | top: (Math.floor(appIndex/this.kAppsPerRow) * this.kAppHeight) | ||
| 35 | }; | ||
| 36 | }, | ||
| 37 | Index: /usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 38 | =================================================================== | ||
| 39 | --- .orig/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 40 | +++ /usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 41 | @@ -121,8 +121,9 @@ body.palm-default | ||
| 42 | |||
| 43 | .launcher_page .name { | ||
| 44 | position:absolute; | ||
| 45 | - top: 68px; | ||
| 46 | - width:100px; | ||
| 47 | + top: 48px; | ||
| 48 | + left:20px; | ||
| 49 | + width:65px; | ||
| 50 | height: 34px; | ||
| 51 | max-height: 34px; | ||
| 52 | clear:both; | ||
| 53 | @@ -130,7 +131,7 @@ body.palm-default | ||
| 54 | color:white; | ||
| 55 | text-align:center; | ||
| 56 | font-weight:bold; | ||
| 57 | - font-size: 14px; | ||
| 58 | + font-size: 12px; | ||
| 59 | overflow: hidden; | ||
| 60 | text-overflow: ellipsis; | ||
| 61 | z-index:5; | ||
| 62 | @@ -164,8 +165,8 @@ body.palm-default | ||
| 63 | } | ||
| 64 | |||
| 65 | .draggable { | ||
| 66 | - width:64px; | ||
| 67 | - height:64px; | ||
| 68 | + width:48px; | ||
| 69 | + height:48px; | ||
| 70 | margin: 0 auto; | ||
| 71 | -webkit-user-drag: any; | ||
| 72 | -webkit-user-select: none; | ||
| 73 | @@ -213,8 +214,8 @@ body.palm-default | ||
| 74 | |||
| 75 | #app-icon { | ||
| 76 | float:left; | ||
| 77 | - width:64px; | ||
| 78 | - height:64px; | ||
| 79 | + width:32px; | ||
| 80 | + height:32px; | ||
| 81 | background: center center no-repeat; | ||
| 82 | } | ||
| 83 |
|   | |||
| 1 | Add / Delete Pages in the Launcher | ||
| 2 | Index: /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 3 | =================================================================== | ||
| 4 | --- .orig/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 5 | +++ /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 6 | @@ -23,8 +23,8 @@ var LauncherAssistant = Class.create({ | ||
| 7 | visible: true, | ||
| 8 | label: $L('Launcher'), | ||
| 9 | items: [ | ||
| 10 | - /*{ label: $L('New page'), command: 'newpage' }, | ||
| 11 | - { label: $L('Delete page'), command: 'deletepage' },*/ | ||
| 12 | + { label: $L('New page'), command: 'newpage' }, | ||
| 13 | + { label: $L('Delete page'), command: 'deletepage' }, | ||
| 14 | Mojo.Menu.editItem, | ||
| 15 | { label: $L('List Apps...'), command: 'listapps' }, | ||
| 16 | Mojo.Menu.helpItem | ||
| 17 | @@ -117,7 +117,6 @@ var LauncherAssistant = Class.create({ | ||
| 18 | case 'listapps': | ||
| 19 | ApplicationService.launch(this.deviceInfo.id, this.deviceInfo.params); | ||
| 20 | break; | ||
| 21 | - /* | ||
| 22 | case 'newpage': | ||
| 23 | if (this.pageDivs.length < 10) { | ||
| 24 | this.insertPage(this.activePageIndex, true); | ||
| 25 | @@ -131,7 +130,6 @@ var LauncherAssistant = Class.create({ | ||
| 26 | } | ||
| 27 | } | ||
| 28 | break; | ||
| 29 | - */ | ||
| 30 | } | ||
| 31 | } | ||
| 32 | else if (event.type === Mojo.Event.commandEnable) { |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.musicplayer/appinfo.json b/usr/palm/applications/com.palm.app.musicplayer/appinfo.json | ||
| 2 | index 268b023..ddbf5d3 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.musicplayer/appinfo.json | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.musicplayer/appinfo.json | ||
| 5 | @@ -5,5 +5,6 @@ | ||
| 6 | "id": "com.palm.app.musicplayer", | ||
| 7 | "keywords": ["Audio", "Tunes", "Songs"], | ||
| 8 | "miniicon": "images/notification-small-music.png", | ||
| 9 | - "icon": "icon.png" | ||
| 10 | + "icon": "icon.png", | ||
| 11 | + "visible": false | ||
| 12 | } |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.handson.app.nascar/appinfo.json b/usr/palm/applications/com.handson.app.nascar/appinfo.json | ||
| 2 | index 1a4252a..3425a00 100644 | ||
| 3 | --- a/usr/palm/applications/com.handson.app.nascar/appinfo.json | ||
| 4 | +++ b/usr/palm/applications/com.handson.app.nascar/appinfo.json | ||
| 5 | @@ -6,6 +6,7 @@ | ||
| 6 | "icon": "icon.png", | ||
| 7 | "version": "1.14", | ||
| 8 | "vendor": "Hands-On Mobile", | ||
| 9 | - "vendorurl": "http://www.handson.com" | ||
| 10 | + "vendorurl": "http://www.handson.com", | ||
| 11 | + "visible": false | ||
| 12 | } | ||
| 13 |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.handson.app.nfl/appinfo.json b/usr/palm/applications/com.handson.app.nfl/appinfo.json | ||
| 2 | index 1fca174..3d40d04 100644 | ||
| 3 | --- a/usr/palm/applications/com.handson.app.nfl/appinfo.json | ||
| 4 | +++ b/usr/palm/applications/com.handson.app.nfl/appinfo.json | ||
| 5 | @@ -6,6 +6,7 @@ | ||
| 6 | "icon": "icon.png", | ||
| 7 | "version": "1.25", | ||
| 8 | "vendor": "Hands-On Mobile", | ||
| 9 | - "vendorurl": "http://www.handson.com" | ||
| 10 | + "vendorurl": "http://www.handson.com", | ||
| 11 | + "visible": false | ||
| 12 | } | ||
| 13 |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.mobitv.app.sprinttv/appinfo.json b/usr/palm/applications/com.mobitv.app.sprinttv/appinfo.json | ||
| 2 | index 4ff8cbd..67ac3eb 100755 | ||
| 3 | --- a/usr/palm/applications/com.mobitv.app.sprinttv/appinfo.json | ||
| 4 | +++ b/usr/palm/applications/com.mobitv.app.sprinttv/appinfo.json | ||
| 5 | @@ -6,5 +6,6 @@ | ||
| 6 | "icon": "icon.png", | ||
| 7 | "version": "1.5", | ||
| 8 | "vendor": "Sprint", | ||
| 9 | - "vendorurl": "www.sprint.com" | ||
| 10 | + "vendorurl": "www.sprint.com", | ||
| 11 | + "visible": false | ||
| 12 | } | ||
| 13 | \ No newline at end of file |
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js b/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 2 | index 64244b6..e68c9d2 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 5 | @@ -157,6 +157,10 @@ var LauncherAssistant = Class.create({ | ||
| 6 | |||
| 7 | /* keep track of which page we are on */ | ||
| 8 | onPageChange: function(event) { | ||
| 9 | + var scroller = this.getPageScroller(this.activePageIndex); | ||
| 10 | + if (scroller && scroller.mojo) { | ||
| 11 | + scroller.mojo.revealTop(0); | ||
| 12 | + } | ||
| 13 | this.activePageIndex = event.value; | ||
| 14 | this.updatePageIndicators(); | ||
| 15 | }, |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.devmodeswitcher/appinfo.json b/usr/palm/applications/com.palm.app.devmodeswitcher/appinfo.json | ||
| 2 | index 7d9da85..c0f2522 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.devmodeswitcher/appinfo.json | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.devmodeswitcher/appinfo.json | ||
| 5 | @@ -5,6 +5,6 @@ | ||
| 6 | "id": "com.palm.app.devmodeswitcher", | ||
| 7 | "icon": "icon.png", | ||
| 8 | "noWindow": false, | ||
| 9 | - "visible": false | ||
| 10 | + "visible": true | ||
| 11 | } | ||
| 12 |
|   | |||
| 1 | Add / Delete Pages in the Launcher | ||
| 2 | |||
| 3 | Tested-On: 1.1 | ||
| 4 | |||
| 5 | From: Rod Whitby <rod@whitby.id.au> | ||
| 6 | |||
| 7 | http://predev.wikidot.com/add-delete-pages-in-the-launcher | ||
| 8 | |||
| 9 | Original announcement in #webos-internals IRC channel: | ||
| 10 | |||
| 11 | Jun 11 15:33:00 <jwsh> I put some instructions on how to enable adding pages to the launcher on the wiki | ||
| 12 | --- | ||
| 13 | |||
| 14 | .../app/controllers/launcher-assistant.js | 6 ++---- | ||
| 15 | 1 files changed, 2 insertions(+), 4 deletions(-) | ||
| 16 | |||
| 17 | |||
| 18 | Index: /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 19 | =================================================================== | ||
| 20 | --- .orig/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 21 | +++ /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 22 | @@ -23,8 +23,8 @@ var LauncherAssistant = Class.create({ | ||
| 23 | visible: true, | ||
| 24 | label: $L('Launcher'), | ||
| 25 | items: [ | ||
| 26 | - /*{ label: $L('New page'), command: 'newpage' }, | ||
| 27 | - { label: $L('Delete page'), command: 'deletepage' },*/ | ||
| 28 | + { label: $L('New page'), command: 'newpage' }, | ||
| 29 | + { label: $L('Delete page'), command: 'deletepage' }, | ||
| 30 | Mojo.Menu.editItem, | ||
| 31 | { label: $L('List Apps...'), command: 'listapps' }, | ||
| 32 | Mojo.Menu.helpItem | ||
| 33 | @@ -117,7 +117,6 @@ var LauncherAssistant = Class.create({ | ||
| 34 | case 'listapps': | ||
| 35 | ApplicationService.launch(this.deviceInfo.id, this.deviceInfo.params); | ||
| 36 | break; | ||
| 37 | - /* | ||
| 38 | case 'newpage': | ||
| 39 | if (this.pageDivs.length < 10) { | ||
| 40 | this.insertPage(this.activePageIndex, true); | ||
| 41 | @@ -131,7 +130,6 @@ var LauncherAssistant = Class.create({ | ||
| 42 | } | ||
| 43 | } | ||
| 44 | break; | ||
| 45 | - */ | ||
| 46 | } | ||
| 47 | } | ||
| 48 | else if (event.type === Mojo.Event.commandEnable) { |
browser/browser-multi-mod.patch
(356 / 0)
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.browser/app/controllers/chrome.js b/usr/palm/applications/com.palm.app.browser/app/controllers/chrome.js | ||
| 2 | index 4e0f974..fc1520d 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.browser/app/controllers/chrome.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.browser/app/controllers/chrome.js | ||
| 5 | @@ -102,12 +102,39 @@ Chrome.prototype._hidePortrait = function() { | ||
| 6 | } | ||
| 7 | }; | ||
| 8 | |||
| 9 | +Chrome.prototype.show = UrlBar.prototype._showNoOp; | ||
| 10 | +Chrome.prototype.hide = UrlBar.prototype._hideNoOp; | ||
| 11 | + | ||
| 12 | Chrome.prototype._showNoOp = function() { | ||
| 13 | // DO NOTHING - We don't show anything in landscape. | ||
| 14 | + var animator; | ||
| 15 | + var element = this.controller.get(this._elementName); | ||
| 16 | + | ||
| 17 | + // If we are visible then the current spacer height is | ||
| 18 | + if (element && (this._currentHeight === 0)) { | ||
| 19 | + animator = Mojo.Animation.animateStyle(element, 'height', 'linear', { | ||
| 20 | + from: 0, | ||
| 21 | + to: this._maxHeight, | ||
| 22 | + duration: 0.15, | ||
| 23 | + reverse: false | ||
| 24 | + }); | ||
| 25 | + this._currentHeight = this._maxHeight; | ||
| 26 | + } | ||
| 27 | }; | ||
| 28 | |||
| 29 | Chrome.prototype._hideNoOp = function() { | ||
| 30 | // DO NOTHING - We should not be displayed in landscape. | ||
| 31 | + var animator; | ||
| 32 | + var element = this.controller.get(this._elementName); | ||
| 33 | + if (element && (this._currentHeight > 0)) { | ||
| 34 | + animator = Mojo.Animation.animateStyle(element, 'height', 'linear', { | ||
| 35 | + from: 0, | ||
| 36 | + to: this._maxHeight, | ||
| 37 | + duration: 0.15, | ||
| 38 | + reverse: true | ||
| 39 | + }); | ||
| 40 | + this._currentHeight = 0; | ||
| 41 | + } | ||
| 42 | }; | ||
| 43 | |||
| 44 | Chrome.prototype.isVisible = function() { | ||
| 45 | diff --git a/usr/palm/applications/com.palm.app.browser/app/controllers/downloaddialog-assistant.js b/usr/palm/applications/com.palm.app.browser/app/controllers/downloaddialog-assistant.js | ||
| 46 | new file mode 100644 | ||
| 47 | index 0000000..4c07986 | ||
| 48 | --- /dev/null | ||
| 49 | +++ b/usr/palm/applications/com.palm.app.browser/app/controllers/downloaddialog-assistant.js | ||
| 50 | @@ -0,0 +1,46 @@ | ||
| 51 | +/** | ||
| 52 | + * A dialog assistant for display of yes/no box. | ||
| 53 | + */ | ||
| 54 | +DownloadDialogAssistant = Class.create({ | ||
| 55 | + | ||
| 56 | + initialize: function(params) { | ||
| 57 | + this.onDismiss = params.onDismiss; | ||
| 58 | + this.onAccept = params.onAccept; | ||
| 59 | + this.controller= params.sceneAssistant.controller; | ||
| 60 | + | ||
| 61 | + // Button handlers. | ||
| 62 | + this.onDismissHandler = this.handleDismiss.bindAsEventListener(this); | ||
| 63 | + this.onAcceptHandler = this.handleAccept.bindAsEventListener(this); | ||
| 64 | + }, | ||
| 65 | + | ||
| 66 | + setup: function(widget) { | ||
| 67 | + this.widget = widget; | ||
| 68 | + this.controller.get('acceptButton').addEventListener(Mojo.Event.tap, this.onAcceptHandler); | ||
| 69 | + this.controller.get('acceptButton').focus(); | ||
| 70 | + this.controller.get('dismissButton').addEventListener(Mojo.Event.tap, this.onDismissHandler); | ||
| 71 | + this.controller.get('dismissButton').focus(); | ||
| 72 | + }, | ||
| 73 | + | ||
| 74 | + handleDismiss: function() { | ||
| 75 | + this.onDismiss(); | ||
| 76 | + delete this.onDismiss; | ||
| 77 | + this.widget.mojo.close(); | ||
| 78 | + }, | ||
| 79 | + handleAccept: function() { | ||
| 80 | + this.onAccept(); | ||
| 81 | + delete this.onAccept; | ||
| 82 | + delete this.onDismiss; | ||
| 83 | + this.widget.mojo.close(); | ||
| 84 | + }, | ||
| 85 | + | ||
| 86 | + cleanup: function() { | ||
| 87 | + Mojo.Log.info("NetworkDialogAssistant#cleanup()"); | ||
| 88 | + Mojo.Event.stopListening(this.controller.get('dismissButton'), Mojo.Event.tap, this.onDismissHandler); | ||
| 89 | + Mojo.Event.stopListening(this.controller.get('acceptButton'), Mojo.Event.tap, this.onAcceptHandler); | ||
| 90 | + | ||
| 91 | + // Send a dismiss if NOT already sent a response | ||
| 92 | + if (this.onDismiss) { | ||
| 93 | + this.onDismiss(); | ||
| 94 | + } | ||
| 95 | + } | ||
| 96 | +}); | ||
| 97 | diff --git a/usr/palm/applications/com.palm.app.browser/app/controllers/page-assistant.js b/usr/palm/applications/com.palm.app.browser/app/controllers/page-assistant.js | ||
| 98 | index a805d2c..1074480 100644 | ||
| 99 | --- a/usr/palm/applications/com.palm.app.browser/app/controllers/page-assistant.js | ||
| 100 | +++ b/usr/palm/applications/com.palm.app.browser/app/controllers/page-assistant.js | ||
| 101 | @@ -1198,7 +1198,95 @@ PageAssistant.prototype._newBrowserPage = function(url, pageIdentifier){ | ||
| 102 | PageAssistant.prototype._streamResource = function(uri, appid, mimeType){ | ||
| 103 | |||
| 104 | Mojo.Log.info("Streaming: '%s' with '%s' (%s)", uri, appid, mimeType); | ||
| 105 | - | ||
| 106 | + if(appid === 'com.palm.app.email') | ||
| 107 | + { | ||
| 108 | + //an email was clicked, so we bypass the download dialog and open the email app. | ||
| 109 | + var params = {target: uri, mimeType: mimeType}; | ||
| 110 | + this.controller.serviceRequest('palm://com.palm.applicationManager',{ | ||
| 111 | + method: 'open', | ||
| 112 | + parameters: { | ||
| 113 | + 'id': appid, | ||
| 114 | + 'params': params | ||
| 115 | + }} | ||
| 116 | + ); | ||
| 117 | + return; | ||
| 118 | + } | ||
| 119 | + if(appid === 'com.palm.app.docviwer') | ||
| 120 | + { | ||
| 121 | + //a doc was clicked, so we bypass the download dialog and open the docviewer app. | ||
| 122 | + var params = {target: uri, mimeType: mimeType}; | ||
| 123 | + this.controller.serviceRequest('palm://com.palm.applicationManager',{ | ||
| 124 | + method: 'open', | ||
| 125 | + parameters: { | ||
| 126 | + 'id': appid, | ||
| 127 | + 'params': params | ||
| 128 | + }} | ||
| 129 | + ); | ||
| 130 | + return; | ||
| 131 | + } | ||
| 132 | + if(appid === 'com.palm.app.pdfviewer') | ||
| 133 | + { | ||
| 134 | + //a pdf was clicked, so we bypass the download dialog and open the pdfviewer app. | ||
| 135 | + var params = {target: uri, mimeType: mimeType}; | ||
| 136 | + this.controller.serviceRequest('palm://com.palm.applicationManager',{ | ||
| 137 | + method: 'open', | ||
| 138 | + parameters: { | ||
| 139 | + 'id': appid, | ||
| 140 | + 'params': params | ||
| 141 | + }} | ||
| 142 | + ); | ||
| 143 | + return; | ||
| 144 | + } | ||
| 145 | + if(appid === 'com.palm.app.maps') | ||
| 146 | + { | ||
| 147 | + //a map was clicked, so we bypass the download dialog and open the maps app. | ||
| 148 | + var params = {target: uri, mimeType: mimeType}; | ||
| 149 | + this.controller.serviceRequest('palm://com.palm.applicationManager',{ | ||
| 150 | + method: 'open', | ||
| 151 | + parameters: { | ||
| 152 | + 'id': appid, | ||
| 153 | + 'params': params | ||
| 154 | + }} | ||
| 155 | + ); | ||
| 156 | + return; | ||
| 157 | + } | ||
| 158 | + if(appid === 'com.palm.app.youtube') | ||
| 159 | + { | ||
| 160 | + //a youtube video was clicked, so we bypass the download dialog and open the youtube app. | ||
| 161 | + var params = {target: uri, mimeType: mimeType}; | ||
| 162 | + this.controller.serviceRequest('palm://com.palm.applicationManager',{ | ||
| 163 | + method: 'open', | ||
| 164 | + parameters: { | ||
| 165 | + 'id': appid, | ||
| 166 | + 'params': params | ||
| 167 | + }} | ||
| 168 | + ); | ||
| 169 | + return; | ||
| 170 | + } | ||
| 171 | + if(appid === 'com.palm.app.phone') | ||
| 172 | + { | ||
| 173 | + //a phone # was clicked, so we bypass the download dialog and open the phone app. | ||
| 174 | + var params = {target: uri, mimeType: mimeType}; | ||
| 175 | + this.controller.serviceRequest('palm://com.palm.applicationManager',{ | ||
| 176 | + method: 'open', | ||
| 177 | + parameters: { | ||
| 178 | + 'id': appid, | ||
| 179 | + 'params': params | ||
| 180 | + }} | ||
| 181 | + ); | ||
| 182 | + return; | ||
| 183 | + } | ||
| 184 | + this._downloadWidgetElement = this.controller.showDialog({ | ||
| 185 | + uri: uri, | ||
| 186 | + mimeType: mimeType, | ||
| 187 | + appid: appid, | ||
| 188 | + template: 'download/download-stream-popup', | ||
| 189 | + assistant: new DownloadDialogAssistant({ | ||
| 190 | + sceneAssistant: this, | ||
| 191 | + onDismiss: function(cParams) { // DOWNLOAD | ||
| 192 | + this._downloadResource(uri); | ||
| 193 | + }.bind(this), | ||
| 194 | + onAccept: function(cParams) { // STREAM | ||
| 195 | // Only a few select applications can be | ||
| 196 | crossAppScene = { | ||
| 197 | 'com.palm.app.videoplayer': 'nowplaying', | ||
| 198 | @@ -1206,11 +1294,9 @@ PageAssistant.prototype._streamResource = function(uri, appid, mimeType){ | ||
| 199 | }; | ||
| 200 | var params = {target: uri, mimeType: mimeType}; | ||
| 201 | if (crossAppScene[appid]) { | ||
| 202 | - | ||
| 203 | var args = { appId: appid, name: crossAppScene[appid] }; | ||
| 204 | this.controller.stageController.pushScene(args, params); | ||
| 205 | - } | ||
| 206 | - else { | ||
| 207 | + } else { | ||
| 208 | this.controller.serviceRequest('palm://com.palm.applicationManager', { | ||
| 209 | method: 'open', | ||
| 210 | parameters: { | ||
| 211 | @@ -1219,6 +1305,9 @@ PageAssistant.prototype._streamResource = function(uri, appid, mimeType){ | ||
| 212 | } | ||
| 213 | }); | ||
| 214 | } | ||
| 215 | + }.bind(this)}) | ||
| 216 | + }); | ||
| 217 | + | ||
| 218 | }; | ||
| 219 | |||
| 220 | /** | ||
| 221 | @@ -2237,6 +2326,31 @@ PageAssistant.prototype._onKeyDownEvent = function(event) { | ||
| 222 | // allowed to trigger the bar. | ||
| 223 | if (this._addressBar.isAGotoAddressBarEvent(event.originalEvent)) { | ||
| 224 | this._gotoUrlBar(); | ||
| 225 | + } else { | ||
| 226 | + var key = event.originalEvent.keyCode; | ||
| 227 | + var scroller = this.controller.getSceneScroller(); | ||
| 228 | + var pageHeight = scroller.mojo.scrollerSize().height; | ||
| 229 | + if (pageHeight > 50) pageHeight = pageHeight - 50; | ||
| 230 | + if (key == 32) { | ||
| 231 | + // alternate method for scrolling, gives visual feedback, but slower | ||
| 232 | + //var currentTop = scroller.mojo.getScrollPosition().top; | ||
| 233 | + //currentTop += scroller.mojo.scrollerSize().height - 50; | ||
| 234 | + //scroller.mojo.scrollTo(undefined, currentTop, true); | ||
| 235 | + scroller.mojo.adjustBy(0, -1*pageHeight); | ||
| 236 | + this._addressBar.hide(); | ||
| 237 | + } else if (key == 0) { | ||
| 238 | + scroller.mojo.adjustBy(0, pageHeight); | ||
| 239 | + } else if (key == 190) { | ||
| 240 | + scroller.mojo.adjustBy(0, -25); | ||
| 241 | + this._addressBar.hide(); | ||
| 242 | + } else if (key == 8) { | ||
| 243 | + scroller.mojo.revealTop(0); | ||
| 244 | + } else if (key == 13) { | ||
| 245 | + scroller.mojo.revealBottom(0); | ||
| 246 | + this._addressBar.hide(); | ||
| 247 | + } else { | ||
| 248 | + Mojo.Log.error("Ignoring keyCode", key); | ||
| 249 | + } | ||
| 250 | } | ||
| 251 | } | ||
| 252 | }; | ||
| 253 | diff --git a/usr/palm/applications/com.palm.app.browser/app/controllers/urlbar.js b/usr/palm/applications/com.palm.app.browser/app/controllers/urlbar.js | ||
| 254 | index 94abd5d..cafa2e4 100644 | ||
| 255 | --- a/usr/palm/applications/com.palm.app.browser/app/controllers/urlbar.js | ||
| 256 | +++ b/usr/palm/applications/com.palm.app.browser/app/controllers/urlbar.js | ||
| 257 | @@ -47,6 +47,10 @@ UrlBar.prototype.setOrientation = function(orientation) { | ||
| 258 | if (orientation !== 'up') { | ||
| 259 | // In landscape and down we ALWAYS hide the BAR so we make sure it's | ||
| 260 | // already hidden by calling' 'hide'. | ||
| 261 | + this.show = this._showNoOp; | ||
| 262 | + this.hide = this._hideNoOp; | ||
| 263 | + } else { | ||
| 264 | + // Default is portrait. | ||
| 265 | this._hidePortrait(); | ||
| 266 | } | ||
| 267 | |||
| 268 | @@ -73,6 +77,12 @@ UrlBar.prototype.setup = function(properties) { | ||
| 269 | this._onPropertyChange = properties.onPropertyChange || function(){}; | ||
| 270 | this._configOrientation(properties.orientation || 'up'); | ||
| 271 | |||
| 272 | + if (properties.orientation === 'up') { | ||
| 273 | + this.owidth = 271; | ||
| 274 | + } else { | ||
| 275 | + this.owidth = 430; | ||
| 276 | + } | ||
| 277 | + | ||
| 278 | this.models = { | ||
| 279 | urlInput: { | ||
| 280 | template: 'page/url-field', | ||
| 281 | @@ -90,7 +100,7 @@ UrlBar.prototype.setup = function(properties) { | ||
| 282 | url: '' | ||
| 283 | }, | ||
| 284 | |||
| 285 | - width: 271 | ||
| 286 | + width: this.owidth | ||
| 287 | }, | ||
| 288 | |||
| 289 | // Beware: These are shallow copies. | ||
| 290 | @@ -416,12 +426,25 @@ UrlBar.prototype._hidePortrait = function() { | ||
| 291 | this.controller.setMenuVisible(Mojo.Menu.viewMenu, false); | ||
| 292 | }; | ||
| 293 | |||
| 294 | +UrlBar.prototype.show = UrlBar.prototype._showNoOp; | ||
| 295 | +UrlBar.prototype.hide = UrlBar.prototype._hideNoOp; | ||
| 296 | + | ||
| 297 | UrlBar.prototype._showNoOp = function() { | ||
| 298 | // DO NOTHING - We don't show anything in landscape. | ||
| 299 | + var menuAssistant = this.controller._menu.assistant; | ||
| 300 | + var spacerHeight = menuAssistant.viewSpacerHeight; | ||
| 301 | + | ||
| 302 | + menuAssistant.viewSpacerHeight = 0; | ||
| 303 | + this.controller.setMenuVisible(Mojo.Menu.viewMenu, true); | ||
| 304 | }; | ||
| 305 | |||
| 306 | UrlBar.prototype._hideNoOp = function() { | ||
| 307 | // DO NOTHING - We should not be displayed in landscape. | ||
| 308 | + var menuAssistant = this.controller._menu.assistant; | ||
| 309 | + var spacerHeight = menuAssistant.viewSpacerHeight; | ||
| 310 | + | ||
| 311 | + menuAssistant.viewSpacerHeight = 0; | ||
| 312 | + this.controller.setMenuVisible(Mojo.Menu.viewMenu, false); | ||
| 313 | }; | ||
| 314 | |||
| 315 | UrlBar.prototype.isVisible = function() { | ||
| 316 | diff --git a/usr/palm/applications/com.palm.app.browser/app/views/download/download-stream-popup.html b/usr/palm/applications/com.palm.app.browser/app/views/download/download-stream-popup.html | ||
| 317 | new file mode 100644 | ||
| 318 | index 0000000..b705ece | ||
| 319 | --- /dev/null | ||
| 320 | +++ b/usr/palm/applications/com.palm.app.browser/app/views/download/download-stream-popup.html | ||
| 321 | @@ -0,0 +1,8 @@ | ||
| 322 | +<div id="palm-dialog-content" class="palm-dialog-content"> | ||
| 323 | + <div class="dialog-message" x-mojo-loc="">This file type has been registered as a streaming media file. Would you like to download it to /media/internal/downloads instead?</div> | ||
| 324 | +</div> | ||
| 325 | + | ||
| 326 | +<div class="palm-dialog-buttons"> | ||
| 327 | + <div class="dismiss palm-button" id="acceptButton" x-mojo-loc="" x-mojo-tap-highlight="momentary">Stream</div> | ||
| 328 | + <div class="dismiss palm-button" id="dismissButton" x-mojo-loc="" x-mojo-tap-highlight="momentary">Download</div> | ||
| 329 | +</div> | ||
| 330 | diff --git a/usr/palm/applications/com.palm.app.browser/sources.json b/usr/palm/applications/com.palm.app.browser/sources.json | ||
| 331 | index 54187ce..7d79e70 100644 | ||
| 332 | --- a/usr/palm/applications/com.palm.app.browser/sources.json | ||
| 333 | +++ b/usr/palm/applications/com.palm.app.browser/sources.json | ||
| 334 | @@ -48,6 +48,9 @@ | ||
| 335 | "source": "app\/controllers\/download-controller.js", | ||
| 336 | }, | ||
| 337 | { | ||
| 338 | + "source":"app\/controllers\/downloaddialog-assistant.js" | ||
| 339 | + }, | ||
| 340 | + { | ||
| 341 | "source": "app\/controllers\/preferences-assistant.js", | ||
| 342 | }, | ||
| 343 | { | ||
| 344 | diff --git a/usr/palm/applications/com.palm.app.browser/stylesheets/browser.css b/usr/palm/applications/com.palm.app.browser/stylesheets/browser.css | ||
| 345 | index 6215e0b..aee8654 100644 | ||
| 346 | --- a/usr/palm/applications/com.palm.app.browser/stylesheets/browser.css | ||
| 347 | +++ b/usr/palm/applications/com.palm.app.browser/stylesheets/browser.css | ||
| 348 | @@ -753,7 +753,7 @@ div#historyScroller { | ||
| 349 | } | ||
| 350 | |||
| 351 | .search-results-container .palm-list { | ||
| 352 | - width: 304px; | ||
| 353 | + width: 95%; | ||
| 354 | } | ||
| 355 | |||
| 356 | .search-results-container .search.first { |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js b/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js | ||
| 2 | index b2c8848..08d56ac 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js | ||
| 5 | @@ -1101,10 +1101,13 @@ HistoryAssistant.prototype.setup = function() { | ||
| 6 | this.controller.setupWidget('historyList', { | ||
| 7 | itemTemplate:'history/history-entry', | ||
| 8 | listTemplate:'history/history-container', | ||
| 9 | - itemsCallback:this._itemsCallback.bind(this) | ||
| 10 | + itemsCallback:this._itemsCallback.bind(this), | ||
| 11 | + swipeToDelete:true, | ||
| 12 | + autoconfirmDelete:true | ||
| 13 | }); | ||
| 14 | |||
| 15 | this._onListSelectionHandler = this._onListSelection.bindAsEventListener(this); | ||
| 16 | + this._onListDeleteHandler = this._onListDelete.bindAsEventListener(this); | ||
| 17 | this._historyListWidget = this.controller.get('historyList'); | ||
| 18 | |||
| 19 | var appMenuModel = { | ||
| 20 | @@ -1130,6 +1133,7 @@ HistoryAssistant.prototype.cleanup = function() { | ||
| 21 | HistoryAssistant.prototype.activate = function() { | ||
| 22 | |||
| 23 | this._historyListWidget.addEventListener(Mojo.Event.listTap, this._onListSelectionHandler); | ||
| 24 | + this._historyListWidget.addEventListener(Mojo.Event.listDelete, this._onListDeleteHandler); | ||
| 25 | |||
| 26 | // On an activation for a re-render of the contents. | ||
| 27 | var len = this._historyListWidget.mojo.getLength(); | ||
| 28 | @@ -1139,6 +1143,7 @@ HistoryAssistant.prototype.activate = function() { | ||
| 29 | HistoryAssistant.prototype.deactivate = function() { | ||
| 30 | |||
| 31 | Mojo.Event.stopListening(this._historyListWidget, Mojo.Event.listTap, this._onListSelectionHandler); | ||
| 32 | + Mojo.Event.stopListening(this._historyListWidget, Mojo.Event.listDelete, this._onListDeleteHandler); | ||
| 33 | }; | ||
| 34 | |||
| 35 | /** | ||
| 36 | @@ -1218,6 +1223,10 @@ HistoryAssistant.prototype._onListSelection = function(event) { | ||
| 37 | }); | ||
| 38 | }; | ||
| 39 | |||
| 40 | +HistoryAssistant.prototype._onListDelete = function(event) { | ||
| 41 | + this.historyStore.deleteHistoryEntry(event.item.url, function() {}, function() {}); | ||
| 42 | +}; | ||
| 43 | + | ||
| 44 | /** | ||
| 45 | * handle a menu command. | ||
| 46 | */ | ||
| 47 | @@ -7349,6 +7358,15 @@ function HistoryStore(options, onSuccess, onFailure) { | ||
| 48 | } | ||
| 49 | } | ||
| 50 | |||
| 51 | +HistoryStore.prototype._deleteHistoryEntry = function(url, onSuccess, onFailure, transaction) { | ||
| 52 | + this._executeSql(transaction, onSuccess, onFailure, | ||
| 53 | + "DELETE FROM 'history' WHERE url = ?", [url] ); | ||
| 54 | +}; | ||
| 55 | + | ||
| 56 | +HistoryStore.prototype.deleteHistoryEntry = function(url, onSuccess, onFailure) { | ||
| 57 | + this.database.transaction(this._deleteHistoryEntry.bind(this, url, onSuccess, onFailure)); | ||
| 58 | +}; | ||
| 59 | + | ||
| 60 | /** @private */ | ||
| 61 | HistoryStore.prototype._addHistoryEntry = function(url, title, date, onSuccess, onFailure, transaction) { | ||
| 62 |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js b/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js | ||
| 2 | index b2c8848..133bc7a 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js | ||
| 5 | @@ -1101,10 +1101,13 @@ HistoryAssistant.prototype.setup = function() { | ||
| 6 | this.controller.setupWidget('historyList', { | ||
| 7 | itemTemplate:'history/history-entry', | ||
| 8 | listTemplate:'history/history-container', | ||
| 9 | - itemsCallback:this._itemsCallback.bind(this) | ||
| 10 | + itemsCallback:this._itemsCallback.bind(this), | ||
| 11 | + swipeToDelete:true, | ||
| 12 | + autoconfirmDelete:false | ||
| 13 | }); | ||
| 14 | |||
| 15 | this._onListSelectionHandler = this._onListSelection.bindAsEventListener(this); | ||
| 16 | + this._onListDeleteHandler = this._onListDelete.bindAsEventListener(this); | ||
| 17 | this._historyListWidget = this.controller.get('historyList'); | ||
| 18 | |||
| 19 | var appMenuModel = { | ||
| 20 | @@ -1130,6 +1133,7 @@ HistoryAssistant.prototype.cleanup = function() { | ||
| 21 | HistoryAssistant.prototype.activate = function() { | ||
| 22 | |||
| 23 | this._historyListWidget.addEventListener(Mojo.Event.listTap, this._onListSelectionHandler); | ||
| 24 | + this._historyListWidget.addEventListener(Mojo.Event.listDelete, this._onListDeleteHandler); | ||
| 25 | |||
| 26 | // On an activation for a re-render of the contents. | ||
| 27 | var len = this._historyListWidget.mojo.getLength(); | ||
| 28 | @@ -1139,6 +1143,7 @@ HistoryAssistant.prototype.activate = function() { | ||
| 29 | HistoryAssistant.prototype.deactivate = function() { | ||
| 30 | |||
| 31 | Mojo.Event.stopListening(this._historyListWidget, Mojo.Event.listTap, this._onListSelectionHandler); | ||
| 32 | + Mojo.Event.stopListening(this._historyListWidget, Mojo.Event.listDelete, this._onListDeleteHandler); | ||
| 33 | }; | ||
| 34 | |||
| 35 | /** | ||
| 36 | @@ -1218,6 +1223,10 @@ HistoryAssistant.prototype._onListSelection = function(event) { | ||
| 37 | }); | ||
| 38 | }; | ||
| 39 | |||
| 40 | +HistoryAssistant.prototype._onListDelete = function(event) { | ||
| 41 | + this.historyStore.deleteHistoryEntry(event.item.url, function() {}, function() {}); | ||
| 42 | +}; | ||
| 43 | + | ||
| 44 | /** | ||
| 45 | * handle a menu command. | ||
| 46 | */ | ||
| 47 | @@ -7349,6 +7358,15 @@ function HistoryStore(options, onSuccess, onFailure) { | ||
| 48 | } | ||
| 49 | } | ||
| 50 | |||
| 51 | +HistoryStore.prototype._deleteHistoryEntry = function(url, onSuccess, onFailure, transaction) { | ||
| 52 | + this._executeSql(transaction, onSuccess, onFailure, | ||
| 53 | + "DELETE FROM 'history' WHERE url = ?", [url] ); | ||
| 54 | +}; | ||
| 55 | + | ||
| 56 | +HistoryStore.prototype.deleteHistoryEntry = function(url, onSuccess, onFailure) { | ||
| 57 | + this.database.transaction(this._deleteHistoryEntry.bind(this, url, onSuccess, onFailure)); | ||
| 58 | +}; | ||
| 59 | + | ||
| 60 | /** @private */ | ||
| 61 | HistoryStore.prototype._addHistoryEntry = function(url, title, date, onSuccess, onFailure, transaction) { | ||
| 62 |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.browser/app/controllers/chrome.js b/usr/palm/applications/com.palm.app.browser/app/controllers/chrome.js | ||
| 2 | index 4e0f974..fc1520d 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.browser/app/controllers/chrome.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.browser/app/controllers/chrome.js | ||
| 5 | @@ -102,12 +102,39 @@ Chrome.prototype._hidePortrait = function() { | ||
| 6 | } | ||
| 7 | }; | ||
| 8 | |||
| 9 | +Chrome.prototype.show = UrlBar.prototype._showNoOp; | ||
| 10 | +Chrome.prototype.hide = UrlBar.prototype._hideNoOp; | ||
| 11 | + | ||
| 12 | Chrome.prototype._showNoOp = function() { | ||
| 13 | // DO NOTHING - We don't show anything in landscape. | ||
| 14 | + var animator; | ||
| 15 | + var element = this.controller.get(this._elementName); | ||
| 16 | + | ||
| 17 | + // If we are visible then the current spacer height is | ||
| 18 | + if (element && (this._currentHeight === 0)) { | ||
| 19 | + animator = Mojo.Animation.animateStyle(element, 'height', 'linear', { | ||
| 20 | + from: 0, | ||
| 21 | + to: this._maxHeight, | ||
| 22 | + duration: 0.15, | ||
| 23 | + reverse: false | ||
| 24 | + }); | ||
| 25 | + this._currentHeight = this._maxHeight; | ||
| 26 | + } | ||
| 27 | }; | ||
| 28 | |||
| 29 | Chrome.prototype._hideNoOp = function() { | ||
| 30 | // DO NOTHING - We should not be displayed in landscape. | ||
| 31 | + var animator; | ||
| 32 | + var element = this.controller.get(this._elementName); | ||
| 33 | + if (element && (this._currentHeight > 0)) { | ||
| 34 | + animator = Mojo.Animation.animateStyle(element, 'height', 'linear', { | ||
| 35 | + from: 0, | ||
| 36 | + to: this._maxHeight, | ||
| 37 | + duration: 0.15, | ||
| 38 | + reverse: true | ||
| 39 | + }); | ||
| 40 | + this._currentHeight = 0; | ||
| 41 | + } | ||
| 42 | }; | ||
| 43 | |||
| 44 | Chrome.prototype.isVisible = function() { | ||
| 45 | diff --git a/usr/palm/applications/com.palm.app.browser/app/controllers/downloaddialog-assistant.js b/usr/palm/applications/com.palm.app.browser/app/controllers/downloaddialog-assistant.js | ||
| 46 | new file mode 100644 | ||
| 47 | index 0000000..4c07986 | ||
| 48 | --- /dev/null | ||
| 49 | +++ b/usr/palm/applications/com.palm.app.browser/app/controllers/downloaddialog-assistant.js | ||
| 50 | @@ -0,0 +1,46 @@ | ||
| 51 | +/** | ||
| 52 | + * A dialog assistant for display of yes/no box. | ||
| 53 | + */ | ||
| 54 | +DownloadDialogAssistant = Class.create({ | ||
| 55 | + | ||
| 56 | + initialize: function(params) { | ||
| 57 | + this.onDismiss = params.onDismiss; | ||
| 58 | + this.onAccept = params.onAccept; | ||
| 59 | + this.controller= params.sceneAssistant.controller; | ||
| 60 | + | ||
| 61 | + // Button handlers. | ||
| 62 | + this.onDismissHandler = this.handleDismiss.bindAsEventListener(this); | ||
| 63 | + this.onAcceptHandler = this.handleAccept.bindAsEventListener(this); | ||
| 64 | + }, | ||
| 65 | + | ||
| 66 | + setup: function(widget) { | ||
| 67 | + this.widget = widget; | ||
| 68 | + this.controller.get('acceptButton').addEventListener(Mojo.Event.tap, this.onAcceptHandler); | ||
| 69 | + this.controller.get('acceptButton').focus(); | ||
| 70 | + this.controller.get('dismissButton').addEventListener(Mojo.Event.tap, this.onDismissHandler); | ||
| 71 | + this.controller.get('dismissButton').focus(); | ||
| 72 | + }, | ||
| 73 | + | ||
| 74 | + handleDismiss: function() { | ||
| 75 | + this.onDismiss(); | ||
| 76 | + delete this.onDismiss; | ||
| 77 | + this.widget.mojo.close(); | ||
| 78 | + }, | ||
| 79 | + handleAccept: function() { | ||
| 80 | + this.onAccept(); | ||
| 81 | + delete this.onAccept; | ||
| 82 | + delete this.onDismiss; | ||
| 83 | + this.widget.mojo.close(); | ||
| 84 | + }, | ||
| 85 | + | ||
| 86 | + cleanup: function() { | ||
| 87 | + Mojo.Log.info("NetworkDialogAssistant#cleanup()"); | ||
| 88 | + Mojo.Event.stopListening(this.controller.get('dismissButton'), Mojo.Event.tap, this.onDismissHandler); | ||
| 89 | + Mojo.Event.stopListening(this.controller.get('acceptButton'), Mojo.Event.tap, this.onAcceptHandler); | ||
| 90 | + | ||
| 91 | + // Send a dismiss if NOT already sent a response | ||
| 92 | + if (this.onDismiss) { | ||
| 93 | + this.onDismiss(); | ||
| 94 | + } | ||
| 95 | + } | ||
| 96 | +}); | ||
| 97 | diff --git a/usr/palm/applications/com.palm.app.browser/app/controllers/page-assistant.js b/usr/palm/applications/com.palm.app.browser/app/controllers/page-assistant.js | ||
| 98 | index a805d2c..1074480 100644 | ||
| 99 | --- a/usr/palm/applications/com.palm.app.browser/app/controllers/page-assistant.js | ||
| 100 | +++ b/usr/palm/applications/com.palm.app.browser/app/controllers/page-assistant.js | ||
| 101 | @@ -1198,7 +1198,95 @@ PageAssistant.prototype._newBrowserPage = function(url, pageIdentifier){ | ||
| 102 | PageAssistant.prototype._streamResource = function(uri, appid, mimeType){ | ||
| 103 | |||
| 104 | Mojo.Log.info("Streaming: '%s' with '%s' (%s)", uri, appid, mimeType); | ||
| 105 | - | ||
| 106 | + if(appid === 'com.palm.app.email') | ||
| 107 | + { | ||
| 108 | + //an email was clicked, so we bypass the download dialog and open the email app. | ||
| 109 | + var params = {target: uri, mimeType: mimeType}; | ||
| 110 | + this.controller.serviceRequest('palm://com.palm.applicationManager',{ | ||
| 111 | + method: 'open', | ||
| 112 | + parameters: { | ||
| 113 | + 'id': appid, | ||
| 114 | + 'params': params | ||
| 115 | + }} | ||
| 116 | + ); | ||
| 117 | + return; | ||
| 118 | + } | ||
| 119 | + if(appid === 'com.palm.app.docviwer') | ||
| 120 | + { | ||
| 121 | + //a doc was clicked, so we bypass the download dialog and open the docviewer app. | ||
| 122 | + var params = {target: uri, mimeType: mimeType}; | ||
| 123 | + this.controller.serviceRequest('palm://com.palm.applicationManager',{ | ||
| 124 | + method: 'open', | ||
| 125 | + parameters: { | ||
| 126 | + 'id': appid, | ||
| 127 | + 'params': params | ||
| 128 | + }} | ||
| 129 | + ); | ||
| 130 | + return; | ||
| 131 | + } | ||
| 132 | + if(appid === 'com.palm.app.pdfviewer') | ||
| 133 | + { | ||
| 134 | + //a pdf was clicked, so we bypass the download dialog and open the pdfviewer app. | ||
| 135 | + var params = {target: uri, mimeType: mimeType}; | ||
| 136 | + this.controller.serviceRequest('palm://com.palm.applicationManager',{ | ||
| 137 | + method: 'open', | ||
| 138 | + parameters: { | ||
| 139 | + 'id': appid, | ||
| 140 | + 'params': params | ||
| 141 | + }} | ||
| 142 | + ); | ||
| 143 | + return; | ||
| 144 | + } | ||
| 145 | + if(appid === 'com.palm.app.maps') | ||
| 146 | + { | ||
| 147 | + //a map was clicked, so we bypass the download dialog and open the maps app. | ||
| 148 | + var params = {target: uri, mimeType: mimeType}; | ||
| 149 | + this.controller.serviceRequest('palm://com.palm.applicationManager',{ | ||
| 150 | + method: 'open', | ||
| 151 | + parameters: { | ||
| 152 | + 'id': appid, | ||
| 153 | + 'params': params | ||
| 154 | + }} | ||
| 155 | + ); | ||
| 156 | + return; | ||
| 157 | + } | ||
| 158 | + if(appid === 'com.palm.app.youtube') | ||
| 159 | + { | ||
| 160 | + //a youtube video was clicked, so we bypass the download dialog and open the youtube app. | ||
| 161 | + var params = {target: uri, mimeType: mimeType}; | ||
| 162 | + this.controller.serviceRequest('palm://com.palm.applicationManager',{ | ||
| 163 | + method: 'open', | ||
| 164 | + parameters: { | ||
| 165 | + 'id': appid, | ||
| 166 | + 'params': params | ||
| 167 | + }} | ||
| 168 | + ); | ||
| 169 | + return; | ||
| 170 | + } | ||
| 171 | + if(appid === 'com.palm.app.phone') | ||
| 172 | + { | ||
| 173 | + //a phone # was clicked, so we bypass the download dialog and open the phone app. | ||
| 174 | + var params = {target: uri, mimeType: mimeType}; | ||
| 175 | + this.controller.serviceRequest('palm://com.palm.applicationManager',{ | ||
| 176 | + method: 'open', | ||
| 177 | + parameters: { | ||
| 178 | + 'id': appid, | ||
| 179 | + 'params': params | ||
| 180 | + }} | ||
| 181 | + ); | ||
| 182 | + return; | ||
| 183 | + } | ||
| 184 | + this._downloadWidgetElement = this.controller.showDialog({ | ||
| 185 | + uri: uri, | ||
| 186 | + mimeType: mimeType, | ||
| 187 | + appid: appid, | ||
| 188 | + template: 'download/download-stream-popup', | ||
| 189 | + assistant: new DownloadDialogAssistant({ | ||
| 190 | + sceneAssistant: this, | ||
| 191 | + onDismiss: function(cParams) { // DOWNLOAD | ||
| 192 | + this._downloadResource(uri); | ||
| 193 | + }.bind(this), | ||
| 194 | + onAccept: function(cParams) { // STREAM | ||
| 195 | // Only a few select applications can be | ||
| 196 | crossAppScene = { | ||
| 197 | 'com.palm.app.videoplayer': 'nowplaying', | ||
| 198 | @@ -1206,11 +1294,9 @@ PageAssistant.prototype._streamResource = function(uri, appid, mimeType){ | ||
| 199 | }; | ||
| 200 | var params = {target: uri, mimeType: mimeType}; | ||
| 201 | if (crossAppScene[appid]) { | ||
| 202 | - | ||
| 203 | var args = { appId: appid, name: crossAppScene[appid] }; | ||
| 204 | this.controller.stageController.pushScene(args, params); | ||
| 205 | - } | ||
| 206 | - else { | ||
| 207 | + } else { | ||
| 208 | this.controller.serviceRequest('palm://com.palm.applicationManager', { | ||
| 209 | method: 'open', | ||
| 210 | parameters: { | ||
| 211 | @@ -1219,6 +1305,9 @@ PageAssistant.prototype._streamResource = function(uri, appid, mimeType){ | ||
| 212 | } | ||
| 213 | }); | ||
| 214 | } | ||
| 215 | + }.bind(this)}) | ||
| 216 | + }); | ||
| 217 | + | ||
| 218 | }; | ||
| 219 | |||
| 220 | /** | ||
| 221 | @@ -2237,6 +2326,31 @@ PageAssistant.prototype._onKeyDownEvent = function(event) { | ||
| 222 | // allowed to trigger the bar. | ||
| 223 | if (this._addressBar.isAGotoAddressBarEvent(event.originalEvent)) { | ||
| 224 | this._gotoUrlBar(); | ||
| 225 | + } else { | ||
| 226 | + var key = event.originalEvent.keyCode; | ||
| 227 | + var scroller = this.controller.getSceneScroller(); | ||
| 228 | + var pageHeight = scroller.mojo.scrollerSize().height; | ||
| 229 | + if (pageHeight > 50) pageHeight = pageHeight - 50; | ||
| 230 | + if (key == 32) { | ||
| 231 | + // alternate method for scrolling, gives visual feedback, but slower | ||
| 232 | + //var currentTop = scroller.mojo.getScrollPosition().top; | ||
| 233 | + //currentTop += scroller.mojo.scrollerSize().height - 50; | ||
| 234 | + //scroller.mojo.scrollTo(undefined, currentTop, true); | ||
| 235 | + scroller.mojo.adjustBy(0, -1*pageHeight); | ||
| 236 | + this._addressBar.hide(); | ||
| 237 | + } else if (key == 0) { | ||
| 238 | + scroller.mojo.adjustBy(0, pageHeight); | ||
| 239 | + } else if (key == 190) { | ||
| 240 | + scroller.mojo.adjustBy(0, -25); | ||
| 241 | + this._addressBar.hide(); | ||
| 242 | + } else if (key == 8) { | ||
| 243 | + scroller.mojo.revealTop(0); | ||
| 244 | + } else if (key == 13) { | ||
| 245 | + scroller.mojo.revealBottom(0); | ||
| 246 | + this._addressBar.hide(); | ||
| 247 | + } else { | ||
| 248 | + Mojo.Log.error("Ignoring keyCode", key); | ||
| 249 | + } | ||
| 250 | } | ||
| 251 | } | ||
| 252 | }; | ||
| 253 | diff --git a/usr/palm/applications/com.palm.app.browser/app/controllers/urlbar.js b/usr/palm/applications/com.palm.app.browser/app/controllers/urlbar.js | ||
| 254 | index 94abd5d..cafa2e4 100644 | ||
| 255 | --- a/usr/palm/applications/com.palm.app.browser/app/controllers/urlbar.js | ||
| 256 | +++ b/usr/palm/applications/com.palm.app.browser/app/controllers/urlbar.js | ||
| 257 | @@ -47,6 +47,10 @@ UrlBar.prototype.setOrientation = function(orientation) { | ||
| 258 | if (orientation !== 'up') { | ||
| 259 | // In landscape and down we ALWAYS hide the BAR so we make sure it's | ||
| 260 | // already hidden by calling' 'hide'. | ||
| 261 | + this.show = this._showNoOp; | ||
| 262 | + this.hide = this._hideNoOp; | ||
| 263 | + } else { | ||
| 264 | + // Default is portrait. | ||
| 265 | this._hidePortrait(); | ||
| 266 | } | ||
| 267 | |||
| 268 | @@ -73,6 +77,12 @@ UrlBar.prototype.setup = function(properties) { | ||
| 269 | this._onPropertyChange = properties.onPropertyChange || function(){}; | ||
| 270 | this._configOrientation(properties.orientation || 'up'); | ||
| 271 | |||
| 272 | + if (properties.orientation === 'up') { | ||
| 273 | + this.owidth = 271; | ||
| 274 | + } else { | ||
| 275 | + this.owidth = 430; | ||
| 276 | + } | ||
| 277 | + | ||
| 278 | this.models = { | ||
| 279 | urlInput: { | ||
| 280 | template: 'page/url-field', | ||
| 281 | @@ -90,7 +100,7 @@ UrlBar.prototype.setup = function(properties) { | ||
| 282 | url: '' | ||
| 283 | }, | ||
| 284 | |||
| 285 | - width: 271 | ||
| 286 | + width: this.owidth | ||
| 287 | }, | ||
| 288 | |||
| 289 | // Beware: These are shallow copies. | ||
| 290 | @@ -416,12 +426,25 @@ UrlBar.prototype._hidePortrait = function() { | ||
| 291 | this.controller.setMenuVisible(Mojo.Menu.viewMenu, false); | ||
| 292 | }; | ||
| 293 | |||
| 294 | +UrlBar.prototype.show = UrlBar.prototype._showNoOp; | ||
| 295 | +UrlBar.prototype.hide = UrlBar.prototype._hideNoOp; | ||
| 296 | + | ||
| 297 | UrlBar.prototype._showNoOp = function() { | ||
| 298 | // DO NOTHING - We don't show anything in landscape. | ||
| 299 | + var menuAssistant = this.controller._menu.assistant; | ||
| 300 | + var spacerHeight = menuAssistant.viewSpacerHeight; | ||
| 301 | + | ||
| 302 | + menuAssistant.viewSpacerHeight = 0; | ||
| 303 | + this.controller.setMenuVisible(Mojo.Menu.viewMenu, true); | ||
| 304 | }; | ||
| 305 | |||
| 306 | UrlBar.prototype._hideNoOp = function() { | ||
| 307 | // DO NOTHING - We should not be displayed in landscape. | ||
| 308 | + var menuAssistant = this.controller._menu.assistant; | ||
| 309 | + var spacerHeight = menuAssistant.viewSpacerHeight; | ||
| 310 | + | ||
| 311 | + menuAssistant.viewSpacerHeight = 0; | ||
| 312 | + this.controller.setMenuVisible(Mojo.Menu.viewMenu, false); | ||
| 313 | }; | ||
| 314 | |||
| 315 | UrlBar.prototype.isVisible = function() { | ||
| 316 | diff --git a/usr/palm/applications/com.palm.app.browser/app/views/download/download-stream-popup.html b/usr/palm/applications/com.palm.app.browser/app/views/download/download-stream-popup.html | ||
| 317 | new file mode 100644 | ||
| 318 | index 0000000..b705ece | ||
| 319 | --- /dev/null | ||
| 320 | +++ b/usr/palm/applications/com.palm.app.browser/app/views/download/download-stream-popup.html | ||
| 321 | @@ -0,0 +1,8 @@ | ||
| 322 | +<div id="palm-dialog-content" class="palm-dialog-content"> | ||
| 323 | + <div class="dialog-message" x-mojo-loc="">This file type has been registered as a streaming media file. Would you like to download it to /media/internal/downloads instead?</div> | ||
| 324 | +</div> | ||
| 325 | + | ||
| 326 | +<div class="palm-dialog-buttons"> | ||
| 327 | + <div class="dismiss palm-button" id="acceptButton" x-mojo-loc="" x-mojo-tap-highlight="momentary">Stream</div> | ||
| 328 | + <div class="dismiss palm-button" id="dismissButton" x-mojo-loc="" x-mojo-tap-highlight="momentary">Download</div> | ||
| 329 | +</div> | ||
| 330 | diff --git a/usr/palm/applications/com.palm.app.browser/sources.json b/usr/palm/applications/com.palm.app.browser/sources.json | ||
| 331 | index 54187ce..7d79e70 100644 | ||
| 332 | --- a/usr/palm/applications/com.palm.app.browser/sources.json | ||
| 333 | +++ b/usr/palm/applications/com.palm.app.browser/sources.json | ||
| 334 | @@ -48,6 +48,9 @@ | ||
| 335 | "source": "app\/controllers\/download-controller.js", | ||
| 336 | }, | ||
| 337 | { | ||
| 338 | + "source":"app\/controllers\/downloaddialog-assistant.js" | ||
| 339 | + }, | ||
| 340 | + { | ||
| 341 | "source": "app\/controllers\/preferences-assistant.js", | ||
| 342 | }, | ||
| 343 | { | ||
| 344 | diff --git a/usr/palm/applications/com.palm.app.browser/stylesheets/browser.css b/usr/palm/applications/com.palm.app.browser/stylesheets/browser.css | ||
| 345 | index 6215e0b..aee8654 100644 | ||
| 346 | --- a/usr/palm/applications/com.palm.app.browser/stylesheets/browser.css | ||
| 347 | +++ b/usr/palm/applications/com.palm.app.browser/stylesheets/browser.css | ||
| 348 | @@ -753,7 +753,7 @@ div#historyScroller { | ||
| 349 | } | ||
| 350 | |||
| 351 | .search-results-container .palm-list { | ||
| 352 | - width: 304px; | ||
| 353 | + width: 95%; | ||
| 354 | } | ||
| 355 | |||
| 356 | .search-results-container .search.first { |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js b/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js | ||
| 2 | index b2c8848..08d56ac 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js | ||
| 5 | @@ -1101,10 +1101,13 @@ HistoryAssistant.prototype.setup = function() { | ||
| 6 | this.controller.setupWidget('historyList', { | ||
| 7 | itemTemplate:'history/history-entry', | ||
| 8 | listTemplate:'history/history-container', | ||
| 9 | - itemsCallback:this._itemsCallback.bind(this) | ||
| 10 | + itemsCallback:this._itemsCallback.bind(this), | ||
| 11 | + swipeToDelete:true, | ||
| 12 | + autoconfirmDelete:true | ||
| 13 | }); | ||
| 14 | |||
| 15 | this._onListSelectionHandler = this._onListSelection.bindAsEventListener(this); | ||
| 16 | + this._onListDeleteHandler = this._onListDelete.bindAsEventListener(this); | ||
| 17 | this._historyListWidget = this.controller.get('historyList'); | ||
| 18 | |||
| 19 | var appMenuModel = { | ||
| 20 | @@ -1130,6 +1133,7 @@ HistoryAssistant.prototype.cleanup = function() { | ||
| 21 | HistoryAssistant.prototype.activate = function() { | ||
| 22 | |||
| 23 | this._historyListWidget.addEventListener(Mojo.Event.listTap, this._onListSelectionHandler); | ||
| 24 | + this._historyListWidget.addEventListener(Mojo.Event.listDelete, this._onListDeleteHandler); | ||
| 25 | |||
| 26 | // On an activation for a re-render of the contents. | ||
| 27 | var len = this._historyListWidget.mojo.getLength(); | ||
| 28 | @@ -1139,6 +1143,7 @@ HistoryAssistant.prototype.activate = function() { | ||
| 29 | HistoryAssistant.prototype.deactivate = function() { | ||
| 30 | |||
| 31 | Mojo.Event.stopListening(this._historyListWidget, Mojo.Event.listTap, this._onListSelectionHandler); | ||
| 32 | + Mojo.Event.stopListening(this._historyListWidget, Mojo.Event.listDelete, this._onListDeleteHandler); | ||
| 33 | }; | ||
| 34 | |||
| 35 | /** | ||
| 36 | @@ -1218,6 +1223,10 @@ HistoryAssistant.prototype._onListSelection = function(event) { | ||
| 37 | }); | ||
| 38 | }; | ||
| 39 | |||
| 40 | +HistoryAssistant.prototype._onListDelete = function(event) { | ||
| 41 | + this.historyStore.deleteHistoryEntry(event.item.url, function() {}, function() {}); | ||
| 42 | +}; | ||
| 43 | + | ||
| 44 | /** | ||
| 45 | * handle a menu command. | ||
| 46 | */ | ||
| 47 | @@ -7349,6 +7358,15 @@ function HistoryStore(options, onSuccess, onFailure) { | ||
| 48 | } | ||
| 49 | } | ||
| 50 | |||
| 51 | +HistoryStore.prototype._deleteHistoryEntry = function(url, onSuccess, onFailure, transaction) { | ||
| 52 | + this._executeSql(transaction, onSuccess, onFailure, | ||
| 53 | + "DELETE FROM 'history' WHERE url = ?", [url] ); | ||
| 54 | +}; | ||
| 55 | + | ||
| 56 | +HistoryStore.prototype.deleteHistoryEntry = function(url, onSuccess, onFailure) { | ||
| 57 | + this.database.transaction(this._deleteHistoryEntry.bind(this, url, onSuccess, onFailure)); | ||
| 58 | +}; | ||
| 59 | + | ||
| 60 | /** @private */ | ||
| 61 | HistoryStore.prototype._addHistoryEntry = function(url, title, date, onSuccess, onFailure, transaction) { | ||
| 62 |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js b/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js | ||
| 2 | index b2c8848..133bc7a 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js | ||
| 5 | @@ -1101,10 +1101,13 @@ HistoryAssistant.prototype.setup = function() { | ||
| 6 | this.controller.setupWidget('historyList', { | ||
| 7 | itemTemplate:'history/history-entry', | ||
| 8 | listTemplate:'history/history-container', | ||
| 9 | - itemsCallback:this._itemsCallback.bind(this) | ||
| 10 | + itemsCallback:this._itemsCallback.bind(this), | ||
| 11 | + swipeToDelete:true, | ||
| 12 | + autoconfirmDelete:false | ||
| 13 | }); | ||
| 14 | |||
| 15 | this._onListSelectionHandler = this._onListSelection.bindAsEventListener(this); | ||
| 16 | + this._onListDeleteHandler = this._onListDelete.bindAsEventListener(this); | ||
| 17 | this._historyListWidget = this.controller.get('historyList'); | ||
| 18 | |||
| 19 | var appMenuModel = { | ||
| 20 | @@ -1130,6 +1133,7 @@ HistoryAssistant.prototype.cleanup = function() { | ||
| 21 | HistoryAssistant.prototype.activate = function() { | ||
| 22 | |||
| 23 | this._historyListWidget.addEventListener(Mojo.Event.listTap, this._onListSelectionHandler); | ||
| 24 | + this._historyListWidget.addEventListener(Mojo.Event.listDelete, this._onListDeleteHandler); | ||
| 25 | |||
| 26 | // On an activation for a re-render of the contents. | ||
| 27 | var len = this._historyListWidget.mojo.getLength(); | ||
| 28 | @@ -1139,6 +1143,7 @@ HistoryAssistant.prototype.activate = function() { | ||
| 29 | HistoryAssistant.prototype.deactivate = function() { | ||
| 30 | |||
| 31 | Mojo.Event.stopListening(this._historyListWidget, Mojo.Event.listTap, this._onListSelectionHandler); | ||
| 32 | + Mojo.Event.stopListening(this._historyListWidget, Mojo.Event.listDelete, this._onListDeleteHandler); | ||
| 33 | }; | ||
| 34 | |||
| 35 | /** | ||
| 36 | @@ -1218,6 +1223,10 @@ HistoryAssistant.prototype._onListSelection = function(event) { | ||
| 37 | }); | ||
| 38 | }; | ||
| 39 | |||
| 40 | +HistoryAssistant.prototype._onListDelete = function(event) { | ||
| 41 | + this.historyStore.deleteHistoryEntry(event.item.url, function() {}, function() {}); | ||
| 42 | +}; | ||
| 43 | + | ||
| 44 | /** | ||
| 45 | * handle a menu command. | ||
| 46 | */ | ||
| 47 | @@ -7349,6 +7358,15 @@ function HistoryStore(options, onSuccess, onFailure) { | ||
| 48 | } | ||
| 49 | } | ||
| 50 | |||
| 51 | +HistoryStore.prototype._deleteHistoryEntry = function(url, onSuccess, onFailure, transaction) { | ||
| 52 | + this._executeSql(transaction, onSuccess, onFailure, | ||
| 53 | + "DELETE FROM 'history' WHERE url = ?", [url] ); | ||
| 54 | +}; | ||
| 55 | + | ||
| 56 | +HistoryStore.prototype.deleteHistoryEntry = function(url, onSuccess, onFailure) { | ||
| 57 | + this.database.transaction(this._deleteHistoryEntry.bind(this, url, onSuccess, onFailure)); | ||
| 58 | +}; | ||
| 59 | + | ||
| 60 | /** @private */ | ||
| 61 | HistoryStore.prototype._addHistoryEntry = function(url, title, date, onSuccess, onFailure, transaction) { | ||
| 62 |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.calendar/app/controllers/month-assistant.js b/usr/palm/applications/com.palm.app.calendar/app/controllers/month-assistant.js | ||
| 2 | index 2e1429e..14e7bda 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.calendar/app/controllers/month-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.calendar/app/controllers/month-assistant.js | ||
| 5 | @@ -27,11 +27,25 @@ var MonthAssistant = Class.create({ | ||
| 6 | this.scrollerModel = { scrollbars: false, mode: "vertical-snap", snapIndex: 0, snapElements: { y: [] } }; | ||
| 7 | }, | ||
| 8 | |||
| 9 | + fullEvts: null, | ||
| 10 | + | ||
| 11 | setupMonth: function(startDate, endDate, callbackfn) | ||
| 12 | { | ||
| 13 | + getCalendarService().getEvents(getCurrentCal(),startDate.getTime(),endDate.getTime(), | ||
| 14 | + this.getEventsCallback.bind(this), | ||
| 15 | + this.controller, | ||
| 16 | + this.getEventsFailCallback, | ||
| 17 | + {useSlices: true} | ||
| 18 | + ); | ||
| 19 | getCalendarService().getBusyDays(getCurrentCal(), startDate.getTime(), endDate.getTime(), callbackfn, this.controller); | ||
| 20 | }, | ||
| 21 | |||
| 22 | + getEventsCallback: function(resp) | ||
| 23 | + { | ||
| 24 | + Mojo.Log.info('month-assistant:getEventsCallback'); | ||
| 25 | + this.fullEvts = resp.days; | ||
| 26 | + }, | ||
| 27 | + | ||
| 28 | buildViewHeader: function() | ||
| 29 | { | ||
| 30 | //Mojo.Log.info("month-assistant: buildViewHeader"); | ||
| 31 | @@ -370,6 +384,10 @@ var MonthAssistant = Class.create({ | ||
| 32 | var daylen = days.length - 1; // We get back more days of info that we want - 1 more in fact, because its inclusive, rather than exclusive | ||
| 33 | for (var d = 0; d < daylen; d++) | ||
| 34 | { | ||
| 35 | + if (this.fullEvts[d].allDayEvents.length > 0) | ||
| 36 | + { | ||
| 37 | + dayCel.style.backgroundColor = '#99ccff'; | ||
| 38 | + } | ||
| 39 | var day = this._token2state(days.charCodeAt(d)); | ||
| 40 | |||
| 41 | var child = dayCell.firstChild; |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.calendar/app/controllers/month-assistant.js b/usr/palm/applications/com.palm.app.calendar/app/controllers/month-assistant.js | ||
| 2 | index 2e1429e..14e7bda 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.calendar/app/controllers/month-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.calendar/app/controllers/month-assistant.js | ||
| 5 | @@ -27,11 +27,25 @@ var MonthAssistant = Class.create({ | ||
| 6 | this.scrollerModel = { scrollbars: false, mode: "vertical-snap", snapIndex: 0, snapElements: { y: [] } }; | ||
| 7 | }, | ||
| 8 | |||
| 9 | + fullEvts: null, | ||
| 10 | + | ||
| 11 | setupMonth: function(startDate, endDate, callbackfn) | ||
| 12 | { | ||
| 13 | + getCalendarService().getEvents(getCurrentCal(),startDate.getTime(),endDate.getTime(), | ||
| 14 | + this.getEventsCallback.bind(this), | ||
| 15 | + this.controller, | ||
| 16 | + this.getEventsFailCallback, | ||
| 17 | + {useSlices: true} | ||
| 18 | + ); | ||
| 19 | getCalendarService().getBusyDays(getCurrentCal(), startDate.getTime(), endDate.getTime(), callbackfn, this.controller); | ||
| 20 | }, | ||
| 21 | |||
| 22 | + getEventsCallback: function(resp) | ||
| 23 | + { | ||
| 24 | + Mojo.Log.info('month-assistant:getEventsCallback'); | ||
| 25 | + this.fullEvts = resp.days; | ||
| 26 | + }, | ||
| 27 | + | ||
| 28 | buildViewHeader: function() | ||
| 29 | { | ||
| 30 | //Mojo.Log.info("month-assistant: buildViewHeader"); | ||
| 31 | @@ -370,6 +384,10 @@ var MonthAssistant = Class.create({ | ||
| 32 | var daylen = days.length - 1; // We get back more days of info that we want - 1 more in fact, because its inclusive, rather than exclusive | ||
| 33 | for (var d = 0; d < daylen; d++) | ||
| 34 | { | ||
| 35 | + if (this.fullEvts[d].allDayEvents.length > 0) | ||
| 36 | + { | ||
| 37 | + dayCel.style.backgroundColor = '#99ccff'; | ||
| 38 | + } | ||
| 39 | var day = this._token2state(days.charCodeAt(d)); | ||
| 40 | |||
| 41 | var child = dayCell.firstChild; |
|   | |||
| 1 | This mod alters the Calendar app to default to the month view. | ||
| 2 | Though it alters a function called launchDayView, re-pointing it at the | ||
| 3 | month scene, there are no known side effects under webOS 1.1. | ||
| 4 | |||
| 5 | Mod by matthewn, from http://forums.precentral.net/web-os-development/192542-howto-change-default-view-calendar-hack-rooting-required.html | ||
| 6 | Index: /usr/palm/applications/com.palm.app.calendar/app/controllers/app-assistant.js | ||
| 7 | =================================================================== | ||
| 8 | --- .orig/usr/palm/applications/com.palm.app.calendar/app/controllers/app-assistant.js | ||
| 9 | +++ /usr/palm/applications/com.palm.app.calendar/app/controllers/app-assistant.js | ||
| 10 | @@ -126,12 +126,12 @@ var AppAssistant = Class.create({ | ||
| 11 | // If the top scene is not the Day View, try to pop to it. | ||
| 12 | // If the top scene is already the Day View, there's no point | ||
| 13 | // in popping the scene | ||
| 14 | - if (stageController.topScene().sceneName != "day") { | ||
| 15 | - stageController.popScenesTo("day"); | ||
| 16 | + if (stageController.topScene().sceneName != "month") { | ||
| 17 | + stageController.popScenesTo("month"); | ||
| 18 | } | ||
| 19 | |||
| 20 | // Check to see if the day scene is already up | ||
| 21 | - if (stageController.topScene().sceneName == "day") { | ||
| 22 | + if (stageController.topScene().sceneName == "month") { | ||
| 23 | sceneExists = true; | ||
| 24 | } | ||
| 25 | |||
| 26 | @@ -152,7 +152,7 @@ var AppAssistant = Class.create({ | ||
| 27 | |||
| 28 | // Only push the Day View if it's not already visible | ||
| 29 | if (!sceneExists) { | ||
| 30 | - stageController.pushScene({name: "day", transition: Mojo.Transition.crossFade, disableSceneScroller: true}); | ||
| 31 | + stageController.pushScene({name: "month", transition: Mojo.Transition.crossFade, disableSceneScroller: true}); | ||
| 32 | } | ||
| 33 | }, | ||
| 34 | |||
| 35 | @@ -163,14 +163,14 @@ var AppAssistant = Class.create({ | ||
| 36 | } | ||
| 37 | if (launchParams && launchParams.reminders) { | ||
| 38 | if (!appExists) { | ||
| 39 | - stageController.pushScene({name: "day", disableSceneScroller: true}); | ||
| 40 | + stageController.pushScene({name: "month", disableSceneScroller: true}); | ||
| 41 | } | ||
| 42 | stageController.pushScene("reminder-list"); | ||
| 43 | return; | ||
| 44 | } | ||
| 45 | if (launchParams && launchParams.details) { | ||
| 46 | if (!appExists) { | ||
| 47 | - stageController.pushScene({name: "day", disableSceneScroller: true}); | ||
| 48 | + stageController.pushScene({name: "month", disableSceneScroller: true}); | ||
| 49 | } | ||
| 50 | // TODO need to pass event occurence date instead of today's date | ||
| 51 | stageController.pushScene('edit', launchParams.details, new Date(), false); | ||
| 52 | @@ -178,7 +178,7 @@ var AppAssistant = Class.create({ | ||
| 53 | } | ||
| 54 | if (launchParams && launchParams.newEvent) { | ||
| 55 | if (!appExists) { | ||
| 56 | - stageController.pushScene({name: "day", disableSceneScroller: true}); | ||
| 57 | + stageController.pushScene({name: "month", disableSceneScroller: true}); | ||
| 58 | } | ||
| 59 | |||
| 60 | this.createNewEventAndShowDetails(stageController, launchParams.newEvent); | ||
| 61 | @@ -357,7 +357,7 @@ var AppAssistant = Class.create({ | ||
| 62 | this.firstUseManager = new FirstUseManager(stageController); | ||
| 63 | } else { | ||
| 64 | // Otherwise show the Day View | ||
| 65 | - stageController.pushScene({name: "day", transition: Mojo.Transition.crossFade, disableSceneScroller: true}); | ||
| 66 | + stageController.pushScene({name: "month", transition: Mojo.Transition.crossFade, disableSceneScroller: true}); | ||
| 67 | } | ||
| 68 | }, | ||
| 69 |
|   | |||
| 1 | This mod alters the Calendar app to default to the week view. | ||
| 2 | Though it alters a function called launchDayView, re-pointing it at the | ||
| 3 | week scene, there are no known side effects under webOS 1.1. | ||
| 4 | |||
| 5 | Mod by matthewn, from http://forums.precentral.net/web-os-development/192542-howto-change-default-view-calendar-hack-rooting-required.html | ||
| 6 | Index: /usr/palm/applications/com.palm.app.calendar/app/controllers/app-assistant.js | ||
| 7 | =================================================================== | ||
| 8 | --- .orig/usr/palm/applications/com.palm.app.calendar/app/controllers/app-assistant.js | ||
| 9 | +++ /usr/palm/applications/com.palm.app.calendar/app/controllers/app-assistant.js | ||
| 10 | @@ -126,12 +126,12 @@ var AppAssistant = Class.create({ | ||
| 11 | // If the top scene is not the Day View, try to pop to it. | ||
| 12 | // If the top scene is already the Day View, there's no point | ||
| 13 | // in popping the scene | ||
| 14 | - if (stageController.topScene().sceneName != "day") { | ||
| 15 | - stageController.popScenesTo("day"); | ||
| 16 | + if (stageController.topScene().sceneName != "week") { | ||
| 17 | + stageController.popScenesTo("week"); | ||
| 18 | } | ||
| 19 | |||
| 20 | // Check to see if the day scene is already up | ||
| 21 | - if (stageController.topScene().sceneName == "day") { | ||
| 22 | + if (stageController.topScene().sceneName == "week") { | ||
| 23 | sceneExists = true; | ||
| 24 | } | ||
| 25 | |||
| 26 | @@ -152,7 +152,7 @@ var AppAssistant = Class.create({ | ||
| 27 | |||
| 28 | // Only push the Day View if it's not already visible | ||
| 29 | if (!sceneExists) { | ||
| 30 | - stageController.pushScene({name: "day", transition: Mojo.Transition.crossFade, disableSceneScroller: true}); | ||
| 31 | + stageController.pushScene({name: "week", transition: Mojo.Transition.crossFade, disableSceneScroller: true}); | ||
| 32 | } | ||
| 33 | }, | ||
| 34 | |||
| 35 | @@ -163,14 +163,14 @@ var AppAssistant = Class.create({ | ||
| 36 | } | ||
| 37 | if (launchParams && launchParams.reminders) { | ||
| 38 | if (!appExists) { | ||
| 39 | - stageController.pushScene({name: "day", disableSceneScroller: true}); | ||
| 40 | + stageController.pushScene({name: "week", disableSceneScroller: true}); | ||
| 41 | } | ||
| 42 | stageController.pushScene("reminder-list"); | ||
| 43 | return; | ||
| 44 | } | ||
| 45 | if (launchParams && launchParams.details) { | ||
| 46 | if (!appExists) { | ||
| 47 | - stageController.pushScene({name: "day", disableSceneScroller: true}); | ||
| 48 | + stageController.pushScene({name: "week", disableSceneScroller: true}); | ||
| 49 | } | ||
| 50 | // TODO need to pass event occurence date instead of today's date | ||
| 51 | stageController.pushScene('edit', launchParams.details, new Date(), false); | ||
| 52 | @@ -178,7 +178,7 @@ var AppAssistant = Class.create({ | ||
| 53 | } | ||
| 54 | if (launchParams && launchParams.newEvent) { | ||
| 55 | if (!appExists) { | ||
| 56 | - stageController.pushScene({name: "day", disableSceneScroller: true}); | ||
| 57 | + stageController.pushScene({name: "week", disableSceneScroller: true}); | ||
| 58 | } | ||
| 59 | |||
| 60 | this.createNewEventAndShowDetails(stageController, launchParams.newEvent); | ||
| 61 | @@ -357,7 +357,7 @@ var AppAssistant = Class.create({ | ||
| 62 | this.firstUseManager = new FirstUseManager(stageController); | ||
| 63 | } else { | ||
| 64 | // Otherwise show the Day View | ||
| 65 | - stageController.pushScene({name: "day", transition: Mojo.Transition.crossFade, disableSceneScroller: true}); | ||
| 66 | + stageController.pushScene({name: "week", transition: Mojo.Transition.crossFade, disableSceneScroller: true}); | ||
| 67 | } | ||
| 68 | }, | ||
| 69 |
|   | |||
| 1 | This mod alters the Calendar app to default to the month view. | ||
| 2 | Though it alters a function called launchDayView, re-pointing it at the | ||
| 3 | month scene, there are no known side effects under webOS 1.1. | ||
| 4 | |||
| 5 | Mod by matthewn, from http://forums.precentral.net/web-os-development/192542-howto-change-default-view-calendar-hack-rooting-required.html | ||
| 6 | Index: /usr/palm/applications/com.palm.app.calendar/app/controllers/app-assistant.js | ||
| 7 | =================================================================== | ||
| 8 | --- .orig/usr/palm/applications/com.palm.app.calendar/app/controllers/app-assistant.js | ||
| 9 | +++ /usr/palm/applications/com.palm.app.calendar/app/controllers/app-assistant.js | ||
| 10 | @@ -126,12 +126,12 @@ var AppAssistant = Class.create({ | ||
| 11 | // If the top scene is not the Day View, try to pop to it. | ||
| 12 | // If the top scene is already the Day View, there's no point | ||
| 13 | // in popping the scene | ||
| 14 | - if (stageController.topScene().sceneName != "day") { | ||
| 15 | - stageController.popScenesTo("day"); | ||
| 16 | + if (stageController.topScene().sceneName != "month") { | ||
| 17 | + stageController.popScenesTo("month"); | ||
| 18 | } | ||
| 19 | |||
| 20 | // Check to see if the day scene is already up | ||
| 21 | - if (stageController.topScene().sceneName == "day") { | ||
| 22 | + if (stageController.topScene().sceneName == "month") { | ||
| 23 | sceneExists = true; | ||
| 24 | } | ||
| 25 | |||
| 26 | @@ -152,7 +152,7 @@ var AppAssistant = Class.create({ | ||
| 27 | |||
| 28 | // Only push the Day View if it's not already visible | ||
| 29 | if (!sceneExists) { | ||
| 30 | - stageController.pushScene({name: "day", transition: Mojo.Transition.crossFade, disableSceneScroller: true}); | ||
| 31 | + stageController.pushScene({name: "month", transition: Mojo.Transition.crossFade, disableSceneScroller: true}); | ||
| 32 | } | ||
| 33 | }, | ||
| 34 | |||
| 35 | @@ -163,14 +163,14 @@ var AppAssistant = Class.create({ | ||
| 36 | } | ||
| 37 | if (launchParams && launchParams.reminders) { | ||
| 38 | if (!appExists) { | ||
| 39 | - stageController.pushScene({name: "day", disableSceneScroller: true}); | ||
| 40 | + stageController.pushScene({name: "month", disableSceneScroller: true}); | ||
| 41 | } | ||
| 42 | stageController.pushScene("reminder-list"); | ||
| 43 | return; | ||
| 44 | } | ||
| 45 | if (launchParams && launchParams.details) { | ||
| 46 | if (!appExists) { | ||
| 47 | - stageController.pushScene({name: "day", disableSceneScroller: true}); | ||
| 48 | + stageController.pushScene({name: "month", disableSceneScroller: true}); | ||
| 49 | } | ||
| 50 | // TODO need to pass event occurence date instead of today's date | ||
| 51 | stageController.pushScene('edit', launchParams.details, new Date(), false); | ||
| 52 | @@ -178,7 +178,7 @@ var AppAssistant = Class.create({ | ||
| 53 | } | ||
| 54 | if (launchParams && launchParams.newEvent) { | ||
| 55 | if (!appExists) { | ||
| 56 | - stageController.pushScene({name: "day", disableSceneScroller: true}); | ||
| 57 | + stageController.pushScene({name: "month", disableSceneScroller: true}); | ||
| 58 | } | ||
| 59 | |||
| 60 | this.createNewEventAndShowDetails(stageController, launchParams.newEvent); | ||
| 61 | @@ -357,7 +357,7 @@ var AppAssistant = Class.create({ | ||
| 62 | this.firstUseManager = new FirstUseManager(stageController); | ||
| 63 | } else { | ||
| 64 | // Otherwise show the Day View | ||
| 65 | - stageController.pushScene({name: "day", transition: Mojo.Transition.crossFade, disableSceneScroller: true}); | ||
| 66 | + stageController.pushScene({name: "month", transition: Mojo.Transition.crossFade, disableSceneScroller: true}); | ||
| 67 | } | ||
| 68 | }, | ||
| 69 |
|   | |||
| 1 | This mod alters the Calendar app to default to the week view. | ||
| 2 | Though it alters a function called launchDayView, re-pointing it at the | ||
| 3 | week scene, there are no known side effects under webOS 1.1. | ||
| 4 | |||
| 5 | Mod by matthewn, from http://forums.precentral.net/web-os-development/192542-howto-change-default-view-calendar-hack-rooting-required.html | ||
| 6 | Index: /usr/palm/applications/com.palm.app.calendar/app/controllers/app-assistant.js | ||
| 7 | =================================================================== | ||
| 8 | --- .orig/usr/palm/applications/com.palm.app.calendar/app/controllers/app-assistant.js | ||
| 9 | +++ /usr/palm/applications/com.palm.app.calendar/app/controllers/app-assistant.js | ||
| 10 | @@ -126,12 +126,12 @@ var AppAssistant = Class.create({ | ||
| 11 | // If the top scene is not the Day View, try to pop to it. | ||
| 12 | // If the top scene is already the Day View, there's no point | ||
| 13 | // in popping the scene | ||
| 14 | - if (stageController.topScene().sceneName != "day") { | ||
| 15 | - stageController.popScenesTo("day"); | ||
| 16 | + if (stageController.topScene().sceneName != "week") { | ||
| 17 | + stageController.popScenesTo("week"); | ||
| 18 | } | ||
| 19 | |||
| 20 | // Check to see if the day scene is already up | ||
| 21 | - if (stageController.topScene().sceneName == "day") { | ||
| 22 | + if (stageController.topScene().sceneName == "week") { | ||
| 23 | sceneExists = true; | ||
| 24 | } | ||
| 25 | |||
| 26 | @@ -152,7 +152,7 @@ var AppAssistant = Class.create({ | ||
| 27 | |||
| 28 | // Only push the Day View if it's not already visible | ||
| 29 | if (!sceneExists) { | ||
| 30 | - stageController.pushScene({name: "day", transition: Mojo.Transition.crossFade, disableSceneScroller: true}); | ||
| 31 | + stageController.pushScene({name: "week", transition: Mojo.Transition.crossFade, disableSceneScroller: true}); | ||
| 32 | } | ||
| 33 | }, | ||
| 34 | |||
| 35 | @@ -163,14 +163,14 @@ var AppAssistant = Class.create({ | ||
| 36 | } | ||
| 37 | if (launchParams && launchParams.reminders) { | ||
| 38 | if (!appExists) { | ||
| 39 | - stageController.pushScene({name: "day", disableSceneScroller: true}); | ||
| 40 | + stageController.pushScene({name: "week", disableSceneScroller: true}); | ||
| 41 | } | ||
| 42 | stageController.pushScene("reminder-list"); | ||
| 43 | return; | ||
| 44 | } | ||
| 45 | if (launchParams && launchParams.details) { | ||
| 46 | if (!appExists) { | ||
| 47 | - stageController.pushScene({name: "day", disableSceneScroller: true}); | ||
| 48 | + stageController.pushScene({name: "week", disableSceneScroller: true}); | ||
| 49 | } | ||
| 50 | // TODO need to pass event occurence date instead of today's date | ||
| 51 | stageController.pushScene('edit', launchParams.details, new Date(), false); | ||
| 52 | @@ -178,7 +178,7 @@ var AppAssistant = Class.create({ | ||
| 53 | } | ||
| 54 | if (launchParams && launchParams.newEvent) { | ||
| 55 | if (!appExists) { | ||
| 56 | - stageController.pushScene({name: "day", disableSceneScroller: true}); | ||
| 57 | + stageController.pushScene({name: "week", disableSceneScroller: true}); | ||
| 58 | } | ||
| 59 | |||
| 60 | this.createNewEventAndShowDetails(stageController, launchParams.newEvent); | ||
| 61 | @@ -357,7 +357,7 @@ var AppAssistant = Class.create({ | ||
| 62 | this.firstUseManager = new FirstUseManager(stageController); | ||
| 63 | } else { | ||
| 64 | // Otherwise show the Day View | ||
| 65 | - stageController.pushScene({name: "day", transition: Mojo.Transition.crossFade, disableSceneScroller: true}); | ||
| 66 | + stageController.pushScene({name: "week", transition: Mojo.Transition.crossFade, disableSceneScroller: true}); | ||
| 67 | } | ||
| 68 | }, | ||
| 69 |
|   | |||
| 1 | This patch will allow you capture a picture using the volume keys. | ||
| 2 | |||
| 3 | Tested on: 1.2 | ||
| 4 | |||
| 5 | Index: /usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js | ||
| 6 | --- .orig/usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js | ||
| 7 | +++ /usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js | ||
| 8 | @@ -34,6 +34,7 @@ CaptureAssistant = Class.create({ | ||
| 9 | this.sublaunch = false; | ||
| 10 | this.defaultFilename = null; | ||
| 11 | } | ||
| 12 | + this.volumeKeySubscription = undefined; | ||
| 13 | |||
| 14 | }, | ||
| 15 | |||
| 16 | @@ -87,6 +88,15 @@ CaptureAssistant = Class.create({ | ||
| 17 | var elemC = this.controller.get('sagar_console'); | ||
| 18 | elemC.style.display = ''; | ||
| 19 | } | ||
| 20 | + // listen to volume key events | ||
| 21 | + this.volumeKeySubscription = new Mojo.Service.Request( | ||
| 22 | + 'palm://com.palm.keys/audio', | ||
| 23 | + { | ||
| 24 | + method: 'status', | ||
| 25 | + parameters: {'subscribe': true}, | ||
| 26 | + onFailure: function() { Mojo.Log.error("Could not subscribe to volume key events"); }, | ||
| 27 | + onSuccess: this.handleVolumeKeys.bind(this), | ||
| 28 | + }); | ||
| 29 | |||
| 30 | llog("CaptureAssistant::setup() finished"); | ||
| 31 | }, | ||
| 32 | @@ -174,6 +184,11 @@ CaptureAssistant = Class.create({ | ||
| 33 | } | ||
| 34 | |||
| 35 | this.cameraControl.closeCamera(); | ||
| 36 | + | ||
| 37 | + // clean up listener for volume keys | ||
| 38 | + if(this.volumeKeySubscription) { | ||
| 39 | + this.volumeKeySubscription.cancel(); | ||
| 40 | + } | ||
| 41 | }, | ||
| 42 | |||
| 43 | handleCommand: function(event){ | ||
| 44 | @@ -210,6 +225,13 @@ CaptureAssistant = Class.create({ | ||
| 45 | |||
| 46 | }, | ||
| 47 | |||
| 48 | + // capture on release of volume keys | ||
| 49 | + handleVolumeKeys: function(payload) { | ||
| 50 | + // capture when either volume up or down buttons are released | ||
| 51 | + if(payload.state === 'up' && (payload.key === 'volume_up' || payload.key === 'volume_down')) { | ||
| 52 | + this.cameraControl.capture(); | ||
| 53 | + } | ||
| 54 | + }, | ||
| 55 | |||
| 56 | /** | ||
| 57 | * Called by Mojo when the orientation of the device changes. |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js b/usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js | ||
| 2 | index 2952de4..f11abf1 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js | ||
| 5 | @@ -79,6 +79,10 @@ CaptureAssistant = Class.create({ | ||
| 6 | this._handleFlashButton(); | ||
| 7 | }.bind(this)); | ||
| 8 | |||
| 9 | + this.controller.get('shutterSoundButtonState').observe(Mojo.Event.tap, function(){ | ||
| 10 | + this._handleShutterSoundButton(); | ||
| 11 | + }.bind(this)); | ||
| 12 | + | ||
| 13 | this.onKeyPressHandler = this.onKeyPress.bindAsEventListener(this); | ||
| 14 | Mojo.listen(this.controller.sceneElement, Mojo.Event.keydown, this.onKeyPressHandler); | ||
| 15 | Mojo.listen(this.controller.sceneElement, Mojo.Event.keyup, this.onKeyPressHandler); | ||
| 16 | @@ -140,6 +144,11 @@ CaptureAssistant = Class.create({ | ||
| 17 | this.setFlashState(prefFlashState); | ||
| 18 | } | ||
| 19 | |||
| 20 | + if (undefined === this.shutterSoundState){ | ||
| 21 | + var prefShutterSoundState = this.cameraControl.prefs[CameraControl.PREFS.SOUNDS]; | ||
| 22 | + this.setShutterSoundState(prefShutterSoundState); | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | try { | ||
| 26 | var initialOrientation = PalmSystem.screenOrientation; | ||
| 27 | this.orientationChanged(initialOrientation); | ||
| 28 | @@ -629,6 +638,45 @@ CaptureAssistant = Class.create({ | ||
| 29 | }, | ||
| 30 | |||
| 31 | /** | ||
| 32 | + * Click handler for the shutter sound button. | ||
| 33 | + * | ||
| 34 | + * @param {Event} event The click event | ||
| 35 | + */ | ||
| 36 | + _handleShutterSoundButton: function(event){ | ||
| 37 | + if (this.shutterSoundState == 'enabled'){ | ||
| 38 | + this.shutterSoundState = 'disabled'; | ||
| 39 | + } | ||
| 40 | + else { | ||
| 41 | + this.shutterSoundState = 'enabled'; | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + this.setShutterSoundState(this.shutterSoundState); | ||
| 45 | + }, | ||
| 46 | + | ||
| 47 | + setShutterSoundState: function(state){ | ||
| 48 | + if ((state != 'disabled') && (state != 'enabled')) { | ||
| 49 | + /* | ||
| 50 | + var elemC = this.controller.get('sagar_console'); | ||
| 51 | + if (elemC) { | ||
| 52 | + elemC.innerHTML = state; | ||
| 53 | + } | ||
| 54 | + */ | ||
| 55 | + llog("Requested shutter sound state is out of range ("+state+")"); | ||
| 56 | + return; | ||
| 57 | + } | ||
| 58 | + | ||
| 59 | + this.shutterSoundState = state; | ||
| 60 | + CameraPrefs.updatePref(this.cameraControl.prefs, CameraControl.PREFS.SOUNDS, state); | ||
| 61 | + | ||
| 62 | + if (this.shutterSoundState == 'enabled') { | ||
| 63 | + this.controller.get('shutterSoundButtonState').className = "shutter-sound-button shutter-sound-on"; | ||
| 64 | + } | ||
| 65 | + else if (this.shutterSoundState == 'disabled') { | ||
| 66 | + this.controller.get('shutterSoundButtonState').className = "shutter-sound-button shutter-sound-off"; | ||
| 67 | + } | ||
| 68 | + }, | ||
| 69 | + | ||
| 70 | + /** | ||
| 71 | * Handler for click of photoroll button. | ||
| 72 | * | ||
| 73 | * The photoroll scene will be pushed on. | ||
| 74 | diff --git a/usr/palm/applications/com.palm.app.camera/app/views/capture/capture-scene.html b/usr/palm/applications/com.palm.app.camera/app/views/capture/capture-scene.html | ||
| 75 | index a586aba..e8243d2 100644 | ||
| 76 | --- a/usr/palm/applications/com.palm.app.camera/app/views/capture/capture-scene.html | ||
| 77 | +++ b/usr/palm/applications/com.palm.app.camera/app/views/capture/capture-scene.html | ||
| 78 | @@ -14,6 +14,8 @@ | ||
| 79 | <div id="captureSpinner" class="capture-spinner" x-mojo-element="Spinner"></div> | ||
| 80 | <div class="capture-button" id="captureButton"> | ||
| 81 | </div> | ||
| 82 | + <div class="shutter-sound-button shutter-sound-off" id="shutterSoundButtonState"> | ||
| 83 | + </div> | ||
| 84 | <div class="flash-button flash-off" id="flashButtonState"> | ||
| 85 | </div> | ||
| 86 | </div> | ||
| 87 | @@ -23,7 +25,7 @@ | ||
| 88 | |||
| 89 | </div> | ||
| 90 | </div> | ||
| 91 | - <!-- <div id="sagar_console" style="z-index: 100; position: fixed; top: 10px; left: 10px; width: 90px; height: 20px; background-color: #000000; color: #8080ff; font-family: sans-serif; font-size: 12px; display: none;" >Hello!</div> --> | ||
| 92 | + <!--<div id="sagar_console" style="z-index: 100; position: fixed; top: 10px; left: 10px; width: 90px; height: 20px; background-color: #000000; color: #8080ff; font-family: sans-serif; font-size: 12px; display: none;" >Hello!</div> --> | ||
| 93 | <div id="gpsMeter" style="z-index: 100; position: fixed; top: 10px; right: 10px; width: 90px; height: 20px; background-color: #a0a0a0; display: none" ></div> --> | ||
| 94 | |||
| 95 | <div id="palmScrim" class="palm-scrim" style="z-index: 1001; display: none;"> | ||
| 96 | diff --git a/usr/palm/applications/com.palm.app.camera/stylesheets/camera.css b/usr/palm/applications/com.palm.app.camera/stylesheets/camera.css | ||
| 97 | index 9480ffa..f0e242d 100644 | ||
| 98 | --- a/usr/palm/applications/com.palm.app.camera/stylesheets/camera.css | ||
| 99 | +++ b/usr/palm/applications/com.palm.app.camera/stylesheets/camera.css | ||
| 100 | @@ -119,6 +119,28 @@ body.palm-default { | ||
| 101 | z-index: 20; | ||
| 102 | } | ||
| 103 | |||
| 104 | +.shutter-sound-button, | ||
| 105 | +.shutter-sound-button.shutter-sound-off { | ||
| 106 | + width: 50px; | ||
| 107 | + height: 50px; | ||
| 108 | + background: url(../images/menu-shutter-sound.png) 0 0 no-repeat; | ||
| 109 | + position: absolute; | ||
| 110 | + left: 188px; | ||
| 111 | + top: 15px; | ||
| 112 | +} | ||
| 113 | + | ||
| 114 | +.shutter-sound-button.shutter-sound-on:active { | ||
| 115 | + background-position: 0px -50px; | ||
| 116 | +} | ||
| 117 | + | ||
| 118 | +.shutter-sound-button.shutter-sound-on { | ||
| 119 | + background-position: 0px -100px; | ||
| 120 | +} | ||
| 121 | + | ||
| 122 | +.shutter-sound-button.shutter-sound-on:active { | ||
| 123 | + background-position: 0px -150px; | ||
| 124 | +} | ||
| 125 | + | ||
| 126 | /* Photo Roll */ | ||
| 127 | |||
| 128 | .photo-roll { |
|   | |||
| 1 | This patch will allow you capture a picture using the volume keys. | ||
| 2 | |||
| 3 | Tested on: 1.2 | ||
| 4 | |||
| 5 | Index: /usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js | ||
| 6 | --- .orig/usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js | ||
| 7 | +++ /usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js | ||
| 8 | @@ -34,6 +34,7 @@ CaptureAssistant = Class.create({ | ||
| 9 | this.sublaunch = false; | ||
| 10 | this.defaultFilename = null; | ||
| 11 | } | ||
| 12 | + this.volumeKeySubscription = undefined; | ||
| 13 | |||
| 14 | }, | ||
| 15 | |||
| 16 | @@ -87,6 +88,15 @@ CaptureAssistant = Class.create({ | ||
| 17 | var elemC = this.controller.get('sagar_console'); | ||
| 18 | elemC.style.display = ''; | ||
| 19 | } | ||
| 20 | + // listen to volume key events | ||
| 21 | + this.volumeKeySubscription = new Mojo.Service.Request( | ||
| 22 | + 'palm://com.palm.keys/audio', | ||
| 23 | + { | ||
| 24 | + method: 'status', | ||
| 25 | + parameters: {'subscribe': true}, | ||
| 26 | + onFailure: function() { Mojo.Log.error("Could not subscribe to volume key events"); }, | ||
| 27 | + onSuccess: this.handleVolumeKeys.bind(this), | ||
| 28 | + }); | ||
| 29 | |||
| 30 | llog("CaptureAssistant::setup() finished"); | ||
| 31 | }, | ||
| 32 | @@ -174,6 +184,11 @@ CaptureAssistant = Class.create({ | ||
| 33 | } | ||
| 34 | |||
| 35 | this.cameraControl.closeCamera(); | ||
| 36 | + | ||
| 37 | + // clean up listener for volume keys | ||
| 38 | + if(this.volumeKeySubscription) { | ||
| 39 | + this.volumeKeySubscription.cancel(); | ||
| 40 | + } | ||
| 41 | }, | ||
| 42 | |||
| 43 | handleCommand: function(event){ | ||
| 44 | @@ -210,6 +225,13 @@ CaptureAssistant = Class.create({ | ||
| 45 | |||
| 46 | }, | ||
| 47 | |||
| 48 | + // capture on release of volume keys | ||
| 49 | + handleVolumeKeys: function(payload) { | ||
| 50 | + // capture when either volume up or down buttons are released | ||
| 51 | + if(payload.state === 'up' && (payload.key === 'volume_up' || payload.key === 'volume_down')) { | ||
| 52 | + this.cameraControl.capture(); | ||
| 53 | + } | ||
| 54 | + }, | ||
| 55 | |||
| 56 | /** | ||
| 57 | * Called by Mojo when the orientation of the device changes. |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js b/usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js | ||
| 2 | index 2952de4..f11abf1 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js | ||
| 5 | @@ -79,6 +79,10 @@ CaptureAssistant = Class.create({ | ||
| 6 | this._handleFlashButton(); | ||
| 7 | }.bind(this)); | ||
| 8 | |||
| 9 | + this.controller.get('shutterSoundButtonState').observe(Mojo.Event.tap, function(){ | ||
| 10 | + this._handleShutterSoundButton(); | ||
| 11 | + }.bind(this)); | ||
| 12 | + | ||
| 13 | this.onKeyPressHandler = this.onKeyPress.bindAsEventListener(this); | ||
| 14 | Mojo.listen(this.controller.sceneElement, Mojo.Event.keydown, this.onKeyPressHandler); | ||
| 15 | Mojo.listen(this.controller.sceneElement, Mojo.Event.keyup, this.onKeyPressHandler); | ||
| 16 | @@ -140,6 +144,11 @@ CaptureAssistant = Class.create({ | ||
| 17 | this.setFlashState(prefFlashState); | ||
| 18 | } | ||
| 19 | |||
| 20 | + if (undefined === this.shutterSoundState){ | ||
| 21 | + var prefShutterSoundState = this.cameraControl.prefs[CameraControl.PREFS.SOUNDS]; | ||
| 22 | + this.setShutterSoundState(prefShutterSoundState); | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | try { | ||
| 26 | var initialOrientation = PalmSystem.screenOrientation; | ||
| 27 | this.orientationChanged(initialOrientation); | ||
| 28 | @@ -629,6 +638,45 @@ CaptureAssistant = Class.create({ | ||
| 29 | }, | ||
| 30 | |||
| 31 | /** | ||
| 32 | + * Click handler for the shutter sound button. | ||
| 33 | + * | ||
| 34 | + * @param {Event} event The click event | ||
| 35 | + */ | ||
| 36 | + _handleShutterSoundButton: function(event){ | ||
| 37 | + if (this.shutterSoundState == 'enabled'){ | ||
| 38 | + this.shutterSoundState = 'disabled'; | ||
| 39 | + } | ||
| 40 | + else { | ||
| 41 | + this.shutterSoundState = 'enabled'; | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + this.setShutterSoundState(this.shutterSoundState); | ||
| 45 | + }, | ||
| 46 | + | ||
| 47 | + setShutterSoundState: function(state){ | ||
| 48 | + if ((state != 'disabled') && (state != 'enabled')) { | ||
| 49 | + /* | ||
| 50 | + var elemC = this.controller.get('sagar_console'); | ||
| 51 | + if (elemC) { | ||
| 52 | + elemC.innerHTML = state; | ||
| 53 | + } | ||
| 54 | + */ | ||
| 55 | + llog("Requested shutter sound state is out of range ("+state+")"); | ||
| 56 | + return; | ||
| 57 | + } | ||
| 58 | + | ||
| 59 | + this.shutterSoundState = state; | ||
| 60 | + CameraPrefs.updatePref(this.cameraControl.prefs, CameraControl.PREFS.SOUNDS, state); | ||
| 61 | + | ||
| 62 | + if (this.shutterSoundState == 'enabled') { | ||
| 63 | + this.controller.get('shutterSoundButtonState').className = "shutter-sound-button shutter-sound-on"; | ||
| 64 | + } | ||
| 65 | + else if (this.shutterSoundState == 'disabled') { | ||
| 66 | + this.controller.get('shutterSoundButtonState').className = "shutter-sound-button shutter-sound-off"; | ||
| 67 | + } | ||
| 68 | + }, | ||
| 69 | + | ||
| 70 | + /** | ||
| 71 | * Handler for click of photoroll button. | ||
| 72 | * | ||
| 73 | * The photoroll scene will be pushed on. | ||
| 74 | diff --git a/usr/palm/applications/com.palm.app.camera/app/views/capture/capture-scene.html b/usr/palm/applications/com.palm.app.camera/app/views/capture/capture-scene.html | ||
| 75 | index a586aba..e8243d2 100644 | ||
| 76 | --- a/usr/palm/applications/com.palm.app.camera/app/views/capture/capture-scene.html | ||
| 77 | +++ b/usr/palm/applications/com.palm.app.camera/app/views/capture/capture-scene.html | ||
| 78 | @@ -14,6 +14,8 @@ | ||
| 79 | <div id="captureSpinner" class="capture-spinner" x-mojo-element="Spinner"></div> | ||
| 80 | <div class="capture-button" id="captureButton"> | ||
| 81 | </div> | ||
| 82 | + <div class="shutter-sound-button shutter-sound-off" id="shutterSoundButtonState"> | ||
| 83 | + </div> | ||
| 84 | <div class="flash-button flash-off" id="flashButtonState"> | ||
| 85 | </div> | ||
| 86 | </div> | ||
| 87 | @@ -23,7 +25,7 @@ | ||
| 88 | |||
| 89 | </div> | ||
| 90 | </div> | ||
| 91 | - <!-- <div id="sagar_console" style="z-index: 100; position: fixed; top: 10px; left: 10px; width: 90px; height: 20px; background-color: #000000; color: #8080ff; font-family: sans-serif; font-size: 12px; display: none;" >Hello!</div> --> | ||
| 92 | + <!--<div id="sagar_console" style="z-index: 100; position: fixed; top: 10px; left: 10px; width: 90px; height: 20px; background-color: #000000; color: #8080ff; font-family: sans-serif; font-size: 12px; display: none;" >Hello!</div> --> | ||
| 93 | <div id="gpsMeter" style="z-index: 100; position: fixed; top: 10px; right: 10px; width: 90px; height: 20px; background-color: #a0a0a0; display: none" ></div> --> | ||
| 94 | |||
| 95 | <div id="palmScrim" class="palm-scrim" style="z-index: 1001; display: none;"> | ||
| 96 | diff --git a/usr/palm/applications/com.palm.app.camera/stylesheets/camera.css b/usr/palm/applications/com.palm.app.camera/stylesheets/camera.css | ||
| 97 | index 9480ffa..f0e242d 100644 | ||
| 98 | --- a/usr/palm/applications/com.palm.app.camera/stylesheets/camera.css | ||
| 99 | +++ b/usr/palm/applications/com.palm.app.camera/stylesheets/camera.css | ||
| 100 | @@ -119,6 +119,28 @@ body.palm-default { | ||
| 101 | z-index: 20; | ||
| 102 | } | ||
| 103 | |||
| 104 | +.shutter-sound-button, | ||
| 105 | +.shutter-sound-button.shutter-sound-off { | ||
| 106 | + width: 50px; | ||
| 107 | + height: 50px; | ||
| 108 | + background: url(../images/menu-shutter-sound.png) 0 0 no-repeat; | ||
| 109 | + position: absolute; | ||
| 110 | + left: 188px; | ||
| 111 | + top: 15px; | ||
| 112 | +} | ||
| 113 | + | ||
| 114 | +.shutter-sound-button.shutter-sound-on:active { | ||
| 115 | + background-position: 0px -50px; | ||
| 116 | +} | ||
| 117 | + | ||
| 118 | +.shutter-sound-button.shutter-sound-on { | ||
| 119 | + background-position: 0px -100px; | ||
| 120 | +} | ||
| 121 | + | ||
| 122 | +.shutter-sound-button.shutter-sound-on:active { | ||
| 123 | + background-position: 0px -150px; | ||
| 124 | +} | ||
| 125 | + | ||
| 126 | /* Photo Roll */ | ||
| 127 | |||
| 128 | .photo-roll { |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.clock/themes/manualanalog/manualanalog-clock-functions.js b/usr/palm/applications/com.palm.app.clock/themes/manualanalog/manualanalog-clock-functions.js | ||
| 2 | index 7652bf7..dbb4c5c 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.clock/themes/manualanalog/manualanalog-clock-functions.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.clock/themes/manualanalog/manualanalog-clock-functions.js | ||
| 5 | @@ -91,8 +91,8 @@ | ||
| 6 | } | ||
| 7 | // format date | ||
| 8 | |||
| 9 | - //this.controller.get('date').textContent = Mojo.Format.formatDate(now, {"date":"short"}) | ||
| 10 | - //this.controller.get('day').textContent = Mojo.Format.getDateTimeHash().medium.day[now.getDay()]; | ||
| 11 | + this.controller.get('date').textContent = Mojo.Format.formatDate(now, {"date":"short"}) | ||
| 12 | + this.controller.get('day').textContent = Mojo.Format.getDateTimeHash().medium.day[now.getDay()]; | ||
| 13 | } | ||
| 14 | |||
| 15 | ManualanalogClockFunctions.prototype.alarm = function() { | ||
| 16 | diff --git a/usr/palm/applications/com.palm.app.clock/themes/manualanalog/manualanalog-clock.html b/usr/palm/applications/com.palm.app.clock/themes/manualanalog/manualanalog-clock.html | ||
| 17 | index 2b790e4..8cfb653 100644 | ||
| 18 | --- a/usr/palm/applications/com.palm.app.clock/themes/manualanalog/manualanalog-clock.html | ||
| 19 | +++ b/usr/palm/applications/com.palm.app.clock/themes/manualanalog/manualanalog-clock.html | ||
| 20 | @@ -1,8 +1,8 @@ | ||
| 21 | |||
| 22 | <div class="clock-container"> | ||
| 23 | <div id="hands"> | ||
| 24 | - <!-- <div id="day" class="day"></div> | ||
| 25 | - <div id="date" class="date"></div> --> | ||
| 26 | + <div id="day" class="day"></div> | ||
| 27 | + <div id="date" class="date"></div> | ||
| 28 | |||
| 29 | <div id="hour"></div> | ||
| 30 | <div id="minute"></div> | ||
| 31 | diff --git a/usr/palm/applications/com.palm.app.clock/themes/themes.json b/usr/palm/applications/com.palm.app.clock/themes/themes.json | ||
| 32 | index 1f29438..272c7c7 100644 | ||
| 33 | --- a/usr/palm/applications/com.palm.app.clock/themes/themes.json | ||
| 34 | +++ b/usr/palm/applications/com.palm.app.clock/themes/themes.json | ||
| 35 | @@ -10,5 +10,11 @@ | ||
| 36 | "nicename":"Analog", | ||
| 37 | "description":"", | ||
| 38 | "source": "themes/analog/" | ||
| 39 | + }, | ||
| 40 | + { | ||
| 41 | + "name":"manualanalog", | ||
| 42 | + "nicename":"Analog Black", | ||
| 43 | + "description":"", | ||
| 44 | + "source": "themes/manualanalog/" | ||
| 45 | } | ||
| 46 | ] | ||
| 47 | \ No newline at end of file |
clock/hidden-clock.patch
(0 / 47)
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.clock/themes/manualanalog/manualanalog-clock-functions.js b/usr/palm/applications/com.palm.app.clock/themes/manualanalog/manualanalog-clock-functions.js | ||
| 2 | index 7652bf7..dbb4c5c 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.clock/themes/manualanalog/manualanalog-clock-functions.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.clock/themes/manualanalog/manualanalog-clock-functions.js | ||
| 5 | @@ -91,8 +91,8 @@ | ||
| 6 | } | ||
| 7 | // format date | ||
| 8 | |||
| 9 | - //this.controller.get('date').textContent = Mojo.Format.formatDate(now, {"date":"short"}) | ||
| 10 | - //this.controller.get('day').textContent = Mojo.Format.getDateTimeHash().medium.day[now.getDay()]; | ||
| 11 | + this.controller.get('date').textContent = Mojo.Format.formatDate(now, {"date":"short"}) | ||
| 12 | + this.controller.get('day').textContent = Mojo.Format.getDateTimeHash().medium.day[now.getDay()]; | ||
| 13 | } | ||
| 14 | |||
| 15 | ManualanalogClockFunctions.prototype.alarm = function() { | ||
| 16 | diff --git a/usr/palm/applications/com.palm.app.clock/themes/manualanalog/manualanalog-clock.html b/usr/palm/applications/com.palm.app.clock/themes/manualanalog/manualanalog-clock.html | ||
| 17 | index 2b790e4..8cfb653 100644 | ||
| 18 | --- a/usr/palm/applications/com.palm.app.clock/themes/manualanalog/manualanalog-clock.html | ||
| 19 | +++ b/usr/palm/applications/com.palm.app.clock/themes/manualanalog/manualanalog-clock.html | ||
| 20 | @@ -1,8 +1,8 @@ | ||
| 21 | |||
| 22 | <div class="clock-container"> | ||
| 23 | <div id="hands"> | ||
| 24 | - <!-- <div id="day" class="day"></div> | ||
| 25 | - <div id="date" class="date"></div> --> | ||
| 26 | + <div id="day" class="day"></div> | ||
| 27 | + <div id="date" class="date"></div> | ||
| 28 | |||
| 29 | <div id="hour"></div> | ||
| 30 | <div id="minute"></div> | ||
| 31 | diff --git a/usr/palm/applications/com.palm.app.clock/themes/themes.json b/usr/palm/applications/com.palm.app.clock/themes/themes.json | ||
| 32 | index 1f29438..272c7c7 100644 | ||
| 33 | --- a/usr/palm/applications/com.palm.app.clock/themes/themes.json | ||
| 34 | +++ b/usr/palm/applications/com.palm.app.clock/themes/themes.json | ||
| 35 | @@ -10,5 +10,11 @@ | ||
| 36 | "nicename":"Analog", | ||
| 37 | "description":"", | ||
| 38 | "source": "themes/analog/" | ||
| 39 | + }, | ||
| 40 | + { | ||
| 41 | + "name":"manualanalog", | ||
| 42 | + "nicename":"Analog Black", | ||
| 43 | + "description":"", | ||
| 44 | + "source": "themes/manualanalog/" | ||
| 45 | } | ||
| 46 | ] | ||
| 47 | \ No newline at end of file |
contacts/contacttone.patch
(0 / 172)
|   | |||
| 1 | Adds a message tone selector | ||
| 2 | Adds a message tone selector | ||
| 3 | Index: /usr/palm/applications/com.palm.app.contacts/app/controllers/edit-assistant.js | ||
| 4 | =================================================================== | ||
| 5 | --- .orig/usr/palm/applications/com.palm.app.contacts/app/controllers/edit-assistant.js | ||
| 6 | +++ /usr/palm/applications/com.palm.app.contacts/app/controllers/edit-assistant.js | ||
| 7 | @@ -63,6 +63,17 @@ EditAssistant = Class.create({ | ||
| 8 | template: "edit/ringtones" | ||
| 9 | })); | ||
| 10 | |||
| 11 | + if(this.person.messagingRingtoneName){ | ||
| 12 | + this.person.MsgtoneDisplay = this.person.messagingRingtoneName; | ||
| 13 | + this.person.MsgtoneSet = "msgtone-set"; | ||
| 14 | + } else { | ||
| 15 | + this.person.MsgtoneDisplay = $L("Set a message tone"); | ||
| 16 | + this.person.MsgtoneSet = ""; | ||
| 17 | + } | ||
| 18 | + this.controller.get("MsgtoneBox").update(Mojo.View.render({ | ||
| 19 | + object: this.person, | ||
| 20 | + template: "edit/msgtones" | ||
| 21 | + })); | ||
| 22 | |||
| 23 | var that = this; | ||
| 24 | |||
| 25 | @@ -264,6 +275,11 @@ EditAssistant = Class.create({ | ||
| 26 | object: {ringtoneDisplay:ringtoneName}, | ||
| 27 | template: "edit/ringtones" | ||
| 28 | })); | ||
| 29 | + var messagingRingtoneName = this.person.messagingRingtoneName || $L("Set a message tone"); | ||
| 30 | + this.controller.get("MsgtoneBox").update(Mojo.View.render({ | ||
| 31 | + object: {MsgtoneDisplay:messagingRingtoneName}, | ||
| 32 | + template: "edit/msgtones" | ||
| 33 | + })); | ||
| 34 | |||
| 35 | } | ||
| 36 | } | ||
| 37 | @@ -521,6 +537,7 @@ EditAssistant = Class.create({ | ||
| 38 | this.controller.listen("NameSyncPickerWrapper", Mojo.Event.tap, this.popupContactChooser.bind(this)); | ||
| 39 | this.controller.get("edit-photo").observe(Mojo.Event.tap, this.attachFilePicker.bind(this)); | ||
| 40 | this.controller.get("RingtoneBox").observe(Mojo.Event.tap, this.attachRingtonePicker.bind(this)); | ||
| 41 | + this.controller.get("MsgtoneBox").observe(Mojo.Event.tap, this.attachMsgtonePicker.bind(this)); | ||
| 42 | this.renderLabels(); | ||
| 43 | this.setupContact(); | ||
| 44 | if (this.contact.readOnly) { | ||
| 45 | Index: /usr/palm/applications/com.palm.app.contacts/app/controllers/filepicker-behaviors.js | ||
| 46 | =================================================================== | ||
| 47 | --- .orig/usr/palm/applications/com.palm.app.contacts/app/controllers/filepicker-behaviors.js | ||
| 48 | +++ /usr/palm/applications/com.palm.app.contacts/app/controllers/filepicker-behaviors.js | ||
| 49 | @@ -56,6 +56,55 @@ var FilepickerBehaviors = { | ||
| 50 | Mojo.FilePicker.pickFile(params, this.controller.stageController); | ||
| 51 | |||
| 52 | }, | ||
| 53 | + | ||
| 54 | + attachMsgtonePicker: function(event){ | ||
| 55 | + if(this.person.messagingRingtoneLoc){ | ||
| 56 | + this.controller.popupSubmenu( { | ||
| 57 | + onChoose:function(c){ | ||
| 58 | + if(c == "CHANGE"){ | ||
| 59 | + this.pushMsgtonePicker(); | ||
| 60 | + } else if(c == "DELETE"){ | ||
| 61 | + this.clearMsgtone(); | ||
| 62 | + } | ||
| 63 | + }.bind(this), | ||
| 64 | + placeNear:event.target, | ||
| 65 | + items:[ | ||
| 66 | + {label:$L("Change Msgtone"), command:'CHANGE'}, | ||
| 67 | + {label:$L("Delete Msgtone"), command:'DELETE'} | ||
| 68 | + ] | ||
| 69 | + }) | ||
| 70 | + } else { | ||
| 71 | + this.pushMsgtonePicker(); | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + }, | ||
| 75 | + | ||
| 76 | + clearMsgtone:function(){ | ||
| 77 | + this.person.messagingRingtoneLoc = ""; | ||
| 78 | + this.person.messagingRingtoneName = ""; | ||
| 79 | + this.person.MsgtoneDisplay = $L("Set a message tone"); | ||
| 80 | + this.person.MsgtoneSet = ""; | ||
| 81 | + this.person.dirty = true; | ||
| 82 | + this.controller.get("MsgtoneBox").update(Mojo.View.render({ | ||
| 83 | + object:this.person, | ||
| 84 | + template:"edit/msgtones" | ||
| 85 | + })); | ||
| 86 | + }, | ||
| 87 | + | ||
| 88 | + pushMsgtonePicker:function(){ | ||
| 89 | + var params = { | ||
| 90 | + actionType: 'attach', | ||
| 91 | + kinds: ['ringtone'], | ||
| 92 | + defaultKind: 'ringtone', | ||
| 93 | + filePath:this.person.messagingRingtoneLoc, | ||
| 94 | + onSelect: function(file){ | ||
| 95 | + this.attachMsgtone(this.sanitizeSystemPath(file.fullPath), file.name); | ||
| 96 | + }.bind(this) | ||
| 97 | + }; | ||
| 98 | + //Mojo.Log.info("ContactMulti Picking a msgtone for " + this.contact.firstName + " " + this.contact.lastName); | ||
| 99 | + Mojo.FilePicker.pickFile(params, this.controller.stageController); | ||
| 100 | + | ||
| 101 | + }, | ||
| 102 | |||
| 103 | attachFilePicker: function(event){ | ||
| 104 | if(this.contact.readOnly){ | ||
| 105 | @@ -150,6 +199,20 @@ var FilepickerBehaviors = { | ||
| 106 | template:"edit/ringtones" | ||
| 107 | })); | ||
| 108 | } | ||
| 109 | + }, | ||
| 110 | + | ||
| 111 | + attachMsgtone: function(msgtonePath, name){ | ||
| 112 | + if (msgtonePath) { | ||
| 113 | + this.person.dirty = true; | ||
| 114 | + this.person.messagingRingtoneName = name; | ||
| 115 | + this.person.MsgtoneDisplay = name; | ||
| 116 | + this.person.MsgtoneSet = "msgtone-set"; | ||
| 117 | + this.person.messagingRingtoneLoc = msgtonePath; | ||
| 118 | + this.controller.get("MsgtoneBox").update(Mojo.View.render({ | ||
| 119 | + object:this.person, | ||
| 120 | + template:"edit/msgtones" | ||
| 121 | + })); | ||
| 122 | + } | ||
| 123 | } | ||
| 124 | } | ||
| 125 | |||
| 126 | Index: /usr/palm/applications/com.palm.app.contacts/app/views/edit/lists-fake.html | ||
| 127 | =================================================================== | ||
| 128 | --- .orig/usr/palm/applications/com.palm.app.contacts/app/views/edit/lists-fake.html | ||
| 129 | +++ /usr/palm/applications/com.palm.app.contacts/app/views/edit/lists-fake.html | ||
| 130 | @@ -32,6 +32,20 @@ | ||
| 131 | </div> | ||
| 132 | </div> | ||
| 133 | </div> | ||
| 134 | +<div> | ||
| 135 | +<div id="MsgtoneBox" class=""> | ||
| 136 | + <div class="palm-group unlabeled"> | ||
| 137 | + <div class="palm-list"> | ||
| 138 | + <div class="palm-row single" id="MsgtoneButton" x-mojo-tap-highlight="momentary"> | ||
| 139 | + <div class="palm-row-wrapper"> | ||
| 140 | + <div class="title" x-mojo-loc=""> | ||
| 141 | + Set a message tone | ||
| 142 | + </div> | ||
| 143 | + </div> | ||
| 144 | + </div> | ||
| 145 | + </div> | ||
| 146 | + </div> | ||
| 147 | +</div> | ||
| 148 | </div> | ||
| 149 | <div> | ||
| 150 | <div id="emailList" name="emailList" class="contactPointList" > | ||
| 151 | Index: /usr/palm/applications/com.palm.app.contacts/app/views/edit/msgtones.html | ||
| 152 | =================================================================== | ||
| 153 | --- /dev/null | ||
| 154 | +++ /usr/palm/applications/com.palm.app.contacts/app/views/edit/msgtones.html | ||
| 155 | @@ -0,0 +1,16 @@ | ||
| 156 | +<div class="palm-group unlabeled"> | ||
| 157 | + <div class="palm-list"> | ||
| 158 | + <div class="palm-row single #{MsgtoneSet} msgtone-button" id="MsgtoneButton" x-mojo-tap-highlight="momentary"> | ||
| 159 | + <div class="palm-row-wrapper"> | ||
| 160 | + <div class="label right truncating-text" x-mojo-loc=''> | ||
| 161 | + Msgtone | ||
| 162 | + </div> | ||
| 163 | + <div class="title"> | ||
| 164 | + <div class="truncating-text"> | ||
| 165 | + #{MsgtoneDisplay} | ||
| 166 | + </div> | ||
| 167 | + </div> | ||
| 168 | + </div> | ||
| 169 | + </div> | ||
| 170 | + </div> | ||
| 171 | +</div> | ||
| 172 | \ No newline at end of file |
email/confirm-delete.patch
(0 / 13)
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js b/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 2 | index 74a2327..a3a8f6b 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 5 | @@ -53,7 +53,7 @@ var ListAssistant = Class.create(App.Scene, { | ||
| 6 | itemTemplate: 'list/email_entry', | ||
| 7 | itemsCallback: this.dataSource.updateOffsetAndLimit.bind(this.dataSource), | ||
| 8 | swipeToDelete: true, | ||
| 9 | - autoconfirmDelete: true, | ||
| 10 | + autoconfirmDelete: false, | ||
| 11 | uniquenessProperty: 'id', | ||
| 12 | dividerTemplate: 'list/date_separator', | ||
| 13 | dividerFunction: function(email) { return email.dateCategory; } |
email/email-confirm-delete.patch
(13 / 0)
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js b/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 2 | index 74a2327..a3a8f6b 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 5 | @@ -53,7 +53,7 @@ var ListAssistant = Class.create(App.Scene, { | ||
| 6 | itemTemplate: 'list/email_entry', | ||
| 7 | itemsCallback: this.dataSource.updateOffsetAndLimit.bind(this.dataSource), | ||
| 8 | swipeToDelete: true, | ||
| 9 | - autoconfirmDelete: true, | ||
| 10 | + autoconfirmDelete: false, | ||
| 11 | uniquenessProperty: 'id', | ||
| 12 | dividerTemplate: 'list/date_separator', | ||
| 13 | dividerFunction: function(email) { return email.dateCategory; } |
|   | |||
| 1 | Index: /usr/palm/applications/com.palm.app.email/app/controllers/accounts-assistant.js | ||
| 2 | =================================================================== | ||
| 3 | --- .orig/usr/palm/applications/com.palm.app.email/app/controllers/accounts-assistant.js | ||
| 4 | +++ /usr/palm/applications/com.palm.app.email/app/controllers/accounts-assistant.js | ||
| 5 | @@ -55,6 +55,8 @@ var AccountsAssistant = Class.create(App | ||
| 6 | EmailAppDepot.depot.isShowFavorites(AccountsAssistant.kFavoriteFoldersAccountID, this.depotGetFavExpanded.bind(this)); | ||
| 7 | |||
| 8 | this.controller.listen(this.controller.sceneElement, Mojo.Event.keypress, this.keypressHandler.bind(this)); | ||
| 9 | + | ||
| 10 | + this.controller.window.PalmSystem.setWindowOrientation("free"); | ||
| 11 | |||
| 12 | //set up account folder's search | ||
| 13 | this.folderFilterField = this.controller.get('account_folders_filter'); | ||
| 14 | @@ -120,8 +122,8 @@ var AccountsAssistant = Class.create(App | ||
| 15 | keypressHandler: function(e) { | ||
| 16 | this.orientationString += String.fromCharCode(e.originalEvent.charCode); | ||
| 17 | Mojo.Log.info(this.orientationString); | ||
| 18 | - if (this.orientationString.length === 12) { | ||
| 19 | - if (this.orientationString === "RocknRollHax") { | ||
| 20 | + if (this.orientationString.length === 4) { | ||
| 21 | + if (this.orientationString === "wide") { | ||
| 22 | Mojo.Log.info("Let's rock and roll"); | ||
| 23 | var targetWindow = this.controller.window; | ||
| 24 | if (targetWindow.PalmSystem.setWindowOrientation) { | ||
| 25 | Index: /usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js | ||
| 26 | =================================================================== | ||
| 27 | --- .orig/usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js | ||
| 28 | +++ /usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js | ||
| 29 | @@ -186,6 +186,8 @@ var ComposeAssistant = Class.create({ | ||
| 30 | |||
| 31 | // Delayed a little, since we want the header part of render as quickly as possible | ||
| 32 | ComposeAssistant.onLoad.defer(this.controller, this.email); | ||
| 33 | + | ||
| 34 | + this.controller.window.PalmSystem.setWindowOrientation("free"); | ||
| 35 | }, | ||
| 36 | |||
| 37 | cleanup: function() { | ||
| 38 | Index: /usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 39 | =================================================================== | ||
| 40 | --- .orig/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 41 | +++ /usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 42 | @@ -38,7 +38,8 @@ var ListAssistant = Class.create(App.Sce | ||
| 43 | {label:$L('Update'), icon:'sync', command:'sync'} | ||
| 44 | ]}; | ||
| 45 | this.controller.setupWidget(Mojo.Menu.commandMenu, undefined, this.cmdMenuModel); | ||
| 46 | - | ||
| 47 | + | ||
| 48 | + this.controller.window.PalmSystem.setWindowOrientation("free"); | ||
| 49 | }, | ||
| 50 | |||
| 51 | // NOTE: this is called by app_scene's _setup function |
email/email-read-delete-all.patch
(139 / 0)
|   | |||
| 1 | Adds delete all and read buttons to email folders | ||
| 2 | Index: /usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 3 | =================================================================== | ||
| 4 | --- .orig/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 5 | +++ /usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 6 | @@ -33,6 +33,8 @@ var ListAssistant = Class.create(App.Sce | ||
| 7 | visible:true, | ||
| 8 | items: [ | ||
| 9 | {label:$L('Compose'), icon:'compose', command:'compose'}, | ||
| 10 | + {label:$L('Delete All'), icon:'delete', command:'deleteall'}, | ||
| 11 | + {label:$L('All Read'), icon:'priority', command:'readall'}, | ||
| 12 | {}, | ||
| 13 | {label:$L('Update'), icon:'sync', command:'sync'} | ||
| 14 | ]}; | ||
| 15 | @@ -166,6 +168,14 @@ var ListAssistant = Class.create(App.Sce | ||
| 16 | case 'sync': | ||
| 17 | this.handleSyncFolder(); | ||
| 18 | break; | ||
| 19 | + | ||
| 20 | + case 'deleteall': | ||
| 21 | + this.handleDeleteAll(); | ||
| 22 | + break; | ||
| 23 | + | ||
| 24 | + case 'readall': | ||
| 25 | + this.handleReadAll(); | ||
| 26 | + break; | ||
| 27 | |||
| 28 | case Mojo.Menu.prefsCmd: | ||
| 29 | MenuController.showPrefs(this.controller.stageController); | ||
| 30 | @@ -182,6 +192,109 @@ var ListAssistant = Class.create(App.Sce | ||
| 31 | event.stopPropagation(); | ||
| 32 | } | ||
| 33 | }, | ||
| 34 | + | ||
| 35 | + handleDeleteAllResponse: function (event) { | ||
| 36 | + this.deleteAll(); | ||
| 37 | + }, | ||
| 38 | + | ||
| 39 | + deleteAll: function(){ | ||
| 40 | + var count = this.emailListElement.mojo.getLength(); | ||
| 41 | + var id; | ||
| 42 | + if(count > 0) | ||
| 43 | + { | ||
| 44 | + var item = this.emailListElement.mojo.getNodeByIndex(0); | ||
| 45 | + if(item !== undefined) | ||
| 46 | + { | ||
| 47 | + id = item.id; | ||
| 48 | + if(id) | ||
| 49 | + { | ||
| 50 | + this.controller.serviceRequest(Email.identifier, { | ||
| 51 | + method: 'setDeleted', | ||
| 52 | + parameters: {'message':id, 'value': true }, | ||
| 53 | + onSuccess: this.handleDeleteAllResponse.bind(this), | ||
| 54 | + onFailure: this.handleDeleteAllResponse.bind(this) | ||
| 55 | + }); | ||
| 56 | + } | ||
| 57 | + } | ||
| 58 | + else | ||
| 59 | + { | ||
| 60 | + this.deleteAll(); | ||
| 61 | + } | ||
| 62 | + } | ||
| 63 | + }, | ||
| 64 | + | ||
| 65 | + handleDeleteAll: function (event) { | ||
| 66 | + var totalCount = 0; | ||
| 67 | + totalCount = this.emailListElement.mojo.getLength(); | ||
| 68 | + if (totalCount > 0) { | ||
| 69 | + this.controller.showAlertDialog({ | ||
| 70 | + onChoose: function(value) { | ||
| 71 | + if(value == 'yes') { | ||
| 72 | + this.deleteAll(); | ||
| 73 | + } | ||
| 74 | + }, | ||
| 75 | + title: '<b>' + $L('Delete All') + '</b>', | ||
| 76 | + message: $L('Are you sure you want to delte all ') + "<b>" + totalCount + "</b>" + $L(' items in this folder?'), | ||
| 77 | + choices: [ | ||
| 78 | + {label:$L('Yes'), value:'yes', type:'affirmative'}, | ||
| 79 | + {label:$L('No'), value:'no', type:'alert'} | ||
| 80 | + ] | ||
| 81 | + }); | ||
| 82 | + } | ||
| 83 | + }, | ||
| 84 | + | ||
| 85 | + handleReadAllResponse: function (event) { | ||
| 86 | + }, | ||
| 87 | + | ||
| 88 | + readAll: function(tleft){ | ||
| 89 | + var count = this.emailListElement.mojo.getLength(); | ||
| 90 | + var id; | ||
| 91 | + while(tleft > 0) | ||
| 92 | + { | ||
| 93 | + var item = this.emailListElement.mojo.getNodeByIndex((tleft - 1)); | ||
| 94 | + if(item !== undefined) | ||
| 95 | + { | ||
| 96 | + id = item.id; | ||
| 97 | + if(id) | ||
| 98 | + { | ||
| 99 | + this.controller.serviceRequest(Email.identifier, { | ||
| 100 | + method: 'setRead', | ||
| 101 | + parameters: {'message':id, 'value': true }, | ||
| 102 | + onSuccess: this.handleReadAllResponse.bind(this), | ||
| 103 | + onFailure: this.handleReadAllResponse.bind(this) | ||
| 104 | + }); | ||
| 105 | + } | ||
| 106 | + tleft = tleft - 1; | ||
| 107 | + } | ||
| 108 | + else | ||
| 109 | + { | ||
| 110 | + tleft = tleft - 1; | ||
| 111 | + } | ||
| 112 | + } | ||
| 113 | + }, | ||
| 114 | + | ||
| 115 | + | ||
| 116 | + handleReadAll: function (event) { | ||
| 117 | + var totalCount = 0; | ||
| 118 | + totalCount = this.emailListElement.mojo.getLength(); | ||
| 119 | + if (totalCount > 0) { | ||
| 120 | + this.controller.showAlertDialog({ | ||
| 121 | + onChoose: function(value) { | ||
| 122 | + if(value == 'yes') { | ||
| 123 | + var tleft = totalCount; | ||
| 124 | + this.readAll(tleft); | ||
| 125 | + } | ||
| 126 | + }, | ||
| 127 | + title: '<b>' + $L('All Read') + '</b>', | ||
| 128 | + message: $L('Are you sure you want to mark ') + "<b>" + totalCount + "</b>" + $L(' items in this folder read?'), | ||
| 129 | + choices: [ | ||
| 130 | + {label:$L('Yes'), value:'yes', type:'affirmative'}, | ||
| 131 | + {label:$L('No'), value:'no', type:'alert'} | ||
| 132 | + ] | ||
| 133 | + }); | ||
| 134 | + } | ||
| 135 | + }, | ||
| 136 | + | ||
| 137 | |||
| 138 | handleSend: function() { | ||
| 139 | MenuController.showComposeView(null, this.folderObj.login); |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.email/app/models/Email.js b/usr/palm/applications/com.palm.app.email/app/models/Email.js | ||
| 2 | index 5063cd5..ef728ed 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.email/app/models/Email.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.email/app/models/Email.js | ||
| 5 | @@ -458,7 +458,7 @@ Email.setReplied = function(messageId, value) { | ||
| 6 | } | ||
| 7 | |||
| 8 | Email.kSignaturePlaceholder = "<span style='font-family:Prelude, Verdana, san-serif;'><br><br></span><span id='signature'></span>"; | ||
| 9 | -Email.kReplyForwardSetupElems = "<span style='color:navy'>" + Email.kSignaturePlaceholder + "<hr align='left' style='width:75%'/>"; | ||
| 10 | +Email.kReplyForwardSetupElems = "<span style='color:black'>" + Email.kSignaturePlaceholder + "<hr align='left' style='width:75%'/>"; | ||
| 11 | |||
| 12 | Email.kSubjectPrefixRe = $L("Re: "); | ||
| 13 | Email.kSubjectPrefixFw = $L("Fw: "); |
email/email-update-bug-fix.patch
(20 / 0)
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.email/app/models/EmailAppDepot.js b/usr/palm/applications/com.palm.app.email/app/models/EmailAppDepot.js | ||
| 2 | index b2b1cd7..57a4157 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.email/app/models/EmailAppDepot.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.email/app/models/EmailAppDepot.js | ||
| 5 | @@ -47,6 +47,7 @@ var EmailAppDepot = Class.create({ | ||
| 6 | if (accounts.list !== undefined && this.numAccounts !== accounts.list.length) { | ||
| 7 | // look for accounts that have been removed | ||
| 8 | var removedAccounts = []; | ||
| 9 | + if (this.accounts.list) { | ||
| 10 | this.accounts.list.each(function(existingAcct){ | ||
| 11 | var stillExists = false; | ||
| 12 | accounts.list.each(function(newAcct) { | ||
| 13 | @@ -59,6 +60,7 @@ var EmailAppDepot = Class.create({ | ||
| 14 | removedAccounts.push(existingAccnt); | ||
| 15 | } | ||
| 16 | }); | ||
| 17 | + } | ||
| 18 | if (removedAccounts.length > 0) { | ||
| 19 | // delete the security policy that are associated with the deleted | ||
| 20 | // accounts. |
|   | |||
| 1 | Index: /usr/palm/applications/com.palm.app.email/app/controllers/accounts-assistant.js | ||
| 2 | =================================================================== | ||
| 3 | --- .orig/usr/palm/applications/com.palm.app.email/app/controllers/accounts-assistant.js | ||
| 4 | +++ /usr/palm/applications/com.palm.app.email/app/controllers/accounts-assistant.js | ||
| 5 | @@ -55,6 +55,8 @@ var AccountsAssistant = Class.create(App | ||
| 6 | EmailAppDepot.depot.isShowFavorites(AccountsAssistant.kFavoriteFoldersAccountID, this.depotGetFavExpanded.bind(this)); | ||
| 7 | |||
| 8 | this.controller.listen(this.controller.sceneElement, Mojo.Event.keypress, this.keypressHandler.bind(this)); | ||
| 9 | + | ||
| 10 | + this.controller.window.PalmSystem.setWindowOrientation("free"); | ||
| 11 | |||
| 12 | //set up account folder's search | ||
| 13 | this.folderFilterField = this.controller.get('account_folders_filter'); | ||
| 14 | @@ -120,8 +122,8 @@ var AccountsAssistant = Class.create(App | ||
| 15 | keypressHandler: function(e) { | ||
| 16 | this.orientationString += String.fromCharCode(e.originalEvent.charCode); | ||
| 17 | Mojo.Log.info(this.orientationString); | ||
| 18 | - if (this.orientationString.length === 12) { | ||
| 19 | - if (this.orientationString === "RocknRollHax") { | ||
| 20 | + if (this.orientationString.length === 4) { | ||
| 21 | + if (this.orientationString === "wide") { | ||
| 22 | Mojo.Log.info("Let's rock and roll"); | ||
| 23 | var targetWindow = this.controller.window; | ||
| 24 | if (targetWindow.PalmSystem.setWindowOrientation) { | ||
| 25 | Index: /usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js | ||
| 26 | =================================================================== | ||
| 27 | --- .orig/usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js | ||
| 28 | +++ /usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js | ||
| 29 | @@ -186,6 +186,8 @@ var ComposeAssistant = Class.create({ | ||
| 30 | |||
| 31 | // Delayed a little, since we want the header part of render as quickly as possible | ||
| 32 | ComposeAssistant.onLoad.defer(this.controller, this.email); | ||
| 33 | + | ||
| 34 | + this.controller.window.PalmSystem.setWindowOrientation("free"); | ||
| 35 | }, | ||
| 36 | |||
| 37 | cleanup: function() { | ||
| 38 | Index: /usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 39 | =================================================================== | ||
| 40 | --- .orig/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 41 | +++ /usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 42 | @@ -38,7 +38,8 @@ var ListAssistant = Class.create(App.Sce | ||
| 43 | {label:$L('Update'), icon:'sync', command:'sync'} | ||
| 44 | ]}; | ||
| 45 | this.controller.setupWidget(Mojo.Menu.commandMenu, undefined, this.cmdMenuModel); | ||
| 46 | - | ||
| 47 | + | ||
| 48 | + this.controller.window.PalmSystem.setWindowOrientation("free"); | ||
| 49 | }, | ||
| 50 | |||
| 51 | // NOTE: this is called by app_scene's _setup function |
|   | |||
| 1 | Patches the email application to prompt for installation. | ||
| 2 | |||
| 3 | From: Rod Whitby <rod@whitby.id.au> | ||
| 4 | |||
| 5 | Tested-On: 1.1 | ||
| 6 | |||
| 7 | It involves modifying/replacing the handleLinkClicked function. | ||
| 8 | |||
| 9 | http://predev.wikidot.com/email-app-patch-to-prompt-for-ipk-installation | ||
| 10 | |||
| 11 | Patch by simplyflipflops. | ||
| 12 | --- | ||
| 13 | |||
| 14 | .../app/controllers/message-assistant.js | 40 +++++++++++++++++--- | ||
| 15 | 1 files changed, 34 insertions(+), 6 deletions(-) | ||
| 16 | |||
| 17 | |||
| 18 | Index: /usr/palm/applications/com.palm.app.email/app/controllers/message-assistant.js | ||
| 19 | =================================================================== | ||
| 20 | --- .orig/usr/palm/applications/com.palm.app.email/app/controllers/message-assistant.js | ||
| 21 | +++ /usr/palm/applications/com.palm.app.email/app/controllers/message-assistant.js | ||
| 22 | @@ -1041,12 +1041,40 @@ var MessageAssistant = Class.create({ | ||
| 23 | * User clicked on a hyperlink. | ||
| 24 | */ | ||
| 25 | handleLinkClicked: function(event) { | ||
| 26 | - Mojo.Log.info("handleLinkClicked %s", event.url); | ||
| 27 | - this.controller.serviceRequest('palm://com.palm.applicationManager', | ||
| 28 | - { | ||
| 29 | - method: 'open', | ||
| 30 | - parameters: {target: event.url} | ||
| 31 | - }); | ||
| 32 | + Mojo.Log.info("handleLinkClicked %s", event.url); | ||
| 33 | + | ||
| 34 | + var extensionIndex2 = event.url.lastIndexOf('.'); | ||
| 35 | + if (extensionIndex2 > 0 ){ | ||
| 36 | + var extensionTemp = event.url.substring(extensionIndex2 + 1).toLowerCase(); | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + if (extensionTemp === "ipk") { | ||
| 40 | + this.controller.showAlertDialog({ | ||
| 41 | + onChoose: function(value) { | ||
| 42 | + if (value===true) { | ||
| 43 | + this.controller.serviceRequest('palm://com.palm.applicationManager', | ||
| 44 | + { | ||
| 45 | + method: 'open', | ||
| 46 | + parameters: {target: event.url} | ||
| 47 | + }); | ||
| 48 | + } | ||
| 49 | + }, | ||
| 50 | + | ||
| 51 | + message: $L("Found Palm Application Bundle IPK. You should only install packages from trusted sources."), | ||
| 52 | + | ||
| 53 | + choices: | ||
| 54 | + [ | ||
| 55 | + {label:$L('I Trust This Source - Install'), value: true, type:'affirmative'}, | ||
| 56 | + {label:$L('Cancel Install'), value: false, type:'alert'} | ||
| 57 | + ] | ||
| 58 | + }); | ||
| 59 | + } else { | ||
| 60 | + this.controller.serviceRequest('palm://com.palm.applicationManager', | ||
| 61 | + { | ||
| 62 | + method: 'open', | ||
| 63 | + parameters: {target: event.url} | ||
| 64 | + }); | ||
| 65 | + } | ||
| 66 | }, | ||
| 67 | |||
| 68 | /** |
email/readalldelall.patch
(0 / 139)
|   | |||
| 1 | Adds delete all and read buttons to email folders | ||
| 2 | Index: /usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 3 | =================================================================== | ||
| 4 | --- .orig/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 5 | +++ /usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 6 | @@ -33,6 +33,8 @@ var ListAssistant = Class.create(App.Sce | ||
| 7 | visible:true, | ||
| 8 | items: [ | ||
| 9 | {label:$L('Compose'), icon:'compose', command:'compose'}, | ||
| 10 | + {label:$L('Delete All'), icon:'delete', command:'deleteall'}, | ||
| 11 | + {label:$L('All Read'), icon:'priority', command:'readall'}, | ||
| 12 | {}, | ||
| 13 | {label:$L('Update'), icon:'sync', command:'sync'} | ||
| 14 | ]}; | ||
| 15 | @@ -166,6 +168,14 @@ var ListAssistant = Class.create(App.Sce | ||
| 16 | case 'sync': | ||
| 17 | this.handleSyncFolder(); | ||
| 18 | break; | ||
| 19 | + | ||
| 20 | + case 'deleteall': | ||
| 21 | + this.handleDeleteAll(); | ||
| 22 | + break; | ||
| 23 | + | ||
| 24 | + case 'readall': | ||
| 25 | + this.handleReadAll(); | ||
| 26 | + break; | ||
| 27 | |||
| 28 | case Mojo.Menu.prefsCmd: | ||
| 29 | MenuController.showPrefs(this.controller.stageController); | ||
| 30 | @@ -182,6 +192,109 @@ var ListAssistant = Class.create(App.Sce | ||
| 31 | event.stopPropagation(); | ||
| 32 | } | ||
| 33 | }, | ||
| 34 | + | ||
| 35 | + handleDeleteAllResponse: function (event) { | ||
| 36 | + this.deleteAll(); | ||
| 37 | + }, | ||
| 38 | + | ||
| 39 | + deleteAll: function(){ | ||
| 40 | + var count = this.emailListElement.mojo.getLength(); | ||
| 41 | + var id; | ||
| 42 | + if(count > 0) | ||
| 43 | + { | ||
| 44 | + var item = this.emailListElement.mojo.getNodeByIndex(0); | ||
| 45 | + if(item !== undefined) | ||
| 46 | + { | ||
| 47 | + id = item.id; | ||
| 48 | + if(id) | ||
| 49 | + { | ||
| 50 | + this.controller.serviceRequest(Email.identifier, { | ||
| 51 | + method: 'setDeleted', | ||
| 52 | + parameters: {'message':id, 'value': true }, | ||
| 53 | + onSuccess: this.handleDeleteAllResponse.bind(this), | ||
| 54 | + onFailure: this.handleDeleteAllResponse.bind(this) | ||
| 55 | + }); | ||
| 56 | + } | ||
| 57 | + } | ||
| 58 | + else | ||
| 59 | + { | ||
| 60 | + this.deleteAll(); | ||
| 61 | + } | ||
| 62 | + } | ||
| 63 | + }, | ||
| 64 | + | ||
| 65 | + handleDeleteAll: function (event) { | ||
| 66 | + var totalCount = 0; | ||
| 67 | + totalCount = this.emailListElement.mojo.getLength(); | ||
| 68 | + if (totalCount > 0) { | ||
| 69 | + this.controller.showAlertDialog({ | ||
| 70 | + onChoose: function(value) { | ||
| 71 | + if(value == 'yes') { | ||
| 72 | + this.deleteAll(); | ||
| 73 | + } | ||
| 74 | + }, | ||
| 75 | + title: '<b>' + $L('Delete All') + '</b>', | ||
| 76 | + message: $L('Are you sure you want to delte all ') + "<b>" + totalCount + "</b>" + $L(' items in this folder?'), | ||
| 77 | + choices: [ | ||
| 78 | + {label:$L('Yes'), value:'yes', type:'affirmative'}, | ||
| 79 | + {label:$L('No'), value:'no', type:'alert'} | ||
| 80 | + ] | ||
| 81 | + }); | ||
| 82 | + } | ||
| 83 | + }, | ||
| 84 | + | ||
| 85 | + handleReadAllResponse: function (event) { | ||
| 86 | + }, | ||
| 87 | + | ||
| 88 | + readAll: function(tleft){ | ||
| 89 | + var count = this.emailListElement.mojo.getLength(); | ||
| 90 | + var id; | ||
| 91 | + while(tleft > 0) | ||
| 92 | + { | ||
| 93 | + var item = this.emailListElement.mojo.getNodeByIndex((tleft - 1)); | ||
| 94 | + if(item !== undefined) | ||
| 95 | + { | ||
| 96 | + id = item.id; | ||
| 97 | + if(id) | ||
| 98 | + { | ||
| 99 | + this.controller.serviceRequest(Email.identifier, { | ||
| 100 | + method: 'setRead', | ||
| 101 | + parameters: {'message':id, 'value': true }, | ||
| 102 | + onSuccess: this.handleReadAllResponse.bind(this), | ||
| 103 | + onFailure: this.handleReadAllResponse.bind(this) | ||
| 104 | + }); | ||
| 105 | + } | ||
| 106 | + tleft = tleft - 1; | ||
| 107 | + } | ||
| 108 | + else | ||
| 109 | + { | ||
| 110 | + tleft = tleft - 1; | ||
| 111 | + } | ||
| 112 | + } | ||
| 113 | + }, | ||
| 114 | + | ||
| 115 | + | ||
| 116 | + handleReadAll: function (event) { | ||
| 117 | + var totalCount = 0; | ||
| 118 | + totalCount = this.emailListElement.mojo.getLength(); | ||
| 119 | + if (totalCount > 0) { | ||
| 120 | + this.controller.showAlertDialog({ | ||
| 121 | + onChoose: function(value) { | ||
| 122 | + if(value == 'yes') { | ||
| 123 | + var tleft = totalCount; | ||
| 124 | + this.readAll(tleft); | ||
| 125 | + } | ||
| 126 | + }, | ||
| 127 | + title: '<b>' + $L('All Read') + '</b>', | ||
| 128 | + message: $L('Are you sure you want to mark ') + "<b>" + totalCount + "</b>" + $L(' items in this folder read?'), | ||
| 129 | + choices: [ | ||
| 130 | + {label:$L('Yes'), value:'yes', type:'affirmative'}, | ||
| 131 | + {label:$L('No'), value:'no', type:'alert'} | ||
| 132 | + ] | ||
| 133 | + }); | ||
| 134 | + } | ||
| 135 | + }, | ||
| 136 | + | ||
| 137 | |||
| 138 | handleSend: function() { | ||
| 139 | MenuController.showComposeView(null, this.folderObj.login); |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.email/app/models/Email.js b/usr/palm/applications/com.palm.app.email/app/models/Email.js | ||
| 2 | index 5063cd5..ef728ed 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.email/app/models/Email.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.email/app/models/Email.js | ||
| 5 | @@ -458,7 +458,7 @@ Email.setReplied = function(messageId, value) { | ||
| 6 | } | ||
| 7 | |||
| 8 | Email.kSignaturePlaceholder = "<span style='font-family:Prelude, Verdana, san-serif;'><br><br></span><span id='signature'></span>"; | ||
| 9 | -Email.kReplyForwardSetupElems = "<span style='color:navy'>" + Email.kSignaturePlaceholder + "<hr align='left' style='width:75%'/>"; | ||
| 10 | +Email.kReplyForwardSetupElems = "<span style='color:black'>" + Email.kSignaturePlaceholder + "<hr align='left' style='width:75%'/>"; | ||
| 11 | |||
| 12 | Email.kSubjectPrefixRe = $L("Re: "); | ||
| 13 | Email.kSubjectPrefixFw = $L("Fw: "); |
email/update-bug-fix.patch
(0 / 20)
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.email/app/models/EmailAppDepot.js b/usr/palm/applications/com.palm.app.email/app/models/EmailAppDepot.js | ||
| 2 | index b2b1cd7..57a4157 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.email/app/models/EmailAppDepot.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.email/app/models/EmailAppDepot.js | ||
| 5 | @@ -47,6 +47,7 @@ var EmailAppDepot = Class.create({ | ||
| 6 | if (accounts.list !== undefined && this.numAccounts !== accounts.list.length) { | ||
| 7 | // look for accounts that have been removed | ||
| 8 | var removedAccounts = []; | ||
| 9 | + if (this.accounts.list) { | ||
| 10 | this.accounts.list.each(function(existingAcct){ | ||
| 11 | var stillExists = false; | ||
| 12 | accounts.list.each(function(newAcct) { | ||
| 13 | @@ -59,6 +60,7 @@ var EmailAppDepot = Class.create({ | ||
| 14 | removedAccounts.push(existingAccnt); | ||
| 15 | } | ||
| 16 | }); | ||
| 17 | + } | ||
| 18 | if (removedAccounts.length > 0) { | ||
| 19 | // delete the security policy that are associated with the deleted | ||
| 20 | // accounts. |
|   | |||
| 1 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/da_dk/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/da_dk/alternatechars_table.json | ||
| 2 | index 79e8589..5ee1935 100644 | ||
| 3 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/da_dk/alternatechars_table.json | ||
| 4 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/da_dk/alternatechars_table.json | ||
| 5 | @@ -1,28 +1,28 @@ | ||
| 6 | [ | ||
| 7 | - {"keyCode": 65, "letter":"a", "list": ["æ","å","à","á","â","ä","ã","Æ","Å","À","Á","Â","Ä","Ã","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 8 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 9 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 10 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 11 | - {"keyCode": 68, "letter":"d", "list": ["†","‡","ð","Ð"]}, | ||
| 12 | - {"keyCode": 69, "letter":"e", "list": ["è","é","ê","ë","ē","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 13 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 14 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 15 | + {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 16 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 17 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 18 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 19 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 20 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 21 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 22 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 23 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 24 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 25 | - {"keyCode": 79, "letter":"o", "list": ["ò","ó","ô","œ","ö","ø","õ","Ò","Ó","Ô","Œ","Ö","Ø","Õ","º","“","”","„","<",">","«","»"]}, | ||
| 26 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 27 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 28 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 29 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 30 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 31 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 32 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 33 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 34 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 35 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 36 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 37 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 38 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 39 | + {"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"]}, | ||
| 40 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 41 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 42 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 43 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/de_ch/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/de_ch/alternatechars_table.json | ||
| 44 | index 907a312..5ee1935 100644 | ||
| 45 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/de_ch/alternatechars_table.json | ||
| 46 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/de_ch/alternatechars_table.json | ||
| 47 | @@ -1,28 +1,28 @@ | ||
| 48 | [ | ||
| 49 | - {"keyCode": 65, "letter":"a", "list": ["ä","à","â","æ","á","å","ã","Ä","À","Â","Æ","Á","Å","Ã","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 50 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 51 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 52 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 53 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 54 | - {"keyCode": 69, "letter":"e", "list": ["é","è","ê","ë","ē","É","È","Ê","Ë","€","¹","¼","½"]}, | ||
| 55 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 56 | - {"keyCode": 73, "letter":"i", "list": ["î","ï","ì","í","Î","Ï","Ì","Í","÷","‰"]}, | ||
| 57 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 58 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 59 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 60 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 61 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 62 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 63 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 64 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 65 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 66 | - {"keyCode": 79, "letter":"o", "list": ["ö","ô","œ","ò","ó","õ","ø","Ö","Ô","Œ","Ò","Ó","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 67 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 68 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 69 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 70 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 71 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 72 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 73 | - {"keyCode": 85, "letter":"u", "list": ["ü","ù","û","ú","Ü","Ù","Û","Ú","[","]","{","}","<",">","«","»"]}, | ||
| 74 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 75 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 76 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 77 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 78 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 79 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 80 | + {"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"]}, | ||
| 81 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 82 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 83 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 84 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/de_de/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/de_de/alternatechars_table.json | ||
| 85 | index 907a312..5ee1935 100644 | ||
| 86 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/de_de/alternatechars_table.json | ||
| 87 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/de_de/alternatechars_table.json | ||
| 88 | @@ -1,28 +1,28 @@ | ||
| 89 | [ | ||
| 90 | - {"keyCode": 65, "letter":"a", "list": ["ä","à","â","æ","á","å","ã","Ä","À","Â","Æ","Á","Å","Ã","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 91 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 92 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 93 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 94 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 95 | - {"keyCode": 69, "letter":"e", "list": ["é","è","ê","ë","ē","É","È","Ê","Ë","€","¹","¼","½"]}, | ||
| 96 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 97 | - {"keyCode": 73, "letter":"i", "list": ["î","ï","ì","í","Î","Ï","Ì","Í","÷","‰"]}, | ||
| 98 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 99 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 100 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 101 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 102 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 103 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 104 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 105 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 106 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 107 | - {"keyCode": 79, "letter":"o", "list": ["ö","ô","œ","ò","ó","õ","ø","Ö","Ô","Œ","Ò","Ó","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 108 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 109 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 110 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 111 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 112 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 113 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 114 | - {"keyCode": 85, "letter":"u", "list": ["ü","ù","û","ú","Ü","Ù","Û","Ú","[","]","{","}","<",">","«","»"]}, | ||
| 115 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 116 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 117 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 118 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 119 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 120 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 121 | + {"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"]}, | ||
| 122 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 123 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 124 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 125 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_ca/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_ca/alternatechars_table.json | ||
| 126 | index 15a459e..5ee1935 100644 | ||
| 127 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_ca/alternatechars_table.json | ||
| 128 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_ca/alternatechars_table.json | ||
| 129 | @@ -7,7 +7,7 @@ | ||
| 130 | {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 131 | {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 132 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 133 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 134 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 135 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 136 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 137 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 138 | @@ -22,7 +22,7 @@ | ||
| 139 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 140 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 141 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 142 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 143 | + {"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"]}, | ||
| 144 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 145 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 146 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 147 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_gb/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_gb/alternatechars_table.json | ||
| 148 | index 15a459e..5ee1935 100644 | ||
| 149 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_gb/alternatechars_table.json | ||
| 150 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_gb/alternatechars_table.json | ||
| 151 | @@ -7,7 +7,7 @@ | ||
| 152 | {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 153 | {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 154 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 155 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 156 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 157 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 158 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 159 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 160 | @@ -22,7 +22,7 @@ | ||
| 161 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 162 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 163 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 164 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 165 | + {"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"]}, | ||
| 166 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 167 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 168 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 169 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_ie/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_ie/alternatechars_table.json | ||
| 170 | index 15a459e..5ee1935 100644 | ||
| 171 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_ie/alternatechars_table.json | ||
| 172 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_ie/alternatechars_table.json | ||
| 173 | @@ -7,7 +7,7 @@ | ||
| 174 | {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 175 | {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 176 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 177 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 178 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 179 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 180 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 181 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 182 | @@ -22,7 +22,7 @@ | ||
| 183 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 184 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 185 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 186 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 187 | + {"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"]}, | ||
| 188 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 189 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 190 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 191 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_pl/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_pl/alternatechars_table.json | ||
| 192 | index 136a5e5..5ee1935 100644 | ||
| 193 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_pl/alternatechars_table.json | ||
| 194 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_pl/alternatechars_table.json | ||
| 195 | @@ -1,28 +1,28 @@ | ||
| 196 | [ | ||
| 197 | - {"keyCode": 65, "letter":"a", "list": ["à","á","â","ä","å","ã","æ","Ą","À","Á","Â","Ä","Å","Ã","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 198 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 199 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 200 | - {"keyCode": 67, "letter":"c", "list": ["ć","ç","Ć","Ç","©","¢"]}, | ||
| 201 | + {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 202 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 203 | - {"keyCode": 69, "letter":"e", "list": ["ę","è","é","ê","ë","ē","Ę","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 204 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 205 | {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 206 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 207 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 208 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 209 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 210 | - {"keyCode": 76, "letter":"l", "list": ["ł","Ł","`","‘","’","‚","‛"]}, | ||
| 211 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 212 | + {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 213 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 214 | - {"keyCode": 78, "letter":"n", "list": ["ń","ñ","Ń","Ñ","¿"]}, | ||
| 215 | - {"keyCode": 79, "letter":"o", "list": ["ó","ò","ô","œ","ö","ø","õ","Ò","Ó","Ô","Œ","Ö","Ø","Õ","º","“","”","„","<",">","«","»"]}, | ||
| 216 | + {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 217 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 218 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 219 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 220 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 221 | - {"keyCode": 83, "letter":"s", "list": ["ś","Ś","š","Š","ß","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 222 | + {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 223 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 224 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 225 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 226 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 227 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 228 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 229 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 230 | - {"keyCode": 90, "letter":"z", "list": ["ż","ź","Ż","Ź","•"]}, | ||
| 231 | + {"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"]}, | ||
| 232 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 233 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 234 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 235 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_us/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_us/alternatechars_table.json | ||
| 236 | index 15a459e..5ee1935 100644 | ||
| 237 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_us/alternatechars_table.json | ||
| 238 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_us/alternatechars_table.json | ||
| 239 | @@ -7,7 +7,7 @@ | ||
| 240 | {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 241 | {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 242 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 243 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 244 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 245 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 246 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 247 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 248 | @@ -22,7 +22,7 @@ | ||
| 249 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 250 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 251 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 252 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 253 | + {"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"]}, | ||
| 254 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 255 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 256 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 257 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/es_es/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/es_es/alternatechars_table.json | ||
| 258 | index 5f00c53..5ee1935 100644 | ||
| 259 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/es_es/alternatechars_table.json | ||
| 260 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/es_es/alternatechars_table.json | ||
| 261 | @@ -1,28 +1,28 @@ | ||
| 262 | [ | ||
| 263 | - {"keyCode": 65, "letter":"a", "list": ["á","à","â","ã","ä","å","æ","Á","À","Â","Ã","Ä","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 264 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 265 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 266 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 267 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 268 | - {"keyCode": 69, "letter":"e", "list": ["é","è","ê","ë","ē","É","È","Ê","Ë","€","¹","¼","½"]}, | ||
| 269 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 270 | - {"keyCode": 73, "letter":"i", "list": ["í","ì","î","ï","Í","Ì","Î","Ï","÷","‰"]}, | ||
| 271 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 272 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 273 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 274 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 275 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 276 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 277 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 278 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 279 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 280 | - {"keyCode": 79, "letter":"o", "list": ["ó","ò","ô","œ","õ","ö","ø","Ò","Ó","Ô","Œ","Õ","Ö","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 281 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 282 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 283 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 284 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 285 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 286 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 287 | - {"keyCode": 85, "letter":"u", "list": ["ú","ü","ù","û","Ú","Ü","Ù","Û","[","]","{","}","<",">","«","»"]}, | ||
| 288 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 289 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 290 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 291 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 292 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 293 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 294 | + {"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"]}, | ||
| 295 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 296 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 297 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 298 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/es_mx/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/es_mx/alternatechars_table.json | ||
| 299 | index 5f00c53..5ee1935 100644 | ||
| 300 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/es_mx/alternatechars_table.json | ||
| 301 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/es_mx/alternatechars_table.json | ||
| 302 | @@ -1,28 +1,28 @@ | ||
| 303 | [ | ||
| 304 | - {"keyCode": 65, "letter":"a", "list": ["á","à","â","ã","ä","å","æ","Á","À","Â","Ã","Ä","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 305 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 306 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 307 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 308 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 309 | - {"keyCode": 69, "letter":"e", "list": ["é","è","ê","ë","ē","É","È","Ê","Ë","€","¹","¼","½"]}, | ||
| 310 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 311 | - {"keyCode": 73, "letter":"i", "list": ["í","ì","î","ï","Í","Ì","Î","Ï","÷","‰"]}, | ||
| 312 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 313 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 314 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 315 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 316 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 317 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 318 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 319 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 320 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 321 | - {"keyCode": 79, "letter":"o", "list": ["ó","ò","ô","œ","õ","ö","ø","Ò","Ó","Ô","Œ","Õ","Ö","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 322 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 323 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 324 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 325 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 326 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 327 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 328 | - {"keyCode": 85, "letter":"u", "list": ["ú","ü","ù","û","Ú","Ü","Ù","Û","[","]","{","}","<",">","«","»"]}, | ||
| 329 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 330 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 331 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 332 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 333 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 334 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 335 | + {"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"]}, | ||
| 336 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 337 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 338 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 339 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/es_us/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/es_us/alternatechars_table.json | ||
| 340 | index f5a1647..5ee1935 100644 | ||
| 341 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/es_us/alternatechars_table.json | ||
| 342 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/es_us/alternatechars_table.json | ||
| 343 | @@ -1,28 +1,28 @@ | ||
| 344 | [ | ||
| 345 | - {"keyCode": 65, "letter":"a", "list": ["á","à","â","ã","ä","å","æ","Á","À","Â","Ã","Ä","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 346 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 347 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 348 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 349 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 350 | - {"keyCode": 69, "letter":"e", "list": ["é","è","ê","ë","ē","É","È","Ê","Ë","€","¹","¼","½"]}, | ||
| 351 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 352 | {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 353 | - {"keyCode": 73, "letter":"i", "list": ["í","ì","î","ï","Í","Ì","Î","Ï","÷","‰"]}, | ||
| 354 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 355 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 356 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 357 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 358 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 359 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 360 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 361 | - {"keyCode": 79, "letter":"o", "list": ["ó","ò","ô","œ","õ","ö","ø","Ò","Ó","Ô","Œ","Õ","Ö","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 362 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 363 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 364 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 365 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 366 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 367 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 368 | - {"keyCode": 85, "letter":"u", "list": ["ú","ü","ù","û","Ú","Ü","Ù","Û","[","]","{","}","<",">","«","»"]}, | ||
| 369 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 370 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 371 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 372 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 373 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 374 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 375 | + {"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"]}, | ||
| 376 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 377 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 378 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 379 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/fi_fi/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/fi_fi/alternatechars_table.json | ||
| 380 | index 438cb83..5ee1935 100644 | ||
| 381 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/fi_fi/alternatechars_table.json | ||
| 382 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/fi_fi/alternatechars_table.json | ||
| 383 | @@ -1,28 +1,28 @@ | ||
| 384 | [ | ||
| 385 | - {"keyCode": 65, "letter":"a", "list": ["ä","å","à","á","â","ã","æ","Ä","Å","À","Á","Â","Ã","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 386 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 387 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 388 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 389 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 390 | - {"keyCode": 69, "letter":"e", "list": ["è","é","ê","ë","ē","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 391 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 392 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 393 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 394 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 395 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 396 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 397 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 398 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 399 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 400 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 401 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 402 | - {"keyCode": 79, "letter":"o", "list": ["ò","ó","ô","œ","ö","ø","õ","Ò","Ó","Ô","Œ","Ö","Ø","Õ","º","“","”","„","<",">","«","»"]}, | ||
| 403 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 404 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 405 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 406 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 407 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 408 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 409 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 410 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 411 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 412 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 413 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 414 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 415 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 416 | + {"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"]}, | ||
| 417 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 418 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 419 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 420 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_ca/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_ca/alternatechars_table.json | ||
| 421 | index adea40f..5ee1935 100644 | ||
| 422 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_ca/alternatechars_table.json | ||
| 423 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_ca/alternatechars_table.json | ||
| 424 | @@ -1,28 +1,28 @@ | ||
| 425 | [ | ||
| 426 | - {"keyCode": 65, "letter":"a", "list": ["à","â","ä","æ","á","å","ã","À","Â","Ä","Æ","Á","Å","Ã","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 427 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 428 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 429 | - {"keyCode": 67, "letter":"c", "list": ["ç","Ç","©","¢"]}, | ||
| 430 | + {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 431 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 432 | - {"keyCode": 69, "letter":"e", "list": ["é","è","ê","ë","ē","É","È","Ê","Ë","€","¹","¼","½"]}, | ||
| 433 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 434 | - {"keyCode": 73, "letter":"i", "list": ["î","ï","ì","í","Î","Ï","Ì","Í","÷","‰"]}, | ||
| 435 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 436 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 437 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 438 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 439 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 440 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 441 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 442 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 443 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 444 | - {"keyCode": 79, "letter":"o", "list": ["ô","œ","ö","ò","ó","õ","ø","Ô","Œ","Ö","Ò","Ó","Õ","Ø","º","«","»","“","”","„","<",">"]}, | ||
| 445 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 446 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 447 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 448 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 449 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 450 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 451 | - {"keyCode": 85, "letter":"u", "list": ["ù","û","ü","ú","Ù","Û","Ü","Ú","[","]","{","}","<",">","«","»"]}, | ||
| 452 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 453 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 454 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 455 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 456 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 457 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 458 | + {"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"]}, | ||
| 459 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 460 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 461 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 462 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_ch/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_ch/alternatechars_table.json | ||
| 463 | index adea40f..5ee1935 100644 | ||
| 464 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_ch/alternatechars_table.json | ||
| 465 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_ch/alternatechars_table.json | ||
| 466 | @@ -1,28 +1,28 @@ | ||
| 467 | [ | ||
| 468 | - {"keyCode": 65, "letter":"a", "list": ["à","â","ä","æ","á","å","ã","À","Â","Ä","Æ","Á","Å","Ã","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 469 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 470 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 471 | - {"keyCode": 67, "letter":"c", "list": ["ç","Ç","©","¢"]}, | ||
| 472 | + {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 473 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 474 | - {"keyCode": 69, "letter":"e", "list": ["é","è","ê","ë","ē","É","È","Ê","Ë","€","¹","¼","½"]}, | ||
| 475 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 476 | - {"keyCode": 73, "letter":"i", "list": ["î","ï","ì","í","Î","Ï","Ì","Í","÷","‰"]}, | ||
| 477 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 478 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 479 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 480 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 481 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 482 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 483 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 484 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 485 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 486 | - {"keyCode": 79, "letter":"o", "list": ["ô","œ","ö","ò","ó","õ","ø","Ô","Œ","Ö","Ò","Ó","Õ","Ø","º","«","»","“","”","„","<",">"]}, | ||
| 487 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 488 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 489 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 490 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 491 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 492 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 493 | - {"keyCode": 85, "letter":"u", "list": ["ù","û","ü","ú","Ù","Û","Ü","Ú","[","]","{","}","<",">","«","»"]}, | ||
| 494 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 495 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 496 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 497 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 498 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 499 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 500 | + {"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"]}, | ||
| 501 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 502 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 503 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 504 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_fr/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_fr/alternatechars_table.json | ||
| 505 | index adea40f..5ee1935 100644 | ||
| 506 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_fr/alternatechars_table.json | ||
| 507 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_fr/alternatechars_table.json | ||
| 508 | @@ -1,28 +1,28 @@ | ||
| 509 | [ | ||
| 510 | - {"keyCode": 65, "letter":"a", "list": ["à","â","ä","æ","á","å","ã","À","Â","Ä","Æ","Á","Å","Ã","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 511 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 512 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 513 | - {"keyCode": 67, "letter":"c", "list": ["ç","Ç","©","¢"]}, | ||
| 514 | + {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 515 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 516 | - {"keyCode": 69, "letter":"e", "list": ["é","è","ê","ë","ē","É","È","Ê","Ë","€","¹","¼","½"]}, | ||
| 517 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 518 | - {"keyCode": 73, "letter":"i", "list": ["î","ï","ì","í","Î","Ï","Ì","Í","÷","‰"]}, | ||
| 519 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 520 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 521 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 522 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 523 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 524 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 525 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 526 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 527 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 528 | - {"keyCode": 79, "letter":"o", "list": ["ô","œ","ö","ò","ó","õ","ø","Ô","Œ","Ö","Ò","Ó","Õ","Ø","º","«","»","“","”","„","<",">"]}, | ||
| 529 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 530 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 531 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 532 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 533 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 534 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 535 | - {"keyCode": 85, "letter":"u", "list": ["ù","û","ü","ú","Ù","Û","Ü","Ú","[","]","{","}","<",">","«","»"]}, | ||
| 536 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 537 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 538 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 539 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 540 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 541 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 542 | + {"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"]}, | ||
| 543 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 544 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 545 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 546 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/it_it/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/it_it/alternatechars_table.json | ||
| 547 | index a047ded..5ee1935 100644 | ||
| 548 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/it_it/alternatechars_table.json | ||
| 549 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/it_it/alternatechars_table.json | ||
| 550 | @@ -1,28 +1,28 @@ | ||
| 551 | [ | ||
| 552 | - {"keyCode": 65, "letter":"a", "list": ["à","á","â","ä","å","ã","æ","À","Á","Â","ÄÅ","Ã","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 553 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 554 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 555 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 556 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 557 | - {"keyCode": 69, "letter":"e", "list": ["è","é","ê","ë","ē","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 558 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 559 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 560 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 561 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 562 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 563 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 564 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 565 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 566 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 567 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 568 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 569 | - {"keyCode": 79, "letter":"o", "list": ["ò","ó","ô","œ","ö","õ","ø","Ò","Ó","Ô","Œ","Ö","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 570 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 571 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 572 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 573 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 574 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 575 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 576 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 577 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 578 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 579 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 580 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 581 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 582 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 583 | + {"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"]}, | ||
| 584 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 585 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 586 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 587 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/nb_no/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/nb_no/alternatechars_table.json | ||
| 588 | index e223fc1..5ee1935 100644 | ||
| 589 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/nb_no/alternatechars_table.json | ||
| 590 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/nb_no/alternatechars_table.json | ||
| 591 | @@ -1,28 +1,28 @@ | ||
| 592 | [ | ||
| 593 | - {"keyCode": 65, "letter":"a", "list": ["å","æ","à","á","â","ä","ã","Å","Æ","À","Á","Â","Ä","Ã","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 594 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 595 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 596 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 597 | - {"keyCode": 68, "letter":"d", "list": ["†","‡","ð","Ð"]}, | ||
| 598 | - {"keyCode": 69, "letter":"e", "list": ["è","é","ê","ë","ē","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 599 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 600 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 601 | + {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 602 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 603 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 604 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 605 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 606 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 607 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 608 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 609 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 610 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 611 | - {"keyCode": 79, "letter":"o", "list": ["ø","ò","ó","ô","œ","ö","õ","Ø","Ò","Ó","Ô","Œ","Ö","Õ","º","“","”","„","<",">","«","»"]}, | ||
| 612 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 613 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 614 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 615 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 616 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 617 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 618 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 619 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 620 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 621 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 622 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 623 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 624 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 625 | + {"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"]}, | ||
| 626 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 627 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 628 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 629 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/nl_nl/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/nl_nl/alternatechars_table.json | ||
| 630 | index f4f1c21..5ee1935 100644 | ||
| 631 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/nl_nl/alternatechars_table.json | ||
| 632 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/nl_nl/alternatechars_table.json | ||
| 633 | @@ -1,28 +1,28 @@ | ||
| 634 | [ | ||
| 635 | - {"keyCode": 65, "letter":"a", "list": ["à","á","â","ä","å","ã","æ","À","Á","Â","Ä","Å","Ã","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 636 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 637 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 638 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 639 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 640 | - {"keyCode": 69, "letter":"e", "list": ["è","é","ê","ë","ē","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 641 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 642 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 643 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 644 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 645 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 646 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 647 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 648 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 649 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 650 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 651 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 652 | - {"keyCode": 79, "letter":"o", "list": ["ò","ó","ô","œ","ö","õ","ø","Ò","Ó","Ô","Œ","Ö","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 653 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 654 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 655 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 656 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 657 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 658 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 659 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 660 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 661 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 662 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 663 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 664 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 665 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 666 | + {"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"]}, | ||
| 667 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 668 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 669 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 670 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/pl_pl/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/pl_pl/alternatechars_table.json | ||
| 671 | index 822f0fb..5ee1935 100644 | ||
| 672 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/pl_pl/alternatechars_table.json | ||
| 673 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/pl_pl/alternatechars_table.json | ||
| 674 | @@ -1,29 +1,29 @@ | ||
| 675 | [ | ||
| 676 | - {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 677 | - {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 678 | - {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]}, | ||
| 679 | - {"keyCode": 65, "letter":"a", "list": ["à","á","â","ä","å","ã","æ","Ą","À","Á","Â","Ä","Å","Ã","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 680 | - {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|","¬"]}, | ||
| 681 | - {"keyCode": 67, "letter":"c", "list": ["ć","ç","Ć","Ç","©","¢"]}, | ||
| 682 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 683 | + {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 684 | + {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 685 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 686 | - {"keyCode": 69, "letter":"e", "list": ["ę","è","é","ê","ë","ē","Ę","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 687 | - {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥","ƒ"]}, | ||
| 688 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 689 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 690 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 691 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 692 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 693 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 694 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 695 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 696 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 697 | - {"keyCode": 78, "letter":"n", "list": ["ń","ñ","Ń","Ñ","¿"]}, | ||
| 698 | - {"keyCode": 79, "letter":"o", "list": ["ó","ò","ô","œ","ö","ø","õ","Ò","Ó","Ô","Œ","Ö","Ø","Õ","º","“","”","„","<",">","«","»"]}, | ||
| 699 | + {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 700 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 701 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 702 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 703 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 704 | - {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|","§"]}, | ||
| 705 | + {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 706 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 707 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 708 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 709 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 710 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 711 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 712 | - {"keyCode": 89, "letter":"y", "list": ["ÿ","ý","Ÿ","Ý","¥","[","]","{","}","<",">","«","»"]}, | ||
| 713 | - {"keyCode": 90, "letter":"z", "list": ["ž","Ž","•"]} | ||
| 714 | + {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 715 | + {"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"]}, | ||
| 716 | + {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 717 | + {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 718 | + {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 719 | ] | ||
| 720 | \ No newline at end of file | ||
| 721 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/pt_br/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/pt_br/alternatechars_table.json | ||
| 722 | index 2b3d093..5ee1935 100644 | ||
| 723 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/pt_br/alternatechars_table.json | ||
| 724 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/pt_br/alternatechars_table.json | ||
| 725 | @@ -1,28 +1,28 @@ | ||
| 726 | [ | ||
| 727 | - {"keyCode": 65, "letter":"a", "list": ["á","ã","â","à","ä","å","æ","Á","Ã","Â","À","Ä","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 728 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 729 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 730 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 731 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 732 | - {"keyCode": 69, "letter":"e", "list": ["è","é","ê","ë","ē","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 733 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 734 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 735 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 736 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 737 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 738 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 739 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 740 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 741 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 742 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 743 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 744 | - {"keyCode": 79, "letter":"o", "list": ["ò","ó","ô","œ","ö","õ","ø","Ò","Ó","Ô","Œ","Ö","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 745 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 746 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 747 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 748 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 749 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 750 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 751 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 752 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 753 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 754 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 755 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 756 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 757 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 758 | + {"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"]}, | ||
| 759 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 760 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 761 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 762 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/pt_pt/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/pt_pt/alternatechars_table.json | ||
| 763 | index 2b3d093..5ee1935 100644 | ||
| 764 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/pt_pt/alternatechars_table.json | ||
| 765 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/pt_pt/alternatechars_table.json | ||
| 766 | @@ -1,28 +1,28 @@ | ||
| 767 | [ | ||
| 768 | - {"keyCode": 65, "letter":"a", "list": ["á","ã","â","à","ä","å","æ","Á","Ã","Â","À","Ä","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 769 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 770 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 771 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 772 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 773 | - {"keyCode": 69, "letter":"e", "list": ["è","é","ê","ë","ē","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 774 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 775 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 776 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 777 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 778 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 779 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 780 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 781 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 782 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 783 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 784 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 785 | - {"keyCode": 79, "letter":"o", "list": ["ò","ó","ô","œ","ö","õ","ø","Ò","Ó","Ô","Œ","Ö","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 786 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 787 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 788 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 789 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 790 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 791 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 792 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 793 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 794 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 795 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 796 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 797 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 798 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 799 | + {"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"]}, | ||
| 800 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 801 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 802 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 803 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/sv_se/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/sv_se/alternatechars_table.json | ||
| 804 | index db0fd98..5ee1935 100644 | ||
| 805 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/sv_se/alternatechars_table.json | ||
| 806 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/sv_se/alternatechars_table.json | ||
| 807 | @@ -1,28 +1,28 @@ | ||
| 808 | [ | ||
| 809 | - {"keyCode": 65, "letter":"a", "list": ["ä","å","à","á","â","ã","æ","Ä","Å","À","Á","Â","Ã","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 810 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 811 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 812 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 813 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 814 | - {"keyCode": 69, "letter":"e", "list": ["è","é","ê","ë","ē","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 815 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 816 | {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 817 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 818 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 819 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 820 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 821 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 822 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 823 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 824 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 825 | - {"keyCode": 79, "letter":"o", "list": ["ö","ò","ó","ô","ø","œ","õ","Ö","Ò","Ó","Ô","Ø","Œ","Õ","º","“","”","„","<",">","«","»"]}, | ||
| 826 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 827 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 828 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 829 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 830 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 831 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 832 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 833 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 834 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 835 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 836 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 837 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 838 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 839 | + {"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"]}, | ||
| 840 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 841 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 842 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} |
frameworks/smiley-face-sym-box.patch
(0 / 842)
|   | |||
| 1 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/da_dk/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/da_dk/alternatechars_table.json | ||
| 2 | index 79e8589..5ee1935 100644 | ||
| 3 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/da_dk/alternatechars_table.json | ||
| 4 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/da_dk/alternatechars_table.json | ||
| 5 | @@ -1,28 +1,28 @@ | ||
| 6 | [ | ||
| 7 | - {"keyCode": 65, "letter":"a", "list": ["æ","å","à","á","â","ä","ã","Æ","Å","À","Á","Â","Ä","Ã","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 8 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 9 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 10 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 11 | - {"keyCode": 68, "letter":"d", "list": ["†","‡","ð","Ð"]}, | ||
| 12 | - {"keyCode": 69, "letter":"e", "list": ["è","é","ê","ë","ē","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 13 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 14 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 15 | + {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 16 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 17 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 18 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 19 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 20 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 21 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 22 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 23 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 24 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 25 | - {"keyCode": 79, "letter":"o", "list": ["ò","ó","ô","œ","ö","ø","õ","Ò","Ó","Ô","Œ","Ö","Ø","Õ","º","“","”","„","<",">","«","»"]}, | ||
| 26 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 27 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 28 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 29 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 30 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 31 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 32 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 33 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 34 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 35 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 36 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 37 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 38 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 39 | + {"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"]}, | ||
| 40 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 41 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 42 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 43 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/de_ch/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/de_ch/alternatechars_table.json | ||
| 44 | index 907a312..5ee1935 100644 | ||
| 45 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/de_ch/alternatechars_table.json | ||
| 46 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/de_ch/alternatechars_table.json | ||
| 47 | @@ -1,28 +1,28 @@ | ||
| 48 | [ | ||
| 49 | - {"keyCode": 65, "letter":"a", "list": ["ä","à","â","æ","á","å","ã","Ä","À","Â","Æ","Á","Å","Ã","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 50 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 51 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 52 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 53 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 54 | - {"keyCode": 69, "letter":"e", "list": ["é","è","ê","ë","ē","É","È","Ê","Ë","€","¹","¼","½"]}, | ||
| 55 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 56 | - {"keyCode": 73, "letter":"i", "list": ["î","ï","ì","í","Î","Ï","Ì","Í","÷","‰"]}, | ||
| 57 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 58 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 59 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 60 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 61 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 62 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 63 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 64 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 65 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 66 | - {"keyCode": 79, "letter":"o", "list": ["ö","ô","œ","ò","ó","õ","ø","Ö","Ô","Œ","Ò","Ó","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 67 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 68 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 69 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 70 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 71 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 72 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 73 | - {"keyCode": 85, "letter":"u", "list": ["ü","ù","û","ú","Ü","Ù","Û","Ú","[","]","{","}","<",">","«","»"]}, | ||
| 74 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 75 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 76 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 77 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 78 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 79 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 80 | + {"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"]}, | ||
| 81 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 82 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 83 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 84 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/de_de/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/de_de/alternatechars_table.json | ||
| 85 | index 907a312..5ee1935 100644 | ||
| 86 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/de_de/alternatechars_table.json | ||
| 87 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/de_de/alternatechars_table.json | ||
| 88 | @@ -1,28 +1,28 @@ | ||
| 89 | [ | ||
| 90 | - {"keyCode": 65, "letter":"a", "list": ["ä","à","â","æ","á","å","ã","Ä","À","Â","Æ","Á","Å","Ã","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 91 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 92 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 93 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 94 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 95 | - {"keyCode": 69, "letter":"e", "list": ["é","è","ê","ë","ē","É","È","Ê","Ë","€","¹","¼","½"]}, | ||
| 96 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 97 | - {"keyCode": 73, "letter":"i", "list": ["î","ï","ì","í","Î","Ï","Ì","Í","÷","‰"]}, | ||
| 98 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 99 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 100 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 101 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 102 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 103 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 104 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 105 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 106 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 107 | - {"keyCode": 79, "letter":"o", "list": ["ö","ô","œ","ò","ó","õ","ø","Ö","Ô","Œ","Ò","Ó","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 108 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 109 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 110 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 111 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 112 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 113 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 114 | - {"keyCode": 85, "letter":"u", "list": ["ü","ù","û","ú","Ü","Ù","Û","Ú","[","]","{","}","<",">","«","»"]}, | ||
| 115 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 116 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 117 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 118 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 119 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 120 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 121 | + {"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"]}, | ||
| 122 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 123 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 124 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 125 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_ca/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_ca/alternatechars_table.json | ||
| 126 | index 15a459e..5ee1935 100644 | ||
| 127 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_ca/alternatechars_table.json | ||
| 128 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_ca/alternatechars_table.json | ||
| 129 | @@ -7,7 +7,7 @@ | ||
| 130 | {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 131 | {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 132 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 133 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 134 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 135 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 136 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 137 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 138 | @@ -22,7 +22,7 @@ | ||
| 139 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 140 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 141 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 142 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 143 | + {"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"]}, | ||
| 144 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 145 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 146 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 147 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_gb/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_gb/alternatechars_table.json | ||
| 148 | index 15a459e..5ee1935 100644 | ||
| 149 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_gb/alternatechars_table.json | ||
| 150 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_gb/alternatechars_table.json | ||
| 151 | @@ -7,7 +7,7 @@ | ||
| 152 | {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 153 | {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 154 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 155 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 156 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 157 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 158 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 159 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 160 | @@ -22,7 +22,7 @@ | ||
| 161 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 162 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 163 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 164 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 165 | + {"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"]}, | ||
| 166 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 167 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 168 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 169 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_ie/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_ie/alternatechars_table.json | ||
| 170 | index 15a459e..5ee1935 100644 | ||
| 171 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_ie/alternatechars_table.json | ||
| 172 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_ie/alternatechars_table.json | ||
| 173 | @@ -7,7 +7,7 @@ | ||
| 174 | {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 175 | {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 176 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 177 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 178 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 179 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 180 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 181 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 182 | @@ -22,7 +22,7 @@ | ||
| 183 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 184 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 185 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 186 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 187 | + {"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"]}, | ||
| 188 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 189 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 190 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 191 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_pl/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_pl/alternatechars_table.json | ||
| 192 | index 136a5e5..5ee1935 100644 | ||
| 193 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_pl/alternatechars_table.json | ||
| 194 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_pl/alternatechars_table.json | ||
| 195 | @@ -1,28 +1,28 @@ | ||
| 196 | [ | ||
| 197 | - {"keyCode": 65, "letter":"a", "list": ["à","á","â","ä","å","ã","æ","Ą","À","Á","Â","Ä","Å","Ã","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 198 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 199 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 200 | - {"keyCode": 67, "letter":"c", "list": ["ć","ç","Ć","Ç","©","¢"]}, | ||
| 201 | + {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 202 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 203 | - {"keyCode": 69, "letter":"e", "list": ["ę","è","é","ê","ë","ē","Ę","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 204 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 205 | {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 206 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 207 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 208 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 209 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 210 | - {"keyCode": 76, "letter":"l", "list": ["ł","Ł","`","‘","’","‚","‛"]}, | ||
| 211 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 212 | + {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 213 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 214 | - {"keyCode": 78, "letter":"n", "list": ["ń","ñ","Ń","Ñ","¿"]}, | ||
| 215 | - {"keyCode": 79, "letter":"o", "list": ["ó","ò","ô","œ","ö","ø","õ","Ò","Ó","Ô","Œ","Ö","Ø","Õ","º","“","”","„","<",">","«","»"]}, | ||
| 216 | + {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 217 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 218 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 219 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 220 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 221 | - {"keyCode": 83, "letter":"s", "list": ["ś","Ś","š","Š","ß","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 222 | + {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 223 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 224 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 225 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 226 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 227 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 228 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 229 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 230 | - {"keyCode": 90, "letter":"z", "list": ["ż","ź","Ż","Ź","•"]}, | ||
| 231 | + {"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"]}, | ||
| 232 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 233 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 234 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 235 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_us/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_us/alternatechars_table.json | ||
| 236 | index 15a459e..5ee1935 100644 | ||
| 237 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/en_us/alternatechars_table.json | ||
| 238 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/en_us/alternatechars_table.json | ||
| 239 | @@ -7,7 +7,7 @@ | ||
| 240 | {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 241 | {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 242 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 243 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 244 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 245 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 246 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 247 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 248 | @@ -22,7 +22,7 @@ | ||
| 249 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 250 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 251 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 252 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 253 | + {"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"]}, | ||
| 254 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 255 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 256 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 257 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/es_es/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/es_es/alternatechars_table.json | ||
| 258 | index 5f00c53..5ee1935 100644 | ||
| 259 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/es_es/alternatechars_table.json | ||
| 260 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/es_es/alternatechars_table.json | ||
| 261 | @@ -1,28 +1,28 @@ | ||
| 262 | [ | ||
| 263 | - {"keyCode": 65, "letter":"a", "list": ["á","à","â","ã","ä","å","æ","Á","À","Â","Ã","Ä","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 264 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 265 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 266 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 267 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 268 | - {"keyCode": 69, "letter":"e", "list": ["é","è","ê","ë","ē","É","È","Ê","Ë","€","¹","¼","½"]}, | ||
| 269 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 270 | - {"keyCode": 73, "letter":"i", "list": ["í","ì","î","ï","Í","Ì","Î","Ï","÷","‰"]}, | ||
| 271 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 272 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 273 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 274 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 275 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 276 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 277 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 278 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 279 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 280 | - {"keyCode": 79, "letter":"o", "list": ["ó","ò","ô","œ","õ","ö","ø","Ò","Ó","Ô","Œ","Õ","Ö","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 281 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 282 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 283 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 284 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 285 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 286 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 287 | - {"keyCode": 85, "letter":"u", "list": ["ú","ü","ù","û","Ú","Ü","Ù","Û","[","]","{","}","<",">","«","»"]}, | ||
| 288 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 289 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 290 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 291 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 292 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 293 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 294 | + {"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"]}, | ||
| 295 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 296 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 297 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 298 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/es_mx/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/es_mx/alternatechars_table.json | ||
| 299 | index 5f00c53..5ee1935 100644 | ||
| 300 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/es_mx/alternatechars_table.json | ||
| 301 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/es_mx/alternatechars_table.json | ||
| 302 | @@ -1,28 +1,28 @@ | ||
| 303 | [ | ||
| 304 | - {"keyCode": 65, "letter":"a", "list": ["á","à","â","ã","ä","å","æ","Á","À","Â","Ã","Ä","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 305 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 306 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 307 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 308 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 309 | - {"keyCode": 69, "letter":"e", "list": ["é","è","ê","ë","ē","É","È","Ê","Ë","€","¹","¼","½"]}, | ||
| 310 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 311 | - {"keyCode": 73, "letter":"i", "list": ["í","ì","î","ï","Í","Ì","Î","Ï","÷","‰"]}, | ||
| 312 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 313 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 314 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 315 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 316 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 317 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 318 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 319 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 320 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 321 | - {"keyCode": 79, "letter":"o", "list": ["ó","ò","ô","œ","õ","ö","ø","Ò","Ó","Ô","Œ","Õ","Ö","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 322 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 323 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 324 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 325 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 326 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 327 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 328 | - {"keyCode": 85, "letter":"u", "list": ["ú","ü","ù","û","Ú","Ü","Ù","Û","[","]","{","}","<",">","«","»"]}, | ||
| 329 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 330 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 331 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 332 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 333 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 334 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 335 | + {"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"]}, | ||
| 336 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 337 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 338 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 339 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/es_us/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/es_us/alternatechars_table.json | ||
| 340 | index f5a1647..5ee1935 100644 | ||
| 341 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/es_us/alternatechars_table.json | ||
| 342 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/es_us/alternatechars_table.json | ||
| 343 | @@ -1,28 +1,28 @@ | ||
| 344 | [ | ||
| 345 | - {"keyCode": 65, "letter":"a", "list": ["á","à","â","ã","ä","å","æ","Á","À","Â","Ã","Ä","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 346 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 347 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 348 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 349 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 350 | - {"keyCode": 69, "letter":"e", "list": ["é","è","ê","ë","ē","É","È","Ê","Ë","€","¹","¼","½"]}, | ||
| 351 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 352 | {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 353 | - {"keyCode": 73, "letter":"i", "list": ["í","ì","î","ï","Í","Ì","Î","Ï","÷","‰"]}, | ||
| 354 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 355 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 356 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 357 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 358 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 359 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 360 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 361 | - {"keyCode": 79, "letter":"o", "list": ["ó","ò","ô","œ","õ","ö","ø","Ò","Ó","Ô","Œ","Õ","Ö","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 362 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 363 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 364 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 365 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 366 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 367 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 368 | - {"keyCode": 85, "letter":"u", "list": ["ú","ü","ù","û","Ú","Ü","Ù","Û","[","]","{","}","<",">","«","»"]}, | ||
| 369 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 370 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 371 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 372 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 373 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 374 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 375 | + {"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"]}, | ||
| 376 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 377 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 378 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 379 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/fi_fi/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/fi_fi/alternatechars_table.json | ||
| 380 | index 438cb83..5ee1935 100644 | ||
| 381 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/fi_fi/alternatechars_table.json | ||
| 382 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/fi_fi/alternatechars_table.json | ||
| 383 | @@ -1,28 +1,28 @@ | ||
| 384 | [ | ||
| 385 | - {"keyCode": 65, "letter":"a", "list": ["ä","å","à","á","â","ã","æ","Ä","Å","À","Á","Â","Ã","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 386 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 387 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 388 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 389 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 390 | - {"keyCode": 69, "letter":"e", "list": ["è","é","ê","ë","ē","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 391 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 392 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 393 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 394 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 395 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 396 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 397 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 398 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 399 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 400 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 401 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 402 | - {"keyCode": 79, "letter":"o", "list": ["ò","ó","ô","œ","ö","ø","õ","Ò","Ó","Ô","Œ","Ö","Ø","Õ","º","“","”","„","<",">","«","»"]}, | ||
| 403 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 404 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 405 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 406 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 407 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 408 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 409 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 410 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 411 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 412 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 413 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 414 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 415 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 416 | + {"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"]}, | ||
| 417 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 418 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 419 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 420 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_ca/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_ca/alternatechars_table.json | ||
| 421 | index adea40f..5ee1935 100644 | ||
| 422 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_ca/alternatechars_table.json | ||
| 423 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_ca/alternatechars_table.json | ||
| 424 | @@ -1,28 +1,28 @@ | ||
| 425 | [ | ||
| 426 | - {"keyCode": 65, "letter":"a", "list": ["à","â","ä","æ","á","å","ã","À","Â","Ä","Æ","Á","Å","Ã","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 427 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 428 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 429 | - {"keyCode": 67, "letter":"c", "list": ["ç","Ç","©","¢"]}, | ||
| 430 | + {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 431 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 432 | - {"keyCode": 69, "letter":"e", "list": ["é","è","ê","ë","ē","É","È","Ê","Ë","€","¹","¼","½"]}, | ||
| 433 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 434 | - {"keyCode": 73, "letter":"i", "list": ["î","ï","ì","í","Î","Ï","Ì","Í","÷","‰"]}, | ||
| 435 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 436 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 437 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 438 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 439 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 440 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 441 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 442 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 443 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 444 | - {"keyCode": 79, "letter":"o", "list": ["ô","œ","ö","ò","ó","õ","ø","Ô","Œ","Ö","Ò","Ó","Õ","Ø","º","«","»","“","”","„","<",">"]}, | ||
| 445 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 446 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 447 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 448 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 449 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 450 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 451 | - {"keyCode": 85, "letter":"u", "list": ["ù","û","ü","ú","Ù","Û","Ü","Ú","[","]","{","}","<",">","«","»"]}, | ||
| 452 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 453 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 454 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 455 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 456 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 457 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 458 | + {"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"]}, | ||
| 459 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 460 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 461 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 462 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_ch/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_ch/alternatechars_table.json | ||
| 463 | index adea40f..5ee1935 100644 | ||
| 464 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_ch/alternatechars_table.json | ||
| 465 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_ch/alternatechars_table.json | ||
| 466 | @@ -1,28 +1,28 @@ | ||
| 467 | [ | ||
| 468 | - {"keyCode": 65, "letter":"a", "list": ["à","â","ä","æ","á","å","ã","À","Â","Ä","Æ","Á","Å","Ã","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 469 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 470 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 471 | - {"keyCode": 67, "letter":"c", "list": ["ç","Ç","©","¢"]}, | ||
| 472 | + {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 473 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 474 | - {"keyCode": 69, "letter":"e", "list": ["é","è","ê","ë","ē","É","È","Ê","Ë","€","¹","¼","½"]}, | ||
| 475 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 476 | - {"keyCode": 73, "letter":"i", "list": ["î","ï","ì","í","Î","Ï","Ì","Í","÷","‰"]}, | ||
| 477 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 478 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 479 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 480 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 481 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 482 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 483 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 484 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 485 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 486 | - {"keyCode": 79, "letter":"o", "list": ["ô","œ","ö","ò","ó","õ","ø","Ô","Œ","Ö","Ò","Ó","Õ","Ø","º","«","»","“","”","„","<",">"]}, | ||
| 487 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 488 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 489 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 490 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 491 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 492 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 493 | - {"keyCode": 85, "letter":"u", "list": ["ù","û","ü","ú","Ù","Û","Ü","Ú","[","]","{","}","<",">","«","»"]}, | ||
| 494 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 495 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 496 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 497 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 498 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 499 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 500 | + {"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"]}, | ||
| 501 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 502 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 503 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 504 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_fr/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_fr/alternatechars_table.json | ||
| 505 | index adea40f..5ee1935 100644 | ||
| 506 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_fr/alternatechars_table.json | ||
| 507 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/fr_fr/alternatechars_table.json | ||
| 508 | @@ -1,28 +1,28 @@ | ||
| 509 | [ | ||
| 510 | - {"keyCode": 65, "letter":"a", "list": ["à","â","ä","æ","á","å","ã","À","Â","Ä","Æ","Á","Å","Ã","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 511 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 512 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 513 | - {"keyCode": 67, "letter":"c", "list": ["ç","Ç","©","¢"]}, | ||
| 514 | + {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 515 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 516 | - {"keyCode": 69, "letter":"e", "list": ["é","è","ê","ë","ē","É","È","Ê","Ë","€","¹","¼","½"]}, | ||
| 517 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 518 | - {"keyCode": 73, "letter":"i", "list": ["î","ï","ì","í","Î","Ï","Ì","Í","÷","‰"]}, | ||
| 519 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 520 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 521 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 522 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 523 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 524 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 525 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 526 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 527 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 528 | - {"keyCode": 79, "letter":"o", "list": ["ô","œ","ö","ò","ó","õ","ø","Ô","Œ","Ö","Ò","Ó","Õ","Ø","º","«","»","“","”","„","<",">"]}, | ||
| 529 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 530 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 531 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 532 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 533 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 534 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 535 | - {"keyCode": 85, "letter":"u", "list": ["ù","û","ü","ú","Ù","Û","Ü","Ú","[","]","{","}","<",">","«","»"]}, | ||
| 536 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 537 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 538 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 539 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 540 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 541 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 542 | + {"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"]}, | ||
| 543 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 544 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 545 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 546 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/it_it/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/it_it/alternatechars_table.json | ||
| 547 | index a047ded..5ee1935 100644 | ||
| 548 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/it_it/alternatechars_table.json | ||
| 549 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/it_it/alternatechars_table.json | ||
| 550 | @@ -1,28 +1,28 @@ | ||
| 551 | [ | ||
| 552 | - {"keyCode": 65, "letter":"a", "list": ["à","á","â","ä","å","ã","æ","À","Á","Â","ÄÅ","Ã","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 553 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 554 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 555 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 556 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 557 | - {"keyCode": 69, "letter":"e", "list": ["è","é","ê","ë","ē","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 558 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 559 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 560 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 561 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 562 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 563 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 564 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 565 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 566 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 567 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 568 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 569 | - {"keyCode": 79, "letter":"o", "list": ["ò","ó","ô","œ","ö","õ","ø","Ò","Ó","Ô","Œ","Ö","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 570 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 571 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 572 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 573 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 574 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 575 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 576 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 577 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 578 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 579 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 580 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 581 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 582 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 583 | + {"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"]}, | ||
| 584 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 585 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 586 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 587 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/nb_no/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/nb_no/alternatechars_table.json | ||
| 588 | index e223fc1..5ee1935 100644 | ||
| 589 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/nb_no/alternatechars_table.json | ||
| 590 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/nb_no/alternatechars_table.json | ||
| 591 | @@ -1,28 +1,28 @@ | ||
| 592 | [ | ||
| 593 | - {"keyCode": 65, "letter":"a", "list": ["å","æ","à","á","â","ä","ã","Å","Æ","À","Á","Â","Ä","Ã","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 594 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 595 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 596 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 597 | - {"keyCode": 68, "letter":"d", "list": ["†","‡","ð","Ð"]}, | ||
| 598 | - {"keyCode": 69, "letter":"e", "list": ["è","é","ê","ë","ē","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 599 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 600 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 601 | + {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 602 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 603 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 604 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 605 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 606 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 607 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 608 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 609 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 610 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 611 | - {"keyCode": 79, "letter":"o", "list": ["ø","ò","ó","ô","œ","ö","õ","Ø","Ò","Ó","Ô","Œ","Ö","Õ","º","“","”","„","<",">","«","»"]}, | ||
| 612 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 613 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 614 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 615 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 616 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 617 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 618 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 619 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 620 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 621 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 622 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 623 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 624 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 625 | + {"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"]}, | ||
| 626 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 627 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 628 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 629 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/nl_nl/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/nl_nl/alternatechars_table.json | ||
| 630 | index f4f1c21..5ee1935 100644 | ||
| 631 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/nl_nl/alternatechars_table.json | ||
| 632 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/nl_nl/alternatechars_table.json | ||
| 633 | @@ -1,28 +1,28 @@ | ||
| 634 | [ | ||
| 635 | - {"keyCode": 65, "letter":"a", "list": ["à","á","â","ä","å","ã","æ","À","Á","Â","Ä","Å","Ã","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 636 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 637 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 638 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 639 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 640 | - {"keyCode": 69, "letter":"e", "list": ["è","é","ê","ë","ē","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 641 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 642 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 643 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 644 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 645 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 646 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 647 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 648 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 649 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 650 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 651 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 652 | - {"keyCode": 79, "letter":"o", "list": ["ò","ó","ô","œ","ö","õ","ø","Ò","Ó","Ô","Œ","Ö","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 653 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 654 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 655 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 656 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 657 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 658 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 659 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 660 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 661 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 662 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 663 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 664 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 665 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 666 | + {"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"]}, | ||
| 667 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 668 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 669 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 670 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/pl_pl/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/pl_pl/alternatechars_table.json | ||
| 671 | index 822f0fb..5ee1935 100644 | ||
| 672 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/pl_pl/alternatechars_table.json | ||
| 673 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/pl_pl/alternatechars_table.json | ||
| 674 | @@ -1,29 +1,29 @@ | ||
| 675 | [ | ||
| 676 | - {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 677 | - {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 678 | - {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]}, | ||
| 679 | - {"keyCode": 65, "letter":"a", "list": ["à","á","â","ä","å","ã","æ","Ą","À","Á","Â","Ä","Å","Ã","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 680 | - {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|","¬"]}, | ||
| 681 | - {"keyCode": 67, "letter":"c", "list": ["ć","ç","Ć","Ç","©","¢"]}, | ||
| 682 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 683 | + {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 684 | + {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 685 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 686 | - {"keyCode": 69, "letter":"e", "list": ["ę","è","é","ê","ë","ē","Ę","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 687 | - {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥","ƒ"]}, | ||
| 688 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 689 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 690 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 691 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 692 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 693 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 694 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 695 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 696 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 697 | - {"keyCode": 78, "letter":"n", "list": ["ń","ñ","Ń","Ñ","¿"]}, | ||
| 698 | - {"keyCode": 79, "letter":"o", "list": ["ó","ò","ô","œ","ö","ø","õ","Ò","Ó","Ô","Œ","Ö","Ø","Õ","º","“","”","„","<",">","«","»"]}, | ||
| 699 | + {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 700 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 701 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 702 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 703 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 704 | - {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|","§"]}, | ||
| 705 | + {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 706 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 707 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 708 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 709 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 710 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 711 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 712 | - {"keyCode": 89, "letter":"y", "list": ["ÿ","ý","Ÿ","Ý","¥","[","]","{","}","<",">","«","»"]}, | ||
| 713 | - {"keyCode": 90, "letter":"z", "list": ["ž","Ž","•"]} | ||
| 714 | + {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 715 | + {"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"]}, | ||
| 716 | + {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 717 | + {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 718 | + {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 719 | ] | ||
| 720 | \ No newline at end of file | ||
| 721 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/pt_br/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/pt_br/alternatechars_table.json | ||
| 722 | index 2b3d093..5ee1935 100644 | ||
| 723 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/pt_br/alternatechars_table.json | ||
| 724 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/pt_br/alternatechars_table.json | ||
| 725 | @@ -1,28 +1,28 @@ | ||
| 726 | [ | ||
| 727 | - {"keyCode": 65, "letter":"a", "list": ["á","ã","â","à","ä","å","æ","Á","Ã","Â","À","Ä","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 728 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 729 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 730 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 731 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 732 | - {"keyCode": 69, "letter":"e", "list": ["è","é","ê","ë","ē","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 733 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 734 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 735 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 736 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 737 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 738 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 739 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 740 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 741 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 742 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 743 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 744 | - {"keyCode": 79, "letter":"o", "list": ["ò","ó","ô","œ","ö","õ","ø","Ò","Ó","Ô","Œ","Ö","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 745 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 746 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 747 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 748 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 749 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 750 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 751 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 752 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 753 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 754 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 755 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 756 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 757 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 758 | + {"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"]}, | ||
| 759 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 760 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 761 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 762 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/pt_pt/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/pt_pt/alternatechars_table.json | ||
| 763 | index 2b3d093..5ee1935 100644 | ||
| 764 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/pt_pt/alternatechars_table.json | ||
| 765 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/pt_pt/alternatechars_table.json | ||
| 766 | @@ -1,28 +1,28 @@ | ||
| 767 | [ | ||
| 768 | - {"keyCode": 65, "letter":"a", "list": ["á","ã","â","à","ä","å","æ","Á","Ã","Â","À","Ä","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 769 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 770 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 771 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 772 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 773 | - {"keyCode": 69, "letter":"e", "list": ["è","é","ê","ë","ē","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 774 | - {"keyCode": 72, "letter":"h", "list": ["€","¢","£","¥"]}, | ||
| 775 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 776 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 777 | + {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 778 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 779 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 780 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 781 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 782 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 783 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 784 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 785 | - {"keyCode": 79, "letter":"o", "list": ["ò","ó","ô","œ","ö","õ","ø","Ò","Ó","Ô","Œ","Ö","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 786 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 787 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 788 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 789 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 790 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 791 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 792 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 793 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 794 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 795 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 796 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 797 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 798 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 799 | + {"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"]}, | ||
| 800 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 801 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 802 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} | ||
| 803 | diff --git a/usr/palm/frameworks/mojo/submissions/200.18/resources/sv_se/alternatechars_table.json b/usr/palm/frameworks/mojo/submissions/200.18/resources/sv_se/alternatechars_table.json | ||
| 804 | index db0fd98..5ee1935 100644 | ||
| 805 | --- a/usr/palm/frameworks/mojo/submissions/200.18/resources/sv_se/alternatechars_table.json | ||
| 806 | +++ b/usr/palm/frameworks/mojo/submissions/200.18/resources/sv_se/alternatechars_table.json | ||
| 807 | @@ -1,28 +1,28 @@ | ||
| 808 | [ | ||
| 809 | - {"keyCode": 65, "letter":"a", "list": ["ä","å","à","á","â","ã","æ","Ä","Å","À","Á","Â","Ã","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 810 | + {"keyCode": 65, "letter":"a", "list": ["á","à","ä","â","ã","å","æ","Á","À","Ä","Â","Ã","Å","Æ","ª","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 811 | {"keyCode": 66, "letter":"b", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 812 | {"keyCode": 67, "letter":"c", "list": ["©","ç","Ç","¢"]}, | ||
| 813 | {"keyCode": 68, "letter":"d", "list": ["†","‡"]}, | ||
| 814 | - {"keyCode": 69, "letter":"e", "list": ["è","é","ê","ë","ē","È","É","Ê","Ë","€","¹","¼","½"]}, | ||
| 815 | + {"keyCode": 69, "letter":"e", "list": ["é","è","ë","ê","ē","É","È","Ë","Ê","€","¹","¼","½"]}, | ||
| 816 | {"keyCode": 72, "letter":"h", "list": ["¢","€","£","¥"]}, | ||
| 817 | - {"keyCode": 73, "letter":"i", "list": ["ì","í","î","ï","Ì","Í","Î","Ï","÷","‰"]}, | ||
| 818 | + {"keyCode": 73, "letter":"i", "list": ["í","ì","ï","î","Í","Ì","Ï","Î","÷","‰"]}, | ||
| 819 | {"keyCode": 74, "letter":"j", "list": ["¡"]}, | ||
| 820 | - {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)"]}, | ||
| 821 | + {"keyCode": 75, "letter":"k", "list": [":-)",":-(",";-)","o_O","8)",":'(",":[",":S",":!",":O","^_^","O:-)",":-*",":-D","=-@",":/",":P",":|",":evil",":mad",":heart"]}, | ||
| 822 | {"keyCode": 76, "letter":"l", "list": ["`","‘","’","‚","‛"]}, | ||
| 823 | {"keyCode": 77, "letter":"m", "list": ["µ",":-)",":-(",";-)"]}, | ||
| 824 | {"keyCode": 78, "letter":"n", "list": ["ñ","Ñ","¿"]}, | ||
| 825 | - {"keyCode": 79, "letter":"o", "list": ["ö","ò","ó","ô","ø","œ","õ","Ö","Ò","Ó","Ô","Ø","Œ","Õ","º","“","”","„","<",">","«","»"]}, | ||
| 826 | + {"keyCode": 79, "letter":"o", "list": ["ó","ò","ö","ô","œ","õ","ø","Ó","Ò","Ö","Ô","Œ","Õ","Ø","º","“","”","„","<",">","«","»"]}, | ||
| 827 | {"keyCode": 80, "letter":"p", "list": ["¶","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 828 | {"keyCode": 81, "letter":"q", "list": ["\\","~","|"]}, | ||
| 829 | {"keyCode": 82, "letter":"r", "list": ["®","²"]}, | ||
| 830 | {"keyCode": 83, "letter":"s", "list": ["ß","š","Š","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","|"]}, | ||
| 831 | {"keyCode": 84, "letter":"t", "list": ["™","³","¾"]}, | ||
| 832 | - {"keyCode": 85, "letter":"u", "list": ["ù","ú","û","ü","Ù","Ú","Û","Ü","[","]","{","}","<",">","«","»"]}, | ||
| 833 | + {"keyCode": 85, "letter":"u", "list": ["ú","ù","ü","û","Ú","Ù","Ü","Û","[","]","{","}","<",">","«","»"]}, | ||
| 834 | {"keyCode": 86, "letter":"v", "list": ["^"]}, | ||
| 835 | {"keyCode": 87, "letter":"w", "list": ["÷","^","±"]}, | ||
| 836 | {"keyCode": 88, "letter":"x", "list": ["×","¤"]}, | ||
| 837 | {"keyCode": 89, "letter":"y", "list": ["ÿ","Ÿ","¥","[","]","{","}","<",">","«","»"]}, | ||
| 838 | - {"keyCode": 90, "letter":"z", "list": ["•"]}, | ||
| 839 | + {"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"]}, | ||
| 840 | {"keyCode": 190, "letter":".", "list": ["…","~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 841 | {"keyCode": 188, "letter":",", "list": ["~","\\","`","•","÷","^","[","]","{","}","<",">","«","»","Ø","µ","|"]}, | ||
| 842 | {"keyCode": 48, "letter":"@", "list": ["°","•","Ø"]} |
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 2 | index ee479ac..115140c 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 5 | @@ -2337,7 +2337,9 @@ updateClockEveryMinute: function() { | ||
| 6 | } | ||
| 7 | } | ||
| 8 | format = format.replace(/\s?a\s?/,""); | ||
| 9 | - $('clock').innerHTML = Mojo.Format.formatDate(date, {time: format}); | ||
| 10 | + var formatDate = Mojo.Format.formatDate(date, {date:'short'}); | ||
| 11 | + formatDate = formatDate.substr(0, formatDate.lastIndexOf('/')); | ||
| 12 | + $('clock').innerHTML = formatDate+' '+Mojo.Format.formatDate(date, {time:format}); | ||
| 13 | $('today').innerHTML = Mojo.Format.formatDate(date,{date:'short'}); | ||
| 14 | }, | ||
| 15 |
luna/add-date-to-top-bar.patch
(0 / 13)
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 2 | index ee479ac..f02e1cd 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 5 | @@ -2337,7 +2337,7 @@ updateClockEveryMinute: function() { | ||
| 6 | } | ||
| 7 | } | ||
| 8 | format = format.replace(/\s?a\s?/,""); | ||
| 9 | - $('clock').innerHTML = Mojo.Format.formatDate(date, {time: format}); | ||
| 10 | + $('clock').innerHTML = Mojo.Format.formatDate(date, {date:'short',time: format}); | ||
| 11 | $('today').innerHTML = Mojo.Format.formatDate(date,{date:'short'}); | ||
| 12 | }, | ||
| 13 |
luna/battery-percent-and-icon.patch
(0 / 165)
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 2 | index ee479ac..c2447db 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 5 | @@ -1430,10 +1430,49 @@ closePbapAlert: function() { | ||
| 6 | } | ||
| 7 | }, | ||
| 8 | |||
| 9 | +/* Format battery level percent | ||
| 10 | + * We use this function instead of just a variable because | ||
| 11 | + * sometimes this.batteryLevel is used, and sometimes | ||
| 12 | + * payload.percent_ui is | ||
| 13 | + */ | ||
| 14 | +getBatteryLevelPercent: function(percent, color, image, charging) { | ||
| 15 | + if (color) { | ||
| 16 | + if (charging == 1) | ||
| 17 | + bColor = '#33CCFF'; | ||
| 18 | + else if (percent >= 70) | ||
| 19 | + bColor = '#33FF33'; | ||
| 20 | + else if(percent <= 69 && percent >= 45) | ||
| 21 | + bColor = '#FFFF33'; | ||
| 22 | + else if(percent <= 44 && percent >= 20) | ||
| 23 | + bColor = '#FFCC00'; | ||
| 24 | + else if(percent <= 19) | ||
| 25 | + bColor = '#FF0000'; | ||
| 26 | + else | ||
| 27 | + bColor = 'white'; | ||
| 28 | + | ||
| 29 | + // Use span to set color | ||
| 30 | + if (image != undefined) | ||
| 31 | + var fPercent = '<span style="color: ' + bColor + ';">' + percent + unescape('%') + '</span>'; | ||
| 32 | + else | ||
| 33 | + var fPercent = '<span style="position: relative; bottom: 2px; color: ' + bColor + ';">' + percent + unescape('%') + '</span>'; | ||
| 34 | + } | ||
| 35 | + else { | ||
| 36 | + var fPercent = percent + unescape('%'); | ||
| 37 | + } | ||
| 38 | + return fPercent; | ||
| 39 | +}, | ||
| 40 | + | ||
| 41 | + | ||
| 42 | /* | ||
| 43 | * Handle power and charging notifications | ||
| 44 | */ | ||
| 45 | handlePowerNotifications: function(payload) { | ||
| 46 | + // Replace this with a user definable setting | ||
| 47 | + var batteryLevelImage = 2; // 0 displays image (factory default) | ||
| 48 | + // 1 displays numerical percentage | ||
| 49 | + // 2 displays the image on left and numerical percentage on right (default) | ||
| 50 | + | ||
| 51 | + var batteryLevelColor = 1; // Set to 0 for white, 1 for color | ||
| 52 | |||
| 53 | Mojo.Log.info("SystemUI Power Payload "+ Object.toJSON(payload)); | ||
| 54 | if(!this.powerdServiceUp) { | ||
| 55 | @@ -1453,7 +1492,15 @@ handlePowerNotifications: function(payload) { | ||
| 56 | // Show the battery level if not charging | ||
| 57 | if (!this.isCharging) { | ||
| 58 | Mojo.Log.info("SystemUI- Is Charging "+ this.isCharging + " Battery level "+ i); | ||
| 59 | + if (batteryLevelImage == 0) { | ||
| 60 | $('power').className = 'battery-' + i; | ||
| 61 | + } else if(batteryLevelImage == 1) { | ||
| 62 | + $('power').className = 'battery-percent'; | ||
| 63 | + $('power').innerHTML = this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor, true, 0); | ||
| 64 | + } else if(batteryLevelImage == 2) { | ||
| 65 | + $('power').className = 'battery-percentimage'; | ||
| 66 | + $('power').innerHTML = '<img src="images/battery-' + i + '.png" />' + this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor); | ||
| 67 | + } | ||
| 68 | |||
| 69 | //Show Banner Message if the Battery level is below 20% | ||
| 70 | var batteryalert = $L("#{percent_ui}% battery remaining").interpolate(payload); | ||
| 71 | @@ -1482,10 +1529,23 @@ handlePowerNotifications: function(payload) { | ||
| 72 | } | ||
| 73 | else { | ||
| 74 | Mojo.Log.info("SystemUI- Is Charging "+ this.isCharging ); | ||
| 75 | - if(payload.percent_ui == 100) | ||
| 76 | + if (batteryLevelImage == 0) { | ||
| 77 | + if (payload.percent_ui == 100) | ||
| 78 | $('power').className = 'battery-charged'; | ||
| 79 | else | ||
| 80 | $('power').className = 'battery-charging-' + i; | ||
| 81 | + } else if (batteryLevelImage == 1) { | ||
| 82 | + $('power').className = 'battery-percent'; | ||
| 83 | + $('power').innerHTML = this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor, true, 1); | ||
| 84 | + } else if(batteryLevelImage == 2) { | ||
| 85 | + if (payload.percent_ui == 100) { | ||
| 86 | + $('power').className = 'battery-percentimage-charged'; | ||
| 87 | + $('power').innerHTML = '<img src="images/battery-charged.png" />' + this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor, true, 1); | ||
| 88 | + } else { | ||
| 89 | + $('power').className = 'battery-percentimage'; | ||
| 90 | + $('power').innerHTML = '<img src="images/battery-charging-' + i + '.png" />' + this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor, true, 1); | ||
| 91 | + } | ||
| 92 | + } | ||
| 93 | |||
| 94 | } | ||
| 95 | |||
| 96 | @@ -1522,10 +1582,23 @@ handlePowerNotifications: function(payload) { | ||
| 97 | |||
| 98 | if (this.isCharging) { | ||
| 99 | Mojo.Log.info("SystemUI- Charger Notification "+ this.isCharging + " Last battery level "+ this.lastBatteryLevel); | ||
| 100 | - if(this.batteryLevel == 100) | ||
| 101 | + if (batteryLevelImage == 0) { | ||
| 102 | + if (this.batteryLevel == 100) | ||
| 103 | $('power').className = 'battery-charged'; | ||
| 104 | else | ||
| 105 | $('power').className = 'battery-charging-' + this.lastBatteryLevel; | ||
| 106 | + } else if(batteryLevelImage == 1) { | ||
| 107 | + $('power').className = 'battery-percent'; | ||
| 108 | + $('power').innerHTML = this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor, true, 1); | ||
| 109 | + } else if(batteryLevelImage == 2) { | ||
| 110 | + if (this.batteryLevel == 100) { | ||
| 111 | + $('power').className = 'battery-percentimage-charged'; | ||
| 112 | + $('power').innerHTML = '<img src="images/battery-charged.png" />' + this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor, true, 1); | ||
| 113 | + } else { | ||
| 114 | + $('power').className = 'battery-percentimage'; | ||
| 115 | + $('power').innerHTML = '<img src="images/battery-charging-' + this.lastBatteryLevel + '.png" />' + this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor, true, 1); | ||
| 116 | + } | ||
| 117 | + } | ||
| 118 | |||
| 119 | var stageController = Mojo.Controller.getAppController().getStageProxy("LowBatteryAlert"); | ||
| 120 | if (stageController) { | ||
| 121 | @@ -1546,7 +1619,17 @@ handlePowerNotifications: function(payload) { | ||
| 122 | else { | ||
| 123 | this.chargingBannerShown = false; | ||
| 124 | Mojo.Log.info("SystemUI- Charger Notification "+ this.isCharging + " Last battery level "+ this.lastBatteryLevel); | ||
| 125 | + if (batteryLevelImage == 0) { | ||
| 126 | $('power').className = 'battery-' + this.lastBatteryLevel; | ||
| 127 | + } | ||
| 128 | + else if (batteryLevelImage == 1) { | ||
| 129 | + $('power').className = 'battery-percent'; | ||
| 130 | + $('power').innerHTML = this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor, true); | ||
| 131 | + } | ||
| 132 | + else if(batteryLevelImage == 2) { | ||
| 133 | + $('power').className = 'battery-percentimage'; | ||
| 134 | + $('power').innerHTML = '<img src="images/battery-' + this.lastBatteryLevel + '.png" />' + this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor); | ||
| 135 | + } | ||
| 136 | Mojo.Controller.getAppController().removeBanner('chargingAlert'); | ||
| 137 | } | ||
| 138 | } | ||
| 139 | diff --git a/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css b/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css | ||
| 140 | index 58b22e8..b23eab5 100644 | ||
| 141 | --- a/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css | ||
| 142 | +++ b/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css | ||
| 143 | @@ -136,6 +136,22 @@ body.palm-default { | ||
| 144 | margin-left: 2px; | ||
| 145 | width: 17px; | ||
| 146 | } | ||
| 147 | + | ||
| 148 | +/* Begin: Battery Percent / Image w/ Percent */ | ||
| 149 | +#power.battery-percent { | ||
| 150 | + width: 38px; | ||
| 151 | + background-color: black; | ||
| 152 | +} | ||
| 153 | +#power.battery-percentimage { | ||
| 154 | + width: 49px; | ||
| 155 | + background-color: black; | ||
| 156 | +} | ||
| 157 | +#power.battery-percentimage-charged { | ||
| 158 | + width: 49px; | ||
| 159 | + background-color: black; | ||
| 160 | +} | ||
| 161 | +/* End: Battery Percent / Image w/ Percent */ | ||
| 162 | + | ||
| 163 | #power.error { | ||
| 164 | background: url(../images/battery-error.png) center center no-repeat; | ||
| 165 | } |
luna/battery-percent.patch
(0 / 165)
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 2 | index ee479ac..0618d89 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 5 | @@ -1430,10 +1430,49 @@ closePbapAlert: function() { | ||
| 6 | } | ||
| 7 | }, | ||
| 8 | |||
| 9 | +/* Format battery level percent | ||
| 10 | + * We use this function instead of just a variable because | ||
| 11 | + * sometimes this.batteryLevel is used, and sometimes | ||
| 12 | + * payload.percent_ui is | ||
| 13 | + */ | ||
| 14 | +getBatteryLevelPercent: function(percent, color, image, charging) { | ||
| 15 | + if (color) { | ||
| 16 | + if (charging == 1) | ||
| 17 | + bColor = '#33CCFF'; | ||
| 18 | + else if (percent >= 70) | ||
| 19 | + bColor = '#33FF33'; | ||
| 20 | + else if(percent <= 69 && percent >= 45) | ||
| 21 | + bColor = '#FFFF33'; | ||
| 22 | + else if(percent <= 44 && percent >= 20) | ||
| 23 | + bColor = '#FFCC00'; | ||
| 24 | + else if(percent <= 19) | ||
| 25 | + bColor = '#FF0000'; | ||
| 26 | + else | ||
| 27 | + bColor = 'white'; | ||
| 28 | + | ||
| 29 | + // Use span to set color | ||
| 30 | + if (image != undefined) | ||
| 31 | + var fPercent = '<span style="color: ' + bColor + ';">' + percent + unescape('%') + '</span>'; | ||
| 32 | + else | ||
| 33 | + var fPercent = '<span style="position: relative; bottom: 2px; color: ' + bColor + ';">' + percent + unescape('%') + '</span>'; | ||
| 34 | + } | ||
| 35 | + else { | ||
| 36 | + var fPercent = percent + unescape('%'); | ||
| 37 | + } | ||
| 38 | + return fPercent; | ||
| 39 | +}, | ||
| 40 | + | ||
| 41 | + | ||
| 42 | /* | ||
| 43 | * Handle power and charging notifications | ||
| 44 | */ | ||
| 45 | handlePowerNotifications: function(payload) { | ||
| 46 | + // Replace this with a user definable setting | ||
| 47 | + var batteryLevelImage = 1; // 0 displays image (factory default) | ||
| 48 | + // 1 displays numerical percentage | ||
| 49 | + // 2 displays the image on left and numerical percentage on right (default) | ||
| 50 | + | ||
| 51 | + var batteryLevelColor = 1; // Set to 0 for white, 1 for color | ||
| 52 | |||
| 53 | Mojo.Log.info("SystemUI Power Payload "+ Object.toJSON(payload)); | ||
| 54 | if(!this.powerdServiceUp) { | ||
| 55 | @@ -1453,7 +1492,15 @@ handlePowerNotifications: function(payload) { | ||
| 56 | // Show the battery level if not charging | ||
| 57 | if (!this.isCharging) { | ||
| 58 | Mojo.Log.info("SystemUI- Is Charging "+ this.isCharging + " Battery level "+ i); | ||
| 59 | + if (batteryLevelImage == 0) { | ||
| 60 | $('power').className = 'battery-' + i; | ||
| 61 | + } else if(batteryLevelImage == 1) { | ||
| 62 | + $('power').className = 'battery-percent'; | ||
| 63 | + $('power').innerHTML = this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor, true, 0); | ||
| 64 | + } else if(batteryLevelImage == 2) { | ||
| 65 | + $('power').className = 'battery-percentimage'; | ||
| 66 | + $('power').innerHTML = '<img src="images/battery-' + i + '.png" />' + this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor); | ||
| 67 | + } | ||
| 68 | |||
| 69 | //Show Banner Message if the Battery level is below 20% | ||
| 70 | var batteryalert = $L("#{percent_ui}% battery remaining").interpolate(payload); | ||
| 71 | @@ -1482,10 +1529,23 @@ handlePowerNotifications: function(payload) { | ||
| 72 | } | ||
| 73 | else { | ||
| 74 | Mojo.Log.info("SystemUI- Is Charging "+ this.isCharging ); | ||
| 75 | - if(payload.percent_ui == 100) | ||
| 76 | + if (batteryLevelImage == 0) { | ||
| 77 | + if (payload.percent_ui == 100) | ||
| 78 | $('power').className = 'battery-charged'; | ||
| 79 | else | ||
| 80 | $('power').className = 'battery-charging-' + i; | ||
| 81 | + } else if (batteryLevelImage == 1) { | ||
| 82 | + $('power').className = 'battery-percent'; | ||
| 83 | + $('power').innerHTML = this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor, true, 1); | ||
| 84 | + } else if(batteryLevelImage == 2) { | ||
| 85 | + if (payload.percent_ui == 100) { | ||
| 86 | + $('power').className = 'battery-percentimage-charged'; | ||
| 87 | + $('power').innerHTML = '<img src="images/battery-charged.png" />' + this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor, true, 1); | ||
| 88 | + } else { | ||
| 89 | + $('power').className = 'battery-percentimage'; | ||
| 90 | + $('power').innerHTML = '<img src="images/battery-charging-' + i + '.png" />' + this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor, true, 1); | ||
| 91 | + } | ||
| 92 | + } | ||
| 93 | |||
| 94 | } | ||
| 95 | |||
| 96 | @@ -1522,10 +1582,23 @@ handlePowerNotifications: function(payload) { | ||
| 97 | |||
| 98 | if (this.isCharging) { | ||
| 99 | Mojo.Log.info("SystemUI- Charger Notification "+ this.isCharging + " Last battery level "+ this.lastBatteryLevel); | ||
| 100 | - if(this.batteryLevel == 100) | ||
| 101 | + if (batteryLevelImage == 0) { | ||
| 102 | + if (this.batteryLevel == 100) | ||
| 103 | $('power').className = 'battery-charged'; | ||
| 104 | else | ||
| 105 | $('power').className = 'battery-charging-' + this.lastBatteryLevel; | ||
| 106 | + } else if(batteryLevelImage == 1) { | ||
| 107 | + $('power').className = 'battery-percent'; | ||
| 108 | + $('power').innerHTML = this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor, true, 1); | ||
| 109 | + } else if(batteryLevelImage == 2) { | ||
| 110 | + if (this.batteryLevel == 100) { | ||
| 111 | + $('power').className = 'battery-percentimage-charged'; | ||
| 112 | + $('power').innerHTML = '<img src="images/battery-charged.png" />' + this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor, true, 1); | ||
| 113 | + } else { | ||
| 114 | + $('power').className = 'battery-percentimage'; | ||
| 115 | + $('power').innerHTML = '<img src="images/battery-charging-' + this.lastBatteryLevel + '.png" />' + this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor, true, 1); | ||
| 116 | + } | ||
| 117 | + } | ||
| 118 | |||
| 119 | var stageController = Mojo.Controller.getAppController().getStageProxy("LowBatteryAlert"); | ||
| 120 | if (stageController) { | ||
| 121 | @@ -1546,7 +1619,17 @@ handlePowerNotifications: function(payload) { | ||
| 122 | else { | ||
| 123 | this.chargingBannerShown = false; | ||
| 124 | Mojo.Log.info("SystemUI- Charger Notification "+ this.isCharging + " Last battery level "+ this.lastBatteryLevel); | ||
| 125 | + if (batteryLevelImage == 0) { | ||
| 126 | $('power').className = 'battery-' + this.lastBatteryLevel; | ||
| 127 | + } | ||
| 128 | + else if (batteryLevelImage == 1) { | ||
| 129 | + $('power').className = 'battery-percent'; | ||
| 130 | + $('power').innerHTML = this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor, true); | ||
| 131 | + } | ||
| 132 | + else if(batteryLevelImage == 2) { | ||
| 133 | + $('power').className = 'battery-percentimage'; | ||
| 134 | + $('power').innerHTML = '<img src="images/battery-' + this.lastBatteryLevel + '.png" />' + this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor); | ||
| 135 | + } | ||
| 136 | Mojo.Controller.getAppController().removeBanner('chargingAlert'); | ||
| 137 | } | ||
| 138 | } | ||
| 139 | diff --git a/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css b/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css | ||
| 140 | index 58b22e8..b23eab5 100644 | ||
| 141 | --- a/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css | ||
| 142 | +++ b/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css | ||
| 143 | @@ -136,6 +136,22 @@ body.palm-default { | ||
| 144 | margin-left: 2px; | ||
| 145 | width: 17px; | ||
| 146 | } | ||
| 147 | + | ||
| 148 | +/* Begin: Battery Percent / Image w/ Percent */ | ||
| 149 | +#power.battery-percent { | ||
| 150 | + width: 38px; | ||
| 151 | + background-color: black; | ||
| 152 | +} | ||
| 153 | +#power.battery-percentimage { | ||
| 154 | + width: 49px; | ||
| 155 | + background-color: black; | ||
| 156 | +} | ||
| 157 | +#power.battery-percentimage-charged { | ||
| 158 | + width: 49px; | ||
| 159 | + background-color: black; | ||
| 160 | +} | ||
| 161 | +/* End: Battery Percent / Image w/ Percent */ | ||
| 162 | + | ||
| 163 | #power.error { | ||
| 164 | background: url(../images/battery-error.png) center center no-repeat; | ||
| 165 | } |
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 2 | index f343ce2..6f9bcd3 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 5 | @@ -1479,7 +1479,7 @@ handlePowerNotifications: function(payload) { | ||
| 6 | this.controller.showBanner({ | ||
| 7 | messageText: batteryalert, | ||
| 8 | icon: "/usr/lib/luna/system/luna-systemui/images/notification-small-charging.png", | ||
| 9 | - soundClass: soundClassName | ||
| 10 | + soundClass: "" | ||
| 11 | },null, 'chargingAlert'); | ||
| 12 | } | ||
| 13 | this.chargingBannerShown = true; |
luna/enable-dev-mode-icon.patch
(0 / 12)
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.devmodeswitcher/appinfo.json b/usr/palm/applications/com.palm.app.devmodeswitcher/appinfo.json | ||
| 2 | index 7d9da85..c0f2522 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.devmodeswitcher/appinfo.json | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.devmodeswitcher/appinfo.json | ||
| 5 | @@ -5,6 +5,6 @@ | ||
| 6 | "id": "com.palm.app.devmodeswitcher", | ||
| 7 | "icon": "icon.png", | ||
| 8 | "noWindow": false, | ||
| 9 | - "visible": false | ||
| 10 | + "visible": true | ||
| 11 | } | ||
| 12 |
luna/keytoss-keyword-search.patch
(0 / 148)
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-applauncher/app/controllers/global-search-assistant.js b/usr/lib/luna/system/luna-applauncher/app/controllers/global-search-assistant.js | ||
| 2 | index 7d94506..1c90d5e 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-applauncher/app/controllers/global-search-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-applauncher/app/controllers/global-search-assistant.js | ||
| 5 | @@ -48,6 +48,7 @@ GlobalSearchAssistant = Class.create({ | ||
| 6 | this.offset=0; | ||
| 7 | this.limit=40; | ||
| 8 | this.URLs = { | ||
| 9 | + 'keytoss':$L("http://pre.keytoss.com/parse.php5?term="), | ||
| 10 | 'google':$L("www.google.com/m/search?client=ms-palm-webOS&channel=iss&q="), | ||
| 11 | 'wikipedia':$L("http://en.m.wikipedia.org/wiki/Special:Search?search="), | ||
| 12 | 'twitter': $L("http://search.twitter.com/search?q=") | ||
| 13 | @@ -1656,6 +1657,7 @@ GlobalSearchAssistant = Class.create({ | ||
| 14 | this.expandedSearchDrawer.showExpanded = false; | ||
| 15 | this.controller.modelChanged(this.expandedSearchDrawer); | ||
| 16 | this.searchApps.clear(); | ||
| 17 | + $('keytoss').removeClassName('selected'); | ||
| 18 | $('google').removeClassName('selected'); | ||
| 19 | $('map').removeClassName('selected'); | ||
| 20 | $('wikipedia').removeClassName('selected'); | ||
| 21 | @@ -1761,6 +1763,7 @@ GlobalSearchAssistant = Class.create({ | ||
| 22 | } | ||
| 23 | //clear search': | ||
| 24 | $('google').removeClassName('palm-focus'); | ||
| 25 | + $('keytoss').removeClassName('palm-focus'); | ||
| 26 | $('web').removeClassName('palm-focus'); | ||
| 27 | }, | ||
| 28 | highlightSelection: function() { | ||
| 29 | @@ -1819,19 +1822,23 @@ GlobalSearchAssistant = Class.create({ | ||
| 30 | break; | ||
| 31 | case 'search': | ||
| 32 | if (this.webDrawer.showWeb == true) { | ||
| 33 | - $('google').removeClassName('palm-focus'); | ||
| 34 | + //$('google').removeClassName('palm-focus'); | ||
| 35 | + $('keytoss').removeClassName('palm-focus'); | ||
| 36 | $('web').addClassName('palm-focus'); | ||
| 37 | this.highlightTarget = $('web'); | ||
| 38 | } | ||
| 39 | else if(this.expandedSearchDrawer.showExpanded == true){ | ||
| 40 | - $('google').addClassName('palm-focus'); | ||
| 41 | + //$('google').addClassName('palm-focus'); | ||
| 42 | + $('keytoss').addClassName('palm-focus'); | ||
| 43 | $('web').removeClassName('palm-focus'); | ||
| 44 | - this.highlightTarget = $('google'); | ||
| 45 | + //this.highlightTarget = $('google'); | ||
| 46 | + this.highlightTarget = $('keytoss'); | ||
| 47 | } | ||
| 48 | break; | ||
| 49 | } | ||
| 50 | if (this.enterKeyActionItem != "search") { | ||
| 51 | $('google').removeClassName('palm-focus'); | ||
| 52 | + $('keytoss').removeClassName('palm-focus'); | ||
| 53 | $('web').removeClassName('palm-focus'); | ||
| 54 | } | ||
| 55 | }, | ||
| 56 | @@ -1923,7 +1930,8 @@ GlobalSearchAssistant = Class.create({ | ||
| 57 | if (this.webDrawer.showWeb == true) | ||
| 58 | this.launchBrowser(this.currentFilter); | ||
| 59 | else { | ||
| 60 | - this.launchBrowser(this.URLs['google'] + encodeURIComponent(this.currentFilter)); | ||
| 61 | + //this.launchBrowser(this.URLs['google'] + encodeURIComponent(this.currentFilter)); | ||
| 62 | + this.launchBrowser(this.URLs['keytoss'] + encodeURIComponent(this.currentFilter)); | ||
| 63 | } | ||
| 64 | break; | ||
| 65 | } | ||
| 66 | diff --git a/usr/lib/luna/system/luna-applauncher/app/views/global-search/expanded-searches-div.html b/usr/lib/luna/system/luna-applauncher/app/views/global-search/expanded-searches-div.html | ||
| 67 | index 7bfc200..00cc1cc 100644 | ||
| 68 | --- a/usr/lib/luna/system/luna-applauncher/app/views/global-search/expanded-searches-div.html | ||
| 69 | +++ b/usr/lib/luna/system/luna-applauncher/app/views/global-search/expanded-searches-div.html | ||
| 70 | @@ -9,6 +9,11 @@ | ||
| 71 | </div> | ||
| 72 | |||
| 73 | <div id='expanded_searches_drawer' x-mojo-element="Drawer"> | ||
| 74 | + <div class="palm-row" id="keytoss" name="search-identifier" x-mojo-tap-highlight="persistent"> | ||
| 75 | + <div class="palm-row-wrapper"> | ||
| 76 | + <div class="search-keytoss"></div> | ||
| 77 | + </div> | ||
| 78 | + </div> | ||
| 79 | <div class="palm-row" id="google" name="search-identifier" x-mojo-tap-highlight="persistent"> | ||
| 80 | <div class="palm-row-wrapper"> | ||
| 81 | <div class="search-google"></div> | ||
| 82 | diff --git a/usr/lib/luna/system/luna-applauncher/stylesheets/global-search.css b/usr/lib/luna/system/luna-applauncher/stylesheets/global-search.css | ||
| 83 | index 1f10209..5887f9c 100644 | ||
| 84 | --- a/usr/lib/luna/system/luna-applauncher/stylesheets/global-search.css | ||
| 85 | +++ b/usr/lib/luna/system/luna-applauncher/stylesheets/global-search.css | ||
| 86 | @@ -119,6 +119,12 @@ Copyright 2009 Palm, Inc. All rights reserved. | ||
| 87 | background: url(../images/search-add.png) center center no-repeat; | ||
| 88 | } | ||
| 89 | |||
| 90 | +.palm-group.search .search-keytoss { | ||
| 91 | + width: 100%; | ||
| 92 | + height: 52px; | ||
| 93 | + background: url(../images/search-keytoss.png) center center no-repeat; | ||
| 94 | +} | ||
| 95 | + | ||
| 96 | .palm-group.search .search-google { | ||
| 97 | width: 100%; | ||
| 98 | height: 52px; | ||
| 99 | diff --git a/usr/palm/applications/com.palm.app.browser/app/controllers/urlsearch-controller.js b/usr/palm/applications/com.palm.app.browser/app/controllers/urlsearch-controller.js | ||
| 100 | index 986f0bb..61d4d0c 100644 | ||
| 101 | --- a/usr/palm/applications/com.palm.app.browser/app/controllers/urlsearch-controller.js | ||
| 102 | +++ b/usr/palm/applications/com.palm.app.browser/app/controllers/urlsearch-controller.js | ||
| 103 | @@ -58,6 +58,12 @@ function UrlSearchController(controller){ | ||
| 104 | |||
| 105 | // Our search providers | ||
| 106 | UrlSearchController.SearchProviders = { | ||
| 107 | + keytoss: { | ||
| 108 | + searchTitle: $L('Search KeyToss'), | ||
| 109 | + searchTemplate: $L('KeyToss "#{search}"'), | ||
| 110 | + urlTemplate: $L('http://pre.keytoss.com/parse.php5?term=#{query}') | ||
| 111 | + }, | ||
| 112 | + | ||
| 113 | google: { | ||
| 114 | searchTitle: $L('Search Google'), | ||
| 115 | searchTemplate: $L('Google "#{search}"'), | ||
| 116 | @@ -218,14 +224,18 @@ UrlSearchController.prototype._addStockSearchItems = function(searchText, withDi | ||
| 117 | this.urlSearchListModel.unshift(item); | ||
| 118 | |||
| 119 | // Google block.... | ||
| 120 | - url = UrlSearchController.SearchProviders.google.urlTemplate.interpolate({query: encodedUriComponent}); | ||
| 121 | - title = UrlSearchController.SearchProviders.google.searchTemplate.interpolate({search: escapedSearchText}); | ||
| 122 | + //url = UrlSearchController.SearchProviders.google.urlTemplate.interpolate({query: encodedUriComponent}); | ||
| 123 | + //title = UrlSearchController.SearchProviders.google.searchTemplate.interpolate({search: escapedSearchText}); | ||
| 124 | + url = UrlSearchController.SearchProviders.keytoss.urlTemplate.interpolate({query: encodedUriComponent}); | ||
| 125 | + title = UrlSearchController.SearchProviders.keytoss.searchTemplate.interpolate({search: escapedSearchText}); | ||
| 126 | |||
| 127 | item = new UrlReference(url, title); | ||
| 128 | - item.subTitle = UrlSearchController.SearchProviders.google.searchTitle; | ||
| 129 | + //item.subTitle = UrlSearchController.SearchProviders.google.searchTitle; | ||
| 130 | + item.subTitle = UrlSearchController.SearchProviders.keytoss.searchTitle; | ||
| 131 | item.iconclass = 'search-image'; | ||
| 132 | item.rowclass = 'search first'; | ||
| 133 | - item.iconUrl = Mojo.appPath + 'images/list-icon-google.png'; | ||
| 134 | + //item.iconUrl = Mojo.appPath + 'images/list-icon-google.png'; | ||
| 135 | + item.iconUrl = Mojo.appPath + 'images/list-icon-keytoss.png'; | ||
| 136 | |||
| 137 | this.urlSearchListModel.unshift(item); | ||
| 138 | |||
| 139 | @@ -382,7 +392,8 @@ UrlSearchController.prototype._handleSelection = function(event) { | ||
| 140 | |||
| 141 | UrlSearchController.formatDefaultSearchUrl = function(query) { | ||
| 142 | |||
| 143 | - return UrlSearchController.SearchProviders.google.urlTemplate.interpolate({query: encodeURIComponent(query)}); | ||
| 144 | + //return UrlSearchController.SearchProviders.google.urlTemplate.interpolate({query: encodeURIComponent(query)}); | ||
| 145 | + return UrlSearchController.SearchProviders.keytoss.urlTemplate.interpolate({query: encodeURIComponent(query)}); | ||
| 146 | }; | ||
| 147 | |||
| 148 | /** |
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js b/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 2 | index 4da3e85..590fab5 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 5 | @@ -10,7 +10,7 @@ var LauncherAssistant = Class.create({ | ||
| 6 | */ | ||
| 7 | kQuickLaunchHeight: 67, | ||
| 8 | |||
| 9 | - kPageIndicatorSpacing: 6, /* spacing between each page indicator */ | ||
| 10 | + kPageIndicatorSpacing: 1, /* spacing between each page indicator */ | ||
| 11 | kPageMargin: 10, /* 10 pixel margin on each side of a page */ | ||
| 12 | kPageWidthNoMargin: NaN, | ||
| 13 | kPageWidth: NaN, | ||
| 14 | @@ -324,9 +324,9 @@ var LauncherAssistant = Class.create({ | ||
| 15 | var newAppDiv = $(newAppInfo.launchPointId); | ||
| 16 | Mojo.assert(newAppDiv !== undefined, "Application (%d) was inserted into the DOM but unable to be retrieved!", newAppInfo.launchPointId); | ||
| 17 | if (isNaN(this.kAppWidth) || isNaN(this.kAppHeight)) { | ||
| 18 | - this.kAppWidth = newAppDiv.getWidth(); | ||
| 19 | - this.kAppHeight = newAppDiv.getHeight(); | ||
| 20 | - this.kAppsPerRow = Math.round(this.kPageWidthNoMargin / this.kAppWidth); | ||
| 21 | + this.kAppWidth = 75; | ||
| 22 | + this.kAppHeight = 90; | ||
| 23 | + this.kAppsPerRow = 4; | ||
| 24 | } | ||
| 25 | |||
| 26 | Mojo.listen(newAppDiv, Mojo.Event.tap, this.onAppTapped.bindAsEventListener(this)); | ||
| 27 | @@ -439,7 +439,7 @@ var LauncherAssistant = Class.create({ | ||
| 28 | /* determines the position of an app element at appIndex within a page */ | ||
| 29 | calculateAppPosition: function(appIndex) { | ||
| 30 | return { | ||
| 31 | - left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) + this.kPageMargin), | ||
| 32 | + left: (((appIndex % this.kAppsPerRow) * this.kAppWidth)), | ||
| 33 | top: (Math.floor(appIndex/this.kAppsPerRow) * this.kAppHeight) | ||
| 34 | }; | ||
| 35 | }, | ||
| 36 | diff --git a/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css b/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 37 | index b1244af..0abf90f 100644 | ||
| 38 | --- a/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 39 | +++ b/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 40 | @@ -121,8 +121,8 @@ body.palm-default | ||
| 41 | |||
| 42 | .launcher_page .name { | ||
| 43 | position:absolute; | ||
| 44 | - top: 68px; | ||
| 45 | - width:100px; | ||
| 46 | + top: 48px; | ||
| 47 | + width:80px; | ||
| 48 | height: 34px; | ||
| 49 | max-height: 34px; | ||
| 50 | clear:both; | ||
| 51 | @@ -130,7 +130,8 @@ body.palm-default | ||
| 52 | color:white; | ||
| 53 | text-align:center; | ||
| 54 | font-weight:bold; | ||
| 55 | - font-size: 14px; | ||
| 56 | + font-size: 11px; | ||
| 57 | + left: 10px; | ||
| 58 | overflow: hidden; | ||
| 59 | text-overflow: ellipsis; | ||
| 60 | z-index:5; | ||
| 61 | @@ -164,8 +165,8 @@ body.palm-default | ||
| 62 | } | ||
| 63 | |||
| 64 | .draggable { | ||
| 65 | - width:64px; | ||
| 66 | - height:64px; | ||
| 67 | + width:48px; | ||
| 68 | + height:48px; | ||
| 69 | margin: 0 auto; | ||
| 70 | -webkit-user-drag: any; | ||
| 71 | -webkit-user-select: none; | ||
| 72 | @@ -213,8 +214,8 @@ body.palm-default | ||
| 73 | |||
| 74 | #app-icon { | ||
| 75 | float:left; | ||
| 76 | - width:64px; | ||
| 77 | - height:64px; | ||
| 78 | + width:32px; | ||
| 79 | + height:32px; | ||
| 80 | background: center center no-repeat; | ||
| 81 | } | ||
| 82 |
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 2 | index ee479ac..115140c 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 5 | @@ -2337,7 +2337,9 @@ updateClockEveryMinute: function() { | ||
| 6 | } | ||
| 7 | } | ||
| 8 | format = format.replace(/\s?a\s?/,""); | ||
| 9 | - $('clock').innerHTML = Mojo.Format.formatDate(date, {time: format}); | ||
| 10 | + var formatDate = Mojo.Format.formatDate(date, {date:'short'}); | ||
| 11 | + formatDate = formatDate.substr(0, formatDate.lastIndexOf('/')); | ||
| 12 | + $('clock').innerHTML = formatDate+' '+Mojo.Format.formatDate(date, {time:format}); | ||
| 13 | $('today').innerHTML = Mojo.Format.formatDate(date,{date:'short'}); | ||
| 14 | }, | ||
| 15 |
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 2 | index ee479ac..f02e1cd 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 5 | @@ -2337,7 +2337,7 @@ updateClockEveryMinute: function() { | ||
| 6 | } | ||
| 7 | } | ||
| 8 | format = format.replace(/\s?a\s?/,""); | ||
| 9 | - $('clock').innerHTML = Mojo.Format.formatDate(date, {time: format}); | ||
| 10 | + $('clock').innerHTML = Mojo.Format.formatDate(date, {date:'short',time: format}); | ||
| 11 | $('today').innerHTML = Mojo.Format.formatDate(date,{date:'short'}); | ||
| 12 | }, | ||
| 13 |
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 2 | index ee479ac..c2447db 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 5 | @@ -1430,10 +1430,49 @@ closePbapAlert: function() { | ||
| 6 | } | ||
| 7 | }, | ||
| 8 | |||
| 9 | +/* Format battery level percent | ||
| 10 | + * We use this function instead of just a variable because | ||
| 11 | + * sometimes this.batteryLevel is used, and sometimes | ||
| 12 | + * payload.percent_ui is | ||
| 13 | + */ | ||
| 14 | +getBatteryLevelPercent: function(percent, color, image, charging) { | ||
| 15 | + if (color) { | ||
| 16 | + if (charging == 1) | ||
| 17 | + bColor = '#33CCFF'; | ||
| 18 | + else if (percent >= 70) | ||
| 19 | + bColor = '#33FF33'; | ||
| 20 | + else if(percent <= 69 && percent >= 45) | ||
| 21 | + bColor = '#FFFF33'; | ||
| 22 | + else if(percent <= 44 && percent >= 20) | ||
| 23 | + bColor = '#FFCC00'; | ||
| 24 | + else if(percent <= 19) | ||
| 25 | + bColor = '#FF0000'; | ||
| 26 | + else | ||
| 27 | + bColor = 'white'; | ||
| 28 | + | ||
| 29 | + // Use span to set color | ||
| 30 | + if (image != undefined) | ||
| 31 | + var fPercent = '<span style="color: ' + bColor + ';">' + percent + unescape('%') + '</span>'; | ||
| 32 | + else | ||
| 33 | + var fPercent = '<span style="position: relative; bottom: 2px; color: ' + bColor + ';">' + percent + unescape('%') + '</span>'; | ||
| 34 | + } | ||
| 35 | + else { | ||
| 36 | + var fPercent = percent + unescape('%'); | ||
| 37 | + } | ||
| 38 | + return fPercent; | ||
| 39 | +}, | ||
| 40 | + | ||
| 41 | + | ||
| 42 | /* | ||
| 43 | * Handle power and charging notifications | ||
| 44 | */ | ||
| 45 | handlePowerNotifications: function(payload) { | ||
| 46 | + // Replace this with a user definable setting | ||
| 47 | + var batteryLevelImage = 2; // 0 displays image (factory default) | ||
| 48 | + // 1 displays numerical percentage | ||
| 49 | + // 2 displays the image on left and numerical percentage on right (default) | ||
| 50 | + | ||
| 51 | + var batteryLevelColor = 1; // Set to 0 for white, 1 for color | ||
| 52 | |||
| 53 | Mojo.Log.info("SystemUI Power Payload "+ Object.toJSON(payload)); | ||
| 54 | if(!this.powerdServiceUp) { | ||
| 55 | @@ -1453,7 +1492,15 @@ handlePowerNotifications: function(payload) { | ||
| 56 | // Show the battery level if not charging | ||
| 57 | if (!this.isCharging) { | ||
| 58 | Mojo.Log.info("SystemUI- Is Charging "+ this.isCharging + " Battery level "+ i); | ||
| 59 | + if (batteryLevelImage == 0) { | ||
| 60 | $('power').className = 'battery-' + i; | ||
| 61 | + } else if(batteryLevelImage == 1) { | ||
| 62 | + $('power').className = 'battery-percent'; | ||
| 63 | + $('power').innerHTML = this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor, true, 0); | ||
| 64 | + } else if(batteryLevelImage == 2) { | ||
| 65 | + $('power').className = 'battery-percentimage'; | ||
| 66 | + $('power').innerHTML = '<img src="images/battery-' + i + '.png" />' + this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor); | ||
| 67 | + } | ||
| 68 | |||
| 69 | //Show Banner Message if the Battery level is below 20% | ||
| 70 | var batteryalert = $L("#{percent_ui}% battery remaining").interpolate(payload); | ||
| 71 | @@ -1482,10 +1529,23 @@ handlePowerNotifications: function(payload) { | ||
| 72 | } | ||
| 73 | else { | ||
| 74 | Mojo.Log.info("SystemUI- Is Charging "+ this.isCharging ); | ||
| 75 | - if(payload.percent_ui == 100) | ||
| 76 | + if (batteryLevelImage == 0) { | ||
| 77 | + if (payload.percent_ui == 100) | ||
| 78 | $('power').className = 'battery-charged'; | ||
| 79 | else | ||
| 80 | $('power').className = 'battery-charging-' + i; | ||
| 81 | + } else if (batteryLevelImage == 1) { | ||
| 82 | + $('power').className = 'battery-percent'; | ||
| 83 | + $('power').innerHTML = this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor, true, 1); | ||
| 84 | + } else if(batteryLevelImage == 2) { | ||
| 85 | + if (payload.percent_ui == 100) { | ||
| 86 | + $('power').className = 'battery-percentimage-charged'; | ||
| 87 | + $('power').innerHTML = '<img src="images/battery-charged.png" />' + this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor, true, 1); | ||
| 88 | + } else { | ||
| 89 | + $('power').className = 'battery-percentimage'; | ||
| 90 | + $('power').innerHTML = '<img src="images/battery-charging-' + i + '.png" />' + this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor, true, 1); | ||
| 91 | + } | ||
| 92 | + } | ||
| 93 | |||
| 94 | } | ||
| 95 | |||
| 96 | @@ -1522,10 +1582,23 @@ handlePowerNotifications: function(payload) { | ||
| 97 | |||
| 98 | if (this.isCharging) { | ||
| 99 | Mojo.Log.info("SystemUI- Charger Notification "+ this.isCharging + " Last battery level "+ this.lastBatteryLevel); | ||
| 100 | - if(this.batteryLevel == 100) | ||
| 101 | + if (batteryLevelImage == 0) { | ||
| 102 | + if (this.batteryLevel == 100) | ||
| 103 | $('power').className = 'battery-charged'; | ||
| 104 | else | ||
| 105 | $('power').className = 'battery-charging-' + this.lastBatteryLevel; | ||
| 106 | + } else if(batteryLevelImage == 1) { | ||
| 107 | + $('power').className = 'battery-percent'; | ||
| 108 | + $('power').innerHTML = this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor, true, 1); | ||
| 109 | + } else if(batteryLevelImage == 2) { | ||
| 110 | + if (this.batteryLevel == 100) { | ||
| 111 | + $('power').className = 'battery-percentimage-charged'; | ||
| 112 | + $('power').innerHTML = '<img src="images/battery-charged.png" />' + this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor, true, 1); | ||
| 113 | + } else { | ||
| 114 | + $('power').className = 'battery-percentimage'; | ||
| 115 | + $('power').innerHTML = '<img src="images/battery-charging-' + this.lastBatteryLevel + '.png" />' + this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor, true, 1); | ||
| 116 | + } | ||
| 117 | + } | ||
| 118 | |||
| 119 | var stageController = Mojo.Controller.getAppController().getStageProxy("LowBatteryAlert"); | ||
| 120 | if (stageController) { | ||
| 121 | @@ -1546,7 +1619,17 @@ handlePowerNotifications: function(payload) { | ||
| 122 | else { | ||
| 123 | this.chargingBannerShown = false; | ||
| 124 | Mojo.Log.info("SystemUI- Charger Notification "+ this.isCharging + " Last battery level "+ this.lastBatteryLevel); | ||
| 125 | + if (batteryLevelImage == 0) { | ||
| 126 | $('power').className = 'battery-' + this.lastBatteryLevel; | ||
| 127 | + } | ||
| 128 | + else if (batteryLevelImage == 1) { | ||
| 129 | + $('power').className = 'battery-percent'; | ||
| 130 | + $('power').innerHTML = this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor, true); | ||
| 131 | + } | ||
| 132 | + else if(batteryLevelImage == 2) { | ||
| 133 | + $('power').className = 'battery-percentimage'; | ||
| 134 | + $('power').innerHTML = '<img src="images/battery-' + this.lastBatteryLevel + '.png" />' + this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor); | ||
| 135 | + } | ||
| 136 | Mojo.Controller.getAppController().removeBanner('chargingAlert'); | ||
| 137 | } | ||
| 138 | } | ||
| 139 | diff --git a/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css b/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css | ||
| 140 | index 58b22e8..b23eab5 100644 | ||
| 141 | --- a/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css | ||
| 142 | +++ b/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css | ||
| 143 | @@ -136,6 +136,22 @@ body.palm-default { | ||
| 144 | margin-left: 2px; | ||
| 145 | width: 17px; | ||
| 146 | } | ||
| 147 | + | ||
| 148 | +/* Begin: Battery Percent / Image w/ Percent */ | ||
| 149 | +#power.battery-percent { | ||
| 150 | + width: 38px; | ||
| 151 | + background-color: black; | ||
| 152 | +} | ||
| 153 | +#power.battery-percentimage { | ||
| 154 | + width: 49px; | ||
| 155 | + background-color: black; | ||
| 156 | +} | ||
| 157 | +#power.battery-percentimage-charged { | ||
| 158 | + width: 49px; | ||
| 159 | + background-color: black; | ||
| 160 | +} | ||
| 161 | +/* End: Battery Percent / Image w/ Percent */ | ||
| 162 | + | ||
| 163 | #power.error { | ||
| 164 | background: url(../images/battery-error.png) center center no-repeat; | ||
| 165 | } |
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 2 | index ee479ac..0618d89 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 5 | @@ -1430,10 +1430,49 @@ closePbapAlert: function() { | ||
| 6 | } | ||
| 7 | }, | ||
| 8 | |||
| 9 | +/* Format battery level percent | ||
| 10 | + * We use this function instead of just a variable because | ||
| 11 | + * sometimes this.batteryLevel is used, and sometimes | ||
| 12 | + * payload.percent_ui is | ||
| 13 | + */ | ||
| 14 | +getBatteryLevelPercent: function(percent, color, image, charging) { | ||
| 15 | + if (color) { | ||
| 16 | + if (charging == 1) | ||
| 17 | + bColor = '#33CCFF'; | ||
| 18 | + else if (percent >= 70) | ||
| 19 | + bColor = '#33FF33'; | ||
| 20 | + else if(percent <= 69 && percent >= 45) | ||
| 21 | + bColor = '#FFFF33'; | ||
| 22 | + else if(percent <= 44 && percent >= 20) | ||
| 23 | + bColor = '#FFCC00'; | ||
| 24 | + else if(percent <= 19) | ||
| 25 | + bColor = '#FF0000'; | ||
| 26 | + else | ||
| 27 | + bColor = 'white'; | ||
| 28 | + | ||
| 29 | + // Use span to set color | ||
| 30 | + if (image != undefined) | ||
| 31 | + var fPercent = '<span style="color: ' + bColor + ';">' + percent + unescape('%') + '</span>'; | ||
| 32 | + else | ||
| 33 | + var fPercent = '<span style="position: relative; bottom: 2px; color: ' + bColor + ';">' + percent + unescape('%') + '</span>'; | ||
| 34 | + } | ||
| 35 | + else { | ||
| 36 | + var fPercent = percent + unescape('%'); | ||
| 37 | + } | ||
| 38 | + return fPercent; | ||
| 39 | +}, | ||
| 40 | + | ||
| 41 | + | ||
| 42 | /* | ||
| 43 | * Handle power and charging notifications | ||
| 44 | */ | ||
| 45 | handlePowerNotifications: function(payload) { | ||
| 46 | + // Replace this with a user definable setting | ||
| 47 | + var batteryLevelImage = 1; // 0 displays image (factory default) | ||
| 48 | + // 1 displays numerical percentage | ||
| 49 | + // 2 displays the image on left and numerical percentage on right (default) | ||
| 50 | + | ||
| 51 | + var batteryLevelColor = 1; // Set to 0 for white, 1 for color | ||
| 52 | |||
| 53 | Mojo.Log.info("SystemUI Power Payload "+ Object.toJSON(payload)); | ||
| 54 | if(!this.powerdServiceUp) { | ||
| 55 | @@ -1453,7 +1492,15 @@ handlePowerNotifications: function(payload) { | ||
| 56 | // Show the battery level if not charging | ||
| 57 | if (!this.isCharging) { | ||
| 58 | Mojo.Log.info("SystemUI- Is Charging "+ this.isCharging + " Battery level "+ i); | ||
| 59 | + if (batteryLevelImage == 0) { | ||
| 60 | $('power').className = 'battery-' + i; | ||
| 61 | + } else if(batteryLevelImage == 1) { | ||
| 62 | + $('power').className = 'battery-percent'; | ||
| 63 | + $('power').innerHTML = this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor, true, 0); | ||
| 64 | + } else if(batteryLevelImage == 2) { | ||
| 65 | + $('power').className = 'battery-percentimage'; | ||
| 66 | + $('power').innerHTML = '<img src="images/battery-' + i + '.png" />' + this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor); | ||
| 67 | + } | ||
| 68 | |||
| 69 | //Show Banner Message if the Battery level is below 20% | ||
| 70 | var batteryalert = $L("#{percent_ui}% battery remaining").interpolate(payload); | ||
| 71 | @@ -1482,10 +1529,23 @@ handlePowerNotifications: function(payload) { | ||
| 72 | } | ||
| 73 | else { | ||
| 74 | Mojo.Log.info("SystemUI- Is Charging "+ this.isCharging ); | ||
| 75 | - if(payload.percent_ui == 100) | ||
| 76 | + if (batteryLevelImage == 0) { | ||
| 77 | + if (payload.percent_ui == 100) | ||
| 78 | $('power').className = 'battery-charged'; | ||
| 79 | else | ||
| 80 | $('power').className = 'battery-charging-' + i; | ||
| 81 | + } else if (batteryLevelImage == 1) { | ||
| 82 | + $('power').className = 'battery-percent'; | ||
| 83 | + $('power').innerHTML = this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor, true, 1); | ||
| 84 | + } else if(batteryLevelImage == 2) { | ||
| 85 | + if (payload.percent_ui == 100) { | ||
| 86 | + $('power').className = 'battery-percentimage-charged'; | ||
| 87 | + $('power').innerHTML = '<img src="images/battery-charged.png" />' + this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor, true, 1); | ||
| 88 | + } else { | ||
| 89 | + $('power').className = 'battery-percentimage'; | ||
| 90 | + $('power').innerHTML = '<img src="images/battery-charging-' + i + '.png" />' + this.getBatteryLevelPercent(payload.percent_ui, batteryLevelColor, true, 1); | ||
| 91 | + } | ||
| 92 | + } | ||
| 93 | |||
| 94 | } | ||
| 95 | |||
| 96 | @@ -1522,10 +1582,23 @@ handlePowerNotifications: function(payload) { | ||
| 97 | |||
| 98 | if (this.isCharging) { | ||
| 99 | Mojo.Log.info("SystemUI- Charger Notification "+ this.isCharging + " Last battery level "+ this.lastBatteryLevel); | ||
| 100 | - if(this.batteryLevel == 100) | ||
| 101 | + if (batteryLevelImage == 0) { | ||
| 102 | + if (this.batteryLevel == 100) | ||
| 103 | $('power').className = 'battery-charged'; | ||
| 104 | else | ||
| 105 | $('power').className = 'battery-charging-' + this.lastBatteryLevel; | ||
| 106 | + } else if(batteryLevelImage == 1) { | ||
| 107 | + $('power').className = 'battery-percent'; | ||
| 108 | + $('power').innerHTML = this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor, true, 1); | ||
| 109 | + } else if(batteryLevelImage == 2) { | ||
| 110 | + if (this.batteryLevel == 100) { | ||
| 111 | + $('power').className = 'battery-percentimage-charged'; | ||
| 112 | + $('power').innerHTML = '<img src="images/battery-charged.png" />' + this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor, true, 1); | ||
| 113 | + } else { | ||
| 114 | + $('power').className = 'battery-percentimage'; | ||
| 115 | + $('power').innerHTML = '<img src="images/battery-charging-' + this.lastBatteryLevel + '.png" />' + this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor, true, 1); | ||
| 116 | + } | ||
| 117 | + } | ||
| 118 | |||
| 119 | var stageController = Mojo.Controller.getAppController().getStageProxy("LowBatteryAlert"); | ||
| 120 | if (stageController) { | ||
| 121 | @@ -1546,7 +1619,17 @@ handlePowerNotifications: function(payload) { | ||
| 122 | else { | ||
| 123 | this.chargingBannerShown = false; | ||
| 124 | Mojo.Log.info("SystemUI- Charger Notification "+ this.isCharging + " Last battery level "+ this.lastBatteryLevel); | ||
| 125 | + if (batteryLevelImage == 0) { | ||
| 126 | $('power').className = 'battery-' + this.lastBatteryLevel; | ||
| 127 | + } | ||
| 128 | + else if (batteryLevelImage == 1) { | ||
| 129 | + $('power').className = 'battery-percent'; | ||
| 130 | + $('power').innerHTML = this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor, true); | ||
| 131 | + } | ||
| 132 | + else if(batteryLevelImage == 2) { | ||
| 133 | + $('power').className = 'battery-percentimage'; | ||
| 134 | + $('power').innerHTML = '<img src="images/battery-' + this.lastBatteryLevel + '.png" />' + this.getBatteryLevelPercent(this.batteryLevel, batteryLevelColor); | ||
| 135 | + } | ||
| 136 | Mojo.Controller.getAppController().removeBanner('chargingAlert'); | ||
| 137 | } | ||
| 138 | } | ||
| 139 | diff --git a/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css b/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css | ||
| 140 | index 58b22e8..b23eab5 100644 | ||
| 141 | --- a/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css | ||
| 142 | +++ b/usr/lib/luna/system/luna-systemui/stylesheets/systemui.css | ||
| 143 | @@ -136,6 +136,22 @@ body.palm-default { | ||
| 144 | margin-left: 2px; | ||
| 145 | width: 17px; | ||
| 146 | } | ||
| 147 | + | ||
| 148 | +/* Begin: Battery Percent / Image w/ Percent */ | ||
| 149 | +#power.battery-percent { | ||
| 150 | + width: 38px; | ||
| 151 | + background-color: black; | ||
| 152 | +} | ||
| 153 | +#power.battery-percentimage { | ||
| 154 | + width: 49px; | ||
| 155 | + background-color: black; | ||
| 156 | +} | ||
| 157 | +#power.battery-percentimage-charged { | ||
| 158 | + width: 49px; | ||
| 159 | + background-color: black; | ||
| 160 | +} | ||
| 161 | +/* End: Battery Percent / Image w/ Percent */ | ||
| 162 | + | ||
| 163 | #power.error { | ||
| 164 | background: url(../images/battery-error.png) center center no-repeat; | ||
| 165 | } |
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-applauncher/app/controllers/global-search-assistant.js b/usr/lib/luna/system/luna-applauncher/app/controllers/global-search-assistant.js | ||
| 2 | index 7d94506..1c90d5e 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-applauncher/app/controllers/global-search-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-applauncher/app/controllers/global-search-assistant.js | ||
| 5 | @@ -48,6 +48,7 @@ GlobalSearchAssistant = Class.create({ | ||
| 6 | this.offset=0; | ||
| 7 | this.limit=40; | ||
| 8 | this.URLs = { | ||
| 9 | + 'keytoss':$L("http://pre.keytoss.com/parse.php5?term="), | ||
| 10 | 'google':$L("www.google.com/m/search?client=ms-palm-webOS&channel=iss&q="), | ||
| 11 | 'wikipedia':$L("http://en.m.wikipedia.org/wiki/Special:Search?search="), | ||
| 12 | 'twitter': $L("http://search.twitter.com/search?q=") | ||
| 13 | @@ -1656,6 +1657,7 @@ GlobalSearchAssistant = Class.create({ | ||
| 14 | this.expandedSearchDrawer.showExpanded = false; | ||
| 15 | this.controller.modelChanged(this.expandedSearchDrawer); | ||
| 16 | this.searchApps.clear(); | ||
| 17 | + $('keytoss').removeClassName('selected'); | ||
| 18 | $('google').removeClassName('selected'); | ||
| 19 | $('map').removeClassName('selected'); | ||
| 20 | $('wikipedia').removeClassName('selected'); | ||
| 21 | @@ -1761,6 +1763,7 @@ GlobalSearchAssistant = Class.create({ | ||
| 22 | } | ||
| 23 | //clear search': | ||
| 24 | $('google').removeClassName('palm-focus'); | ||
| 25 | + $('keytoss').removeClassName('palm-focus'); | ||
| 26 | $('web').removeClassName('palm-focus'); | ||
| 27 | }, | ||
| 28 | highlightSelection: function() { | ||
| 29 | @@ -1819,19 +1822,23 @@ GlobalSearchAssistant = Class.create({ | ||
| 30 | break; | ||
| 31 | case 'search': | ||
| 32 | if (this.webDrawer.showWeb == true) { | ||
| 33 | - $('google').removeClassName('palm-focus'); | ||
| 34 | + //$('google').removeClassName('palm-focus'); | ||
| 35 | + $('keytoss').removeClassName('palm-focus'); | ||
| 36 | $('web').addClassName('palm-focus'); | ||
| 37 | this.highlightTarget = $('web'); | ||
| 38 | } | ||
| 39 | else if(this.expandedSearchDrawer.showExpanded == true){ | ||
| 40 | - $('google').addClassName('palm-focus'); | ||
| 41 | + //$('google').addClassName('palm-focus'); | ||
| 42 | + $('keytoss').addClassName('palm-focus'); | ||
| 43 | $('web').removeClassName('palm-focus'); | ||
| 44 | - this.highlightTarget = $('google'); | ||
| 45 | + //this.highlightTarget = $('google'); | ||
| 46 | + this.highlightTarget = $('keytoss'); | ||
| 47 | } | ||
| 48 | break; | ||
| 49 | } | ||
| 50 | if (this.enterKeyActionItem != "search") { | ||
| 51 | $('google').removeClassName('palm-focus'); | ||
| 52 | + $('keytoss').removeClassName('palm-focus'); | ||
| 53 | $('web').removeClassName('palm-focus'); | ||
| 54 | } | ||
| 55 | }, | ||
| 56 | @@ -1923,7 +1930,8 @@ GlobalSearchAssistant = Class.create({ | ||
| 57 | if (this.webDrawer.showWeb == true) | ||
| 58 | this.launchBrowser(this.currentFilter); | ||
| 59 | else { | ||
| 60 | - this.launchBrowser(this.URLs['google'] + encodeURIComponent(this.currentFilter)); | ||
| 61 | + //this.launchBrowser(this.URLs['google'] + encodeURIComponent(this.currentFilter)); | ||
| 62 | + this.launchBrowser(this.URLs['keytoss'] + encodeURIComponent(this.currentFilter)); | ||
| 63 | } | ||
| 64 | break; | ||
| 65 | } | ||
| 66 | diff --git a/usr/lib/luna/system/luna-applauncher/app/views/global-search/expanded-searches-div.html b/usr/lib/luna/system/luna-applauncher/app/views/global-search/expanded-searches-div.html | ||
| 67 | index 7bfc200..00cc1cc 100644 | ||
| 68 | --- a/usr/lib/luna/system/luna-applauncher/app/views/global-search/expanded-searches-div.html | ||
| 69 | +++ b/usr/lib/luna/system/luna-applauncher/app/views/global-search/expanded-searches-div.html | ||
| 70 | @@ -9,6 +9,11 @@ | ||
| 71 | </div> | ||
| 72 | |||
| 73 | <div id='expanded_searches_drawer' x-mojo-element="Drawer"> | ||
| 74 | + <div class="palm-row" id="keytoss" name="search-identifier" x-mojo-tap-highlight="persistent"> | ||
| 75 | + <div class="palm-row-wrapper"> | ||
| 76 | + <div class="search-keytoss"></div> | ||
| 77 | + </div> | ||
| 78 | + </div> | ||
| 79 | <div class="palm-row" id="google" name="search-identifier" x-mojo-tap-highlight="persistent"> | ||
| 80 | <div class="palm-row-wrapper"> | ||
| 81 | <div class="search-google"></div> | ||
| 82 | diff --git a/usr/lib/luna/system/luna-applauncher/stylesheets/global-search.css b/usr/lib/luna/system/luna-applauncher/stylesheets/global-search.css | ||
| 83 | index 1f10209..5887f9c 100644 | ||
| 84 | --- a/usr/lib/luna/system/luna-applauncher/stylesheets/global-search.css | ||
| 85 | +++ b/usr/lib/luna/system/luna-applauncher/stylesheets/global-search.css | ||
| 86 | @@ -119,6 +119,12 @@ Copyright 2009 Palm, Inc. All rights reserved. | ||
| 87 | background: url(../images/search-add.png) center center no-repeat; | ||
| 88 | } | ||
| 89 | |||
| 90 | +.palm-group.search .search-keytoss { | ||
| 91 | + width: 100%; | ||
| 92 | + height: 52px; | ||
| 93 | + background: url(../images/search-keytoss.png) center center no-repeat; | ||
| 94 | +} | ||
| 95 | + | ||
| 96 | .palm-group.search .search-google { | ||
| 97 | width: 100%; | ||
| 98 | height: 52px; | ||
| 99 | diff --git a/usr/palm/applications/com.palm.app.browser/app/controllers/urlsearch-controller.js b/usr/palm/applications/com.palm.app.browser/app/controllers/urlsearch-controller.js | ||
| 100 | index 986f0bb..61d4d0c 100644 | ||
| 101 | --- a/usr/palm/applications/com.palm.app.browser/app/controllers/urlsearch-controller.js | ||
| 102 | +++ b/usr/palm/applications/com.palm.app.browser/app/controllers/urlsearch-controller.js | ||
| 103 | @@ -58,6 +58,12 @@ function UrlSearchController(controller){ | ||
| 104 | |||
| 105 | // Our search providers | ||
| 106 | UrlSearchController.SearchProviders = { | ||
| 107 | + keytoss: { | ||
| 108 | + searchTitle: $L('Search KeyToss'), | ||
| 109 | + searchTemplate: $L('KeyToss "#{search}"'), | ||
| 110 | + urlTemplate: $L('http://pre.keytoss.com/parse.php5?term=#{query}') | ||
| 111 | + }, | ||
| 112 | + | ||
| 113 | google: { | ||
| 114 | searchTitle: $L('Search Google'), | ||
| 115 | searchTemplate: $L('Google "#{search}"'), | ||
| 116 | @@ -218,14 +224,18 @@ UrlSearchController.prototype._addStockSearchItems = function(searchText, withDi | ||
| 117 | this.urlSearchListModel.unshift(item); | ||
| 118 | |||
| 119 | // Google block.... | ||
| 120 | - url = UrlSearchController.SearchProviders.google.urlTemplate.interpolate({query: encodedUriComponent}); | ||
| 121 | - title = UrlSearchController.SearchProviders.google.searchTemplate.interpolate({search: escapedSearchText}); | ||
| 122 | + //url = UrlSearchController.SearchProviders.google.urlTemplate.interpolate({query: encodedUriComponent}); | ||
| 123 | + //title = UrlSearchController.SearchProviders.google.searchTemplate.interpolate({search: escapedSearchText}); | ||
| 124 | + url = UrlSearchController.SearchProviders.keytoss.urlTemplate.interpolate({query: encodedUriComponent}); | ||
| 125 | + title = UrlSearchController.SearchProviders.keytoss.searchTemplate.interpolate({search: escapedSearchText}); | ||
| 126 | |||
| 127 | item = new UrlReference(url, title); | ||
| 128 | - item.subTitle = UrlSearchController.SearchProviders.google.searchTitle; | ||
| 129 | + //item.subTitle = UrlSearchController.SearchProviders.google.searchTitle; | ||
| 130 | + item.subTitle = UrlSearchController.SearchProviders.keytoss.searchTitle; | ||
| 131 | item.iconclass = 'search-image'; | ||
| 132 | item.rowclass = 'search first'; | ||
| 133 | - item.iconUrl = Mojo.appPath + 'images/list-icon-google.png'; | ||
| 134 | + //item.iconUrl = Mojo.appPath + 'images/list-icon-google.png'; | ||
| 135 | + item.iconUrl = Mojo.appPath + 'images/list-icon-keytoss.png'; | ||
| 136 | |||
| 137 | this.urlSearchListModel.unshift(item); | ||
| 138 | |||
| 139 | @@ -382,7 +392,8 @@ UrlSearchController.prototype._handleSelection = function(event) { | ||
| 140 | |||
| 141 | UrlSearchController.formatDefaultSearchUrl = function(query) { | ||
| 142 | |||
| 143 | - return UrlSearchController.SearchProviders.google.urlTemplate.interpolate({query: encodeURIComponent(query)}); | ||
| 144 | + //return UrlSearchController.SearchProviders.google.urlTemplate.interpolate({query: encodeURIComponent(query)}); | ||
| 145 | + return UrlSearchController.SearchProviders.keytoss.urlTemplate.interpolate({query: encodeURIComponent(query)}); | ||
| 146 | }; | ||
| 147 | |||
| 148 | /** |
luna/luna-phone-radio-toggle.patch
(160 / 0)
|   | |||
| 1 | Index: /usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 2 | =================================================================== | ||
| 3 | --- .orig/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 4 | +++ /usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 5 | @@ -817,6 +817,8 @@ handletelephonyNotifications: function(p | ||
| 6 | this.callForwardNotificationSession = null; | ||
| 7 | } | ||
| 8 | } | ||
| 9 | + var stageController = Mojo.Controller.getAppController().getStageProxy("DeviceMenu"); | ||
| 10 | + stageController.delegateToSceneAssistant("updatePhone"); | ||
| 11 | } | ||
| 12 | else if (payload.eventNetwork && this.phoneRadioState) { | ||
| 13 | var networkMsg = payload.eventNetwork; | ||
| 14 | @@ -2647,6 +2649,10 @@ getCurrentWiFiState: function() { | ||
| 15 | return this.wifiState; | ||
| 16 | }, | ||
| 17 | |||
| 18 | +getCurrentPhoneState: function() { | ||
| 19 | + return this.phoneRadioState; | ||
| 20 | +}, | ||
| 21 | + | ||
| 22 | setDeviceMenuAssistant: function(menuassistant) { | ||
| 23 | this.deviceMenuAssistant = menuassistant; | ||
| 24 | }, | ||
| 25 | Index: /usr/lib/luna/system/luna-systemui/app/controllers/devicemenu-assistant.js | ||
| 26 | =================================================================== | ||
| 27 | --- .orig/usr/lib/luna/system/luna-systemui/app/controllers/devicemenu-assistant.js | ||
| 28 | +++ /usr/lib/luna/system/luna-systemui/app/controllers/devicemenu-assistant.js | ||
| 29 | @@ -1,6 +1,6 @@ | ||
| 30 | /* Copyright 2009 Palm, Inc. All rights reserved. */ | ||
| 31 | |||
| 32 | -var RadioState = new Hash({wifi: undefined, bluetooth: undefined}); | ||
| 33 | +var RadioState = new Hash({wifi: undefined, bluetooth: undefined, phone: undefined}); | ||
| 34 | |||
| 35 | var DevicemenuAssistant = Class.create({ | ||
| 36 | |||
| 37 | @@ -39,6 +39,8 @@ var DevicemenuAssistant = Class.create({ | ||
| 38 | this.drawerModel = {myOpenProperty:false}; | ||
| 39 | this.controller.setupWidget('wifidetails', {modelProperty:'myOpenProperty'}, this.drawerModel); | ||
| 40 | this.controller.setupWidget('btdetails', {modelProperty:'myOpenProperty'}, this.drawerModel); | ||
| 41 | + this.controller.setupWidget('phonedetails', {modelProperty:'myOpenProperty'}, this.drawerModel); | ||
| 42 | + this.phonedrawer = this.controller.get('phonedetails') | ||
| 43 | this.wifidrawer = this.controller.get('wifidetails'); | ||
| 44 | this.btdrawer = this.controller.get('btdetails'); | ||
| 45 | |||
| 46 | @@ -95,6 +97,17 @@ var DevicemenuAssistant = Class.create({ | ||
| 47 | else | ||
| 48 | this.controller.get('wifimsg').innerHTML = wifistate.escapeHTML(); | ||
| 49 | } | ||
| 50 | + | ||
| 51 | + var phonestate = this.barAssistant.getCurrentPhoneState(); | ||
| 52 | + if(phonestate === 'Off') { | ||
| 53 | + this.controller.get('phonemsg').innerHTML = $L('Off'); | ||
| 54 | + RadioState.set('phone',false); | ||
| 55 | + } | ||
| 56 | + else { | ||
| 57 | + this.controller.get('phonemsg').innerHTML = $L('On'); | ||
| 58 | + RadioState.set('phone',true); | ||
| 59 | + } | ||
| 60 | + | ||
| 61 | this.controller.listen(this.controller.document, Mojo.Event.deactivate, this.close.bindAsEventListener(this)); | ||
| 62 | this.isVisible = true; | ||
| 63 | |||
| 64 | @@ -118,6 +131,8 @@ var DevicemenuAssistant = Class.create({ | ||
| 65 | this.controller.get('btlist').addEventListener(Mojo.Event.listTap,this.handleBTTap.bindAsEventListener(this)); | ||
| 66 | this.controller.get('dm_wifi').addEventListener(Mojo.Event.tap, this.togglewifiList.bindAsEventListener(this)); | ||
| 67 | this.controller.get('dm_bluetooth').addEventListener(Mojo.Event.tap, this.togglebluetoothList.bindAsEventListener(this)); | ||
| 68 | + this.controller.get('dm_phone').addEventListener(Mojo.Event.tap, this.togglePhoneList.bindAsEventListener(this)); | ||
| 69 | + this.controller.get('phone_radio').addEventListener(Mojo.Event.tap, this.togglePhoneRadio.bindAsEventListener(this)); | ||
| 70 | this.controller.get('wifi_radio').addEventListener(Mojo.Event.tap, this.toggleWifiRadio.bindAsEventListener(this)); | ||
| 71 | this.controller.get('bt_radio').addEventListener(Mojo.Event.tap, this.toggleBTRadio.bindAsEventListener(this)); | ||
| 72 | this.controller.get('bt_pref').addEventListener(Mojo.Event.tap,this.handleBluetoothLaunch.bindAsEventListener(this)); | ||
| 73 | @@ -177,6 +192,49 @@ var DevicemenuAssistant = Class.create({ | ||
| 74 | } | ||
| 75 | this.apModeInProgress = false; | ||
| 76 | }, | ||
| 77 | + | ||
| 78 | + | ||
| 79 | + updatePhone: function() { | ||
| 80 | + if(this.barAssistant.getCurrentPhoneState()) { | ||
| 81 | + this.controller.get('phonemsg').innerHTML = $L('On'); | ||
| 82 | + this.controller.get('phone_radio').innerHTML = $L('Turn off Phone'); | ||
| 83 | + RadioState.set('phone', true); | ||
| 84 | + } | ||
| 85 | + else { | ||
| 86 | + this.controller.get('phonemsg').innerHTML = $L('Off'); | ||
| 87 | + this.controller.get('phone_radio').innerHTML = $L('Turn on Phone'); | ||
| 88 | + RadioState.set('phone', false); | ||
| 89 | + } | ||
| 90 | + }, | ||
| 91 | + | ||
| 92 | + togglePhoneRadio: function(event) { | ||
| 93 | + this.serviceRequest = new Mojo.Service.Request("palm://com.palm.vibrate", { | ||
| 94 | + method: 'vibrate', parameters: { 'period': 0,'duration': 250 } | ||
| 95 | + }); | ||
| 96 | + if(RadioState.get('phone')) | ||
| 97 | + TelephonyService.tempPowerSet('off',false,null,null); | ||
| 98 | + else | ||
| 99 | + TelephonyService.tempPowerSet('on',false,null,null); | ||
| 100 | + this.toggleDeviceMenu(); | ||
| 101 | + }, | ||
| 102 | + | ||
| 103 | + togglePhoneList: function(event) { | ||
| 104 | + if(this.apModeInProgress) | ||
| 105 | + return; | ||
| 106 | + | ||
| 107 | + if (this.phonedrawer.mojo.getOpenState()) { | ||
| 108 | + this.controller.hideWidgetContainer(this.controller.get('phonedetails')); | ||
| 109 | + } | ||
| 110 | + else { | ||
| 111 | + if(RadioState.get('phone')) | ||
| 112 | + this.controller.get('phone_radio').innerHTML = $L('Turn off Phone'); | ||
| 113 | + else | ||
| 114 | + this.controller.get('phone_radio').innerHTML = $L('Turn on Phone'); | ||
| 115 | + | ||
| 116 | + this.controller.showWidgetContainer(this.controller.get('phonedetails')); | ||
| 117 | + } | ||
| 118 | + this.phonedrawer.mojo.setOpenState(!this.phonedrawer.mojo.getOpenState()); | ||
| 119 | + }, | ||
| 120 | |||
| 121 | toggleBTRadio: function(event) { | ||
| 122 | if(RadioState.get('bluetooth')) { | ||
| 123 | @@ -891,6 +949,10 @@ var DevicemenuAssistant = Class.create({ | ||
| 124 | |||
| 125 | close: function() { | ||
| 126 | |||
| 127 | + if(this.phonedrawer.mojo.getOpenState()) { | ||
| 128 | + this.controller.hideWidgetContainer(this.controller.get('phonedetails')); | ||
| 129 | + this.phonedrawer.mojo.setOpenState(false); | ||
| 130 | + } | ||
| 131 | if (this.btdrawer.mojo.getOpenState()) { | ||
| 132 | this.clearBTList(); | ||
| 133 | this.controller.hideWidgetContainer(this.controller.get('btdetails')); | ||
| 134 | Index: /usr/lib/luna/system/luna-systemui/app/views/devicemenu/devicemenu-scene.html | ||
| 135 | =================================================================== | ||
| 136 | --- .orig/usr/lib/luna/system/luna-systemui/app/views/devicemenu/devicemenu-scene.html | ||
| 137 | +++ /usr/lib/luna/system/luna-systemui/app/views/devicemenu/devicemenu-scene.html | ||
| 138 | @@ -94,6 +94,22 @@ | ||
| 139 | |||
| 140 | <div class="palm-section-divider"></div> | ||
| 141 | |||
| 142 | + <div class="palm-row" id="dm_phone" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper"> | ||
| 143 | + <div class="title truncating-text"> | ||
| 144 | + <div class="label right" id="phonemsg"> </div> | ||
| 145 | + <span x-mojo-loc=''>Phone</span> | ||
| 146 | + </div> | ||
| 147 | + </div></div> | ||
| 148 | + | ||
| 149 | + <div id='phonedetails' x-mojo-element="Drawer"> | ||
| 150 | + <div class="palm-row first" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper"> | ||
| 151 | + <div id="phone_radio" class="title truncating-text"> | ||
| 152 | + </div> | ||
| 153 | + </div></div> | ||
| 154 | + </div> | ||
| 155 | + | ||
| 156 | + <div class="palm-section-divider"></div> | ||
| 157 | + | ||
| 158 | <div id="dm_airplanemode" class="palm-row last menu-end" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper"> | ||
| 159 | <div id="dm_airplanemode_status" class="title truncating-text"> | ||
| 160 | </div> |
|   | |||
| 1 | While ssh'd into a pre that's suspended, powerd spams all users with messages | ||
| 2 | every second or so. This patch silences those. | ||
| 3 | |||
| 4 | Index: /usr/sbin/suspend_action | ||
| 5 | =================================================================== | ||
| 6 | --- .orig/usr/sbin/suspend_action | ||
| 7 | +++ /usr/sbin/suspend_action | ||
| 8 | @@ -1,9 +1,9 @@ | ||
| 9 | #!/bin/sh | ||
| 10 | |||
| 11 | -echo -e "powerd: System going to sleep now\n" | wall | ||
| 12 | +# echo -e "powerd: System going to sleep now\n" | wall | ||
| 13 | |||
| 14 | # Initiate suspend | ||
| 15 | echo mem > /sys/power/state | ||
| 16 | |||
| 17 | -echo -e "powerd: System woke up.\n" | wall | ||
| 18 | +# echo -e "powerd: System woke up.\n" | wall | ||
| 19 |
|   | |||
| 1 | show-actual-battery-percent | ||
| 2 | |||
| 3 | Tested-On: 1.1 | ||
| 4 | |||
| 5 | //show actual battery percent in the system user interface. | ||
| 6 | //note: battery @ 100% will only charge on a new charge event or if power is <94% | ||
| 7 | Index: /usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 8 | =================================================================== | ||
| 9 | --- .orig/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 10 | +++ /usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 11 | @@ -1382,11 +1382,11 @@ handlePowerNotifications: function(paylo | ||
| 12 | |||
| 13 | Mojo.Log.info("SystemUI Power Payload "+ Object.toJSON(payload)); | ||
| 14 | // Is the battery level provided? | ||
| 15 | - if (payload.percent_ui != undefined) { | ||
| 16 | + if (payload.percent != undefined) { | ||
| 17 | //Save the Battery Percentage | ||
| 18 | - this.batteryLevel = payload.percent_ui; | ||
| 19 | + this.batteryLevel = payload.percent; | ||
| 20 | for (var i = 0; i < this.powerIndicator.length; i++) { | ||
| 21 | - if (payload.percent_ui > this.powerIndicator[i]) | ||
| 22 | + if (payload.percent > this.powerIndicator[i]) | ||
| 23 | continue; | ||
| 24 | this.lastBatteryLevel = i; | ||
| 25 | this.lastBatteryLevelPayload = payload; | ||
| 26 | @@ -1397,7 +1397,7 @@ handlePowerNotifications: function(paylo | ||
| 27 | $('power').className = 'battery-' + i; | ||
| 28 | |||
| 29 | //Show Banner Message if the Battery level is below 20% | ||
| 30 | - var batteryalert = $L("#{percent_ui}% battery remaining").interpolate(payload); | ||
| 31 | + var batteryalert = $L("#{percent}% battery remaining").interpolate(payload); | ||
| 32 | if(this.batteryLevel <= 5 && !this.batteryLevel5Shown) { | ||
| 33 | this.batteryLevel5Shown = true; | ||
| 34 | this.showLowBatteryAlert(); | ||
| 35 | @@ -1423,7 +1423,7 @@ handlePowerNotifications: function(paylo | ||
| 36 | } | ||
| 37 | else { | ||
| 38 | Mojo.Log.info("SystemUI- Is Charging "+ this.isCharging ); | ||
| 39 | - if(payload.percent_ui == 100) | ||
| 40 | + if(payload.percent == 100) | ||
| 41 | $('power').className = 'battery-charged'; | ||
| 42 | else | ||
| 43 | $('power').className = 'battery-charging-' + i; |
|   | |||
| 1 | 5X4 Launcher page for webOS 1.2.1 | ||
| 2 | Index: /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 3 | =================================================================== | ||
| 4 | --- .orig/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 5 | +++ /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 6 | @@ -10,7 +10,7 @@ var LauncherAssistant = Class.create({ | ||
| 7 | */ | ||
| 8 | kQuickLaunchHeight: 67, | ||
| 9 | |||
| 10 | - kPageIndicatorSpacing: 6, /* spacing between each page indicator */ | ||
| 11 | + kPageIndicatorSpacing: 1, /* spacing between each page indicator */ | ||
| 12 | kPageMargin: 10, /* 10 pixel margin on each side of a page */ | ||
| 13 | kPageWidthNoMargin: NaN, | ||
| 14 | kPageWidth: NaN, | ||
| 15 | @@ -324,9 +324,9 @@ var LauncherAssistant = Class.create({ | ||
| 16 | var newAppDiv = $(newAppInfo.launchPointId); | ||
| 17 | Mojo.assert(newAppDiv !== undefined, "Application (%d) was inserted into the DOM but unable to be retrieved!", newAppInfo.launchPointId); | ||
| 18 | if (isNaN(this.kAppWidth) || isNaN(this.kAppHeight)) { | ||
| 19 | - this.kAppWidth = newAppDiv.getWidth(); | ||
| 20 | - this.kAppHeight = newAppDiv.getHeight(); | ||
| 21 | - this.kAppsPerRow = Math.round(this.kPageWidthNoMargin / this.kAppWidth); | ||
| 22 | + this.kAppWidth = 64; | ||
| 23 | + this.kAppHeight = 85; | ||
| 24 | + this.kAppsPerRow = 5; | ||
| 25 | } | ||
| 26 | |||
| 27 | Mojo.listen(newAppDiv, Mojo.Event.tap, this.onAppTapped.bindAsEventListener(this)); | ||
| 28 | @@ -439,7 +439,7 @@ var LauncherAssistant = Class.create({ | ||
| 29 | /* determines the position of an app element at appIndex within a page */ | ||
| 30 | calculateAppPosition: function(appIndex) { | ||
| 31 | return { | ||
| 32 | - left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) + this.kPageMargin), | ||
| 33 | + left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) - 18), | ||
| 34 | top: (Math.floor(appIndex/this.kAppsPerRow) * this.kAppHeight) | ||
| 35 | }; | ||
| 36 | }, | ||
| 37 | Index: /usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 38 | =================================================================== | ||
| 39 | --- .orig/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 40 | +++ /usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 41 | @@ -121,8 +121,9 @@ body.palm-default | ||
| 42 | |||
| 43 | .launcher_page .name { | ||
| 44 | position:absolute; | ||
| 45 | - top: 68px; | ||
| 46 | - width:100px; | ||
| 47 | + top: 48px; | ||
| 48 | + left:20px; | ||
| 49 | + width:65px; | ||
| 50 | height: 34px; | ||
| 51 | max-height: 34px; | ||
| 52 | clear:both; | ||
| 53 | @@ -130,7 +131,7 @@ body.palm-default | ||
| 54 | color:white; | ||
| 55 | text-align:center; | ||
| 56 | font-weight:bold; | ||
| 57 | - font-size: 14px; | ||
| 58 | + font-size: 12px; | ||
| 59 | overflow: hidden; | ||
| 60 | text-overflow: ellipsis; | ||
| 61 | z-index:5; | ||
| 62 | @@ -164,8 +165,8 @@ body.palm-default | ||
| 63 | } | ||
| 64 | |||
| 65 | .draggable { | ||
| 66 | - width:64px; | ||
| 67 | - height:64px; | ||
| 68 | + width:48px; | ||
| 69 | + height:48px; | ||
| 70 | margin: 0 auto; | ||
| 71 | -webkit-user-drag: any; | ||
| 72 | -webkit-user-select: none; | ||
| 73 | @@ -213,8 +214,8 @@ body.palm-default | ||
| 74 | |||
| 75 | #app-icon { | ||
| 76 | float:left; | ||
| 77 | - width:64px; | ||
| 78 | - height:64px; | ||
| 79 | + width:32px; | ||
| 80 | + height:32px; | ||
| 81 | background: center center no-repeat; | ||
| 82 | } | ||
| 83 |
luna/more_icons_per_row.patch
(0 / 85)
|   | |||
| 1 | More icons per row with reduced margins and increase space between columns | ||
| 2 | |||
| 3 | Updated for 1.2 | ||
| 4 | |||
| 5 | Variation by StoneRyno of the original patch | ||
| 6 | |||
| 7 | Index: /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 8 | =================================================================== | ||
| 9 | --- .orig/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 10 | +++ /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 11 | @@ -10,7 +10,7 @@ var LauncherAssistant = Class.create({ | ||
| 12 | */ | ||
| 13 | kQuickLaunchHeight: 67, | ||
| 14 | |||
| 15 | - kPageIndicatorSpacing: 6, /* spacing between each page indicator */ | ||
| 16 | + kPageIndicatorSpacing: 1, /* spacing between each page indicator */ | ||
| 17 | kPageMargin: 10, /* 10 pixel margin on each side of a page */ | ||
| 18 | kPageWidthNoMargin: NaN, | ||
| 19 | kPageWidth: NaN, | ||
| 20 | @@ -324,9 +324,9 @@ var LauncherAssistant = Class.create({ | ||
| 21 | var newAppDiv = $(newAppInfo.launchPointId); | ||
| 22 | Mojo.assert(newAppDiv !== undefined, "Application (%d) was inserted into the DOM but unable to be retrieved!", newAppInfo.launchPointId); | ||
| 23 | if (isNaN(this.kAppWidth) || isNaN(this.kAppHeight)) { | ||
| 24 | - this.kAppWidth = newAppDiv.getWidth(); | ||
| 25 | - this.kAppHeight = newAppDiv.getHeight(); | ||
| 26 | - this.kAppsPerRow = Math.round(this.kPageWidthNoMargin / this.kAppWidth); | ||
| 27 | + this.kAppWidth = 64; | ||
| 28 | + this.kAppHeight = 90; | ||
| 29 | + this.kAppsPerRow = 5; | ||
| 30 | } | ||
| 31 | |||
| 32 | Mojo.listen(newAppDiv, Mojo.Event.tap, this.onAppTapped.bindAsEventListener(this)); | ||
| 33 | @@ -439,7 +439,7 @@ var LauncherAssistant = Class.create({ | ||
| 34 | /* determines the position of an app element at appIndex within a page */ | ||
| 35 | calculateAppPosition: function(appIndex) { | ||
| 36 | return { | ||
| 37 | - left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) + this.kPageMargin), | ||
| 38 | + left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) - 18), | ||
| 39 | top: (Math.floor(appIndex/this.kAppsPerRow) * this.kAppHeight) | ||
| 40 | }; | ||
| 41 | }, | ||
| 42 | Index: /usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 43 | =================================================================== | ||
| 44 | --- .orig/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 45 | +++ /usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 46 | @@ -121,7 +121,7 @@ body.palm-default | ||
| 47 | |||
| 48 | .launcher_page .name { | ||
| 49 | position:absolute; | ||
| 50 | - top: 68px; | ||
| 51 | + top: 48px; | ||
| 52 | width:100px; | ||
| 53 | height: 34px; | ||
| 54 | max-height: 34px; | ||
| 55 | @@ -130,7 +130,7 @@ body.palm-default | ||
| 56 | color:white; | ||
| 57 | text-align:center; | ||
| 58 | font-weight:bold; | ||
| 59 | - font-size: 14px; | ||
| 60 | + font-size: 9px; | ||
| 61 | overflow: hidden; | ||
| 62 | text-overflow: ellipsis; | ||
| 63 | z-index:5; | ||
| 64 | @@ -164,8 +164,8 @@ body.palm-default | ||
| 65 | } | ||
| 66 | |||
| 67 | .draggable { | ||
| 68 | - width:64px; | ||
| 69 | - height:64px; | ||
| 70 | + width:48px; | ||
| 71 | + height:48px; | ||
| 72 | margin: 0 auto; | ||
| 73 | -webkit-user-drag: any; | ||
| 74 | -webkit-user-select: none; | ||
| 75 | @@ -213,8 +213,8 @@ body.palm-default | ||
| 76 | |||
| 77 | #app-icon { | ||
| 78 | float:left; | ||
| 79 | - width:64px; | ||
| 80 | - height:64px; | ||
| 81 | + width:32px; | ||
| 82 | + height:32px; | ||
| 83 | background: center center no-repeat; | ||
| 84 | } | ||
| 85 |
|   | |||
| 1 | 4X4 Launcher page for webOS 1.2.0 | ||
| 2 | diff --git a/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js b/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 3 | index 4da3e85..48fc720 100644 | ||
| 4 | --- a/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 5 | +++ b/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 6 | @@ -10,7 +10,7 @@ var LauncherAssistant = Class.create({ | ||
| 7 | */ | ||
| 8 | kQuickLaunchHeight: 67, | ||
| 9 | |||
| 10 | - kPageIndicatorSpacing: 6, /* spacing between each page indicator */ | ||
| 11 | + kPageIndicatorSpacing: 1, /* spacing between each page indicator */ | ||
| 12 | kPageMargin: 10, /* 10 pixel margin on each side of a page */ | ||
| 13 | kPageWidthNoMargin: NaN, | ||
| 14 | kPageWidth: NaN, | ||
| 15 | @@ -324,9 +324,9 @@ var LauncherAssistant = Class.create({ | ||
| 16 | var newAppDiv = $(newAppInfo.launchPointId); | ||
| 17 | Mojo.assert(newAppDiv !== undefined, "Application (%d) was inserted into the DOM but unable to be retrieved!", newAppInfo.launchPointId); | ||
| 18 | if (isNaN(this.kAppWidth) || isNaN(this.kAppHeight)) { | ||
| 19 | - this.kAppWidth = newAppDiv.getWidth(); | ||
| 20 | - this.kAppHeight = newAppDiv.getHeight(); | ||
| 21 | - this.kAppsPerRow = Math.round(this.kPageWidthNoMargin / this.kAppWidth); | ||
| 22 | + this.kAppWidth = 80; | ||
| 23 | + this.kAppHeight = 85; | ||
| 24 | + this.kAppsPerRow = 4; | ||
| 25 | } | ||
| 26 | |||
| 27 | Mojo.listen(newAppDiv, Mojo.Event.tap, this.onAppTapped.bindAsEventListener(this)); | ||
| 28 | @@ -439,7 +439,7 @@ var LauncherAssistant = Class.create({ | ||
| 29 | /* determines the position of an app element at appIndex within a page */ | ||
| 30 | calculateAppPosition: function(appIndex) { | ||
| 31 | return { | ||
| 32 | - left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) + this.kPageMargin), | ||
| 33 | + left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) - 10), | ||
| 34 | top: (Math.floor(appIndex/this.kAppsPerRow) * this.kAppHeight) | ||
| 35 | }; | ||
| 36 | }, | ||
| 37 | diff --git a/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css b/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 38 | index b1244af..61ea830 100644 | ||
| 39 | --- a/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 40 | +++ b/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css | ||
| 41 | @@ -121,8 +121,9 @@ body.palm-default | ||
| 42 | |||
| 43 | .launcher_page .name { | ||
| 44 | position:absolute; | ||
| 45 | - top: 68px; | ||
| 46 | - width:100px; | ||
| 47 | + top: 48px; | ||
| 48 | + left:9px; | ||
| 49 | + width:80px; | ||
| 50 | height: 34px; | ||
| 51 | max-height: 34px; | ||
| 52 | clear:both; | ||
| 53 | @@ -130,7 +131,7 @@ body.palm-default | ||
| 54 | color:white; | ||
| 55 | text-align:center; | ||
| 56 | font-weight:bold; | ||
| 57 | - font-size: 14px; | ||
| 58 | + font-size: 12px; | ||
| 59 | overflow: hidden; | ||
| 60 | text-overflow: ellipsis; | ||
| 61 | z-index:5; | ||
| 62 | @@ -164,8 +165,8 @@ body.palm-default | ||
| 63 | } | ||
| 64 | |||
| 65 | .draggable { | ||
| 66 | - width:64px; | ||
| 67 | - height:64px; | ||
| 68 | + width:48px; | ||
| 69 | + height:48px; | ||
| 70 | margin: 0 auto; | ||
| 71 | -webkit-user-drag: any; | ||
| 72 | -webkit-user-select: none; | ||
| 73 | @@ -213,8 +214,8 @@ body.palm-default | ||
| 74 | |||
| 75 | #app-icon { | ||
| 76 | float:left; | ||
| 77 | - width:64px; | ||
| 78 | - height:64px; | ||
| 79 | + width:32px; | ||
| 80 | + height:32px; | ||
| 81 | background: center center no-repeat; | ||
| 82 | } |
luna/quiet-powerd-messages.patch
(0 / 19)
|   | |||
| 1 | While ssh'd into a pre that's suspended, powerd spams all users with messages | ||
| 2 | every second or so. This patch silences those. | ||
| 3 | |||
| 4 | Index: /usr/sbin/suspend_action | ||
| 5 | =================================================================== | ||
| 6 | --- .orig/usr/sbin/suspend_action | ||
| 7 | +++ /usr/sbin/suspend_action | ||
| 8 | @@ -1,9 +1,9 @@ | ||
| 9 | #!/bin/sh | ||
| 10 | |||
| 11 | -echo -e "powerd: System going to sleep now\n" | wall | ||
| 12 | +# echo -e "powerd: System going to sleep now\n" | wall | ||
| 13 | |||
| 14 | # Initiate suspend | ||
| 15 | echo mem > /sys/power/state | ||
| 16 | |||
| 17 | -echo -e "powerd: System woke up.\n" | wall | ||
| 18 | +# echo -e "powerd: System woke up.\n" | wall | ||
| 19 |
luna/reset-scroll.patch
(0 / 15)
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js b/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 2 | index 64244b6..e68c9d2 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js | ||
| 5 | @@ -157,6 +157,10 @@ var LauncherAssistant = Class.create({ | ||
| 6 | |||
| 7 | /* keep track of which page we are on */ | ||
| 8 | onPageChange: function(event) { | ||
| 9 | + var scroller = this.getPageScroller(this.activePageIndex); | ||
| 10 | + if (scroller && scroller.mojo) { | ||
| 11 | + scroller.mojo.revealTop(0); | ||
| 12 | + } | ||
| 13 | this.activePageIndex = event.value; | ||
| 14 | this.updatePageIndicators(); | ||
| 15 | }, |
|   | |||
| 1 | show-actual-battery-percent | ||
| 2 | |||
| 3 | Tested-On: 1.1 | ||
| 4 | |||
| 5 | //show actual battery percent in the system user interface. | ||
| 6 | //note: battery @ 100% will only charge on a new charge event or if power is <94% | ||
| 7 | Index: /usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 8 | =================================================================== | ||
| 9 | --- .orig/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 10 | +++ /usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 11 | @@ -1382,11 +1382,11 @@ handlePowerNotifications: function(paylo | ||
| 12 | |||
| 13 | Mojo.Log.info("SystemUI Power Payload "+ Object.toJSON(payload)); | ||
| 14 | // Is the battery level provided? | ||
| 15 | - if (payload.percent_ui != undefined) { | ||
| 16 | + if (payload.percent != undefined) { | ||
| 17 | //Save the Battery Percentage | ||
| 18 | - this.batteryLevel = payload.percent_ui; | ||
| 19 | + this.batteryLevel = payload.percent; | ||
| 20 | for (var i = 0; i < this.powerIndicator.length; i++) { | ||
| 21 | - if (payload.percent_ui > this.powerIndicator[i]) | ||
| 22 | + if (payload.percent > this.powerIndicator[i]) | ||
| 23 | continue; | ||
| 24 | this.lastBatteryLevel = i; | ||
| 25 | this.lastBatteryLevelPayload = payload; | ||
| 26 | @@ -1397,7 +1397,7 @@ handlePowerNotifications: function(paylo | ||
| 27 | $('power').className = 'battery-' + i; | ||
| 28 | |||
| 29 | //Show Banner Message if the Battery level is below 20% | ||
| 30 | - var batteryalert = $L("#{percent_ui}% battery remaining").interpolate(payload); | ||
| 31 | + var batteryalert = $L("#{percent}% battery remaining").interpolate(payload); | ||
| 32 | if(this.batteryLevel <= 5 && !this.batteryLevel5Shown) { | ||
| 33 | this.batteryLevel5Shown = true; | ||
| 34 | this.showLowBatteryAlert(); | ||
| 35 | @@ -1423,7 +1423,7 @@ handlePowerNotifications: function(paylo | ||
| 36 | } | ||
| 37 | else { | ||
| 38 | Mojo.Log.info("SystemUI- Is Charging "+ this.isCharging ); | ||
| 39 | - if(payload.percent_ui == 100) | ||
| 40 | + if(payload.percent == 100) | ||
| 41 | $('power').className = 'battery-charged'; | ||
| 42 | else | ||
| 43 | $('power').className = 'battery-charging-' + i; |
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 2 | index f343ce2..c7f389b 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 5 | @@ -1479,7 +1479,7 @@ handlePowerNotifications: function(payload) { | ||
| 6 | this.controller.showBanner({ | ||
| 7 | messageText: batteryalert, | ||
| 8 | icon: "/usr/lib/luna/system/luna-systemui/images/notification-small-charging.png", | ||
| 9 | - soundClass: soundClassName | ||
| 10 | + soundClass: "vibrate" | ||
| 11 | },null, 'chargingAlert'); | ||
| 12 | } | ||
| 13 | this.chargingBannerShown = true; |
messaging/all-attachments.patch
(0 / 26)
|   | |||
| 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 | @@ -2013,7 +2013,7 @@ var ChatviewAssistant = Class.create({ | ||
| 6 | attachFilePicker: function(event){ | ||
| 7 | var params = { | ||
| 8 | actionType: 'attach', | ||
| 9 | - kinds: ['image'], // TODO: integrate other media types | ||
| 10 | + kinds: ['image','audio','video'], // TODO: integrate other media types | ||
| 11 | defaultKind: 'image', | ||
| 12 | onSelect: this.handleFilePickerSelect.bind(this) | ||
| 13 | }; | ||
| 14 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 15 | =================================================================== | ||
| 16 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 17 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 18 | @@ -324,7 +324,7 @@ var ComposeAssistant = Class.create({ | ||
| 19 | attachFilePicker: function(event) { | ||
| 20 | var params = { | ||
| 21 | actionType: 'attach', | ||
| 22 | - kinds: ['image'], // TODO: integrate other media types | ||
| 23 | + kinds: ['image','audio','video'], // TODO: integrate other media types | ||
| 24 | defaultKind: 'image', | ||
| 25 | onSelect: this.handleFilePickerSelect.bind(this) | ||
| 26 | }; |
messaging/charcounter.patch
(0 / 143)
|   | |||
| 1 | diff -ur /usr/palm/app-original/com.palm.app.messaging/app/controllers/chatview-assistant.js /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 2 | --- /usr/palm/app-original/com.palm.app.messaging/app/controllers/chatview-assistant.js 2009-09-13 23:09:56.000000000 -0500 | ||
| 3 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js 2009-09-28 15:29:40.000000000 -0500 | ||
| 4 | @@ -187,6 +187,11 @@ | ||
| 5 | segmentCountContainer: this.controller.get('segmentCounterContainer'), | ||
| 6 | segmentCountElement: this.controller.get('segmentCounter'), | ||
| 7 | setTextFieldValueFn: this.setTextFieldValue.bind(this) | ||
| 8 | + }, | ||
| 9 | + charCounter: { | ||
| 10 | + charCountContainer: this.controller.get('charCounterContainer'), | ||
| 11 | + charCountElement: this.controller.get('charCounter'), | ||
| 12 | + setTextFieldValueFn: this.setTextFieldValue.bind(this) | ||
| 13 | } | ||
| 14 | }; | ||
| 15 | |||
| 16 | diff -ur /usr/palm/app-original/com.palm.app.messaging/app/controllers/compose-assistant.js /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 17 | --- /usr/palm/app-original/com.palm.app.messaging/app/controllers/compose-assistant.js 2009-09-13 23:09:56.000000000 -0500 | ||
| 18 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js 2009-09-28 15:30:36.000000000 -0500 | ||
| 19 | @@ -140,6 +140,11 @@ | ||
| 20 | segmentCountContainer: this.controller.get('segmentCounterContainer'), | ||
| 21 | segmentCountElement: this.controller.get('segmentCounter'), | ||
| 22 | setTextFieldValueFn: this.setTextFieldValue.bind(this) | ||
| 23 | + }, | ||
| 24 | + charCounter: { | ||
| 25 | + charCountContainer: this.controller.get('charCounterContainer'), | ||
| 26 | + charCountElement: this.controller.get('charCounter'), | ||
| 27 | + setTextFieldValueFn: this.setTextFieldValue.bind(this) | ||
| 28 | } | ||
| 29 | }; | ||
| 30 | |||
| 31 | diff -ur /usr/palm/app-original/com.palm.app.messaging/app/utilities/CharacterCounter.js /usr/palm/applications/com.palm.app.messaging/app/utilities/CharacterCounter.js | ||
| 32 | --- /usr/palm/app-original/com.palm.app.messaging/app/utilities/CharacterCounter.js 2009-09-13 23:09:56.000000000 -0500 | ||
| 33 | +++ /usr/palm/applications/com.palm.app.messaging/app/utilities/CharacterCounter.js 2009-09-28 15:34:44.000000000 -0500 | ||
| 34 | @@ -58,6 +58,10 @@ | ||
| 35 | containerElement: null, | ||
| 36 | valueElement: null | ||
| 37 | }; | ||
| 38 | + var charCounterUI = { | ||
| 39 | + containerElement: null, | ||
| 40 | + valueElement: null | ||
| 41 | + }; | ||
| 42 | |||
| 43 | |||
| 44 | // TODO: eventually we might want to implement some cleverness that counts | ||
| 45 | @@ -291,6 +295,20 @@ | ||
| 46 | } | ||
| 47 | }; | ||
| 48 | |||
| 49 | + var setCurrentCharCount = function(newCharCount) { | ||
| 50 | + if(charCounterUI.valueElement) | ||
| 51 | + charCounterUI.valueElement.update(newCharCount); | ||
| 52 | + if(charCounterUI.containerElement) { | ||
| 53 | + if (newCharCount == 0) { | ||
| 54 | + if (charCounterUI.containerElement.visible()) | ||
| 55 | + charCounterUI.containerElement.hide(); | ||
| 56 | + } else { | ||
| 57 | + if (!charCounterUI.containerElement.visible()) | ||
| 58 | + charCounterUI.containerElement.show(); | ||
| 59 | + } | ||
| 60 | + } | ||
| 61 | + }; | ||
| 62 | + | ||
| 63 | return { | ||
| 64 | |||
| 65 | init: function(controller,platform,textElement,params) { | ||
| 66 | @@ -451,7 +469,13 @@ | ||
| 67 | setTextFieldValueFn = params.segmentCounter.setTextFieldValueFn; | ||
| 68 | } | ||
| 69 | } | ||
| 70 | - | ||
| 71 | + if(params.charCounter) { | ||
| 72 | + charCounterUI.containerElement = params.charCounter.charCountContainer; | ||
| 73 | + charCounterUI.valueElement = params.charCounter.charCountElement; | ||
| 74 | + if(params.charCounter.setTextFieldValueFn) { | ||
| 75 | + setTextFieldValueFn = params.charCounter.setTextFieldValueFn; | ||
| 76 | + } | ||
| 77 | + } | ||
| 78 | } | ||
| 79 | }, | ||
| 80 | |||
| 81 | @@ -517,6 +541,7 @@ | ||
| 82 | |||
| 83 | var messageData = parseMessage(rawCharacterData.message,rawCharacterData.count,true); | ||
| 84 | adjustedCharacterCount = messageData.adjustedCharacterCount; | ||
| 85 | + setCurrentCharCount(rawCharacterData.count); | ||
| 86 | if (adjustedMaxLen > 0) | ||
| 87 | setOverLimit(messageData.isOverLimit); | ||
| 88 | setCurrentSegmentCount(messageData.segmentCount); | ||
| 89 | diff -ur /usr/palm/app-original/com.palm.app.messaging/app/views/chatview/chatview-scene.html /usr/palm/applications/com.palm.app.messaging/app/views/chatview/chatview-scene.html | ||
| 90 | --- /usr/palm/app-original/com.palm.app.messaging/app/views/chatview/chatview-scene.html 2009-09-13 23:09:57.000000000 -0500 | ||
| 91 | +++ /usr/palm/applications/com.palm.app.messaging/app/views/chatview/chatview-scene.html 2009-09-28 15:35:16.000000000 -0500 | ||
| 92 | @@ -22,6 +22,10 @@ | ||
| 93 | <div id="messageContainer" class='palm-row'> | ||
| 94 | <div class="palm-row-wrapper textfield-group focused"> | ||
| 95 | <div class="title"> | ||
| 96 | + <div id="charCounterContainer" style="display: none;"> | ||
| 97 | + <div id="charCounter"> | ||
| 98 | + </div> | ||
| 99 | + </div> | ||
| 100 | <div id="attachmentContainer" style="display: none;"> | ||
| 101 | <div id="cancelAttachment"> | ||
| 102 | </div> | ||
| 103 | diff -ur /usr/palm/app-original/com.palm.app.messaging/app/views/compose/compose-scene.html /usr/palm/applications/com.palm.app.messaging/app/views/compose/compose-scene.html | ||
| 104 | --- /usr/palm/app-original/com.palm.app.messaging/app/views/compose/compose-scene.html 2009-09-13 23:09:57.000000000 -0500 | ||
| 105 | +++ /usr/palm/applications/com.palm.app.messaging/app/views/compose/compose-scene.html 2009-09-28 15:36:15.000000000 -0500 | ||
| 106 | @@ -6,6 +6,10 @@ | ||
| 107 | <div id="messageContainer" class='palm-row'> | ||
| 108 | <div class="palm-row-wrapper textfield-group focused"> | ||
| 109 | <div class="title"> | ||
| 110 | + <div id="charCounterContainer" style="display: none;"> | ||
| 111 | + <div id="charCounter"> | ||
| 112 | + </div> | ||
| 113 | + </div> | ||
| 114 | <div id="attachmentContainer" style="display: none;"> | ||
| 115 | <div id="cancelAttachment"> | ||
| 116 | </div> | ||
| 117 | diff -ur /usr/palm/app-original/com.palm.app.messaging/stylesheets/messaging.css /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 118 | --- /usr/palm/app-original/com.palm.app.messaging/stylesheets/messaging.css 2009-09-13 23:10:04.000000000 -0500 | ||
| 119 | +++ /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css 2009-09-28 15:37:25.000000000 -0500 | ||
| 120 | @@ -837,6 +837,23 @@ | ||
| 121 | #messageContainer.palm-row .icon.right { | ||
| 122 | height: 61px; | ||
| 123 | } | ||
| 124 | +#messageContainer #charCounterContainer { | ||
| 125 | + line-height: 20px; | ||
| 126 | + display:block; | ||
| 127 | + height: 20px; | ||
| 128 | + border-width: 0px 10px 0px 9px; | ||
| 129 | + -webkit-border-image: url(../images/message-segment-badge.png) 0 10 0 9 stretch stretch; | ||
| 130 | + position: absolute; | ||
| 131 | + z-index: 3; | ||
| 132 | + top: 2px; | ||
| 133 | + left: 2px; | ||
| 134 | +} | ||
| 135 | +#messageContainer #charCounterContainer #charCounter { | ||
| 136 | + font-size: 12px; | ||
| 137 | + font-weight: bold; | ||
| 138 | + color: #679BC2; | ||
| 139 | + margin: 0px -4px 3px -3px; | ||
| 140 | +} | ||
| 141 | #messageContainer #attachmentContainer { | ||
| 142 | position: relative; | ||
| 143 | margin-top:10px; |
messaging/clean-timestamp.patch
(0 / 63)
|   | |||
| 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 | @@ -1245,6 +1245,11 @@ var ChatviewAssistant = Class.create({ | ||
| 6 | var d = new Date(); | ||
| 7 | d.setTime(msg.deviceTimeStamp); | ||
| 8 | msg.niceDate = BucketDateFormatter.getDateBucket(d,true,true); // this used to use msg.timeStamp - changed 2008-11-05 | ||
| 9 | + | ||
| 10 | + // timestamp hack - enables timestamps on all messages | ||
| 11 | + var ts = new Date(); | ||
| 12 | + ts.setTime(msg.deviceTimeStamp); | ||
| 13 | + msg.timeStampText = Mojo.Format.formatDate(ts,'short'); | ||
| 14 | |||
| 15 | // divider hack - round to the nearest 5 minutes | ||
| 16 | // we have to do this because the list divider implementation does not allow a divider | ||
| 17 | @@ -1252,11 +1257,11 @@ var ChatviewAssistant = Class.create({ | ||
| 18 | var deviceTimeStampMinutes = d.getMinutes(); | ||
| 19 | d.setMinutes((deviceTimeStampMinutes - (deviceTimeStampMinutes % 5))); | ||
| 20 | d.setSeconds(0); | ||
| 21 | - msg.dividerText = msg.transportClass + BucketDateFormatter.getDateBucket(d,true,true); | ||
| 22 | + msg.dividerText = msg.transportClass; // + BucketDateFormatter.getDateBucket(d,true,true); | ||
| 23 | |||
| 24 | // if the INCOMING message was sent longer than 10 minutes before it arrived on device, | ||
| 25 | // add sent date to indicate that this delay happened | ||
| 26 | - if(!ChatFlags.isOutgoing(msg.flags) && msg.deviceTimeStamp && msg.timeStamp && (msg.deviceTimeStamp-msg.timeStamp) > (1000*60*10)) { | ||
| 27 | + // if(!ChatFlags.isOutgoing(msg.flags) && msg.deviceTimeStamp && msg.timeStamp && (msg.deviceTimeStamp-msg.timeStamp) > (1000*60*10)) { // timestamp fix var d = new Date(); | ||
| 28 | var d = new Date(); | ||
| 29 | var today = d.getTime(); | ||
| 30 | d.setTime(msg.timeStamp); | ||
| 31 | @@ -1264,10 +1269,10 @@ var ChatviewAssistant = Class.create({ | ||
| 32 | |||
| 33 | // Only show the message sent time if it is less than two days old | ||
| 34 | // from when it arrived on device | ||
| 35 | - if(today-msg.timeStamp <= (1000*60*60*24*2)) { | ||
| 36 | - msg.timeStampDeltaMsg = new Template($L("Message Sent: #{dateTime}")).evaluate({dateTime:Mojo.Format.formatDate(sentTimeStamp,'short')}); | ||
| 37 | - } | ||
| 38 | - } | ||
| 39 | + // if(today-msg.timeStamp <= (1000*60*60*24*2)) { // timestamp fix | ||
| 40 | + msg.timeStampDeltaMsg = new Template($L("#{dateTime}")).evaluate({dateTime:Mojo.Format.formatDate(sentTimeStamp,'short')}); | ||
| 41 | + // } // timestamp fix | ||
| 42 | + // } // timestamp fix | ||
| 43 | |||
| 44 | if (msg.callbackNumber) { | ||
| 45 | msg.callbackNumber = PalmSystem.runTextIndexer(msg.callbackNumber); | ||
| 46 | Index: /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 47 | =================================================================== | ||
| 48 | --- .orig/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 49 | +++ /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 50 | @@ -681,7 +681,12 @@ img.avatar-overlay { | ||
| 51 | width: 40px; | ||
| 52 | height: 40px; | ||
| 53 | } | ||
| 54 | - | ||
| 55 | +/* timestamp formatting */ | ||
| 56 | +.timeStamp { | ||
| 57 | + font-size: 12px; | ||
| 58 | + font-style: italic; | ||
| 59 | + color: #1111ff; | ||
| 60 | + } | ||
| 61 | .message.status-success { | ||
| 62 | color: #000000; | ||
| 63 | } |
messaging/compose-email.patch
(0 / 13)
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js b/usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 2 | index e4be132..688c678 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 5 | @@ -76,7 +76,7 @@ var ComposeAssistant = Class.create({ | ||
| 6 | |||
| 7 | this.searchList = { | ||
| 8 | "property": "to$A", | ||
| 9 | - "includeEmails": false, | ||
| 10 | + "includeEmails": true, | ||
| 11 | "includePhones": true, | ||
| 12 | "includeIMs": true, | ||
| 13 | "includeShortCode": true, |
messaging/contact-multitone.patch
(0 / 343)
|   | |||
| 1 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/listview-assistant.js | ||
| 2 | =================================================================== | ||
| 3 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/listview-assistant.js | ||
| 4 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/listview-assistant.js | ||
| 5 | @@ -434,7 +434,8 @@ var ListviewAssistant = Class.create(App | ||
| 6 | // if we are in the history view and the screen is on, do not display a banner + dashboard, just play a notification sound | ||
| 7 | if (this.isScreenOn) { | ||
| 8 | if (data.notificationType == this.Messaging.notificationTypes.newMessage && this.currentListView == this.Messaging.Views.HISTORY) { | ||
| 9 | - data = {playSoundOnly:true}; | ||
| 10 | + data = $H(data); | ||
| 11 | + data = data.merge({playSoundOnly:true}); | ||
| 12 | } | ||
| 13 | } | ||
| 14 | return data; | ||
| 15 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 16 | =================================================================== | ||
| 17 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 18 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 19 | @@ -346,7 +346,8 @@ var ChatviewAssistant = Class.create({ | ||
| 20 | if(this.isScreenOn && data.chatThreadId == this.chatThreadId) { | ||
| 21 | Mojo.Log.info("[CV] ****** chatview considerForNotification --- screen is on!"); | ||
| 22 | if(data.notificationType == this.Messaging.notificationTypes.newMessage) { | ||
| 23 | - data = {playSoundOnly:true}; | ||
| 24 | + data = $H(data); | ||
| 25 | + data = data.merge({playSoundOnly:true}); | ||
| 26 | } else if( data.notificationType == this.Messaging.notificationTypes.sendFailure) { | ||
| 27 | data = {}; // wipe out the notification because we are in the chat | ||
| 28 | } | ||
| 29 | Index: /usr/palm/applications/com.palm.app.messaging/app/models/messaging-luna-service.js | ||
| 30 | =================================================================== | ||
| 31 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/models/messaging-luna-service.js | ||
| 32 | +++ /usr/palm/applications/com.palm.app.messaging/app/models/messaging-luna-service.js | ||
| 33 | @@ -993,5 +993,168 @@ var MessagingMojoService = { | ||
| 34 | method: 'setSMSCAddressAndEmailGateway', | ||
| 35 | parameters: {smscAddr:address, emailGateway: gateway} | ||
| 36 | }); | ||
| 37 | + }, | ||
| 38 | + | ||
| 39 | + isNumberValid: function(number) { | ||
| 40 | + return !(number === undefined | ||
| 41 | + || number == null | ||
| 42 | + || number == "" | ||
| 43 | + || number == "unknown" | ||
| 44 | + || number == "unknown caller" | ||
| 45 | + || number == "blocked caller") | ||
| 46 | + }, | ||
| 47 | + | ||
| 48 | + // use contacts service and carrier book to perform reverse lookup on number. stores results in passed contact object. | ||
| 49 | + // runs callback when done. | ||
| 50 | + // if the number isn't valid, marks contact lookup complete | ||
| 51 | + // if there's already one happening, or one already completed, just fires callback | ||
| 52 | + // if there's a lateCallback provided, calls that if the result comes much later | ||
| 53 | + rLookup: function(number, contact, callback, lateCallback){ | ||
| 54 | + | ||
| 55 | + //Reset contact to always get the tone | ||
| 56 | + contact = {}; | ||
| 57 | + Mojo.Log.error("Current contact value: %j",contact); | ||
| 58 | + Mojo.Log.error("SMS ID: %j",number); | ||
| 59 | + | ||
| 60 | + // bail if the number is invalid | ||
| 61 | + if (!(this.isNumberValid(number))) { | ||
| 62 | + this.finishLookup(contact, callback); | ||
| 63 | + return; | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + if (contact.lookupComplete) { | ||
| 67 | + callback(contact); | ||
| 68 | + return; | ||
| 69 | + } | ||
| 70 | + | ||
| 71 | + if (contact.lookupPending) { | ||
| 72 | + callback(contact); | ||
| 73 | + return; | ||
| 74 | + } | ||
| 75 | + | ||
| 76 | + | ||
| 77 | + // use contacts service to perform lookup. | ||
| 78 | + // if contact already has an id in it, use person lookup | ||
| 79 | + // instead of doing reverse lookup on number | ||
| 80 | + contact.lookupPending = true; | ||
| 81 | + var method, params; | ||
| 82 | + if (contact.initialId) { | ||
| 83 | + method = 'basicDetails' | ||
| 84 | + params = {'id' : contact.initialId} | ||
| 85 | + delete contact.initialId; | ||
| 86 | + } else { | ||
| 87 | + method = 'reverseLookup' | ||
| 88 | + params = { | ||
| 89 | + 'value': number, | ||
| 90 | + 'type': "phone" | ||
| 91 | + } | ||
| 92 | + } | ||
| 93 | + this.lastRequest = new Mojo.Service.Request('palm://com.palm.contacts', { | ||
| 94 | + 'method': method, | ||
| 95 | + parameters: params, | ||
| 96 | + onSuccess: this.onLookup.bind(this, number, contact, callback, lateCallback), | ||
| 97 | + onFailure: function() { | ||
| 98 | + // cancel previous lookup, so this doesn't fire on a service crash | ||
| 99 | + if (this.lastRequest) { | ||
| 100 | + this.lastRequest.cancel(); | ||
| 101 | + this.lastRequest = undefined; | ||
| 102 | + } | ||
| 103 | + | ||
| 104 | + this.carrierBookLookup(number,contact); | ||
| 105 | + this.finishLookup(contact, callback); | ||
| 106 | + }.bind(this) | ||
| 107 | + }); | ||
| 108 | + | ||
| 109 | + // timeout if lookup hasn't completed in 4 seconds | ||
| 110 | + this.lookupTimeout = setTimeout(this.onLookupTimeout.bind(this, contact, callback, lateCallback), 4000); | ||
| 111 | + }, | ||
| 112 | + | ||
| 113 | + // when contact lookup returns, check for valid result | ||
| 114 | + // if valid result, grab name, ringtone; if there's a picture, start loading and set callback to measure it | ||
| 115 | + // if no valid result, look in carrier book | ||
| 116 | + // fire callback when done | ||
| 117 | + onLookup: function(number, contact, callback, lateCallback, result){ | ||
| 118 | + Mojo.Log.info( "PhoneApp: Contact::onLookup CALLER ID LOOKUP %s RETURNED %j" , number , result); | ||
| 119 | + var statusChange = ""; | ||
| 120 | + | ||
| 121 | + // cancel previous lookup, so this doesn't fire on a service crash | ||
| 122 | + if (this.lastRequest) { | ||
| 123 | + this.lastRequest.cancel(); | ||
| 124 | + this.lastRequest = undefined; | ||
| 125 | + } | ||
| 126 | + | ||
| 127 | + if (result.record) { | ||
| 128 | + /* | ||
| 129 | + // don't match if the number we get back is different than the number | ||
| 130 | + // we passed in (provided the lengths are the same) | ||
| 131 | + if (!(result.record.number) | ||
| 132 | + || ( (result.record.number) && ( (result.record.number.length !== number.length) | ||
| 133 | + || (result.record.number.length === number.length | ||
| 134 | + && result.record.number === number)))) { | ||
| 135 | + */ | ||
| 136 | + contact.id = result.record.id; | ||
| 137 | + | ||
| 138 | + | ||
| 139 | + contact.ringtoneLoc = result.record.messagingRingtoneLoc; | ||
| 140 | + Mojo.Log.error("MSGTone: %j",contact.ringtoneLoc); | ||
| 141 | + | ||
| 142 | + } | ||
| 143 | + | ||
| 144 | + this.finishLookup(contact, callback, lateCallback); | ||
| 145 | + }, | ||
| 146 | + | ||
| 147 | + | ||
| 148 | + | ||
| 149 | + // mark complete; cancel timeout; fire callback if it hasn't fired yet | ||
| 150 | + finishLookup: function(contact, callback, lateCallback) { | ||
| 151 | + contact.lookupPending = false; | ||
| 152 | + | ||
| 153 | + // cancel lookup timeout | ||
| 154 | + clearTimeout(this.lookupTimeout); | ||
| 155 | + this.lookupTimeout = undefined; | ||
| 156 | + | ||
| 157 | + if (!(contact.lookupComplete)) { | ||
| 158 | + contact.lookupComplete = true; | ||
| 159 | + callback(contact); | ||
| 160 | + // if we have a late return, and we got a contact result, call | ||
| 161 | + // the late return update | ||
| 162 | + } else if (lateCallback && contact.doLateCallback && contact.id) { | ||
| 163 | + contact.doLateCallback = false; | ||
| 164 | + lateCallback.delay(5, contact); | ||
| 165 | + } else { | ||
| 166 | + } | ||
| 167 | + | ||
| 168 | + }, | ||
| 169 | + | ||
| 170 | + // flag lookup as done; proceed with callback | ||
| 171 | + onLookupTimeout: function(contact, callback, lateCallback) { | ||
| 172 | + | ||
| 173 | + if (lateCallback) { | ||
| 174 | + contact.doLateCallback = true; | ||
| 175 | + } else if (this.lastRequest && !lateCallback) { | ||
| 176 | + // cancel previous lookup, so this doesn't fire on a service crash | ||
| 177 | + this.lastRequest.cancel(); | ||
| 178 | + this.lastRequest = undefined; | ||
| 179 | + } | ||
| 180 | + | ||
| 181 | + // clear timeout | ||
| 182 | + this.lookupTimeout = undefined; | ||
| 183 | + | ||
| 184 | + // flag done; fire callback if it hasn't yet | ||
| 185 | + contact.lookupComplete = true; | ||
| 186 | + var lookupWasPending = contact.lookupPending; | ||
| 187 | + contact.lookupPending = false; | ||
| 188 | + if (lookupWasPending) | ||
| 189 | + callback(contact); | ||
| 190 | + }, | ||
| 191 | + | ||
| 192 | + getMessagetone: function(callback) { | ||
| 193 | + var request = new Mojo.Service.Request('palm://com.palm.systemservice', { | ||
| 194 | + method: 'getPreferences', | ||
| 195 | + parameters: {"keys":["messagetone"]}, | ||
| 196 | + onSuccess: callback, | ||
| 197 | + onFailure: callback | ||
| 198 | + }); | ||
| 199 | + return request; | ||
| 200 | } | ||
| 201 | }; | ||
| 202 | \ No newline at end of file | ||
| 203 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/notification-assistant.js | ||
| 204 | =================================================================== | ||
| 205 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/notification-assistant.js | ||
| 206 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/notification-assistant.js | ||
| 207 | @@ -27,6 +27,8 @@ function NotificationAssistant(controlle | ||
| 208 | }; | ||
| 209 | } | ||
| 210 | |||
| 211 | +var contact = {}; | ||
| 212 | + | ||
| 213 | NotificationAssistant.prototype.subscribeToNotifications = function(){ | ||
| 214 | this.messageNotificationRequest = MessagingMojoService.registerForIncomingMessages({onSuccess: this.sendNotification.bind(this, this.Messaging.notificationTypes.newMessage)}); | ||
| 215 | this.sendErrorNotificationRequest = MessagingMojoService.registerForSendFailures(this.sendNotification.bind(this, this.Messaging.notificationTypes.sendFailure)); | ||
| 216 | @@ -35,6 +37,37 @@ NotificationAssistant.prototype.subscrib | ||
| 217 | this.airplaneModeNotificationRequest = MessagingMojoService.registerForAirplaneModeNotifications(this.sendAirplaneModeNotification.bind(this)); | ||
| 218 | }; | ||
| 219 | |||
| 220 | +NotificationAssistant.prototype.doBanner = function(bannerParams,bannerLaunchParams,bannerType,payload) { | ||
| 221 | + if (payload.messagetone.fullPath) | ||
| 222 | + bannerParams.soundFile = payload.messagetone.fullPath; | ||
| 223 | + this.controller.showBanner(bannerParams,bannerLaunchParams,bannerType); | ||
| 224 | +}; | ||
| 225 | + | ||
| 226 | +NotificationAssistant.prototype.playMessagetone = function(payload){ | ||
| 227 | + if (payload.messagetone.fullPath) | ||
| 228 | + this.controller.playSoundNotification('alerts',payload.messagetone.fullPath); | ||
| 229 | + else | ||
| 230 | + this.controller.playSoundNotification('alerts',''); | ||
| 231 | +}; | ||
| 232 | + | ||
| 233 | +NotificationAssistant.prototype.doB = function(bannerParams,bannerLaunchParams,bannerType,contact) { | ||
| 234 | + Mojo.Log.error("Banner Ringtone: %j",contact.ringtoneLoc); | ||
| 235 | + if (contact.ringtoneLoc) { | ||
| 236 | + bannerParams.soundFile = contact.ringtoneLoc; | ||
| 237 | + this.controller.showBanner(bannerParams,bannerLaunchParams,bannerType); | ||
| 238 | + } else { | ||
| 239 | + MessagingMojoService.getMessagetone(this.doBanner.bind(this,bannerParams,bannerLaunchParams,'chat')); | ||
| 240 | + } | ||
| 241 | +}; | ||
| 242 | + | ||
| 243 | +NotificationAssistant.prototype.playmsgtone = function(contact){ | ||
| 244 | + Mojo.Log.error("Playmsgtone Ringtone: %j",contact.ringtoneLoc); | ||
| 245 | + if (contact.ringtoneLoc) | ||
| 246 | + this.controller.playSoundNotification('alerts',contact.ringtoneLoc); | ||
| 247 | + else | ||
| 248 | + MessagingMojoService.getMessagetone(this.playMessagetone.bind(this)); | ||
| 249 | +}; | ||
| 250 | + | ||
| 251 | NotificationAssistant.prototype.sendNotification = function(notificationType, resp){ | ||
| 252 | if (window.PalmSystem && !resp.returnValue) { | ||
| 253 | try { | ||
| 254 | @@ -140,7 +173,8 @@ NotificationAssistant.prototype.consider | ||
| 255 | |||
| 256 | // check if we should only play a sound (when you are already in a chat & a new message comes in) | ||
| 257 | if(notificationData.get('playSoundOnly') && this.Messaging.messagingPrefs.enableNotificationSound) { | ||
| 258 | - this.controller.playSoundNotification('alerts',''); | ||
| 259 | + var smsid = notificationData.get('address'); | ||
| 260 | + MessagingMojoService.rLookup(smsid,contact,this.playmsgtone.bind(this),this.playmsgtone.bind(this)); | ||
| 261 | return; // don't display any visual notification | ||
| 262 | } | ||
| 263 | |||
| 264 | @@ -176,10 +210,11 @@ NotificationAssistant.prototype.sendClas | ||
| 265 | |||
| 266 | notificationData.set('alertTitle',alertTitle); | ||
| 267 | this.class0AlertData.list.push(notificationData); | ||
| 268 | - this.renderClass0PopupAlert(true); | ||
| 269 | + var smsid = notificationData.get('address'); | ||
| 270 | + MessagingMojoService.getMessagetone(this.renderClass0PopupAlert.bind(this,true)); | ||
| 271 | }; | ||
| 272 | |||
| 273 | -NotificationAssistant.prototype.renderClass0PopupAlert = function(playSound) { | ||
| 274 | +NotificationAssistant.prototype.renderClass0PopupAlert = function(playSound,messageTone) { | ||
| 275 | var class0Stage = this.controller.getStageController(Class0AlertStageName); | ||
| 276 | |||
| 277 | if(class0Stage) { | ||
| 278 | @@ -188,6 +223,8 @@ NotificationAssistant.prototype.renderCl | ||
| 279 | var soundClass = 'none'; | ||
| 280 | if(playSound) { | ||
| 281 | soundClass = 'alerts'; | ||
| 282 | + if(messageTone) | ||
| 283 | + soundFile = messageTone; | ||
| 284 | } | ||
| 285 | |||
| 286 | var pushClass0AlertScene = function(stageController) { | ||
| 287 | @@ -198,7 +235,8 @@ NotificationAssistant.prototype.renderCl | ||
| 288 | name: Class0AlertStageName, | ||
| 289 | lightweight: true, | ||
| 290 | height: 300, | ||
| 291 | - soundclass: soundClass | ||
| 292 | + soundclass: soundClass, | ||
| 293 | + soundfile: soundFile | ||
| 294 | }, pushClass0AlertScene, 'popupalert'); | ||
| 295 | } | ||
| 296 | |||
| 297 | @@ -253,8 +291,6 @@ NotificationAssistant.prototype.sendNewM | ||
| 298 | var bannerParams = { | ||
| 299 | messageText: notificationText | ||
| 300 | }; | ||
| 301 | - if (this.Messaging.messagingPrefs.enableNotificationSound) | ||
| 302 | - bannerParams.soundClass = "alerts"; | ||
| 303 | var bannerLaunchParams = { | ||
| 304 | chatThreadId: chatThreadId, | ||
| 305 | clearBanner: true | ||
| 306 | @@ -262,10 +298,17 @@ NotificationAssistant.prototype.sendNewM | ||
| 307 | |||
| 308 | if (this.Messaging.DisplayState.isDisplayOn()) { | ||
| 309 | Mojo.Log.info("notificationAssistant - executing full banner notification"); | ||
| 310 | - this.controller.showBanner(bannerParams, bannerLaunchParams, 'chat'); | ||
| 311 | + if (this.Messaging.messagingPrefs.enableNotificationSound) { | ||
| 312 | + var smsid = notificationData.get('address'); | ||
| 313 | + bannerParams.soundClass = "alerts"; | ||
| 314 | + MessagingMojoService.rLookup(smsid,contact,this.doB.bind(this,bannerParams,bannerLaunchParams,'chat'),this.doB.bind(this,bannerParams,bannerLaunchParams,'chat')); | ||
| 315 | + } else { | ||
| 316 | + Mojo.Log.error("Setting banner params"); | ||
| 317 | + this.controller.showBanner(bannerParams, bannerLaunchParams, 'chat'); | ||
| 318 | + } | ||
| 319 | } else if (this.Messaging.messagingPrefs.enableNotificationSound) { | ||
| 320 | - Mojo.Log.info("notificationAssistant - playing sound notification only"); | ||
| 321 | - this.controller.playSoundNotification('alerts',''); | ||
| 322 | + var smsid = notificationData.get('address'); | ||
| 323 | + MessagingMojoService.rLookup(smsid,contact,this.playmsgtone.bind(this),this.playmsgtone.bind(this)); | ||
| 324 | } | ||
| 325 | |||
| 326 | // Store the data so it can be used in the dashboard | ||
| 327 | @@ -324,13 +367,9 @@ NotificationAssistant.prototype.sendNewM | ||
| 328 | // delay creating the dashboard window for the case where the banner is clicked on | ||
| 329 | // to take you to the chat view. This will likely result in the dashboard data | ||
| 330 | // being cleared. If the dashboard data is empty, we do not need to create the dashboard. | ||
| 331 | - if (this.Messaging.DisplayState.isDisplayOn()) { | ||
| 332 | - if (!this.isNewMessageDashboardPending) { | ||
| 333 | - this.isNewMessageDashboardPending = true; | ||
| 334 | - createDashboard.delay(5); | ||
| 335 | - } | ||
| 336 | - } else { | ||
| 337 | - createDashboard(); // if the screen is off, create the dashboard right away | ||
| 338 | + if (!this.isNewMessageDashboardPending) { | ||
| 339 | + this.isNewMessageDashboardPending = true; | ||
| 340 | + createDashboard.delay(5); | ||
| 341 | } | ||
| 342 | } | ||
| 343 | }; |
messaging/forcesendoffline.patch
(0 / 13)
|   | |||
| 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 | @@ -1837,7 +1837,7 @@ var ChatviewAssistant = Class.create({ | ||
| 6 | // This will sometimes be an object because we pass this method directly when we observe | ||
| 7 | // Mojo.Event.tap on the send button | ||
| 8 | if(forceSendIfOffline && forceSendIfOffline != true) | ||
| 9 | - forceSendIfOffline = false; | ||
| 10 | + forceSendIfOffline = true; | ||
| 11 | |||
| 12 | // prevent blank messages from going through | ||
| 13 | var message = this.messageTextElement.value.strip(); |
messaging/full-IMstatus.patch
(0 / 27)
|   | |||
| 1 | Index: /usr/palm/applications/com.palm.app.messaging/app/views/listview/buddyList-row.html | ||
| 2 | =================================================================== | ||
| 3 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/views/listview/buddyList-row.html | ||
| 4 | +++ /usr/palm/applications/com.palm.app.messaging/app/views/listview/buddyList-row.html | ||
| 5 | @@ -8,7 +8,7 @@ | ||
| 6 | <div class="unread-count-container"> | ||
| 7 | <div class="unread-count-wrapper">#{unreadCount}</div> | ||
| 8 | </div> | ||
| 9 | - <div class="truncating-text custom-message">#{-customMessage}</div> | ||
| 10 | + <div class="custom-message">#{-customMessage}</div> | ||
| 11 | </div> | ||
| 12 | </div> | ||
| 13 | </div> | ||
| 14 | \ No newline at end of file | ||
| 15 | Index: /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 16 | =================================================================== | ||
| 17 | --- .orig/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 18 | +++ /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 19 | @@ -164,7 +164,7 @@ img.avatar-overlay { | ||
| 20 | } | ||
| 21 | |||
| 22 | .buddy-list .palm-row { | ||
| 23 | - height: 60px; | ||
| 24 | + height: auto; | ||
| 25 | } | ||
| 26 | |||
| 27 | .buddy-list .title { |
|   | |||
| 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 0c816ba..39d4e6c 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 5 | @@ -1750,6 +1750,32 @@ var ChatviewAssistant = Class.create({ | ||
| 6 | }, | ||
| 7 | |||
| 8 | handleTextAreaKeyUp: function(event) { | ||
| 9 | + if (event && event.ctrlKey && event.keyCode==Mojo.Char.f) { | ||
| 10 | + currentText=this.messageTextElement.value; | ||
| 11 | + oldPos = this.messageTextElement.selectionStart; | ||
| 12 | + newPos = currentText.lastIndexOf(' ',oldPos-1); | ||
| 13 | + if (newPos>-1) { | ||
| 14 | + this.messageTextElement.setSelectionRange(newPos,newPos); | ||
| 15 | + } | ||
| 16 | + else { | ||
| 17 | + this.messageTextElement.setSelectionRange(0,0); | ||
| 18 | + } | ||
| 19 | + Event.stop(event); | ||
| 20 | + } | ||
| 21 | + | ||
| 22 | + if (event && event.ctrlKey && event.keyCode==Mojo.Char.g ) { | ||
| 23 | + currentText=this.messageTextElement.value; | ||
| 24 | + oldPos = this.messageTextElement.selectionStart; | ||
| 25 | + newPos = currentText.indexOf(' ',oldPos); | ||
| 26 | + if (newPos>-1) { | ||
| 27 | + this.messageTextElement.setSelectionRange(newPos+1,newPos+1); | ||
| 28 | + } | ||
| 29 | + else { | ||
| 30 | + this.messageTextElement.setSelectionRange(currentText.length,currentText.length); | ||
| 31 | + } | ||
| 32 | + Event.stop(event); | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | if (event && Mojo.Char.isEnterKey(event.keyCode)) { | ||
| 36 | this.considerForSend(); | ||
| 37 | Event.stop(event); |
messaging/message-forwarding.patch
(0 / 190)
|   | |||
| 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 | @@ -1541,59 +1541,104 @@ var ChatviewAssistant = Class.create({ | ||
| 6 | MessagingMojoService.deleteMessage(this.controller, event.item.messageId); | ||
| 7 | }, | ||
| 8 | |||
| 9 | - handleMessageTap: function(event){ | ||
| 10 | - var eventTarget = this.controller.get(event.originalEvent.target); | ||
| 11 | - | ||
| 12 | - var mmsImageTarget = MessagingUtils.getClassUpChain(eventTarget,'MMSImageObject'); | ||
| 13 | - if(mmsImageTarget) { | ||
| 14 | - this.controller.stageController.pushScene('imageview', mmsImageTarget.getAttribute('originalSrc')); | ||
| 15 | - return; | ||
| 16 | - } | ||
| 17 | + handleMessageTap: function(event){ | ||
| 18 | + var eventTarget = this.controller.get(event.originalEvent.target); | ||
| 19 | |||
| 20 | - var mmsVideoTarget = MessagingUtils.getClassUpChain(eventTarget,'mms-video'); | ||
| 21 | - if(mmsVideoTarget) { | ||
| 22 | - var videoPath = mmsVideoTarget.getAttribute('filePath'); | ||
| 23 | - var videoName = mmsVideoTarget.getAttribute('fileInfo'); | ||
| 24 | - | ||
| 25 | - var args = { | ||
| 26 | - appId: "com.palm.app.videoplayer", | ||
| 27 | - name: "nowplaying" | ||
| 28 | - }; | ||
| 29 | - var params = { | ||
| 30 | - target: videoPath, | ||
| 31 | - title: videoName | ||
| 32 | - }; | ||
| 33 | - this.controller.stageController.pushScene(args, params); | ||
| 34 | - return; | ||
| 35 | - } | ||
| 36 | - | ||
| 37 | - var mmsVcardTarget = MessagingUtils.getClassUpChain(eventTarget,'mms-vcard'); | ||
| 38 | - if(mmsVcardTarget) { | ||
| 39 | - var filePath = mmsVcardTarget.getAttribute('filePath'); | ||
| 40 | - MessagingMojoService.launchFile(this.controller, 'text/x-vcard', 'file://'+filePath); | ||
| 41 | - return; | ||
| 42 | - } | ||
| 43 | - | ||
| 44 | - var mmsVcalTarget = MessagingUtils.getClassUpChain(eventTarget,'mms-vcal'); | ||
| 45 | - if(mmsVcalTarget) { | ||
| 46 | - var filePath = mmsVcalTarget.getAttribute('filePath'); | ||
| 47 | - MessagingMojoService.launchFile(this.controller, 'text/x-vcalendar', 'file://'+filePath); | ||
| 48 | - return; | ||
| 49 | - } | ||
| 50 | - | ||
| 51 | - MessagingUtils.simpleListClick(this.controller.get(event.originalEvent.target), "chatRow", function(targetRow){ | ||
| 52 | - var messageData = { | ||
| 53 | - errorCode: targetRow.getAttribute("errorCode"), | ||
| 54 | - status: targetRow.getAttribute("status"), | ||
| 55 | - messageId: targetRow.getAttribute("messageId"), | ||
| 56 | - flags: targetRow.getAttribute("flags"), | ||
| 57 | - messageType: targetRow.getAttribute("messageType") | ||
| 58 | - }; | ||
| 59 | - | ||
| 60 | - MessagingMojoService.getMessageErrorInfo(this.controller, messageData.messageId, messageData.flags, this.handleMessageErrorPopup.bind(this,messageData)); | ||
| 61 | + var mmsImageTarget = MessagingUtils.getClassUpChain(eventTarget,'MMSImageObject'); | ||
| 62 | + if(mmsImageTarget) { | ||
| 63 | + var imagePath = mmsImageTarget.getAttribute('originalSrc'); | ||
| 64 | + this.controller.showAlertDialog({ | ||
| 65 | + onChoose: function(value) {if(value == "forward"){MessagingMojoService.forwardMessage(this.controller, event.item.messageText, imagePath);} else {this.controller.stageController.pushScene('imageview', imagePath);}}, | ||
| 66 | + title: $L("Forward Message"), | ||
| 67 | + message: $L("Do you want to forward this message?"), | ||
| 68 | + choices:[ | ||
| 69 | + {label:$L("Yes"), value:"forward", type:"affirmative"}, | ||
| 70 | + {label:$L("No"), value:"", type:"negative"} | ||
| 71 | + ] | ||
| 72 | + }); | ||
| 73 | + return; | ||
| 74 | + } | ||
| 75 | |||
| 76 | - }.bind(this), false); | ||
| 77 | - }, | ||
| 78 | + var mmsVideoTarget = MessagingUtils.getClassUpChain(eventTarget,'mms-video'); | ||
| 79 | + if(mmsVideoTarget) { | ||
| 80 | + var videoPath = mmsVideoTarget.getAttribute('filePath'); | ||
| 81 | + var videoName = mmsVideoTarget.getAttribute('fileInfo'); | ||
| 82 | + | ||
| 83 | + var args = { | ||
| 84 | + appId: "com.palm.app.videoplayer", | ||
| 85 | + name: "nowplaying" | ||
| 86 | + }; | ||
| 87 | + var params = { | ||
| 88 | + target: videoPath, | ||
| 89 | + title: videoName | ||
| 90 | + }; | ||
| 91 | + this.controller.showAlertDialog({ | ||
| 92 | + onChoose: function(value) {if(value == "forward"){MessagingMojoService.forwardMessage(this.controller, event.item.messageText, videoPath);} else {this.controller.stageController.pushScene(args, params);}}, | ||
| 93 | + title: $L("Forward Message"), | ||
| 94 | + message: $L("Do you want to forward this message?"), | ||
| 95 | + choices:[ | ||
| 96 | + {label:$L("Yes"), value:"forward", type:"affirmative"}, | ||
| 97 | + {label:$L("No"), value:"", type:"negative"} | ||
| 98 | + ] | ||
| 99 | + }); | ||
| 100 | + return; | ||
| 101 | + } | ||
| 102 | + | ||
| 103 | + var mmsVcardTarget = MessagingUtils.getClassUpChain(eventTarget,'mms-vcard'); | ||
| 104 | + if(mmsVcardTarget) { | ||
| 105 | + var filePath = mmsVcardTarget.getAttribute('filePath'); | ||
| 106 | + this.controller.showAlertDialog({ | ||
| 107 | + onChoose: function(value) {if(value == "forward"){MessagingMojoService.forwardMessage(this.controller, event.item.messageText, filePath);} else {this.controller.stageController.pushScene('mmsTextAttachment', filePath);}}, | ||
| 108 | + title: $L("Forward Message"), | ||
| 109 | + message: $L("Do you want to forward this message?"), | ||
| 110 | + choices:[ | ||
| 111 | + {label:$L("Yes"), value:"forward", type:"affirmative"}, | ||
| 112 | + {label:$L("No"), value:"", type:"negative"} | ||
| 113 | + ] | ||
| 114 | + }); | ||
| 115 | + return; | ||
| 116 | + } | ||
| 117 | + | ||
| 118 | + var mmsVcalTarget = MessagingUtils.getClassUpChain(eventTarget,'mms-vcal'); | ||
| 119 | + if(mmsVcalTarget) { | ||
| 120 | + var filePath = mmsVcalTarget.getAttribute('filePath'); | ||
| 121 | + this.controller.showAlertDialog({ | ||
| 122 | + onChoose: function(value) {if(value == "forward"){MessagingMojoService.forwardMessage(this.controller, event.item.messageText, filePath);} else {this.controller.stageController.pushScene('mmsTextAttachment', filePath);}}, | ||
| 123 | + title: $L("Forward Message"), | ||
| 124 | + message: $L("Do you want to forward this message?"), | ||
| 125 | + choices:[ | ||
| 126 | + {label:$L("Yes"), value:"forward", type:"affirmative"}, | ||
| 127 | + {label:$L("No"), value:"", type:"negative"} | ||
| 128 | + ] | ||
| 129 | + }); | ||
| 130 | + return; | ||
| 131 | + } | ||
| 132 | + | ||
| 133 | + if (!mmsImageTarget && !mmsVideoTarget && !mmsVcardTarget && !mmsVcalTarget) { | ||
| 134 | + this.controller.showAlertDialog({ | ||
| 135 | + onChoose: function(value) {if(value == "forward"){MessagingMojoService.forwardMessage(this.controller, event.item.messageText, '');}}, | ||
| 136 | + title: $L("Forward Message"), | ||
| 137 | + message: $L("Do you want to forward this message?"), | ||
| 138 | + choices:[ | ||
| 139 | + {label:$L("Yes"), value:"forward", type:"affirmative"}, | ||
| 140 | + {label:$L("No"), value:"", type:"negative"} | ||
| 141 | + ] | ||
| 142 | + }); | ||
| 143 | + } | ||
| 144 | + | ||
| 145 | + MessagingUtils.simpleListClick(this.controller.get(event.originalEvent.target), "chatRow", function(targetRow){ | ||
| 146 | + var messageData = { | ||
| 147 | + errorCode: targetRow.getAttribute("errorCode"), | ||
| 148 | + status: targetRow.getAttribute("status"), | ||
| 149 | + messageId: targetRow.getAttribute("messageId"), | ||
| 150 | + flags: targetRow.getAttribute("flags"), | ||
| 151 | + messageType: targetRow.getAttribute("messageType") | ||
| 152 | + }; | ||
| 153 | + | ||
| 154 | + MessagingMojoService.getMessageErrorInfo(this.controller, messageData.messageId, messageData.flags, this.handleMessageErrorPopup.bind(this,messageData)); | ||
| 155 | + | ||
| 156 | + }.bind(this), false); | ||
| 157 | + }, | ||
| 158 | |||
| 159 | |||
| 160 | handleMessageErrorPopup: function(messageData,messageErrorData) { | ||
| 161 | Index: /usr/palm/applications/com.palm.app.messaging/app/models/messaging-luna-service.js | ||
| 162 | =================================================================== | ||
| 163 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/models/messaging-luna-service.js | ||
| 164 | +++ /usr/palm/applications/com.palm.app.messaging/app/models/messaging-luna-service.js | ||
| 165 | @@ -8,7 +8,25 @@ var MessagingMojoService = { | ||
| 166 | displayIdentifier: 'palm://com.palm.display/control', | ||
| 167 | telephonyIdentifier: 'palm://com.palm.telephony', | ||
| 168 | systemManagerIdentifier: 'palm://com.palm.systemmanager', | ||
| 169 | + forwardIdentifier: 'palm://com.palm.applicationManager', | ||
| 170 | |||
| 171 | + forwardMessage: function(sceneController,messageText,attachment) { | ||
| 172 | + var opts = { | ||
| 173 | + method: 'launch', | ||
| 174 | + parameters: { | ||
| 175 | + id: 'com.palm.app.messaging', | ||
| 176 | + params: { | ||
| 177 | + } | ||
| 178 | + } | ||
| 179 | + }; | ||
| 180 | + if (messageText) | ||
| 181 | + opts.parameters.params.messageText = 'FWD: '+messageText; | ||
| 182 | + if (attachment) | ||
| 183 | + opts.parameters.params.attachment = attachment; | ||
| 184 | + return sceneController.serviceRequest(MessagingMojoService.forwardIdentifier,opts); | ||
| 185 | + }, | ||
| 186 | + | ||
| 187 | + | ||
| 188 | launchMessaging: function(sceneController,params) { | ||
| 189 | return sceneController.serviceRequest("palm://com.palm.applicationManager", { | ||
| 190 | method:'launch', |
messaging/message-orientation.patch
(0 / 120)
|   | |||
| 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 | @@ -97,7 +97,9 @@ var ChatviewAssistant = Class.create({ | ||
| 6 | |||
| 7 | setup: function(){ | ||
| 8 | this.controller.setupWidget(Mojo.Menu.appMenu, this.appMenuAttrs, this.appMenuModel); | ||
| 9 | - | ||
| 10 | + | ||
| 11 | + // enable free orientation | ||
| 12 | + this.controller.window.PalmSystem.setWindowOrientation("free"); | ||
| 13 | var messageTextWidgetAttributes = { | ||
| 14 | modelProperty: 'value', | ||
| 15 | hintText: $L('Enter message here...'), | ||
| 16 | @@ -196,6 +198,14 @@ var ChatviewAssistant = Class.create({ | ||
| 17 | this.handleFocus(); | ||
| 18 | } | ||
| 19 | }, | ||
| 20 | + | ||
| 21 | + orientationChanged: function(orientation) { | ||
| 22 | + if (orientation === "left" || orientation === "right") { | ||
| 23 | + this.controller.sceneElement.addClassName('landscape'); | ||
| 24 | + } else { | ||
| 25 | + this.controller.sceneElement.removeClassName('landscape'); | ||
| 26 | + } | ||
| 27 | + }, | ||
| 28 | |||
| 29 | cleanup: function(){ | ||
| 30 | this.chatViewHeaderClickTarget.stopObserving(Mojo.Event.tap, this.handleHeaderTap); | ||
| 31 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 32 | =================================================================== | ||
| 33 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 34 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 35 | @@ -73,7 +73,9 @@ var ComposeAssistant = Class.create({ | ||
| 36 | |||
| 37 | setup: function() { | ||
| 38 | this.controller.setupWidget(Mojo.Menu.appMenu, this.appMenuAttrs, this.appMenuModel); | ||
| 39 | - | ||
| 40 | + | ||
| 41 | + // enable free orientation | ||
| 42 | + this.controller.window.PalmSystem.setWindowOrientation("free"); | ||
| 43 | this.searchList = { | ||
| 44 | "property": "to$A", | ||
| 45 | "includeEmails": false, | ||
| 46 | @@ -386,6 +388,14 @@ var ComposeAssistant = Class.create({ | ||
| 47 | } | ||
| 48 | this.setCharacterCounterMaxLength(); | ||
| 49 | }, | ||
| 50 | + | ||
| 51 | + orientationChanged: function(orientation) { | ||
| 52 | + if (orientation === "left" || orientation === "right") { | ||
| 53 | + this.controller.sceneElement.addClassName('landscape'); | ||
| 54 | + } else { | ||
| 55 | + this.controller.sceneElement.removeClassName('landscape'); | ||
| 56 | + } | ||
| 57 | + }, | ||
| 58 | |||
| 59 | cleanup: function() { | ||
| 60 | var that = this; | ||
| 61 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/listview-assistant.js | ||
| 62 | =================================================================== | ||
| 63 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/listview-assistant.js | ||
| 64 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/listview-assistant.js | ||
| 65 | @@ -212,8 +212,10 @@ var ListviewAssistant = Class.create(App | ||
| 66 | items:this.commandMenuModel | ||
| 67 | }; | ||
| 68 | |||
| 69 | - this.controller.setupWidget(Mojo.Menu.commandMenu, {}, this.cmdMenuModel); | ||
| 70 | - | ||
| 71 | + this.controller.setupWidget(Mojo.Menu.commandMenu, undefined, this.cmdMenuModel); | ||
| 72 | + | ||
| 73 | + // enable free orientation | ||
| 74 | + this.controller.window.PalmSystem.setWindowOrientation("free"); | ||
| 75 | this.filterField = this.controller.get('filterField'); | ||
| 76 | this.buddyListHeader = this.controller.get('buddyListHeader'); | ||
| 77 | this.controller.setupWidget('filterField',{filterFieldName:'filterFieldElement'},this.filterField); | ||
| 78 | @@ -1086,7 +1088,15 @@ var ListviewAssistant = Class.create(App | ||
| 79 | loadDebugView: function() { | ||
| 80 | this.controller.stageController.pushScene('debug'); | ||
| 81 | }, | ||
| 82 | - | ||
| 83 | + | ||
| 84 | + orientationChanged: function(orientation) { | ||
| 85 | + if (orientation === "left" || orientation === "right") { | ||
| 86 | + this.controller.sceneElement.addClassName('landscape'); | ||
| 87 | + } else { | ||
| 88 | + this.controller.sceneElement.removeClassName('landscape'); | ||
| 89 | + } | ||
| 90 | + }, | ||
| 91 | + | ||
| 92 | cleanup: function() { | ||
| 93 | // save the listview state | ||
| 94 | MessagingMojoService.setIsHistoryViewSelected(this.controller,(this.currentListView == this.Messaging.Views.HISTORY)); | ||
| 95 | Index: /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 96 | =================================================================== | ||
| 97 | --- .orig/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 98 | +++ /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 99 | @@ -642,10 +642,10 @@ img.avatar-overlay { | ||
| 100 | } | ||
| 101 | |||
| 102 | .their-chat .message-container { | ||
| 103 | - width: 255px; | ||
| 104 | + width: 85%; | ||
| 105 | } | ||
| 106 | .my-chat .message-container { | ||
| 107 | - width: 280px; | ||
| 108 | + width: 95%; | ||
| 109 | } | ||
| 110 | .chat-entry .chat-balloon { | ||
| 111 | min-height: 26px; | ||
| 112 | @@ -823,7 +823,7 @@ img.avatar-overlay { | ||
| 113 | position: fixed; | ||
| 114 | bottom:0px; | ||
| 115 | left:0px; | ||
| 116 | - width: 320px; | ||
| 117 | + width: 100%; | ||
| 118 | } | ||
| 119 | |||
| 120 | #messageContainer #messageTextWidget { |
messaging/messagelandscape.patch
(0 / 72)
|   | |||
| 1 | Formats the messages to landscape when phone is rotated. | ||
| 2 | Index: /usr/palm/applications/com.palm.app.email/app/controllers/accounts-assistant.js | ||
| 3 | =================================================================== | ||
| 4 | --- .orig/usr/palm/applications/com.palm.app.email/app/controllers/accounts-assistant.js | ||
| 5 | +++ /usr/palm/applications/com.palm.app.email/app/controllers/accounts-assistant.js | ||
| 6 | @@ -53,6 +53,7 @@ var AccountsAssistant = Class.create(App | ||
| 7 | EmailAppDepot.depot.isShowFavorites(AccountsAssistant.kFavoriteFoldersAccountID, this.depotGetFavExpanded.bind(this)); | ||
| 8 | |||
| 9 | this.controller.listen(this.controller.sceneElement, Mojo.Event.keypress, this.keypressHandler.bind(this)); | ||
| 10 | + this.controller.window.PalmSystem.setWindowOrientation("free"); | ||
| 11 | }, | ||
| 12 | |||
| 13 | cleanup: function() { | ||
| 14 | Index: /usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js | ||
| 15 | =================================================================== | ||
| 16 | --- .orig/usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js | ||
| 17 | +++ /usr/palm/applications/com.palm.app.email/app/controllers/compose-assistant.js | ||
| 18 | @@ -186,6 +186,7 @@ var ComposeAssistant = Class.create({ | ||
| 19 | |||
| 20 | // Delayed a little, since we want the header part of render as quickly as possible | ||
| 21 | ComposeAssistant.onLoad.defer(this.controller, this.email); | ||
| 22 | + this.controller.window.PalmSystem.setWindowOrientation("free"); | ||
| 23 | }, | ||
| 24 | |||
| 25 | cleanup: function() { | ||
| 26 | @@ -641,7 +642,8 @@ ComposeAssistant.onLoad = function(contr | ||
| 27 | var bodyText = email.text; | ||
| 28 | var originalText = email.originalText; | ||
| 29 | // Reduce bad scripts, styles, and margin settings by removing the html up to (and including) the body tag. | ||
| 30 | - var splitIndex = originalText.indexOf("<body"); | ||
| 31 | + /* -START- REPLACE BY D2GLOBALINC MODIFICATION TO FIX REPLY-FORWARD FORMATTING | ||
| 32 | + var splitIndex = originalText.indexOf("<body"); | ||
| 33 | if (splitIndex > 0) { | ||
| 34 | splitIndex = originalText.indexOf('>', splitIndex); | ||
| 35 | if (splitIndex > 0) { | ||
| 36 | @@ -651,7 +653,23 @@ ComposeAssistant.onLoad = function(contr | ||
| 37 | } | ||
| 38 | } | ||
| 39 | |||
| 40 | - // Truncate to 100K if the message is too long. | ||
| 41 | + */ | ||
| 42 | + // -END- REPLACE BY D2GLOBALINC MODIFICATION TO FIX REPLY-FORWARD FORMATTING | ||
| 43 | + | ||
| 44 | + // FIX BROKEN FORMATTING IN REPLAY-FORWARD | ||
| 45 | + var splitIndex = originalText.indexOf("<body"); | ||
| 46 | + if (splitIndex > 0) { | ||
| 47 | + splitIndex = originalText.indexOf('>', splitIndex); | ||
| 48 | + if (splitIndex > 0) { | ||
| 49 | + splitIndex++; | ||
| 50 | + Mojo.Log.info("Slicing header starting at", splitIndex); | ||
| 51 | + originalText = originalText.slice(splitIndex); | ||
| 52 | + } | ||
| 53 | + } else { | ||
| 54 | + originalText = originalText.gsub("\n","<br/>"); | ||
| 55 | + } | ||
| 56 | + | ||
| 57 | + // Truncate to 100K if the message is too long. | ||
| 58 | // cutting it off conservatively). | ||
| 59 | var maxBodyLength = 100000; | ||
| 60 | if (originalText.length > maxBodyLength) { | ||
| 61 | Index: /usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 62 | =================================================================== | ||
| 63 | --- .orig/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 64 | +++ /usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js | ||
| 65 | @@ -37,6 +37,7 @@ var ListAssistant = Class.create(App.Sce | ||
| 66 | {label:$L('Update'), icon:'sync', command:'sync'} | ||
| 67 | ]}; | ||
| 68 | this.controller.setupWidget(Mojo.Menu.commandMenu, undefined, this.cmdMenuModel); | ||
| 69 | + this.controller.window.PalmSystem.setWindowOrientation("free"); | ||
| 70 | }, | ||
| 71 | |||
| 72 | // NOTE: this is called by app_scene's _setup function |
|   | |||
| 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 | @@ -2013,7 +2013,7 @@ var ChatviewAssistant = Class.create({ | ||
| 6 | attachFilePicker: function(event){ | ||
| 7 | var params = { | ||
| 8 | actionType: 'attach', | ||
| 9 | - kinds: ['image'], // TODO: integrate other media types | ||
| 10 | + kinds: ['image','audio','video'], // TODO: integrate other media types | ||
| 11 | defaultKind: 'image', | ||
| 12 | onSelect: this.handleFilePickerSelect.bind(this) | ||
| 13 | }; | ||
| 14 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 15 | =================================================================== | ||
| 16 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 17 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 18 | @@ -324,7 +324,7 @@ var ComposeAssistant = Class.create({ | ||
| 19 | attachFilePicker: function(event) { | ||
| 20 | var params = { | ||
| 21 | actionType: 'attach', | ||
| 22 | - kinds: ['image'], // TODO: integrate other media types | ||
| 23 | + kinds: ['image','audio','video'], // TODO: integrate other media types | ||
| 24 | defaultKind: 'image', | ||
| 25 | onSelect: this.handleFilePickerSelect.bind(this) | ||
| 26 | }; |
|   | |||
| 1 | diff -ur /usr/palm/app-original/com.palm.app.messaging/app/controllers/chatview-assistant.js /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 2 | --- /usr/palm/app-original/com.palm.app.messaging/app/controllers/chatview-assistant.js 2009-09-13 23:09:56.000000000 -0500 | ||
| 3 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js 2009-09-28 15:29:40.000000000 -0500 | ||
| 4 | @@ -187,6 +187,11 @@ | ||
| 5 | segmentCountContainer: this.controller.get('segmentCounterContainer'), | ||
| 6 | segmentCountElement: this.controller.get('segmentCounter'), | ||
| 7 | setTextFieldValueFn: this.setTextFieldValue.bind(this) | ||
| 8 | + }, | ||
| 9 | + charCounter: { | ||
| 10 | + charCountContainer: this.controller.get('charCounterContainer'), | ||
| 11 | + charCountElement: this.controller.get('charCounter'), | ||
| 12 | + setTextFieldValueFn: this.setTextFieldValue.bind(this) | ||
| 13 | } | ||
| 14 | }; | ||
| 15 | |||
| 16 | diff -ur /usr/palm/app-original/com.palm.app.messaging/app/controllers/compose-assistant.js /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 17 | --- /usr/palm/app-original/com.palm.app.messaging/app/controllers/compose-assistant.js 2009-09-13 23:09:56.000000000 -0500 | ||
| 18 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js 2009-09-28 15:30:36.000000000 -0500 | ||
| 19 | @@ -140,6 +140,11 @@ | ||
| 20 | segmentCountContainer: this.controller.get('segmentCounterContainer'), | ||
| 21 | segmentCountElement: this.controller.get('segmentCounter'), | ||
| 22 | setTextFieldValueFn: this.setTextFieldValue.bind(this) | ||
| 23 | + }, | ||
| 24 | + charCounter: { | ||
| 25 | + charCountContainer: this.controller.get('charCounterContainer'), | ||
| 26 | + charCountElement: this.controller.get('charCounter'), | ||
| 27 | + setTextFieldValueFn: this.setTextFieldValue.bind(this) | ||
| 28 | } | ||
| 29 | }; | ||
| 30 | |||
| 31 | diff -ur /usr/palm/app-original/com.palm.app.messaging/app/utilities/CharacterCounter.js /usr/palm/applications/com.palm.app.messaging/app/utilities/CharacterCounter.js | ||
| 32 | --- /usr/palm/app-original/com.palm.app.messaging/app/utilities/CharacterCounter.js 2009-09-13 23:09:56.000000000 -0500 | ||
| 33 | +++ /usr/palm/applications/com.palm.app.messaging/app/utilities/CharacterCounter.js 2009-09-28 15:34:44.000000000 -0500 | ||
| 34 | @@ -58,6 +58,10 @@ | ||
| 35 | containerElement: null, | ||
| 36 | valueElement: null | ||
| 37 | }; | ||
| 38 | + var charCounterUI = { | ||
| 39 | + containerElement: null, | ||
| 40 | + valueElement: null | ||
| 41 | + }; | ||
| 42 | |||
| 43 | |||
| 44 | // TODO: eventually we might want to implement some cleverness that counts | ||
| 45 | @@ -291,6 +295,20 @@ | ||
| 46 | } | ||
| 47 | }; | ||
| 48 | |||
| 49 | + var setCurrentCharCount = function(newCharCount) { | ||
| 50 | + if(charCounterUI.valueElement) | ||
| 51 | + charCounterUI.valueElement.update(newCharCount); | ||
| 52 | + if(charCounterUI.containerElement) { | ||
| 53 | + if (newCharCount == 0) { | ||
| 54 | + if (charCounterUI.containerElement.visible()) | ||
| 55 | + charCounterUI.containerElement.hide(); | ||
| 56 | + } else { | ||
| 57 | + if (!charCounterUI.containerElement.visible()) | ||
| 58 | + charCounterUI.containerElement.show(); | ||
| 59 | + } | ||
| 60 | + } | ||
| 61 | + }; | ||
| 62 | + | ||
| 63 | return { | ||
| 64 | |||
| 65 | init: function(controller,platform,textElement,params) { | ||
| 66 | @@ -451,7 +469,13 @@ | ||
| 67 | setTextFieldValueFn = params.segmentCounter.setTextFieldValueFn; | ||
| 68 | } | ||
| 69 | } | ||
| 70 | - | ||
| 71 | + if(params.charCounter) { | ||
| 72 | + charCounterUI.containerElement = params.charCounter.charCountContainer; | ||
| 73 | + charCounterUI.valueElement = params.charCounter.charCountElement; | ||
| 74 | + if(params.charCounter.setTextFieldValueFn) { | ||
| 75 | + setTextFieldValueFn = params.charCounter.setTextFieldValueFn; | ||
| 76 | + } | ||
| 77 | + } | ||
| 78 | } | ||
| 79 | }, | ||
| 80 | |||
| 81 | @@ -517,6 +541,7 @@ | ||
| 82 | |||
| 83 | var messageData = parseMessage(rawCharacterData.message,rawCharacterData.count,true); | ||
| 84 | adjustedCharacterCount = messageData.adjustedCharacterCount; | ||
| 85 | + setCurrentCharCount(rawCharacterData.count); | ||
| 86 | if (adjustedMaxLen > 0) | ||
| 87 | setOverLimit(messageData.isOverLimit); | ||
| 88 | setCurrentSegmentCount(messageData.segmentCount); | ||
| 89 | diff -ur /usr/palm/app-original/com.palm.app.messaging/app/views/chatview/chatview-scene.html /usr/palm/applications/com.palm.app.messaging/app/views/chatview/chatview-scene.html | ||
| 90 | --- /usr/palm/app-original/com.palm.app.messaging/app/views/chatview/chatview-scene.html 2009-09-13 23:09:57.000000000 -0500 | ||
| 91 | +++ /usr/palm/applications/com.palm.app.messaging/app/views/chatview/chatview-scene.html 2009-09-28 15:35:16.000000000 -0500 | ||
| 92 | @@ -22,6 +22,10 @@ | ||
| 93 | <div id="messageContainer" class='palm-row'> | ||
| 94 | <div class="palm-row-wrapper textfield-group focused"> | ||
| 95 | <div class="title"> | ||
| 96 | + <div id="charCounterContainer" style="display: none;"> | ||
| 97 | + <div id="charCounter"> | ||
| 98 | + </div> | ||
| 99 | + </div> | ||
| 100 | <div id="attachmentContainer" style="display: none;"> | ||
| 101 | <div id="cancelAttachment"> | ||
| 102 | </div> | ||
| 103 | diff -ur /usr/palm/app-original/com.palm.app.messaging/app/views/compose/compose-scene.html /usr/palm/applications/com.palm.app.messaging/app/views/compose/compose-scene.html | ||
| 104 | --- /usr/palm/app-original/com.palm.app.messaging/app/views/compose/compose-scene.html 2009-09-13 23:09:57.000000000 -0500 | ||
| 105 | +++ /usr/palm/applications/com.palm.app.messaging/app/views/compose/compose-scene.html 2009-09-28 15:36:15.000000000 -0500 | ||
| 106 | @@ -6,6 +6,10 @@ | ||
| 107 | <div id="messageContainer" class='palm-row'> | ||
| 108 | <div class="palm-row-wrapper textfield-group focused"> | ||
| 109 | <div class="title"> | ||
| 110 | + <div id="charCounterContainer" style="display: none;"> | ||
| 111 | + <div id="charCounter"> | ||
| 112 | + </div> | ||
| 113 | + </div> | ||
| 114 | <div id="attachmentContainer" style="display: none;"> | ||
| 115 | <div id="cancelAttachment"> | ||
| 116 | </div> | ||
| 117 | diff -ur /usr/palm/app-original/com.palm.app.messaging/stylesheets/messaging.css /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 118 | --- /usr/palm/app-original/com.palm.app.messaging/stylesheets/messaging.css 2009-09-13 23:10:04.000000000 -0500 | ||
| 119 | +++ /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css 2009-09-28 15:37:25.000000000 -0500 | ||
| 120 | @@ -837,6 +837,23 @@ | ||
| 121 | #messageContainer.palm-row .icon.right { | ||
| 122 | height: 61px; | ||
| 123 | } | ||
| 124 | +#messageContainer #charCounterContainer { | ||
| 125 | + line-height: 20px; | ||
| 126 | + display:block; | ||
| 127 | + height: 20px; | ||
| 128 | + border-width: 0px 10px 0px 9px; | ||
| 129 | + -webkit-border-image: url(../images/message-segment-badge.png) 0 10 0 9 stretch stretch; | ||
| 130 | + position: absolute; | ||
| 131 | + z-index: 3; | ||
| 132 | + top: 2px; | ||
| 133 | + left: 2px; | ||
| 134 | +} | ||
| 135 | +#messageContainer #charCounterContainer #charCounter { | ||
| 136 | + font-size: 12px; | ||
| 137 | + font-weight: bold; | ||
| 138 | + color: #679BC2; | ||
| 139 | + margin: 0px -4px 3px -3px; | ||
| 140 | +} | ||
| 141 | #messageContainer #attachmentContainer { | ||
| 142 | position: relative; | ||
| 143 | margin-top:10px; |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js b/usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 2 | index e4be132..688c678 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 5 | @@ -76,7 +76,7 @@ var ComposeAssistant = Class.create({ | ||
| 6 | |||
| 7 | this.searchList = { | ||
| 8 | "property": "to$A", | ||
| 9 | - "includeEmails": false, | ||
| 10 | + "includeEmails": true, | ||
| 11 | "includePhones": true, | ||
| 12 | "includeIMs": true, | ||
| 13 | "includeShortCode": true, |
|   | |||
| 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 | @@ -1541,59 +1541,104 @@ var ChatviewAssistant = Class.create({ | ||
| 6 | MessagingMojoService.deleteMessage(this.controller, event.item.messageId); | ||
| 7 | }, | ||
| 8 | |||
| 9 | - handleMessageTap: function(event){ | ||
| 10 | - var eventTarget = this.controller.get(event.originalEvent.target); | ||
| 11 | - | ||
| 12 | - var mmsImageTarget = MessagingUtils.getClassUpChain(eventTarget,'MMSImageObject'); | ||
| 13 | - if(mmsImageTarget) { | ||
| 14 | - this.controller.stageController.pushScene('imageview', mmsImageTarget.getAttribute('originalSrc')); | ||
| 15 | - return; | ||
| 16 | - } | ||
| 17 | + handleMessageTap: function(event){ | ||
| 18 | + var eventTarget = this.controller.get(event.originalEvent.target); | ||
| 19 | |||
| 20 | - var mmsVideoTarget = MessagingUtils.getClassUpChain(eventTarget,'mms-video'); | ||
| 21 | - if(mmsVideoTarget) { | ||
| 22 | - var videoPath = mmsVideoTarget.getAttribute('filePath'); | ||
| 23 | - var videoName = mmsVideoTarget.getAttribute('fileInfo'); | ||
| 24 | - | ||
| 25 | - var args = { | ||
| 26 | - appId: "com.palm.app.videoplayer", | ||
| 27 | - name: "nowplaying" | ||
| 28 | - }; | ||
| 29 | - var params = { | ||
| 30 | - target: videoPath, | ||
| 31 | - title: videoName | ||
| 32 | - }; | ||
| 33 | - this.controller.stageController.pushScene(args, params); | ||
| 34 | - return; | ||
| 35 | - } | ||
| 36 | - | ||
| 37 | - var mmsVcardTarget = MessagingUtils.getClassUpChain(eventTarget,'mms-vcard'); | ||
| 38 | - if(mmsVcardTarget) { | ||
| 39 | - var filePath = mmsVcardTarget.getAttribute('filePath'); | ||
| 40 | - MessagingMojoService.launchFile(this.controller, 'text/x-vcard', 'file://'+filePath); | ||
| 41 | - return; | ||
| 42 | - } | ||
| 43 | - | ||
| 44 | - var mmsVcalTarget = MessagingUtils.getClassUpChain(eventTarget,'mms-vcal'); | ||
| 45 | - if(mmsVcalTarget) { | ||
| 46 | - var filePath = mmsVcalTarget.getAttribute('filePath'); | ||
| 47 | - MessagingMojoService.launchFile(this.controller, 'text/x-vcalendar', 'file://'+filePath); | ||
| 48 | - return; | ||
| 49 | - } | ||
| 50 | - | ||
| 51 | - MessagingUtils.simpleListClick(this.controller.get(event.originalEvent.target), "chatRow", function(targetRow){ | ||
| 52 | - var messageData = { | ||
| 53 | - errorCode: targetRow.getAttribute("errorCode"), | ||
| 54 | - status: targetRow.getAttribute("status"), | ||
| 55 | - messageId: targetRow.getAttribute("messageId"), | ||
| 56 | - flags: targetRow.getAttribute("flags"), | ||
| 57 | - messageType: targetRow.getAttribute("messageType") | ||
| 58 | - }; | ||
| 59 | - | ||
| 60 | - MessagingMojoService.getMessageErrorInfo(this.controller, messageData.messageId, messageData.flags, this.handleMessageErrorPopup.bind(this,messageData)); | ||
| 61 | + var mmsImageTarget = MessagingUtils.getClassUpChain(eventTarget,'MMSImageObject'); | ||
| 62 | + if(mmsImageTarget) { | ||
| 63 | + var imagePath = mmsImageTarget.getAttribute('originalSrc'); | ||
| 64 | + this.controller.showAlertDialog({ | ||
| 65 | + onChoose: function(value) {if(value == "forward"){MessagingMojoService.forwardMessage(this.controller, event.item.messageText, imagePath);} else {this.controller.stageController.pushScene('imageview', imagePath);}}, | ||
| 66 | + title: $L("Forward Message"), | ||
| 67 | + message: $L("Do you want to forward this message?"), | ||
| 68 | + choices:[ | ||
| 69 | + {label:$L("Yes"), value:"forward", type:"affirmative"}, | ||
| 70 | + {label:$L("No"), value:"", type:"negative"} | ||
| 71 | + ] | ||
| 72 | + }); | ||
| 73 | + return; | ||
| 74 | + } | ||
| 75 | |||
| 76 | - }.bind(this), false); | ||
| 77 | - }, | ||
| 78 | + var mmsVideoTarget = MessagingUtils.getClassUpChain(eventTarget,'mms-video'); | ||
| 79 | + if(mmsVideoTarget) { | ||
| 80 | + var videoPath = mmsVideoTarget.getAttribute('filePath'); | ||
| 81 | + var videoName = mmsVideoTarget.getAttribute('fileInfo'); | ||
| 82 | + | ||
| 83 | + var args = { | ||
| 84 | + appId: "com.palm.app.videoplayer", | ||
| 85 | + name: "nowplaying" | ||
| 86 | + }; | ||
| 87 | + var params = { | ||
| 88 | + target: videoPath, | ||
| 89 | + title: videoName | ||
| 90 | + }; | ||
| 91 | + this.controller.showAlertDialog({ | ||
| 92 | + onChoose: function(value) {if(value == "forward"){MessagingMojoService.forwardMessage(this.controller, event.item.messageText, videoPath);} else {this.controller.stageController.pushScene(args, params);}}, | ||
| 93 | + title: $L("Forward Message"), | ||
| 94 | + message: $L("Do you want to forward this message?"), | ||
| 95 | + choices:[ | ||
| 96 | + {label:$L("Yes"), value:"forward", type:"affirmative"}, | ||
| 97 | + {label:$L("No"), value:"", type:"negative"} | ||
| 98 | + ] | ||
| 99 | + }); | ||
| 100 | + return; | ||
| 101 | + } | ||
| 102 | + | ||
| 103 | + var mmsVcardTarget = MessagingUtils.getClassUpChain(eventTarget,'mms-vcard'); | ||
| 104 | + if(mmsVcardTarget) { | ||
| 105 | + var filePath = mmsVcardTarget.getAttribute('filePath'); | ||
| 106 | + this.controller.showAlertDialog({ | ||
| 107 | + onChoose: function(value) {if(value == "forward"){MessagingMojoService.forwardMessage(this.controller, event.item.messageText, filePath);} else {this.controller.stageController.pushScene('mmsTextAttachment', filePath);}}, | ||
| 108 | + title: $L("Forward Message"), | ||
| 109 | + message: $L("Do you want to forward this message?"), | ||
| 110 | + choices:[ | ||
| 111 | + {label:$L("Yes"), value:"forward", type:"affirmative"}, | ||
| 112 | + {label:$L("No"), value:"", type:"negative"} | ||
| 113 | + ] | ||
| 114 | + }); | ||
| 115 | + return; | ||
| 116 | + } | ||
| 117 | + | ||
| 118 | + var mmsVcalTarget = MessagingUtils.getClassUpChain(eventTarget,'mms-vcal'); | ||
| 119 | + if(mmsVcalTarget) { | ||
| 120 | + var filePath = mmsVcalTarget.getAttribute('filePath'); | ||
| 121 | + this.controller.showAlertDialog({ | ||
| 122 | + onChoose: function(value) {if(value == "forward"){MessagingMojoService.forwardMessage(this.controller, event.item.messageText, filePath);} else {this.controller.stageController.pushScene('mmsTextAttachment', filePath);}}, | ||
| 123 | + title: $L("Forward Message"), | ||
| 124 | + message: $L("Do you want to forward this message?"), | ||
| 125 | + choices:[ | ||
| 126 | + {label:$L("Yes"), value:"forward", type:"affirmative"}, | ||
| 127 | + {label:$L("No"), value:"", type:"negative"} | ||
| 128 | + ] | ||
| 129 | + }); | ||
| 130 | + return; | ||
| 131 | + } | ||
| 132 | + | ||
| 133 | + if (!mmsImageTarget && !mmsVideoTarget && !mmsVcardTarget && !mmsVcalTarget) { | ||
| 134 | + this.controller.showAlertDialog({ | ||
| 135 | + onChoose: function(value) {if(value == "forward"){MessagingMojoService.forwardMessage(this.controller, event.item.messageText, '');}}, | ||
| 136 | + title: $L("Forward Message"), | ||
| 137 | + message: $L("Do you want to forward this message?"), | ||
| 138 | + choices:[ | ||
| 139 | + {label:$L("Yes"), value:"forward", type:"affirmative"}, | ||
| 140 | + {label:$L("No"), value:"", type:"negative"} | ||
| 141 | + ] | ||
| 142 | + }); | ||
| 143 | + } | ||
| 144 | + | ||
| 145 | + MessagingUtils.simpleListClick(this.controller.get(event.originalEvent.target), "chatRow", function(targetRow){ | ||
| 146 | + var messageData = { | ||
| 147 | + errorCode: targetRow.getAttribute("errorCode"), | ||
| 148 | + status: targetRow.getAttribute("status"), | ||
| 149 | + messageId: targetRow.getAttribute("messageId"), | ||
| 150 | + flags: targetRow.getAttribute("flags"), | ||
| 151 | + messageType: targetRow.getAttribute("messageType") | ||
| 152 | + }; | ||
| 153 | + | ||
| 154 | + MessagingMojoService.getMessageErrorInfo(this.controller, messageData.messageId, messageData.flags, this.handleMessageErrorPopup.bind(this,messageData)); | ||
| 155 | + | ||
| 156 | + }.bind(this), false); | ||
| 157 | + }, | ||
| 158 | |||
| 159 | |||
| 160 | handleMessageErrorPopup: function(messageData,messageErrorData) { | ||
| 161 | Index: /usr/palm/applications/com.palm.app.messaging/app/models/messaging-luna-service.js | ||
| 162 | =================================================================== | ||
| 163 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/models/messaging-luna-service.js | ||
| 164 | +++ /usr/palm/applications/com.palm.app.messaging/app/models/messaging-luna-service.js | ||
| 165 | @@ -8,7 +8,25 @@ var MessagingMojoService = { | ||
| 166 | displayIdentifier: 'palm://com.palm.display/control', | ||
| 167 | telephonyIdentifier: 'palm://com.palm.telephony', | ||
| 168 | systemManagerIdentifier: 'palm://com.palm.systemmanager', | ||
| 169 | + forwardIdentifier: 'palm://com.palm.applicationManager', | ||
| 170 | |||
| 171 | + forwardMessage: function(sceneController,messageText,attachment) { | ||
| 172 | + var opts = { | ||
| 173 | + method: 'launch', | ||
| 174 | + parameters: { | ||
| 175 | + id: 'com.palm.app.messaging', | ||
| 176 | + params: { | ||
| 177 | + } | ||
| 178 | + } | ||
| 179 | + }; | ||
| 180 | + if (messageText) | ||
| 181 | + opts.parameters.params.messageText = 'FWD: '+messageText; | ||
| 182 | + if (attachment) | ||
| 183 | + opts.parameters.params.attachment = attachment; | ||
| 184 | + return sceneController.serviceRequest(MessagingMojoService.forwardIdentifier,opts); | ||
| 185 | + }, | ||
| 186 | + | ||
| 187 | + | ||
| 188 | launchMessaging: function(sceneController,params) { | ||
| 189 | return sceneController.serviceRequest("palm://com.palm.applicationManager", { | ||
| 190 | method:'launch', |
|   | |||
| 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 | @@ -97,7 +97,9 @@ var ChatviewAssistant = Class.create({ | ||
| 6 | |||
| 7 | setup: function(){ | ||
| 8 | this.controller.setupWidget(Mojo.Menu.appMenu, this.appMenuAttrs, this.appMenuModel); | ||
| 9 | - | ||
| 10 | + | ||
| 11 | + // enable free orientation | ||
| 12 | + this.controller.window.PalmSystem.setWindowOrientation("free"); | ||
| 13 | var messageTextWidgetAttributes = { | ||
| 14 | modelProperty: 'value', | ||
| 15 | hintText: $L('Enter message here...'), | ||
| 16 | @@ -196,6 +198,14 @@ var ChatviewAssistant = Class.create({ | ||
| 17 | this.handleFocus(); | ||
| 18 | } | ||
| 19 | }, | ||
| 20 | + | ||
| 21 | + orientationChanged: function(orientation) { | ||
| 22 | + if (orientation === "left" || orientation === "right") { | ||
| 23 | + this.controller.sceneElement.addClassName('landscape'); | ||
| 24 | + } else { | ||
| 25 | + this.controller.sceneElement.removeClassName('landscape'); | ||
| 26 | + } | ||
| 27 | + }, | ||
| 28 | |||
| 29 | cleanup: function(){ | ||
| 30 | this.chatViewHeaderClickTarget.stopObserving(Mojo.Event.tap, this.handleHeaderTap); | ||
| 31 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 32 | =================================================================== | ||
| 33 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 34 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 35 | @@ -73,7 +73,9 @@ var ComposeAssistant = Class.create({ | ||
| 36 | |||
| 37 | setup: function() { | ||
| 38 | this.controller.setupWidget(Mojo.Menu.appMenu, this.appMenuAttrs, this.appMenuModel); | ||
| 39 | - | ||
| 40 | + | ||
| 41 | + // enable free orientation | ||
| 42 | + this.controller.window.PalmSystem.setWindowOrientation("free"); | ||
| 43 | this.searchList = { | ||
| 44 | "property": "to$A", | ||
| 45 | "includeEmails": false, | ||
| 46 | @@ -386,6 +388,14 @@ var ComposeAssistant = Class.create({ | ||
| 47 | } | ||
| 48 | this.setCharacterCounterMaxLength(); | ||
| 49 | }, | ||
| 50 | + | ||
| 51 | + orientationChanged: function(orientation) { | ||
| 52 | + if (orientation === "left" || orientation === "right") { | ||
| 53 | + this.controller.sceneElement.addClassName('landscape'); | ||
| 54 | + } else { | ||
| 55 | + this.controller.sceneElement.removeClassName('landscape'); | ||
| 56 | + } | ||
| 57 | + }, | ||
| 58 | |||
| 59 | cleanup: function() { | ||
| 60 | var that = this; | ||
| 61 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/listview-assistant.js | ||
| 62 | =================================================================== | ||
| 63 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/listview-assistant.js | ||
| 64 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/listview-assistant.js | ||
| 65 | @@ -212,8 +212,10 @@ var ListviewAssistant = Class.create(App | ||
| 66 | items:this.commandMenuModel | ||
| 67 | }; | ||
| 68 | |||
| 69 | - this.controller.setupWidget(Mojo.Menu.commandMenu, {}, this.cmdMenuModel); | ||
| 70 | - | ||
| 71 | + this.controller.setupWidget(Mojo.Menu.commandMenu, undefined, this.cmdMenuModel); | ||
| 72 | + | ||
| 73 | + // enable free orientation | ||
| 74 | + this.controller.window.PalmSystem.setWindowOrientation("free"); | ||
| 75 | this.filterField = this.controller.get('filterField'); | ||
| 76 | this.buddyListHeader = this.controller.get('buddyListHeader'); | ||
| 77 | this.controller.setupWidget('filterField',{filterFieldName:'filterFieldElement'},this.filterField); | ||
| 78 | @@ -1086,7 +1088,15 @@ var ListviewAssistant = Class.create(App | ||
| 79 | loadDebugView: function() { | ||
| 80 | this.controller.stageController.pushScene('debug'); | ||
| 81 | }, | ||
| 82 | - | ||
| 83 | + | ||
| 84 | + orientationChanged: function(orientation) { | ||
| 85 | + if (orientation === "left" || orientation === "right") { | ||
| 86 | + this.controller.sceneElement.addClassName('landscape'); | ||
| 87 | + } else { | ||
| 88 | + this.controller.sceneElement.removeClassName('landscape'); | ||
| 89 | + } | ||
| 90 | + }, | ||
| 91 | + | ||
| 92 | cleanup: function() { | ||
| 93 | // save the listview state | ||
| 94 | MessagingMojoService.setIsHistoryViewSelected(this.controller,(this.currentListView == this.Messaging.Views.HISTORY)); | ||
| 95 | Index: /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 96 | =================================================================== | ||
| 97 | --- .orig/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 98 | +++ /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 99 | @@ -642,10 +642,10 @@ img.avatar-overlay { | ||
| 100 | } | ||
| 101 | |||
| 102 | .their-chat .message-container { | ||
| 103 | - width: 255px; | ||
| 104 | + width: 85%; | ||
| 105 | } | ||
| 106 | .my-chat .message-container { | ||
| 107 | - width: 280px; | ||
| 108 | + width: 95%; | ||
| 109 | } | ||
| 110 | .chat-entry .chat-balloon { | ||
| 111 | min-height: 26px; | ||
| 112 | @@ -823,7 +823,7 @@ img.avatar-overlay { | ||
| 113 | position: fixed; | ||
| 114 | bottom:0px; | ||
| 115 | left:0px; | ||
| 116 | - width: 320px; | ||
| 117 | + width: 100%; | ||
| 118 | } | ||
| 119 | |||
| 120 | #messageContainer #messageTextWidget { |
|   | |||
| 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 4c7cdbe..52563c8 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 5 | @@ -1347,7 +1347,7 @@ var ChatviewAssistant = Class.create({ | ||
| 6 | if (ChatFlags.isOutgoing(msg.flags)) { | ||
| 7 | tmpClass.push("my-chat"); | ||
| 8 | // Disabling MY avatar because we are not doing this for 1.0 2008-11-05 | ||
| 9 | - //msg.avatar = this.myAvatar || 'images/my-avatar.png'; | ||
| 10 | + msg.avatar = this.myAvatar || 'images/my-avatar.png'; | ||
| 11 | } else { | ||
| 12 | tmpClass.push("their-chat"); | ||
| 13 | msg.avatar = this.avatarHash[msg.fromAddress] || this.contactAvatar || "images/list-view-default-avatar.png"; | ||
| 14 | diff --git a/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css b/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 15 | index 13251fe..b624a0f 100644 | ||
| 16 | --- a/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 17 | +++ b/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 18 | @@ -137,16 +137,11 @@ img.avatar-overlay { | ||
| 19 | } | ||
| 20 | |||
| 21 | .chatRow img.avatar-location { | ||
| 22 | - margin-top: -18px; | ||
| 23 | + margin-top: -39px; | ||
| 24 | } | ||
| 25 | |||
| 26 | .chatRow img.avatar-overlay { | ||
| 27 | - margin-top: -21px; | ||
| 28 | -} | ||
| 29 | - | ||
| 30 | -.chatRow .avatar-container { | ||
| 31 | - vertical-align: middle; | ||
| 32 | - display: inline-block; | ||
| 33 | + margin-top: -42.5px; | ||
| 34 | } | ||
| 35 | |||
| 36 | .login-animation-available, | ||
| 37 | @@ -664,9 +659,7 @@ img.avatar-overlay { | ||
| 38 | padding: 1px 0; | ||
| 39 | font-size: 18px; | ||
| 40 | word-wrap: break-word !important; | ||
| 41 | -} | ||
| 42 | -.their-chat .chat-balloon-wrapper { | ||
| 43 | - padding-right: 8px; | ||
| 44 | + padding-right: 40px; | ||
| 45 | } | ||
| 46 | .their-chat .avatar { | ||
| 47 | width: 40px; | ||
| 48 | @@ -675,8 +668,6 @@ img.avatar-overlay { | ||
| 49 | |||
| 50 | /* Disabling MY avatar because we are not doing this for 1.0 2008-11-05*/ | ||
| 51 | .my-chat .avatar-location, | ||
| 52 | -.my-chat .avatar-overlay, | ||
| 53 | -.my-chat .avatar-container { | ||
| 54 | display: none; | ||
| 55 | width: 40px; | ||
| 56 | height: 40px; |
|   | |||
| 1 | Patch to messaging to make the enter key insert a new-line character rather than sending the message. | ||
| 2 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 3 | =================================================================== | ||
| 4 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 5 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 6 | @@ -87,7 +87,7 @@ var ChatviewAssistant = Class.create({ | ||
| 7 | this.attachFilePicker = this.attachFilePicker.bind(this); | ||
| 8 | this.handleCancelAttachment = this.resetTextBox.bind(this, false); | ||
| 9 | this.handleTextAreaChange = this.handleTextAreaChange.bind(this); | ||
| 10 | - this.handleTextAreaKeyUp = this.handleTextAreaKeyUp.bind(this); | ||
| 11 | + // this.handleTextAreaKeyUp = this.handleTextAreaKeyUp.bind(this); | ||
| 12 | this.handleScreenStateChange = this.handleScreenStateChange.bind(this); | ||
| 13 | this.handleFocus = this.handleFocus.bind(this); | ||
| 14 | this.handleLoseFocus = this.handleLoseFocus.bind(this); | ||
| 15 | @@ -103,7 +103,7 @@ var ChatviewAssistant = Class.create({ | ||
| 16 | hintText: $L('Enter message here...'), | ||
| 17 | multiline: true, | ||
| 18 | focus: false, | ||
| 19 | - enterSubmits: true, | ||
| 20 | + enterSubmits: false, | ||
| 21 | textFieldName: "messageTextElement", | ||
| 22 | className: " ", | ||
| 23 | changeOnKeyPress: true | ||
| 24 | @@ -146,7 +146,7 @@ var ChatviewAssistant = Class.create({ | ||
| 25 | |||
| 26 | this.cancelAttachment.observe(Mojo.Event.tap, this.handleCancelAttachment); | ||
| 27 | |||
| 28 | - this.messageTextElement.observe('keyup', this.handleTextAreaKeyUp); | ||
| 29 | + // this.messageTextElement.observe('keyup', this.handleTextAreaKeyUp); | ||
| 30 | this.messageTextWidget.observe(Mojo.Event.propertyChange, this.handleTextAreaChange); | ||
| 31 | |||
| 32 | // observe keydown/keyup on the text field WIDGET to handle height changes due to text forcing it to resize | ||
| 33 | @@ -207,7 +207,7 @@ var ChatviewAssistant = Class.create({ | ||
| 34 | this.messageTextWidget.stopObserving('keydown', this.handleTextFieldResize); | ||
| 35 | this.messageTextWidget.stopObserving('keyup', this.handleTextFieldResize); | ||
| 36 | this.messageTextWidget.stopObserving(Mojo.Event.propertyChange, this.handleTextAreaChange); | ||
| 37 | - this.messageTextElement.stopObserving('keyup', this.handleTextAreaKeyUp); | ||
| 38 | + // this.messageTextElement.stopObserving('keyup', this.handleTextAreaKeyUp); | ||
| 39 | this.Messaging.DisplayState.stopObserving(this.handleScreenStateChange); | ||
| 40 | this.controller.document.removeEventListener(Mojo.Event.stageActivate, this.handleFocus, false); | ||
| 41 | this.controller.document.removeEventListener(Mojo.Event.stageDeactivate, this.handleLoseFocus, false); | ||
| 42 | @@ -1749,12 +1749,12 @@ var ChatviewAssistant = Class.create({ | ||
| 43 | } | ||
| 44 | }, | ||
| 45 | |||
| 46 | - handleTextAreaKeyUp: function(event) { | ||
| 47 | + /* handleTextAreaKeyUp: function(event) { | ||
| 48 | if (event && Mojo.Char.isEnterKey(event.keyCode)) { | ||
| 49 | this.considerForSend(); | ||
| 50 | Event.stop(event); | ||
| 51 | } | ||
| 52 | - }, | ||
| 53 | + }, */ | ||
| 54 | |||
| 55 | handleTextAreaChange: function() { | ||
| 56 | if (this.messageTextElement && this.messageTextElement.value == '') { | ||
| 57 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 58 | =================================================================== | ||
| 59 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 60 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 61 | @@ -66,7 +66,7 @@ var ComposeAssistant = Class.create({ | ||
| 62 | this.considerForSend = this.considerForSend.bind(this); | ||
| 63 | this.attachFilePicker = this.attachFilePicker.bind(this); | ||
| 64 | this.handleTextAreaChange = this.handleTextAreaChange.bind(this); | ||
| 65 | - this.handleTextAreaKeyUp = this.handleTextAreaKeyUp.bind(this); | ||
| 66 | + // this.handleTextAreaKeyUp = this.handleTextAreaKeyUp.bind(this); | ||
| 67 | this.handleCancelAttachment = this.resetTextBox.bind(this,false); | ||
| 68 | this.handleRecipientsChanged = this.handleRecipientsChanged.bind(this); | ||
| 69 | }, | ||
| 70 | @@ -99,7 +99,7 @@ var ComposeAssistant = Class.create({ | ||
| 71 | hintText: $L('Enter message here...'), | ||
| 72 | multiline: true, | ||
| 73 | focus: false, | ||
| 74 | - enterSubmits: true, | ||
| 75 | + enterSubmits: false, | ||
| 76 | requiresEnterKey: true, | ||
| 77 | modelProperty: "value", | ||
| 78 | changeOnKeyPress: true | ||
| 79 | @@ -126,7 +126,7 @@ var ComposeAssistant = Class.create({ | ||
| 80 | }); | ||
| 81 | |||
| 82 | |||
| 83 | - this.messageTextElement.observe('keyup', this.handleTextAreaKeyUp); | ||
| 84 | + // this.messageTextElement.observe('keyup', this.handleTextAreaKeyUp); | ||
| 85 | this.messageTextWidget.observe(Mojo.Event.propertyChange, this.handleTextAreaChange); | ||
| 86 | |||
| 87 | // Observe add/delete to the addressing widget | ||
| 88 | @@ -302,12 +302,12 @@ var ComposeAssistant = Class.create({ | ||
| 89 | } | ||
| 90 | }, | ||
| 91 | |||
| 92 | - handleTextAreaKeyUp: function(event) { | ||
| 93 | + /* handleTextAreaKeyUp: function(event) { | ||
| 94 | if (event && Mojo.Char.isEnterKey(event.keyCode)) { | ||
| 95 | this.considerForSend(); | ||
| 96 | Event.stop(event); | ||
| 97 | } | ||
| 98 | - }, | ||
| 99 | + }, */ | ||
| 100 | |||
| 101 | handleTextAreaChange: function() { | ||
| 102 | if (this.messageTextElement && this.messageTextElement.value == '') { | ||
| 103 | @@ -398,7 +398,7 @@ var ComposeAssistant = Class.create({ | ||
| 104 | that.controller.stopListening('searchList',event,that.handleRecipientsChanged); | ||
| 105 | }); | ||
| 106 | |||
| 107 | - this.messageTextElement.stopObserving('keyup', this.handleTextAreaKeyUp); | ||
| 108 | + // this.messageTextElement.stopObserving('keyup', this.handleTextAreaKeyUp); | ||
| 109 | this.messageTextWidget.stopObserving(Mojo.Event.propertyChange, this.handleTextAreaChange); | ||
| 110 | |||
| 111 | this.characterCounter.destroy(); |
|   | |||
| 1 | Patch to messaging to make the enter key insert a new-line character rather than sending the message. | ||
| 2 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 3 | =================================================================== | ||
| 4 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 5 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 6 | @@ -87,7 +87,7 @@ var ChatviewAssistant = Class.create({ | ||
| 7 | this.attachFilePicker = this.attachFilePicker.bind(this); | ||
| 8 | this.handleCancelAttachment = this.resetTextBox.bind(this, false); | ||
| 9 | this.handleTextAreaChange = this.handleTextAreaChange.bind(this); | ||
| 10 | - this.handleTextAreaKeyUp = this.handleTextAreaKeyUp.bind(this); | ||
| 11 | + // this.handleTextAreaKeyUp = this.handleTextAreaKeyUp.bind(this); | ||
| 12 | this.handleScreenStateChange = this.handleScreenStateChange.bind(this); | ||
| 13 | this.handleFocus = this.handleFocus.bind(this); | ||
| 14 | this.handleLoseFocus = this.handleLoseFocus.bind(this); | ||
| 15 | @@ -103,7 +103,7 @@ var ChatviewAssistant = Class.create({ | ||
| 16 | hintText: $L('Enter message here...'), | ||
| 17 | multiline: true, | ||
| 18 | focus: false, | ||
| 19 | - enterSubmits: true, | ||
| 20 | + enterSubmits: false, | ||
| 21 | textFieldName: "messageTextElement", | ||
| 22 | className: " ", | ||
| 23 | changeOnKeyPress: true | ||
| 24 | @@ -146,7 +146,7 @@ var ChatviewAssistant = Class.create({ | ||
| 25 | |||
| 26 | this.cancelAttachment.observe(Mojo.Event.tap, this.handleCancelAttachment); | ||
| 27 | |||
| 28 | - this.messageTextElement.observe('keyup', this.handleTextAreaKeyUp); | ||
| 29 | + // this.messageTextElement.observe('keyup', this.handleTextAreaKeyUp); | ||
| 30 | this.messageTextWidget.observe(Mojo.Event.propertyChange, this.handleTextAreaChange); | ||
| 31 | |||
| 32 | // observe keydown/keyup on the text field WIDGET to handle height changes due to text forcing it to resize | ||
| 33 | @@ -207,7 +207,7 @@ var ChatviewAssistant = Class.create({ | ||
| 34 | this.messageTextWidget.stopObserving('keydown', this.handleTextFieldResize); | ||
| 35 | this.messageTextWidget.stopObserving('keyup', this.handleTextFieldResize); | ||
| 36 | this.messageTextWidget.stopObserving(Mojo.Event.propertyChange, this.handleTextAreaChange); | ||
| 37 | - this.messageTextElement.stopObserving('keyup', this.handleTextAreaKeyUp); | ||
| 38 | + // this.messageTextElement.stopObserving('keyup', this.handleTextAreaKeyUp); | ||
| 39 | this.Messaging.DisplayState.stopObserving(this.handleScreenStateChange); | ||
| 40 | this.controller.document.removeEventListener(Mojo.Event.stageActivate, this.handleFocus, false); | ||
| 41 | this.controller.document.removeEventListener(Mojo.Event.stageDeactivate, this.handleLoseFocus, false); | ||
| 42 | @@ -1749,12 +1749,12 @@ var ChatviewAssistant = Class.create({ | ||
| 43 | } | ||
| 44 | }, | ||
| 45 | |||
| 46 | - handleTextAreaKeyUp: function(event) { | ||
| 47 | + /* handleTextAreaKeyUp: function(event) { | ||
| 48 | if (event && Mojo.Char.isEnterKey(event.keyCode)) { | ||
| 49 | this.considerForSend(); | ||
| 50 | Event.stop(event); | ||
| 51 | } | ||
| 52 | - }, | ||
| 53 | + }, */ | ||
| 54 | |||
| 55 | handleTextAreaChange: function() { | ||
| 56 | if (this.messageTextElement && this.messageTextElement.value == '') { | ||
| 57 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 58 | =================================================================== | ||
| 59 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 60 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js | ||
| 61 | @@ -66,7 +66,7 @@ var ComposeAssistant = Class.create({ | ||
| 62 | this.considerForSend = this.considerForSend.bind(this); | ||
| 63 | this.attachFilePicker = this.attachFilePicker.bind(this); | ||
| 64 | this.handleTextAreaChange = this.handleTextAreaChange.bind(this); | ||
| 65 | - this.handleTextAreaKeyUp = this.handleTextAreaKeyUp.bind(this); | ||
| 66 | + // this.handleTextAreaKeyUp = this.handleTextAreaKeyUp.bind(this); | ||
| 67 | this.handleCancelAttachment = this.resetTextBox.bind(this,false); | ||
| 68 | this.handleRecipientsChanged = this.handleRecipientsChanged.bind(this); | ||
| 69 | }, | ||
| 70 | @@ -99,7 +99,7 @@ var ComposeAssistant = Class.create({ | ||
| 71 | hintText: $L('Enter message here...'), | ||
| 72 | multiline: true, | ||
| 73 | focus: false, | ||
| 74 | - enterSubmits: true, | ||
| 75 | + enterSubmits: false, | ||
| 76 | requiresEnterKey: true, | ||
| 77 | modelProperty: "value", | ||
| 78 | changeOnKeyPress: true | ||
| 79 | @@ -126,7 +126,7 @@ var ComposeAssistant = Class.create({ | ||
| 80 | }); | ||
| 81 | |||
| 82 | |||
| 83 | - this.messageTextElement.observe('keyup', this.handleTextAreaKeyUp); | ||
| 84 | + // this.messageTextElement.observe('keyup', this.handleTextAreaKeyUp); | ||
| 85 | this.messageTextWidget.observe(Mojo.Event.propertyChange, this.handleTextAreaChange); | ||
| 86 | |||
| 87 | // Observe add/delete to the addressing widget | ||
| 88 | @@ -302,12 +302,12 @@ var ComposeAssistant = Class.create({ | ||
| 89 | } | ||
| 90 | }, | ||
| 91 | |||
| 92 | - handleTextAreaKeyUp: function(event) { | ||
| 93 | + /* handleTextAreaKeyUp: function(event) { | ||
| 94 | if (event && Mojo.Char.isEnterKey(event.keyCode)) { | ||
| 95 | this.considerForSend(); | ||
| 96 | Event.stop(event); | ||
| 97 | } | ||
| 98 | - }, | ||
| 99 | + }, */ | ||
| 100 | |||
| 101 | handleTextAreaChange: function() { | ||
| 102 | if (this.messageTextElement && this.messageTextElement.value == '') { | ||
| 103 | @@ -398,7 +398,7 @@ var ComposeAssistant = Class.create({ | ||
| 104 | that.controller.stopListening('searchList',event,that.handleRecipientsChanged); | ||
| 105 | }); | ||
| 106 | |||
| 107 | - this.messageTextElement.stopObserving('keyup', this.handleTextAreaKeyUp); | ||
| 108 | + // this.messageTextElement.stopObserving('keyup', this.handleTextAreaKeyUp); | ||
| 109 | this.messageTextWidget.stopObserving(Mojo.Event.propertyChange, this.handleTextAreaChange); | ||
| 110 | |||
| 111 | this.characterCounter.destroy(); |
|   | |||
| 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 | @@ -1837,7 +1837,7 @@ var ChatviewAssistant = Class.create({ | ||
| 6 | // This will sometimes be an object because we pass this method directly when we observe | ||
| 7 | // Mojo.Event.tap on the send button | ||
| 8 | if(forceSendIfOffline && forceSendIfOffline != true) | ||
| 9 | - forceSendIfOffline = false; | ||
| 10 | + forceSendIfOffline = true; | ||
| 11 | |||
| 12 | // prevent blank messages from going through | ||
| 13 | var message = this.messageTextElement.value.strip(); |
|   | |||
| 1 | Index: /usr/palm/applications/com.palm.app.messaging/app/views/listview/buddyList-row.html | ||
| 2 | =================================================================== | ||
| 3 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/views/listview/buddyList-row.html | ||
| 4 | +++ /usr/palm/applications/com.palm.app.messaging/app/views/listview/buddyList-row.html | ||
| 5 | @@ -8,7 +8,7 @@ | ||
| 6 | <div class="unread-count-container"> | ||
| 7 | <div class="unread-count-wrapper">#{unreadCount}</div> | ||
| 8 | </div> | ||
| 9 | - <div class="truncating-text custom-message">#{-customMessage}</div> | ||
| 10 | + <div class="custom-message">#{-customMessage}</div> | ||
| 11 | </div> | ||
| 12 | </div> | ||
| 13 | </div> | ||
| 14 | \ No newline at end of file | ||
| 15 | Index: /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 16 | =================================================================== | ||
| 17 | --- .orig/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 18 | +++ /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 19 | @@ -164,7 +164,7 @@ img.avatar-overlay { | ||
| 20 | } | ||
| 21 | |||
| 22 | .buddy-list .palm-row { | ||
| 23 | - height: 60px; | ||
| 24 | + height: auto; | ||
| 25 | } | ||
| 26 | |||
| 27 | .buddy-list .title { |
|   | |||
| 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 0c816ba..39d4e6c 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 5 | @@ -1750,6 +1750,32 @@ var ChatviewAssistant = Class.create({ | ||
| 6 | }, | ||
| 7 | |||
| 8 | handleTextAreaKeyUp: function(event) { | ||
| 9 | + if (event && event.ctrlKey && event.keyCode==Mojo.Char.f) { | ||
| 10 | + currentText=this.messageTextElement.value; | ||
| 11 | + oldPos = this.messageTextElement.selectionStart; | ||
| 12 | + newPos = currentText.lastIndexOf(' ',oldPos-1); | ||
| 13 | + if (newPos>-1) { | ||
| 14 | + this.messageTextElement.setSelectionRange(newPos,newPos); | ||
| 15 | + } | ||
| 16 | + else { | ||
| 17 | + this.messageTextElement.setSelectionRange(0,0); | ||
| 18 | + } | ||
| 19 | + Event.stop(event); | ||
| 20 | + } | ||
| 21 | + | ||
| 22 | + if (event && event.ctrlKey && event.keyCode==Mojo.Char.g ) { | ||
| 23 | + currentText=this.messageTextElement.value; | ||
| 24 | + oldPos = this.messageTextElement.selectionStart; | ||
| 25 | + newPos = currentText.indexOf(' ',oldPos); | ||
| 26 | + if (newPos>-1) { | ||
| 27 | + this.messageTextElement.setSelectionRange(newPos+1,newPos+1); | ||
| 28 | + } | ||
| 29 | + else { | ||
| 30 | + this.messageTextElement.setSelectionRange(currentText.length,currentText.length); | ||
| 31 | + } | ||
| 32 | + Event.stop(event); | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | if (event && Mojo.Char.isEnterKey(event.keyCode)) { | ||
| 36 | this.considerForSend(); | ||
| 37 | Event.stop(event); |
|   | |||
| 1 | Updated for 1.2 | ||
| 2 | Index: /usr/palm/applications/com.palm.app.soundsandalerts/app/views/soundsalertsconfig/soundsalertsconfig-scene.html | ||
| 3 | =================================================================== | ||
| 4 | --- .orig/usr/palm/applications/com.palm.app.soundsandalerts/app/views/soundsalertsconfig/soundsalertsconfig-scene.html | ||
| 5 | +++ /usr/palm/applications/com.palm.app.soundsandalerts/app/views/soundsalertsconfig/soundsalertsconfig-scene.html | ||
| 6 | @@ -52,9 +52,27 @@ | ||
| 7 | </div> | ||
| 8 | </div> | ||
| 9 | </div> | ||
| 10 | + <div id='currentalertrow' class="palm-row" x-mojo-tap-highlight="momentary"> | ||
| 11 | + <div class="palm-row-wrapper"> | ||
| 12 | + <div class="label" x-mojo-loc=''>Alert</div> | ||
| 13 | + <div id='currentalert' class="title"></div> | ||
| 14 | + </div> | ||
| 15 | + </div> | ||
| 16 | + <div id='currentnotificationrow' class="palm-row" x-mojo-tap-highlight="momentary"> | ||
| 17 | + <div class="palm-row-wrapper"> | ||
| 18 | + <div class="label" x-mojo-loc=''>Notification</div> | ||
| 19 | + <div id='currentnotification' class="title"></div> | ||
| 20 | + </div> | ||
| 21 | + </div> | ||
| 22 | + <div id='currentmessagerow' class="palm-row" x-mojo-tap-highlight="momentary"> | ||
| 23 | + <div class="palm-row-wrapper"> | ||
| 24 | + <div class="label" x-mojo-loc=''>Messages</div> | ||
| 25 | + <div id='currentmessage' class="title"></div> | ||
| 26 | + </div> | ||
| 27 | + </div> | ||
| 28 | <div class="palm-row last"> | ||
| 29 | <div class="palm-row-wrapper"> | ||
| 30 | - <div class="title" x-mojo-loc=''>Volume</div> | ||
| 31 | + <div class="title" x-mojo-loc=''>System Volume</div> | ||
| 32 | <div x-mojo-element="Slider" id='systemvolume' class="palm-slider"></div> | ||
| 33 | </div> | ||
| 34 | </div> | ||
| 35 | Index: /usr/palm/applications/com.palm.app.soundsandalerts/app/models/SystemService.js | ||
| 36 | =================================================================== | ||
| 37 | --- .orig/usr/palm/applications/com.palm.app.soundsandalerts/app/models/SystemService.js | ||
| 38 | +++ /usr/palm/applications/com.palm.app.soundsandalerts/app/models/SystemService.js | ||
| 39 | @@ -28,6 +28,60 @@ SystemService.getRingtone = function(cal | ||
| 40 | return request; | ||
| 41 | } | ||
| 42 | |||
| 43 | +SystemService.getAlerts = function(callback) { | ||
| 44 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 45 | + method: 'getPreferences', | ||
| 46 | + parameters: {"keys":["alerttone"]}, | ||
| 47 | + onSuccess: callback, | ||
| 48 | + onFailure: callback | ||
| 49 | + }); | ||
| 50 | + return request; | ||
| 51 | +} | ||
| 52 | + | ||
| 53 | +SystemService.setAlerts = function(value){ | ||
| 54 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 55 | + method: 'setPreferences', | ||
| 56 | + parameters: {"alerttone":value}, | ||
| 57 | + }); | ||
| 58 | + return request; | ||
| 59 | +} | ||
| 60 | + | ||
| 61 | +SystemService.getNotifications = function(callback) { | ||
| 62 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 63 | + method: 'getPreferences', | ||
| 64 | + parameters: {"keys":["notificationtone"]}, | ||
| 65 | + onSuccess: callback, | ||
| 66 | + onFailure: callback | ||
| 67 | + }); | ||
| 68 | + return request; | ||
| 69 | +} | ||
| 70 | + | ||
| 71 | +SystemService.setNotifications = function(value){ | ||
| 72 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 73 | + method: 'setPreferences', | ||
| 74 | + parameters: {"notificationtone":value}, | ||
| 75 | + }); | ||
| 76 | + return request; | ||
| 77 | +} | ||
| 78 | + | ||
| 79 | +SystemService.getMessages = function(callback) { | ||
| 80 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 81 | + method: 'getPreferences', | ||
| 82 | + parameters: {"keys":["messagetone"]}, | ||
| 83 | + onSuccess: callback, | ||
| 84 | + onFailure: callback | ||
| 85 | + }); | ||
| 86 | + return request; | ||
| 87 | +} | ||
| 88 | + | ||
| 89 | +SystemService.setMessages = function(value){ | ||
| 90 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 91 | + method: 'setPreferences', | ||
| 92 | + parameters: {"messagetone":value}, | ||
| 93 | + }); | ||
| 94 | + return request; | ||
| 95 | +} | ||
| 96 | + | ||
| 97 | SystemService.getSystemUISounds = function(callback) { | ||
| 98 | var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 99 | method: 'getPreferences', | ||
| 100 | Index: /usr/palm/applications/com.palm.app.soundsandalerts/app/controllers/soundsalertsconfig-assistant.js | ||
| 101 | =================================================================== | ||
| 102 | --- .orig/usr/palm/applications/com.palm.app.soundsandalerts/app/controllers/soundsalertsconfig-assistant.js | ||
| 103 | +++ /usr/palm/applications/com.palm.app.soundsandalerts/app/controllers/soundsalertsconfig-assistant.js | ||
| 104 | @@ -94,9 +94,15 @@ var SoundsalertsconfigAssistant = Class. | ||
| 105 | $('system_ui_sounds').observe('mojo-property-change', this.toggleSystemUISounds.bindAsEventListener(this)); | ||
| 106 | |||
| 107 | $('currentringtonerow').observe(Mojo.Event.tap, this.showAudioFilePicker.bindAsEventListener(this)); | ||
| 108 | + $('currentalertrow').observe(Mojo.Event.tap, this.showAlertFilePicker.bindAsEventListener(this)); | ||
| 109 | + $('currentnotificationrow').observe(Mojo.Event.tap, this.showNotificationFilePicker.bindAsEventListener(this)); | ||
| 110 | + $('currentmessagerow').observe(Mojo.Event.tap, this.showMessageFilePicker.bindAsEventListener(this)); | ||
| 111 | |||
| 112 | this.getCurrentVolumes(); | ||
| 113 | this.getCurrentRingtone(); | ||
| 114 | + this.getCurrentAlert(); | ||
| 115 | + this.getCurrentNotification(); | ||
| 116 | + this.getCurrentMessage(); | ||
| 117 | this.getVibrateSettings(); | ||
| 118 | this.getOtherSettings(); | ||
| 119 | |||
| 120 | @@ -260,6 +266,84 @@ var SoundsalertsconfigAssistant = Class. | ||
| 121 | $('currentringtone').innerHTML = file.name; | ||
| 122 | }, | ||
| 123 | |||
| 124 | + // Alert Picking | ||
| 125 | + getCurrentAlert: function() { | ||
| 126 | + this.getCurrentAlertReq = SystemService.getAlerts(this.getCurrentAlertQuery.bind(this)); | ||
| 127 | + }, | ||
| 128 | + | ||
| 129 | + getCurrentAlertQuery: function(payload) { | ||
| 130 | + if (payload.alerttone) { | ||
| 131 | + $('currentalert').innerHTML = payload.alerttone.name; | ||
| 132 | + this.currAlertPath = payload.alerttone.fullPath; | ||
| 133 | + } | ||
| 134 | + else | ||
| 135 | + $('currentalert').innerHTML = $L("Pick an alert"); | ||
| 136 | + | ||
| 137 | + }, | ||
| 138 | + | ||
| 139 | + showAlertFilePicker: function(event) { | ||
| 140 | + var params = {"kinds": ["ringtone"],"filePath":this.currAlertPath,"onSelect":this.selectedAlertFile.bind(this),actionType:"attach",actionName: $L("Done")}; | ||
| 141 | + Mojo.FilePicker.pickFile(params,Mojo.Controller.stageController); | ||
| 142 | + }, | ||
| 143 | + | ||
| 144 | + selectedAlertFile: function(file) { | ||
| 145 | + //var params = {"fullPath": encodeURIComponent(file.fullPath), "name":file.name}; | ||
| 146 | + this.setAlertReq = SystemService.setAlerts(file); | ||
| 147 | + $('currentalert').innerHTML = file.name; | ||
| 148 | + }, | ||
| 149 | + | ||
| 150 | + // Notification Picking | ||
| 151 | + getCurrentNotification: function() { | ||
| 152 | + this.getCurrentNotificationReq = SystemService.getNotifications(this.getCurrentNotificationQuery.bind(this)); | ||
| 153 | + }, | ||
| 154 | + | ||
| 155 | + getCurrentNotificationQuery: function(payload) { | ||
| 156 | + if (payload.notificationtone) { | ||
| 157 | + $('currentnotification').innerHTML = payload.notificationtone.name; | ||
| 158 | + this.currNotificationPath = payload.notificationtone.fullPath; | ||
| 159 | + } | ||
| 160 | + else | ||
| 161 | + $('currentnotification').innerHTML = $L("Pick a notification"); | ||
| 162 | + | ||
| 163 | + }, | ||
| 164 | + | ||
| 165 | + showNotificationFilePicker: function(event) { | ||
| 166 | + var params = {"kinds": ["ringtone"],"filePath":this.currNotificationPath,"onSelect":this.selectedNotificationFile.bind(this),actionType:"attach",actionName: $L("Done")}; | ||
| 167 | + Mojo.FilePicker.pickFile(params,Mojo.Controller.stageController); | ||
| 168 | + }, | ||
| 169 | + | ||
| 170 | + selectedNotificationFile: function(file) { | ||
| 171 | + //var params = {"fullPath": encodeURIComponent(file.fullPath), "name":file.name}; | ||
| 172 | + this.setNotificationReq = SystemService.setNotifications(file); | ||
| 173 | + $('currentnotification').innerHTML = file.name; | ||
| 174 | + }, | ||
| 175 | + | ||
| 176 | + // Message Picking | ||
| 177 | + getCurrentMessage: function() { | ||
| 178 | + this.getCurrentMessageReq = SystemService.getMessages(this.getCurrentMessageQuery.bind(this)); | ||
| 179 | + }, | ||
| 180 | + | ||
| 181 | + getCurrentMessageQuery: function(payload) { | ||
| 182 | + if (payload.messagetone) { | ||
| 183 | + $('currentmessage').innerHTML = payload.messagetone.name; | ||
| 184 | + this.currMessagePath = payload.messagetone.fullPath; | ||
| 185 | + } | ||
| 186 | + else | ||
| 187 | + $('currentmessage').innerHTML = $L("Pick an message"); | ||
| 188 | + | ||
| 189 | + }, | ||
| 190 | + | ||
| 191 | + showMessageFilePicker: function(event) { | ||
| 192 | + var params = {"kinds": ["ringtone"],"filePath":this.currMessagePath,"onSelect":this.selectedMessageFile.bind(this),actionType:"attach",actionName: $L("Done")}; | ||
| 193 | + Mojo.FilePicker.pickFile(params,Mojo.Controller.stageController); | ||
| 194 | + }, | ||
| 195 | + | ||
| 196 | + selectedMessageFile: function(file) { | ||
| 197 | + //var params = {"fullPath": encodeURIComponent(file.fullPath), "name":file.name}; | ||
| 198 | + this.setMessageReq = SystemService.setMessages(file); | ||
| 199 | + $('currentmessage').innerHTML = file.name; | ||
| 200 | + }, | ||
| 201 | + | ||
| 202 | getVibrateSettings: function() { | ||
| 203 | this.getVibrateSettingsReq = AudioService.getVibrateSettings(this.vibrateSettingsCB.bind(this),this); | ||
| 204 | }, | ||
| 205 | Index: /usr/palm/applications/com.palm.app.contacts/app/controllers/edit-assistant.js | ||
| 206 | =================================================================== | ||
| 207 | --- .orig/usr/palm/applications/com.palm.app.contacts/app/controllers/edit-assistant.js | ||
| 208 | +++ /usr/palm/applications/com.palm.app.contacts/app/controllers/edit-assistant.js | ||
| 209 | @@ -63,6 +63,17 @@ EditAssistant = Class.create({ | ||
| 210 | template: "edit/ringtones" | ||
| 211 | })); | ||
| 212 | |||
| 213 | + if(this.person.messagingRingtoneName){ | ||
| 214 | + this.person.MsgtoneDisplay = this.person.messagingRingtoneName; | ||
| 215 | + this.person.MsgtoneSet = "msgtone-set"; | ||
| 216 | + } else { | ||
| 217 | + this.person.MsgtoneDisplay = $L("Set a message tone"); | ||
| 218 | + this.person.MsgtoneSet = ""; | ||
| 219 | + } | ||
| 220 | + this.controller.get("MsgtoneBox").update(Mojo.View.render({ | ||
| 221 | + object: this.person, | ||
| 222 | + template: "edit/msgtones" | ||
| 223 | + })); | ||
| 224 | |||
| 225 | var that = this; | ||
| 226 | |||
| 227 | @@ -264,6 +275,11 @@ EditAssistant = Class.create({ | ||
| 228 | object: {ringtoneDisplay:ringtoneName}, | ||
| 229 | template: "edit/ringtones" | ||
| 230 | })); | ||
| 231 | + var messagingRingtoneName = this.person.messagingRingtoneName || $L("Set a message tone"); | ||
| 232 | + this.controller.get("MsgtoneBox").update(Mojo.View.render({ | ||
| 233 | + object: {MsgtoneDisplay:messagingRingtoneName}, | ||
| 234 | + template: "edit/msgtones" | ||
| 235 | + })); | ||
| 236 | |||
| 237 | } | ||
| 238 | } | ||
| 239 | @@ -521,6 +537,7 @@ EditAssistant = Class.create({ | ||
| 240 | this.controller.listen("NameSyncPickerWrapper", Mojo.Event.tap, this.popupContactChooser.bind(this)); | ||
| 241 | this.controller.get("edit-photo").observe(Mojo.Event.tap, this.attachFilePicker.bind(this)); | ||
| 242 | this.controller.get("RingtoneBox").observe(Mojo.Event.tap, this.attachRingtonePicker.bind(this)); | ||
| 243 | + this.controller.get("MsgtoneBox").observe(Mojo.Event.tap, this.attachMsgtonePicker.bind(this)); | ||
| 244 | this.renderLabels(); | ||
| 245 | this.setupContact(); | ||
| 246 | if (this.contact.readOnly) { | ||
| 247 | Index: /usr/palm/applications/com.palm.app.contacts/app/controllers/filepicker-behaviors.js | ||
| 248 | =================================================================== | ||
| 249 | --- .orig/usr/palm/applications/com.palm.app.contacts/app/controllers/filepicker-behaviors.js | ||
| 250 | +++ /usr/palm/applications/com.palm.app.contacts/app/controllers/filepicker-behaviors.js | ||
| 251 | @@ -56,6 +56,55 @@ var FilepickerBehaviors = { | ||
| 252 | Mojo.FilePicker.pickFile(params, this.controller.stageController); | ||
| 253 | |||
| 254 | }, | ||
| 255 | + | ||
| 256 | + attachMsgtonePicker: function(event){ | ||
| 257 | + if(this.person.messagingRingtoneLoc){ | ||
| 258 | + this.controller.popupSubmenu( { | ||
| 259 | + onChoose:function(c){ | ||
| 260 | + if(c == "CHANGE"){ | ||
| 261 | + this.pushMsgtonePicker(); | ||
| 262 | + } else if(c == "DELETE"){ | ||
| 263 | + this.clearMsgtone(); | ||
| 264 | + } | ||
| 265 | + }.bind(this), | ||
| 266 | + placeNear:event.target, | ||
| 267 | + items:[ | ||
| 268 | + {label:$L("Change Msgtone"), command:'CHANGE'}, | ||
| 269 | + {label:$L("Delete Msgtone"), command:'DELETE'} | ||
| 270 | + ] | ||
| 271 | + }) | ||
| 272 | + } else { | ||
| 273 | + this.pushMsgtonePicker(); | ||
| 274 | + } | ||
| 275 | + | ||
| 276 | + }, | ||
| 277 | + | ||
| 278 | + clearMsgtone:function(){ | ||
| 279 | + this.person.messagingRingtoneLoc = ""; | ||
| 280 | + this.person.messagingRingtoneName = ""; | ||
| 281 | + this.person.MsgtoneDisplay = $L("Set a message tone"); | ||
| 282 | + this.person.MsgtoneSet = ""; | ||
| 283 | + this.person.dirty = true; | ||
| 284 | + this.controller.get("MsgtoneBox").update(Mojo.View.render({ | ||
| 285 | + object:this.person, | ||
| 286 | + template:"edit/msgtones" | ||
| 287 | + })); | ||
| 288 | + }, | ||
| 289 | + | ||
| 290 | + pushMsgtonePicker:function(){ | ||
| 291 | + var params = { | ||
| 292 | + actionType: 'attach', | ||
| 293 | + kinds: ['ringtone'], | ||
| 294 | + defaultKind: 'ringtone', | ||
| 295 | + filePath:this.person.messagingRingtoneLoc, | ||
| 296 | + onSelect: function(file){ | ||
| 297 | + this.attachMsgtone(this.sanitizeSystemPath(file.fullPath), file.name); | ||
| 298 | + }.bind(this) | ||
| 299 | + }; | ||
| 300 | + //Mojo.Log.info("ContactMulti Picking a msgtone for " + this.contact.firstName + " " + this.contact.lastName); | ||
| 301 | + Mojo.FilePicker.pickFile(params, this.controller.stageController); | ||
| 302 | + | ||
| 303 | + }, | ||
| 304 | |||
| 305 | attachFilePicker: function(event){ | ||
| 306 | if(this.contact.readOnly){ | ||
| 307 | @@ -150,6 +199,20 @@ var FilepickerBehaviors = { | ||
| 308 | template:"edit/ringtones" | ||
| 309 | })); | ||
| 310 | } | ||
| 311 | + }, | ||
| 312 | + | ||
| 313 | + attachMsgtone: function(msgtonePath, name){ | ||
| 314 | + if (msgtonePath) { | ||
| 315 | + this.person.dirty = true; | ||
| 316 | + this.person.messagingRingtoneName = name; | ||
| 317 | + this.person.MsgtoneDisplay = name; | ||
| 318 | + this.person.MsgtoneSet = "msgtone-set"; | ||
| 319 | + this.person.messagingRingtoneLoc = msgtonePath; | ||
| 320 | + this.controller.get("MsgtoneBox").update(Mojo.View.render({ | ||
| 321 | + object:this.person, | ||
| 322 | + template:"edit/msgtones" | ||
| 323 | + })); | ||
| 324 | + } | ||
| 325 | } | ||
| 326 | } | ||
| 327 | |||
| 328 | Index: /usr/palm/applications/com.palm.app.contacts/app/views/edit/lists-fake.html | ||
| 329 | =================================================================== | ||
| 330 | --- .orig/usr/palm/applications/com.palm.app.contacts/app/views/edit/lists-fake.html | ||
| 331 | +++ /usr/palm/applications/com.palm.app.contacts/app/views/edit/lists-fake.html | ||
| 332 | @@ -32,6 +32,20 @@ | ||
| 333 | </div> | ||
| 334 | </div> | ||
| 335 | </div> | ||
| 336 | +<div> | ||
| 337 | +<div id="MsgtoneBox" class=""> | ||
| 338 | + <div class="palm-group unlabeled"> | ||
| 339 | + <div class="palm-list"> | ||
| 340 | + <div class="palm-row single" id="MsgtoneButton" x-mojo-tap-highlight="momentary"> | ||
| 341 | + <div class="palm-row-wrapper"> | ||
| 342 | + <div class="title" x-mojo-loc=""> | ||
| 343 | + Set a message tone | ||
| 344 | + </div> | ||
| 345 | + </div> | ||
| 346 | + </div> | ||
| 347 | + </div> | ||
| 348 | + </div> | ||
| 349 | +</div> | ||
| 350 | </div> | ||
| 351 | <div> | ||
| 352 | <div id="emailList" name="emailList" class="contactPointList" > | ||
| 353 | Index: /usr/palm/applications/com.palm.app.contacts/app/views/edit/msgtones.html | ||
| 354 | =================================================================== | ||
| 355 | --- /dev/null | ||
| 356 | +++ /usr/palm/applications/com.palm.app.contacts/app/views/edit/msgtones.html | ||
| 357 | @@ -0,0 +1,16 @@ | ||
| 358 | +<div class="palm-group unlabeled"> | ||
| 359 | + <div class="palm-list"> | ||
| 360 | + <div class="palm-row single #{MsgtoneSet} msgtone-button" id="MsgtoneButton" x-mojo-tap-highlight="momentary"> | ||
| 361 | + <div class="palm-row-wrapper"> | ||
| 362 | + <div class="label right truncating-text" x-mojo-loc=''> | ||
| 363 | + Msgtone | ||
| 364 | + </div> | ||
| 365 | + <div class="title"> | ||
| 366 | + <div class="truncating-text"> | ||
| 367 | + #{MsgtoneDisplay} | ||
| 368 | + </div> | ||
| 369 | + </div> | ||
| 370 | + </div> | ||
| 371 | + </div> | ||
| 372 | + </div> | ||
| 373 | +</div> | ||
| 374 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/listview-assistant.js | ||
| 375 | =================================================================== | ||
| 376 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/listview-assistant.js | ||
| 377 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/listview-assistant.js | ||
| 378 | @@ -434,7 +434,8 @@ var ListviewAssistant = Class.create(App | ||
| 379 | // if we are in the history view and the screen is on, do not display a banner + dashboard, just play a notification sound | ||
| 380 | if (this.isScreenOn) { | ||
| 381 | if (data.notificationType == this.Messaging.notificationTypes.newMessage && this.currentListView == this.Messaging.Views.HISTORY) { | ||
| 382 | - data = {playSoundOnly:true}; | ||
| 383 | + data = $H(data); | ||
| 384 | + data = data.merge({playSoundOnly:true}); | ||
| 385 | } | ||
| 386 | } | ||
| 387 | return data; | ||
| 388 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 389 | =================================================================== | ||
| 390 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 391 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 392 | @@ -346,7 +346,8 @@ var ChatviewAssistant = Class.create({ | ||
| 393 | if(this.isScreenOn && data.chatThreadId == this.chatThreadId) { | ||
| 394 | Mojo.Log.info("[CV] ****** chatview considerForNotification --- screen is on!"); | ||
| 395 | if(data.notificationType == this.Messaging.notificationTypes.newMessage) { | ||
| 396 | - data = {playSoundOnly:true}; | ||
| 397 | + data = $H(data); | ||
| 398 | + data = data.merge({playSoundOnly:true}); | ||
| 399 | } else if( data.notificationType == this.Messaging.notificationTypes.sendFailure) { | ||
| 400 | data = {}; // wipe out the notification because we are in the chat | ||
| 401 | } | ||
| 402 | Index: /usr/palm/applications/com.palm.app.messaging/app/models/messaging-luna-service.js | ||
| 403 | =================================================================== | ||
| 404 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/models/messaging-luna-service.js | ||
| 405 | +++ /usr/palm/applications/com.palm.app.messaging/app/models/messaging-luna-service.js | ||
| 406 | @@ -993,5 +993,168 @@ var MessagingMojoService = { | ||
| 407 | method: 'setSMSCAddressAndEmailGateway', | ||
| 408 | parameters: {smscAddr:address, emailGateway: gateway} | ||
| 409 | }); | ||
| 410 | + }, | ||
| 411 | + | ||
| 412 | + isNumberValid: function(number) { | ||
| 413 | + return !(number === undefined | ||
| 414 | + || number == null | ||
| 415 | + || number == "" | ||
| 416 | + || number == "unknown" | ||
| 417 | + || number == "unknown caller" | ||
| 418 | + || number == "blocked caller") | ||
| 419 | + }, | ||
| 420 | + | ||
| 421 | + // use contacts service and carrier book to perform reverse lookup on number. stores results in passed contact object. | ||
| 422 | + // runs callback when done. | ||
| 423 | + // if the number isn't valid, marks contact lookup complete | ||
| 424 | + // if there's already one happening, or one already completed, just fires callback | ||
| 425 | + // if there's a lateCallback provided, calls that if the result comes much later | ||
| 426 | + rLookup: function(number, contact, callback, lateCallback){ | ||
| 427 | + | ||
| 428 | + //Reset contact to always get the tone | ||
| 429 | + contact = {}; | ||
| 430 | + Mojo.Log.error("Current contact value: %j",contact); | ||
| 431 | + Mojo.Log.error("SMS ID: %j",number); | ||
| 432 | + | ||
| 433 | + // bail if the number is invalid | ||
| 434 | + if (!(this.isNumberValid(number))) { | ||
| 435 | + this.finishLookup(contact, callback); | ||
| 436 | + return; | ||
| 437 | + } | ||
| 438 | + | ||
| 439 | + if (contact.lookupComplete) { | ||
| 440 | + callback(contact); | ||
| 441 | + return; | ||
| 442 | + } | ||
| 443 | + | ||
| 444 | + if (contact.lookupPending) { | ||
| 445 | + callback(contact); | ||
| 446 | + return; | ||
| 447 | + } | ||
| 448 | + | ||
| 449 | + | ||
| 450 | + // use contacts service to perform lookup. | ||
| 451 | + // if contact already has an id in it, use person lookup | ||
| 452 | + // instead of doing reverse lookup on number | ||
| 453 | + contact.lookupPending = true; | ||
| 454 | + var method, params; | ||
| 455 | + if (contact.initialId) { | ||
| 456 | + method = 'basicDetails' | ||
| 457 | + params = {'id' : contact.initialId} | ||
| 458 | + delete contact.initialId; | ||
| 459 | + } else { | ||
| 460 | + method = 'reverseLookup' | ||
| 461 | + params = { | ||
| 462 | + 'value': number, | ||
| 463 | + 'type': "phone" | ||
| 464 | + } | ||
| 465 | + } | ||
| 466 | + this.lastRequest = new Mojo.Service.Request('palm://com.palm.contacts', { | ||
| 467 | + 'method': method, | ||
| 468 | + parameters: params, | ||
| 469 | + onSuccess: this.onLookup.bind(this, number, contact, callback, lateCallback), | ||
| 470 | + onFailure: function() { | ||
| 471 | + // cancel previous lookup, so this doesn't fire on a service crash | ||
| 472 | + if (this.lastRequest) { | ||
| 473 | + this.lastRequest.cancel(); | ||
| 474 | + this.lastRequest = undefined; | ||
| 475 | + } | ||
| 476 | + | ||
| 477 | + this.carrierBookLookup(number,contact); | ||
| 478 | + this.finishLookup(contact, callback); | ||
| 479 | + }.bind(this) | ||
| 480 | + }); | ||
| 481 | + | ||
| 482 | + // timeout if lookup hasn't completed in 4 seconds | ||
| 483 | + this.lookupTimeout = setTimeout(this.onLookupTimeout.bind(this, contact, callback, lateCallback), 4000); | ||
| 484 | + }, | ||
| 485 | + | ||
| 486 | + // when contact lookup returns, check for valid result | ||
| 487 | + // if valid result, grab name, ringtone; if there's a picture, start loading and set callback to measure it | ||
| 488 | + // if no valid result, look in carrier book | ||
| 489 | + // fire callback when done | ||
| 490 | + onLookup: function(number, contact, callback, lateCallback, result){ | ||
| 491 | + Mojo.Log.info( "PhoneApp: Contact::onLookup CALLER ID LOOKUP %s RETURNED %j" , number , result); | ||
| 492 | + var statusChange = ""; | ||
| 493 | + | ||
| 494 | + // cancel previous lookup, so this doesn't fire on a service crash | ||
| 495 | + if (this.lastRequest) { | ||
| 496 | + this.lastRequest.cancel(); | ||
| 497 | + this.lastRequest = undefined; | ||
| 498 | + } | ||
| 499 | + | ||
| 500 | + if (result.record) { | ||
| 501 | + /* | ||
| 502 | + // don't match if the number we get back is different than the number | ||
| 503 | + // we passed in (provided the lengths are the same) | ||
| 504 | + if (!(result.record.number) | ||
| 505 | + || ( (result.record.number) && ( (result.record.number.length !== number.length) | ||
| 506 | + || (result.record.number.length === number.length | ||
| 507 | + && result.record.number === number)))) { | ||
| 508 | + */ | ||
| 509 | + contact.id = result.record.id; | ||
| 510 | + | ||
| 511 | + | ||
| 512 | + contact.ringtoneLoc = result.record.messagingRingtoneLoc; | ||
| 513 | + Mojo.Log.error("MSGTone: %j",contact.ringtoneLoc); | ||
| 514 | + | ||
| 515 | + } | ||
| 516 | + | ||
| 517 | + this.finishLookup(contact, callback, lateCallback); | ||
| 518 | + }, | ||
| 519 | + | ||
| 520 | + | ||
| 521 | + | ||
| 522 | + // mark complete; cancel timeout; fire callback if it hasn't fired yet | ||
| 523 | + finishLookup: function(contact, callback, lateCallback) { | ||
| 524 | + contact.lookupPending = false; | ||
| 525 | + | ||
| 526 | + // cancel lookup timeout | ||
| 527 | + clearTimeout(this.lookupTimeout); | ||
| 528 | + this.lookupTimeout = undefined; | ||
| 529 | + | ||
| 530 | + if (!(contact.lookupComplete)) { | ||
| 531 | + contact.lookupComplete = true; | ||
| 532 | + callback(contact); | ||
| 533 | + // if we have a late return, and we got a contact result, call | ||
| 534 | + // the late return update | ||
| 535 | + } else if (lateCallback && contact.doLateCallback && contact.id) { | ||
| 536 | + contact.doLateCallback = false; | ||
| 537 | + lateCallback.delay(5, contact); | ||
| 538 | + } else { | ||
| 539 | + } | ||
| 540 | + | ||
| 541 | + }, | ||
| 542 | + | ||
| 543 | + // flag lookup as done; proceed with callback | ||
| 544 | + onLookupTimeout: function(contact, callback, lateCallback) { | ||
| 545 | + | ||
| 546 | + if (lateCallback) { | ||
| 547 | + contact.doLateCallback = true; | ||
| 548 | + } else if (this.lastRequest && !lateCallback) { | ||
| 549 | + // cancel previous lookup, so this doesn't fire on a service crash | ||
| 550 | + this.lastRequest.cancel(); | ||
| 551 | + this.lastRequest = undefined; | ||
| 552 | + } | ||
| 553 | + | ||
| 554 | + // clear timeout | ||
| 555 | + this.lookupTimeout = undefined; | ||
| 556 | + | ||
| 557 | + // flag done; fire callback if it hasn't yet | ||
| 558 | + contact.lookupComplete = true; | ||
| 559 | + var lookupWasPending = contact.lookupPending; | ||
| 560 | + contact.lookupPending = false; | ||
| 561 | + if (lookupWasPending) | ||
| 562 | + callback(contact); | ||
| 563 | + }, | ||
| 564 | + | ||
| 565 | + getMessagetone: function(callback) { | ||
| 566 | + var request = new Mojo.Service.Request('palm://com.palm.systemservice', { | ||
| 567 | + method: 'getPreferences', | ||
| 568 | + parameters: {"keys":["messagetone"]}, | ||
| 569 | + onSuccess: callback, | ||
| 570 | + onFailure: callback | ||
| 571 | + }); | ||
| 572 | + return request; | ||
| 573 | } | ||
| 574 | }; | ||
| 575 | \ No newline at end of file | ||
| 576 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/notification-assistant.js | ||
| 577 | =================================================================== | ||
| 578 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/notification-assistant.js | ||
| 579 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/notification-assistant.js | ||
| 580 | @@ -27,6 +27,8 @@ function NotificationAssistant(controlle | ||
| 581 | }; | ||
| 582 | } | ||
| 583 | |||
| 584 | +var contact = {}; | ||
| 585 | + | ||
| 586 | NotificationAssistant.prototype.subscribeToNotifications = function(){ | ||
| 587 | this.messageNotificationRequest = MessagingMojoService.registerForIncomingMessages({onSuccess: this.sendNotification.bind(this, this.Messaging.notificationTypes.newMessage)}); | ||
| 588 | this.sendErrorNotificationRequest = MessagingMojoService.registerForSendFailures(this.sendNotification.bind(this, this.Messaging.notificationTypes.sendFailure)); | ||
| 589 | @@ -35,6 +37,37 @@ NotificationAssistant.prototype.subscrib | ||
| 590 | this.airplaneModeNotificationRequest = MessagingMojoService.registerForAirplaneModeNotifications(this.sendAirplaneModeNotification.bind(this)); | ||
| 591 | }; | ||
| 592 | |||
| 593 | +NotificationAssistant.prototype.doBanner = function(bannerParams,bannerLaunchParams,bannerType,payload) { | ||
| 594 | + if (payload.messagetone.fullPath) | ||
| 595 | + bannerParams.soundFile = payload.messagetone.fullPath; | ||
| 596 | + this.controller.showBanner(bannerParams,bannerLaunchParams,bannerType); | ||
| 597 | +}; | ||
| 598 | + | ||
| 599 | +NotificationAssistant.prototype.playMessagetone = function(payload){ | ||
| 600 | + if (payload.messagetone.fullPath) | ||
| 601 | + this.controller.playSoundNotification('alerts',payload.messagetone.fullPath); | ||
| 602 | + else | ||
| 603 | + this.controller.playSoundNotification('alerts',''); | ||
| 604 | +}; | ||
| 605 | + | ||
| 606 | +NotificationAssistant.prototype.doB = function(bannerParams,bannerLaunchParams,bannerType,contact) { | ||
| 607 | + Mojo.Log.error("Banner Ringtone: %j",contact.ringtoneLoc); | ||
| 608 | + if (contact.ringtoneLoc) { | ||
| 609 | + bannerParams.soundFile = contact.ringtoneLoc; | ||
| 610 | + this.controller.showBanner(bannerParams,bannerLaunchParams,bannerType); | ||
| 611 | + } else { | ||
| 612 | + MessagingMojoService.getMessagetone(this.doBanner.bind(this,bannerParams,bannerLaunchParams,'chat')); | ||
| 613 | + } | ||
| 614 | +}; | ||
| 615 | + | ||
| 616 | +NotificationAssistant.prototype.playmsgtone = function(contact){ | ||
| 617 | + Mojo.Log.error("Playmsgtone Ringtone: %j",contact.ringtoneLoc); | ||
| 618 | + if (contact.ringtoneLoc) | ||
| 619 | + this.controller.playSoundNotification('alerts',contact.ringtoneLoc); | ||
| 620 | + else | ||
| 621 | + MessagingMojoService.getMessagetone(this.playMessagetone.bind(this)); | ||
| 622 | +}; | ||
| 623 | + | ||
| 624 | NotificationAssistant.prototype.sendNotification = function(notificationType, resp){ | ||
| 625 | if (window.PalmSystem && !resp.returnValue) { | ||
| 626 | try { | ||
| 627 | @@ -140,7 +173,8 @@ NotificationAssistant.prototype.consider | ||
| 628 | |||
| 629 | // check if we should only play a sound (when you are already in a chat & a new message comes in) | ||
| 630 | if(notificationData.get('playSoundOnly') && this.Messaging.messagingPrefs.enableNotificationSound) { | ||
| 631 | - this.controller.playSoundNotification('alerts',''); | ||
| 632 | + var smsid = notificationData.get('address'); | ||
| 633 | + MessagingMojoService.rLookup(smsid,contact,this.playmsgtone.bind(this),this.playmsgtone.bind(this)); | ||
| 634 | return; // don't display any visual notification | ||
| 635 | } | ||
| 636 | |||
| 637 | @@ -176,10 +210,11 @@ NotificationAssistant.prototype.sendClas | ||
| 638 | |||
| 639 | notificationData.set('alertTitle',alertTitle); | ||
| 640 | this.class0AlertData.list.push(notificationData); | ||
| 641 | - this.renderClass0PopupAlert(true); | ||
| 642 | + var smsid = notificationData.get('address'); | ||
| 643 | + MessagingMojoService.getMessagetone(this.renderClass0PopupAlert.bind(this,true)); | ||
| 644 | }; | ||
| 645 | |||
| 646 | -NotificationAssistant.prototype.renderClass0PopupAlert = function(playSound) { | ||
| 647 | +NotificationAssistant.prototype.renderClass0PopupAlert = function(playSound,messageTone) { | ||
| 648 | var class0Stage = this.controller.getStageController(Class0AlertStageName); | ||
| 649 | |||
| 650 | if(class0Stage) { | ||
| 651 | @@ -188,6 +223,8 @@ NotificationAssistant.prototype.renderCl | ||
| 652 | var soundClass = 'none'; | ||
| 653 | if(playSound) { | ||
| 654 | soundClass = 'alerts'; | ||
| 655 | + if(messageTone) | ||
| 656 | + soundFile = messageTone; | ||
| 657 | } | ||
| 658 | |||
| 659 | var pushClass0AlertScene = function(stageController) { | ||
| 660 | @@ -198,7 +235,8 @@ NotificationAssistant.prototype.renderCl | ||
| 661 | name: Class0AlertStageName, | ||
| 662 | lightweight: true, | ||
| 663 | height: 300, | ||
| 664 | - soundclass: soundClass | ||
| 665 | + soundclass: soundClass, | ||
| 666 | + soundfile: soundFile | ||
| 667 | }, pushClass0AlertScene, 'popupalert'); | ||
| 668 | } | ||
| 669 | |||
| 670 | @@ -253,8 +291,6 @@ NotificationAssistant.prototype.sendNewM | ||
| 671 | var bannerParams = { | ||
| 672 | messageText: notificationText | ||
| 673 | }; | ||
| 674 | - if (this.Messaging.messagingPrefs.enableNotificationSound) | ||
| 675 | - bannerParams.soundClass = "alerts"; | ||
| 676 | var bannerLaunchParams = { | ||
| 677 | chatThreadId: chatThreadId, | ||
| 678 | clearBanner: true | ||
| 679 | @@ -262,10 +298,17 @@ NotificationAssistant.prototype.sendNewM | ||
| 680 | |||
| 681 | if (this.Messaging.DisplayState.isDisplayOn()) { | ||
| 682 | Mojo.Log.info("notificationAssistant - executing full banner notification"); | ||
| 683 | - this.controller.showBanner(bannerParams, bannerLaunchParams, 'chat'); | ||
| 684 | + if (this.Messaging.messagingPrefs.enableNotificationSound) { | ||
| 685 | + var smsid = notificationData.get('address'); | ||
| 686 | + bannerParams.soundClass = "alerts"; | ||
| 687 | + MessagingMojoService.rLookup(smsid,contact,this.doB.bind(this,bannerParams,bannerLaunchParams,'chat'),this.doB.bind(this,bannerParams,bannerLaunchParams,'chat')); | ||
| 688 | + } else { | ||
| 689 | + Mojo.Log.error("Setting banner params"); | ||
| 690 | + this.controller.showBanner(bannerParams, bannerLaunchParams, 'chat'); | ||
| 691 | + } | ||
| 692 | } else if (this.Messaging.messagingPrefs.enableNotificationSound) { | ||
| 693 | - Mojo.Log.info("notificationAssistant - playing sound notification only"); | ||
| 694 | - this.controller.playSoundNotification('alerts',''); | ||
| 695 | + var smsid = notificationData.get('address'); | ||
| 696 | + MessagingMojoService.rLookup(smsid,contact,this.playmsgtone.bind(this),this.playmsgtone.bind(this)); | ||
| 697 | } | ||
| 698 | |||
| 699 | // Store the data so it can be used in the dashboard | ||
| 700 | @@ -324,13 +367,9 @@ NotificationAssistant.prototype.sendNewM | ||
| 701 | // delay creating the dashboard window for the case where the banner is clicked on | ||
| 702 | // to take you to the chat view. This will likely result in the dashboard data | ||
| 703 | // being cleared. If the dashboard data is empty, we do not need to create the dashboard. | ||
| 704 | - if (this.Messaging.DisplayState.isDisplayOn()) { | ||
| 705 | - if (!this.isNewMessageDashboardPending) { | ||
| 706 | - this.isNewMessageDashboardPending = true; | ||
| 707 | - createDashboard.delay(5); | ||
| 708 | - } | ||
| 709 | - } else { | ||
| 710 | - createDashboard(); // if the screen is off, create the dashboard right away | ||
| 711 | + if (!this.isNewMessageDashboardPending) { | ||
| 712 | + this.isNewMessageDashboardPending = true; | ||
| 713 | + createDashboard.delay(5); | ||
| 714 | } | ||
| 715 | } | ||
| 716 | }; |
|   | |||
| 1 | Timestamps all messages with the method used to timestamp messages that show up late | ||
| 2 | |||
| 3 | Modified for 1.2 by StoneRyno | ||
| 4 | |||
| 5 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 6 | =================================================================== | ||
| 7 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 8 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 9 | @@ -1303,7 +1303,7 @@ var ChatviewAssistant = Class.create({ | ||
| 10 | |||
| 11 | // if the INCOMING message was sent longer than 10 minutes before it arrived on device, | ||
| 12 | // add sent date to indicate that this delay happened | ||
| 13 | - if(!ChatFlags.isOutgoing(msg.flags) && msg.deviceTimeStamp && msg.timeStamp && (msg.deviceTimeStamp-msg.timeStamp) > (1000*60*10)) { | ||
| 14 | +// if(!ChatFlags.isOutgoing(msg.flags) && msg.deviceTimeStamp && msg.timeStamp && (msg.deviceTimeStamp-msg.timeStamp) > (1000*60*10)) { | ||
| 15 | var d = new Date(); | ||
| 16 | var today = d.getTime(); | ||
| 17 | d.setTime(msg.timeStamp); | ||
| 18 | @@ -1311,10 +1311,10 @@ var ChatviewAssistant = Class.create({ | ||
| 19 | |||
| 20 | // Only show the message sent time if it is less than two days old | ||
| 21 | // from when it arrived on device | ||
| 22 | - if(today-msg.timeStamp <= (1000*60*60*24*2)) { | ||
| 23 | +// if(today-msg.timeStamp <= (1000*60*60*24*2)) { | ||
| 24 | msg.timeStampDeltaMsg = new Template($L("Message Sent: #{dateTime}")).evaluate({dateTime:Mojo.Format.formatDate(sentTimeStamp,'short')}); | ||
| 25 | - } | ||
| 26 | - } | ||
| 27 | +// } | ||
| 28 | +// } | ||
| 29 | |||
| 30 | if (msg.callbackNumber) { | ||
| 31 | msg.callbackNumber = PalmSystem.runTextIndexer(msg.callbackNumber); |
|   | |||
| 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 | @@ -1245,6 +1245,11 @@ var ChatviewAssistant = Class.create({ | ||
| 6 | var d = new Date(); | ||
| 7 | d.setTime(msg.deviceTimeStamp); | ||
| 8 | msg.niceDate = BucketDateFormatter.getDateBucket(d,true,true); // this used to use msg.timeStamp - changed 2008-11-05 | ||
| 9 | + | ||
| 10 | + // timestamp hack - enables timestamps on all messages | ||
| 11 | + var ts = new Date(); | ||
| 12 | + ts.setTime(msg.deviceTimeStamp); | ||
| 13 | + msg.timeStampText = Mojo.Format.formatDate(ts,'short'); | ||
| 14 | |||
| 15 | // divider hack - round to the nearest 5 minutes | ||
| 16 | // we have to do this because the list divider implementation does not allow a divider | ||
| 17 | @@ -1252,11 +1257,11 @@ var ChatviewAssistant = Class.create({ | ||
| 18 | var deviceTimeStampMinutes = d.getMinutes(); | ||
| 19 | d.setMinutes((deviceTimeStampMinutes - (deviceTimeStampMinutes % 5))); | ||
| 20 | d.setSeconds(0); | ||
| 21 | - msg.dividerText = msg.transportClass + BucketDateFormatter.getDateBucket(d,true,true); | ||
| 22 | + msg.dividerText = msg.transportClass; // + BucketDateFormatter.getDateBucket(d,true,true); | ||
| 23 | |||
| 24 | // if the INCOMING message was sent longer than 10 minutes before it arrived on device, | ||
| 25 | // add sent date to indicate that this delay happened | ||
| 26 | - if(!ChatFlags.isOutgoing(msg.flags) && msg.deviceTimeStamp && msg.timeStamp && (msg.deviceTimeStamp-msg.timeStamp) > (1000*60*10)) { | ||
| 27 | + // if(!ChatFlags.isOutgoing(msg.flags) && msg.deviceTimeStamp && msg.timeStamp && (msg.deviceTimeStamp-msg.timeStamp) > (1000*60*10)) { // timestamp fix var d = new Date(); | ||
| 28 | var d = new Date(); | ||
| 29 | var today = d.getTime(); | ||
| 30 | d.setTime(msg.timeStamp); | ||
| 31 | @@ -1264,10 +1269,10 @@ var ChatviewAssistant = Class.create({ | ||
| 32 | |||
| 33 | // Only show the message sent time if it is less than two days old | ||
| 34 | // from when it arrived on device | ||
| 35 | - if(today-msg.timeStamp <= (1000*60*60*24*2)) { | ||
| 36 | - msg.timeStampDeltaMsg = new Template($L("Message Sent: #{dateTime}")).evaluate({dateTime:Mojo.Format.formatDate(sentTimeStamp,'short')}); | ||
| 37 | - } | ||
| 38 | - } | ||
| 39 | + // if(today-msg.timeStamp <= (1000*60*60*24*2)) { // timestamp fix | ||
| 40 | + msg.timeStampDeltaMsg = new Template($L("#{dateTime}")).evaluate({dateTime:Mojo.Format.formatDate(sentTimeStamp,'short')}); | ||
| 41 | + // } // timestamp fix | ||
| 42 | + // } // timestamp fix | ||
| 43 | |||
| 44 | if (msg.callbackNumber) { | ||
| 45 | msg.callbackNumber = PalmSystem.runTextIndexer(msg.callbackNumber); | ||
| 46 | Index: /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 47 | =================================================================== | ||
| 48 | --- .orig/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 49 | +++ /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 50 | @@ -681,7 +681,12 @@ img.avatar-overlay { | ||
| 51 | width: 40px; | ||
| 52 | height: 40px; | ||
| 53 | } | ||
| 54 | - | ||
| 55 | +/* timestamp formatting */ | ||
| 56 | +.timeStamp { | ||
| 57 | + font-size: 12px; | ||
| 58 | + font-style: italic; | ||
| 59 | + color: #1111ff; | ||
| 60 | + } | ||
| 61 | .message.status-success { | ||
| 62 | color: #000000; | ||
| 63 | } |
|   | |||
| 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 0c816ba..37f0501 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 5 | @@ -1212,6 +1212,9 @@ var ChatviewAssistant = Class.create({ | ||
| 6 | preFormatChatList: function(stuff){ | ||
| 7 | for(var i=0; i<stuff.list.length; i++) { | ||
| 8 | var msg = stuff.list[i]; | ||
| 9 | + var ts = new Date(); | ||
| 10 | + ts.setTime(msg.timeStamp); | ||
| 11 | + msg.timeStampText = Mojo.Format.formatDate(ts,'short'); | ||
| 12 | if(msg.summary && !ChatFlags.isTransient(msg.flags)) { | ||
| 13 | msg.summary = msg.summary.escapeHTML(); | ||
| 14 | msg.summary = PalmSystem.runTextIndexer(msg.summary); | ||
| 15 | @@ -1235,7 +1238,7 @@ var ChatviewAssistant = Class.create({ | ||
| 16 | var deviceTimeStampMinutes = d.getMinutes(); | ||
| 17 | d.setMinutes((deviceTimeStampMinutes - (deviceTimeStampMinutes % 5))); | ||
| 18 | d.setSeconds(0); | ||
| 19 | - msg.dividerText = msg.transportClass + BucketDateFormatter.getDateBucket(d,true,true); | ||
| 20 | + msg.dividerText = msg.transportClass; // + BucketDateFormatter.getDateBucket(d,true,true); | ||
| 21 | |||
| 22 | // if the INCOMING message was sent longer than 10 minutes before it arrived on device, | ||
| 23 | // add sent date to indicate that this delay happened | ||
| 24 | diff --git a/usr/palm/applications/com.palm.app.messaging/app/views/chatview/message/message-text.html b/usr/palm/applications/com.palm.app.messaging/app/views/chatview/message/message-text.html | ||
| 25 | index 97ff521..95b2ba6 100644 | ||
| 26 | --- a/usr/palm/applications/com.palm.app.messaging/app/views/chatview/message/message-text.html | ||
| 27 | +++ b/usr/palm/applications/com.palm.app.messaging/app/views/chatview/message/message-text.html | ||
| 28 | @@ -1 +1 @@ | ||
| 29 | -<div class="messageText">#{-messageText} #{-errorContent}</div> | ||
| 30 | \ No newline at end of file | ||
| 31 | +<div class="messageText"><span class="timeStamp">#{-timeStampText}</span><pre>#{-messageText}</pre> #{-errorContent}</div> | ||
| 32 | diff --git a/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css b/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 33 | index fe6127a..5eceb3d 100644 | ||
| 34 | --- a/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 35 | +++ b/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 36 | @@ -659,6 +659,18 @@ img.avatar-overlay { | ||
| 37 | font-size:14px; | ||
| 38 | } | ||
| 39 | |||
| 40 | +.messageText pre { | ||
| 41 | + font-family: inherit; | ||
| 42 | + font-size: inherit; | ||
| 43 | + color: inherit; | ||
| 44 | +} | ||
| 45 | +.timeStamp { | ||
| 46 | + font-size: 12px; | ||
| 47 | +font-st yle: italic; | ||
| 48 | + color: #1111ff; | ||
| 49 | +} | ||
| 50 | + | ||
| 51 | + | ||
| 52 | .my-chat .chat-balloon-wrapper, | ||
| 53 | .their-chat .chat-balloon-wrapper { | ||
| 54 | padding: 1px 0; |
|   | |||
| 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 0c816ba..37f0501 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 5 | @@ -1212,6 +1212,9 @@ var ChatviewAssistant = Class.create({ | ||
| 6 | preFormatChatList: function(stuff){ | ||
| 7 | for(var i=0; i<stuff.list.length; i++) { | ||
| 8 | var msg = stuff.list[i]; | ||
| 9 | + var ts = new Date(); | ||
| 10 | + ts.setTime(msg.timeStamp); | ||
| 11 | + msg.timeStampText = Mojo.Format.formatDate(ts,'short'); | ||
| 12 | if(msg.summary && !ChatFlags.isTransient(msg.flags)) { | ||
| 13 | msg.summary = msg.summary.escapeHTML(); | ||
| 14 | msg.summary = PalmSystem.runTextIndexer(msg.summary); | ||
| 15 | @@ -1235,7 +1238,7 @@ var ChatviewAssistant = Class.create({ | ||
| 16 | var deviceTimeStampMinutes = d.getMinutes(); | ||
| 17 | d.setMinutes((deviceTimeStampMinutes - (deviceTimeStampMinutes % 5))); | ||
| 18 | d.setSeconds(0); | ||
| 19 | - msg.dividerText = msg.transportClass + BucketDateFormatter.getDateBucket(d,true,true); | ||
| 20 | + msg.dividerText = msg.transportClass; // + BucketDateFormatter.getDateBucket(d,true,true); | ||
| 21 | |||
| 22 | // if the INCOMING message was sent longer than 10 minutes before it arrived on device, | ||
| 23 | // add sent date to indicate that this delay happened | ||
| 24 | diff --git a/usr/palm/applications/com.palm.app.messaging/app/views/chatview/message/message-text.html b/usr/palm/applications/com.palm.app.messaging/app/views/chatview/message/message-text.html | ||
| 25 | index 97ff521..95b2ba6 100644 | ||
| 26 | --- a/usr/palm/applications/com.palm.app.messaging/app/views/chatview/message/message-text.html | ||
| 27 | +++ b/usr/palm/applications/com.palm.app.messaging/app/views/chatview/message/message-text.html | ||
| 28 | @@ -1 +1 @@ | ||
| 29 | -<div class="messageText">#{-messageText} #{-errorContent}</div> | ||
| 30 | \ No newline at end of file | ||
| 31 | +<div class="messageText"><span class="timeStamp">#{-timeStampText}</span><pre>#{-messageText}</pre> #{-errorContent}</div> | ||
| 32 | diff --git a/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css b/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 33 | index fe6127a..5eceb3d 100644 | ||
| 34 | --- a/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 35 | +++ b/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 36 | @@ -659,6 +659,18 @@ img.avatar-overlay { | ||
| 37 | font-size:14px; | ||
| 38 | } | ||
| 39 | |||
| 40 | +.messageText pre { | ||
| 41 | + font-family: inherit; | ||
| 42 | + font-size: inherit; | ||
| 43 | + color: inherit; | ||
| 44 | +} | ||
| 45 | +.timeStamp { | ||
| 46 | + font-size: 12px; | ||
| 47 | +font-st yle: italic; | ||
| 48 | + color: #1111ff; | ||
| 49 | +} | ||
| 50 | + | ||
| 51 | + | ||
| 52 | .my-chat .chat-balloon-wrapper, | ||
| 53 | .their-chat .chat-balloon-wrapper { | ||
| 54 | padding: 1px 0; |
messaging/msg-avatar.patch
(0 / 56)
|   | |||
| 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 4c7cdbe..52563c8 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 5 | @@ -1347,7 +1347,7 @@ var ChatviewAssistant = Class.create({ | ||
| 6 | if (ChatFlags.isOutgoing(msg.flags)) { | ||
| 7 | tmpClass.push("my-chat"); | ||
| 8 | // Disabling MY avatar because we are not doing this for 1.0 2008-11-05 | ||
| 9 | - //msg.avatar = this.myAvatar || 'images/my-avatar.png'; | ||
| 10 | + msg.avatar = this.myAvatar || 'images/my-avatar.png'; | ||
| 11 | } else { | ||
| 12 | tmpClass.push("their-chat"); | ||
| 13 | msg.avatar = this.avatarHash[msg.fromAddress] || this.contactAvatar || "images/list-view-default-avatar.png"; | ||
| 14 | diff --git a/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css b/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 15 | index 13251fe..b624a0f 100644 | ||
| 16 | --- a/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 17 | +++ b/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css | ||
| 18 | @@ -137,16 +137,11 @@ img.avatar-overlay { | ||
| 19 | } | ||
| 20 | |||
| 21 | .chatRow img.avatar-location { | ||
| 22 | - margin-top: -18px; | ||
| 23 | + margin-top: -39px; | ||
| 24 | } | ||
| 25 | |||
| 26 | .chatRow img.avatar-overlay { | ||
| 27 | - margin-top: -21px; | ||
| 28 | -} | ||
| 29 | - | ||
| 30 | -.chatRow .avatar-container { | ||
| 31 | - vertical-align: middle; | ||
| 32 | - display: inline-block; | ||
| 33 | + margin-top: -42.5px; | ||
| 34 | } | ||
| 35 | |||
| 36 | .login-animation-available, | ||
| 37 | @@ -664,9 +659,7 @@ img.avatar-overlay { | ||
| 38 | padding: 1px 0; | ||
| 39 | font-size: 18px; | ||
| 40 | word-wrap: break-word !important; | ||
| 41 | -} | ||
| 42 | -.their-chat .chat-balloon-wrapper { | ||
| 43 | - padding-right: 8px; | ||
| 44 | + padding-right: 40px; | ||
| 45 | } | ||
| 46 | .their-chat .avatar { | ||
| 47 | width: 40px; | ||
| 48 | @@ -675,8 +668,6 @@ img.avatar-overlay { | ||
| 49 | |||
| 50 | /* Disabling MY avatar because we are not doing this for 1.0 2008-11-05*/ | ||
| 51 | .my-chat .avatar-location, | ||
| 52 | -.my-chat .avatar-overlay, | ||
| 53 | -.my-chat .avatar-container { | ||
| 54 | display: none; | ||
| 55 | width: 40px; | ||
| 56 | height: 40px; |
messaging/sms-tone-per-contact.patch
(0 / 716)
|   | |||
| 1 | Updated for 1.2 | ||
| 2 | Index: /usr/palm/applications/com.palm.app.soundsandalerts/app/views/soundsalertsconfig/soundsalertsconfig-scene.html | ||
| 3 | =================================================================== | ||
| 4 | --- .orig/usr/palm/applications/com.palm.app.soundsandalerts/app/views/soundsalertsconfig/soundsalertsconfig-scene.html | ||
| 5 | +++ /usr/palm/applications/com.palm.app.soundsandalerts/app/views/soundsalertsconfig/soundsalertsconfig-scene.html | ||
| 6 | @@ -52,9 +52,27 @@ | ||
| 7 | </div> | ||
| 8 | </div> | ||
| 9 | </div> | ||
| 10 | + <div id='currentalertrow' class="palm-row" x-mojo-tap-highlight="momentary"> | ||
| 11 | + <div class="palm-row-wrapper"> | ||
| 12 | + <div class="label" x-mojo-loc=''>Alert</div> | ||
| 13 | + <div id='currentalert' class="title"></div> | ||
| 14 | + </div> | ||
| 15 | + </div> | ||
| 16 | + <div id='currentnotificationrow' class="palm-row" x-mojo-tap-highlight="momentary"> | ||
| 17 | + <div class="palm-row-wrapper"> | ||
| 18 | + <div class="label" x-mojo-loc=''>Notification</div> | ||
| 19 | + <div id='currentnotification' class="title"></div> | ||
| 20 | + </div> | ||
| 21 | + </div> | ||
| 22 | + <div id='currentmessagerow' class="palm-row" x-mojo-tap-highlight="momentary"> | ||
| 23 | + <div class="palm-row-wrapper"> | ||
| 24 | + <div class="label" x-mojo-loc=''>Messages</div> | ||
| 25 | + <div id='currentmessage' class="title"></div> | ||
| 26 | + </div> | ||
| 27 | + </div> | ||
| 28 | <div class="palm-row last"> | ||
| 29 | <div class="palm-row-wrapper"> | ||
| 30 | - <div class="title" x-mojo-loc=''>Volume</div> | ||
| 31 | + <div class="title" x-mojo-loc=''>System Volume</div> | ||
| 32 | <div x-mojo-element="Slider" id='systemvolume' class="palm-slider"></div> | ||
| 33 | </div> | ||
| 34 | </div> | ||
| 35 | Index: /usr/palm/applications/com.palm.app.soundsandalerts/app/models/SystemService.js | ||
| 36 | =================================================================== | ||
| 37 | --- .orig/usr/palm/applications/com.palm.app.soundsandalerts/app/models/SystemService.js | ||
| 38 | +++ /usr/palm/applications/com.palm.app.soundsandalerts/app/models/SystemService.js | ||
| 39 | @@ -28,6 +28,60 @@ SystemService.getRingtone = function(cal | ||
| 40 | return request; | ||
| 41 | } | ||
| 42 | |||
| 43 | +SystemService.getAlerts = function(callback) { | ||
| 44 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 45 | + method: 'getPreferences', | ||
| 46 | + parameters: {"keys":["alerttone"]}, | ||
| 47 | + onSuccess: callback, | ||
| 48 | + onFailure: callback | ||
| 49 | + }); | ||
| 50 | + return request; | ||
| 51 | +} | ||
| 52 | + | ||
| 53 | +SystemService.setAlerts = function(value){ | ||
| 54 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 55 | + method: 'setPreferences', | ||
| 56 | + parameters: {"alerttone":value}, | ||
| 57 | + }); | ||
| 58 | + return request; | ||
| 59 | +} | ||
| 60 | + | ||
| 61 | +SystemService.getNotifications = function(callback) { | ||
| 62 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 63 | + method: 'getPreferences', | ||
| 64 | + parameters: {"keys":["notificationtone"]}, | ||
| 65 | + onSuccess: callback, | ||
| 66 | + onFailure: callback | ||
| 67 | + }); | ||
| 68 | + return request; | ||
| 69 | +} | ||
| 70 | + | ||
| 71 | +SystemService.setNotifications = function(value){ | ||
| 72 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 73 | + method: 'setPreferences', | ||
| 74 | + parameters: {"notificationtone":value}, | ||
| 75 | + }); | ||
| 76 | + return request; | ||
| 77 | +} | ||
| 78 | + | ||
| 79 | +SystemService.getMessages = function(callback) { | ||
| 80 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 81 | + method: 'getPreferences', | ||
| 82 | + parameters: {"keys":["messagetone"]}, | ||
| 83 | + onSuccess: callback, | ||
| 84 | + onFailure: callback | ||
| 85 | + }); | ||
| 86 | + return request; | ||
| 87 | +} | ||
| 88 | + | ||
| 89 | +SystemService.setMessages = function(value){ | ||
| 90 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 91 | + method: 'setPreferences', | ||
| 92 | + parameters: {"messagetone":value}, | ||
| 93 | + }); | ||
| 94 | + return request; | ||
| 95 | +} | ||
| 96 | + | ||
| 97 | SystemService.getSystemUISounds = function(callback) { | ||
| 98 | var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 99 | method: 'getPreferences', | ||
| 100 | Index: /usr/palm/applications/com.palm.app.soundsandalerts/app/controllers/soundsalertsconfig-assistant.js | ||
| 101 | =================================================================== | ||
| 102 | --- .orig/usr/palm/applications/com.palm.app.soundsandalerts/app/controllers/soundsalertsconfig-assistant.js | ||
| 103 | +++ /usr/palm/applications/com.palm.app.soundsandalerts/app/controllers/soundsalertsconfig-assistant.js | ||
| 104 | @@ -94,9 +94,15 @@ var SoundsalertsconfigAssistant = Class. | ||
| 105 | $('system_ui_sounds').observe('mojo-property-change', this.toggleSystemUISounds.bindAsEventListener(this)); | ||
| 106 | |||
| 107 | $('currentringtonerow').observe(Mojo.Event.tap, this.showAudioFilePicker.bindAsEventListener(this)); | ||
| 108 | + $('currentalertrow').observe(Mojo.Event.tap, this.showAlertFilePicker.bindAsEventListener(this)); | ||
| 109 | + $('currentnotificationrow').observe(Mojo.Event.tap, this.showNotificationFilePicker.bindAsEventListener(this)); | ||
| 110 | + $('currentmessagerow').observe(Mojo.Event.tap, this.showMessageFilePicker.bindAsEventListener(this)); | ||
| 111 | |||
| 112 | this.getCurrentVolumes(); | ||
| 113 | this.getCurrentRingtone(); | ||
| 114 | + this.getCurrentAlert(); | ||
| 115 | + this.getCurrentNotification(); | ||
| 116 | + this.getCurrentMessage(); | ||
| 117 | this.getVibrateSettings(); | ||
| 118 | this.getOtherSettings(); | ||
| 119 | |||
| 120 | @@ -260,6 +266,84 @@ var SoundsalertsconfigAssistant = Class. | ||
| 121 | $('currentringtone').innerHTML = file.name; | ||
| 122 | }, | ||
| 123 | |||
| 124 | + // Alert Picking | ||
| 125 | + getCurrentAlert: function() { | ||
| 126 | + this.getCurrentAlertReq = SystemService.getAlerts(this.getCurrentAlertQuery.bind(this)); | ||
| 127 | + }, | ||
| 128 | + | ||
| 129 | + getCurrentAlertQuery: function(payload) { | ||
| 130 | + if (payload.alerttone) { | ||
| 131 | + $('currentalert').innerHTML = payload.alerttone.name; | ||
| 132 | + this.currAlertPath = payload.alerttone.fullPath; | ||
| 133 | + } | ||
| 134 | + else | ||
| 135 | + $('currentalert').innerHTML = $L("Pick an alert"); | ||
| 136 | + | ||
| 137 | + }, | ||
| 138 | + | ||
| 139 | + showAlertFilePicker: function(event) { | ||
| 140 | + var params = {"kinds": ["ringtone"],"filePath":this.currAlertPath,"onSelect":this.selectedAlertFile.bind(this),actionType:"attach",actionName: $L("Done")}; | ||
| 141 | + Mojo.FilePicker.pickFile(params,Mojo.Controller.stageController); | ||
| 142 | + }, | ||
| 143 | + | ||
| 144 | + selectedAlertFile: function(file) { | ||
| 145 | + //var params = {"fullPath": encodeURIComponent(file.fullPath), "name":file.name}; | ||
| 146 | + this.setAlertReq = SystemService.setAlerts(file); | ||
| 147 | + $('currentalert').innerHTML = file.name; | ||
| 148 | + }, | ||
| 149 | + | ||
| 150 | + // Notification Picking | ||
| 151 | + getCurrentNotification: function() { | ||
| 152 | + this.getCurrentNotificationReq = SystemService.getNotifications(this.getCurrentNotificationQuery.bind(this)); | ||
| 153 | + }, | ||
| 154 | + | ||
| 155 | + getCurrentNotificationQuery: function(payload) { | ||
| 156 | + if (payload.notificationtone) { | ||
| 157 | + $('currentnotification').innerHTML = payload.notificationtone.name; | ||
| 158 | + this.currNotificationPath = payload.notificationtone.fullPath; | ||
| 159 | + } | ||
| 160 | + else | ||
| 161 | + $('currentnotification').innerHTML = $L("Pick a notification"); | ||
| 162 | + | ||
| 163 | + }, | ||
| 164 | + | ||
| 165 | + showNotificationFilePicker: function(event) { | ||
| 166 | + var params = {"kinds": ["ringtone"],"filePath":this.currNotificationPath,"onSelect":this.selectedNotificationFile.bind(this),actionType:"attach",actionName: $L("Done")}; | ||
| 167 | + Mojo.FilePicker.pickFile(params,Mojo.Controller.stageController); | ||
| 168 | + }, | ||
| 169 | + | ||
| 170 | + selectedNotificationFile: function(file) { | ||
| 171 | + //var params = {"fullPath": encodeURIComponent(file.fullPath), "name":file.name}; | ||
| 172 | + this.setNotificationReq = SystemService.setNotifications(file); | ||
| 173 | + $('currentnotification').innerHTML = file.name; | ||
| 174 | + }, | ||
| 175 | + | ||
| 176 | + // Message Picking | ||
| 177 | + getCurrentMessage: function() { | ||
| 178 | + this.getCurrentMessageReq = SystemService.getMessages(this.getCurrentMessageQuery.bind(this)); | ||
| 179 | + }, | ||
| 180 | + | ||
| 181 | + getCurrentMessageQuery: function(payload) { | ||
| 182 | + if (payload.messagetone) { | ||
| 183 | + $('currentmessage').innerHTML = payload.messagetone.name; | ||
| 184 | + this.currMessagePath = payload.messagetone.fullPath; | ||
| 185 | + } | ||
| 186 | + else | ||
| 187 | + $('currentmessage').innerHTML = $L("Pick an message"); | ||
| 188 | + | ||
| 189 | + }, | ||
| 190 | + | ||
| 191 | + showMessageFilePicker: function(event) { | ||
| 192 | + var params = {"kinds": ["ringtone"],"filePath":this.currMessagePath,"onSelect":this.selectedMessageFile.bind(this),actionType:"attach",actionName: $L("Done")}; | ||
| 193 | + Mojo.FilePicker.pickFile(params,Mojo.Controller.stageController); | ||
| 194 | + }, | ||
| 195 | + | ||
| 196 | + selectedMessageFile: function(file) { | ||
| 197 | + //var params = {"fullPath": encodeURIComponent(file.fullPath), "name":file.name}; | ||
| 198 | + this.setMessageReq = SystemService.setMessages(file); | ||
| 199 | + $('currentmessage').innerHTML = file.name; | ||
| 200 | + }, | ||
| 201 | + | ||
| 202 | getVibrateSettings: function() { | ||
| 203 | this.getVibrateSettingsReq = AudioService.getVibrateSettings(this.vibrateSettingsCB.bind(this),this); | ||
| 204 | }, | ||
| 205 | Index: /usr/palm/applications/com.palm.app.contacts/app/controllers/edit-assistant.js | ||
| 206 | =================================================================== | ||
| 207 | --- .orig/usr/palm/applications/com.palm.app.contacts/app/controllers/edit-assistant.js | ||
| 208 | +++ /usr/palm/applications/com.palm.app.contacts/app/controllers/edit-assistant.js | ||
| 209 | @@ -63,6 +63,17 @@ EditAssistant = Class.create({ | ||
| 210 | template: "edit/ringtones" | ||
| 211 | })); | ||
| 212 | |||
| 213 | + if(this.person.messagingRingtoneName){ | ||
| 214 | + this.person.MsgtoneDisplay = this.person.messagingRingtoneName; | ||
| 215 | + this.person.MsgtoneSet = "msgtone-set"; | ||
| 216 | + } else { | ||
| 217 | + this.person.MsgtoneDisplay = $L("Set a message tone"); | ||
| 218 | + this.person.MsgtoneSet = ""; | ||
| 219 | + } | ||
| 220 | + this.controller.get("MsgtoneBox").update(Mojo.View.render({ | ||
| 221 | + object: this.person, | ||
| 222 | + template: "edit/msgtones" | ||
| 223 | + })); | ||
| 224 | |||
| 225 | var that = this; | ||
| 226 | |||
| 227 | @@ -264,6 +275,11 @@ EditAssistant = Class.create({ | ||
| 228 | object: {ringtoneDisplay:ringtoneName}, | ||
| 229 | template: "edit/ringtones" | ||
| 230 | })); | ||
| 231 | + var messagingRingtoneName = this.person.messagingRingtoneName || $L("Set a message tone"); | ||
| 232 | + this.controller.get("MsgtoneBox").update(Mojo.View.render({ | ||
| 233 | + object: {MsgtoneDisplay:messagingRingtoneName}, | ||
| 234 | + template: "edit/msgtones" | ||
| 235 | + })); | ||
| 236 | |||
| 237 | } | ||
| 238 | } | ||
| 239 | @@ -521,6 +537,7 @@ EditAssistant = Class.create({ | ||
| 240 | this.controller.listen("NameSyncPickerWrapper", Mojo.Event.tap, this.popupContactChooser.bind(this)); | ||
| 241 | this.controller.get("edit-photo").observe(Mojo.Event.tap, this.attachFilePicker.bind(this)); | ||
| 242 | this.controller.get("RingtoneBox").observe(Mojo.Event.tap, this.attachRingtonePicker.bind(this)); | ||
| 243 | + this.controller.get("MsgtoneBox").observe(Mojo.Event.tap, this.attachMsgtonePicker.bind(this)); | ||
| 244 | this.renderLabels(); | ||
| 245 | this.setupContact(); | ||
| 246 | if (this.contact.readOnly) { | ||
| 247 | Index: /usr/palm/applications/com.palm.app.contacts/app/controllers/filepicker-behaviors.js | ||
| 248 | =================================================================== | ||
| 249 | --- .orig/usr/palm/applications/com.palm.app.contacts/app/controllers/filepicker-behaviors.js | ||
| 250 | +++ /usr/palm/applications/com.palm.app.contacts/app/controllers/filepicker-behaviors.js | ||
| 251 | @@ -56,6 +56,55 @@ var FilepickerBehaviors = { | ||
| 252 | Mojo.FilePicker.pickFile(params, this.controller.stageController); | ||
| 253 | |||
| 254 | }, | ||
| 255 | + | ||
| 256 | + attachMsgtonePicker: function(event){ | ||
| 257 | + if(this.person.messagingRingtoneLoc){ | ||
| 258 | + this.controller.popupSubmenu( { | ||
| 259 | + onChoose:function(c){ | ||
| 260 | + if(c == "CHANGE"){ | ||
| 261 | + this.pushMsgtonePicker(); | ||
| 262 | + } else if(c == "DELETE"){ | ||
| 263 | + this.clearMsgtone(); | ||
| 264 | + } | ||
| 265 | + }.bind(this), | ||
| 266 | + placeNear:event.target, | ||
| 267 | + items:[ | ||
| 268 | + {label:$L("Change Msgtone"), command:'CHANGE'}, | ||
| 269 | + {label:$L("Delete Msgtone"), command:'DELETE'} | ||
| 270 | + ] | ||
| 271 | + }) | ||
| 272 | + } else { | ||
| 273 | + this.pushMsgtonePicker(); | ||
| 274 | + } | ||
| 275 | + | ||
| 276 | + }, | ||
| 277 | + | ||
| 278 | + clearMsgtone:function(){ | ||
| 279 | + this.person.messagingRingtoneLoc = ""; | ||
| 280 | + this.person.messagingRingtoneName = ""; | ||
| 281 | + this.person.MsgtoneDisplay = $L("Set a message tone"); | ||
| 282 | + this.person.MsgtoneSet = ""; | ||
| 283 | + this.person.dirty = true; | ||
| 284 | + this.controller.get("MsgtoneBox").update(Mojo.View.render({ | ||
| 285 | + object:this.person, | ||
| 286 | + template:"edit/msgtones" | ||
| 287 | + })); | ||
| 288 | + }, | ||
| 289 | + | ||
| 290 | + pushMsgtonePicker:function(){ | ||
| 291 | + var params = { | ||
| 292 | + actionType: 'attach', | ||
| 293 | + kinds: ['ringtone'], | ||
| 294 | + defaultKind: 'ringtone', | ||
| 295 | + filePath:this.person.messagingRingtoneLoc, | ||
| 296 | + onSelect: function(file){ | ||
| 297 | + this.attachMsgtone(this.sanitizeSystemPath(file.fullPath), file.name); | ||
| 298 | + }.bind(this) | ||
| 299 | + }; | ||
| 300 | + //Mojo.Log.info("ContactMulti Picking a msgtone for " + this.contact.firstName + " " + this.contact.lastName); | ||
| 301 | + Mojo.FilePicker.pickFile(params, this.controller.stageController); | ||
| 302 | + | ||
| 303 | + }, | ||
| 304 | |||
| 305 | attachFilePicker: function(event){ | ||
| 306 | if(this.contact.readOnly){ | ||
| 307 | @@ -150,6 +199,20 @@ var FilepickerBehaviors = { | ||
| 308 | template:"edit/ringtones" | ||
| 309 | })); | ||
| 310 | } | ||
| 311 | + }, | ||
| 312 | + | ||
| 313 | + attachMsgtone: function(msgtonePath, name){ | ||
| 314 | + if (msgtonePath) { | ||
| 315 | + this.person.dirty = true; | ||
| 316 | + this.person.messagingRingtoneName = name; | ||
| 317 | + this.person.MsgtoneDisplay = name; | ||
| 318 | + this.person.MsgtoneSet = "msgtone-set"; | ||
| 319 | + this.person.messagingRingtoneLoc = msgtonePath; | ||
| 320 | + this.controller.get("MsgtoneBox").update(Mojo.View.render({ | ||
| 321 | + object:this.person, | ||
| 322 | + template:"edit/msgtones" | ||
| 323 | + })); | ||
| 324 | + } | ||
| 325 | } | ||
| 326 | } | ||
| 327 | |||
| 328 | Index: /usr/palm/applications/com.palm.app.contacts/app/views/edit/lists-fake.html | ||
| 329 | =================================================================== | ||
| 330 | --- .orig/usr/palm/applications/com.palm.app.contacts/app/views/edit/lists-fake.html | ||
| 331 | +++ /usr/palm/applications/com.palm.app.contacts/app/views/edit/lists-fake.html | ||
| 332 | @@ -32,6 +32,20 @@ | ||
| 333 | </div> | ||
| 334 | </div> | ||
| 335 | </div> | ||
| 336 | +<div> | ||
| 337 | +<div id="MsgtoneBox" class=""> | ||
| 338 | + <div class="palm-group unlabeled"> | ||
| 339 | + <div class="palm-list"> | ||
| 340 | + <div class="palm-row single" id="MsgtoneButton" x-mojo-tap-highlight="momentary"> | ||
| 341 | + <div class="palm-row-wrapper"> | ||
| 342 | + <div class="title" x-mojo-loc=""> | ||
| 343 | + Set a message tone | ||
| 344 | + </div> | ||
| 345 | + </div> | ||
| 346 | + </div> | ||
| 347 | + </div> | ||
| 348 | + </div> | ||
| 349 | +</div> | ||
| 350 | </div> | ||
| 351 | <div> | ||
| 352 | <div id="emailList" name="emailList" class="contactPointList" > | ||
| 353 | Index: /usr/palm/applications/com.palm.app.contacts/app/views/edit/msgtones.html | ||
| 354 | =================================================================== | ||
| 355 | --- /dev/null | ||
| 356 | +++ /usr/palm/applications/com.palm.app.contacts/app/views/edit/msgtones.html | ||
| 357 | @@ -0,0 +1,16 @@ | ||
| 358 | +<div class="palm-group unlabeled"> | ||
| 359 | + <div class="palm-list"> | ||
| 360 | + <div class="palm-row single #{MsgtoneSet} msgtone-button" id="MsgtoneButton" x-mojo-tap-highlight="momentary"> | ||
| 361 | + <div class="palm-row-wrapper"> | ||
| 362 | + <div class="label right truncating-text" x-mojo-loc=''> | ||
| 363 | + Msgtone | ||
| 364 | + </div> | ||
| 365 | + <div class="title"> | ||
| 366 | + <div class="truncating-text"> | ||
| 367 | + #{MsgtoneDisplay} | ||
| 368 | + </div> | ||
| 369 | + </div> | ||
| 370 | + </div> | ||
| 371 | + </div> | ||
| 372 | + </div> | ||
| 373 | +</div> | ||
| 374 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/listview-assistant.js | ||
| 375 | =================================================================== | ||
| 376 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/listview-assistant.js | ||
| 377 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/listview-assistant.js | ||
| 378 | @@ -434,7 +434,8 @@ var ListviewAssistant = Class.create(App | ||
| 379 | // if we are in the history view and the screen is on, do not display a banner + dashboard, just play a notification sound | ||
| 380 | if (this.isScreenOn) { | ||
| 381 | if (data.notificationType == this.Messaging.notificationTypes.newMessage && this.currentListView == this.Messaging.Views.HISTORY) { | ||
| 382 | - data = {playSoundOnly:true}; | ||
| 383 | + data = $H(data); | ||
| 384 | + data = data.merge({playSoundOnly:true}); | ||
| 385 | } | ||
| 386 | } | ||
| 387 | return data; | ||
| 388 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 389 | =================================================================== | ||
| 390 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 391 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 392 | @@ -346,7 +346,8 @@ var ChatviewAssistant = Class.create({ | ||
| 393 | if(this.isScreenOn && data.chatThreadId == this.chatThreadId) { | ||
| 394 | Mojo.Log.info("[CV] ****** chatview considerForNotification --- screen is on!"); | ||
| 395 | if(data.notificationType == this.Messaging.notificationTypes.newMessage) { | ||
| 396 | - data = {playSoundOnly:true}; | ||
| 397 | + data = $H(data); | ||
| 398 | + data = data.merge({playSoundOnly:true}); | ||
| 399 | } else if( data.notificationType == this.Messaging.notificationTypes.sendFailure) { | ||
| 400 | data = {}; // wipe out the notification because we are in the chat | ||
| 401 | } | ||
| 402 | Index: /usr/palm/applications/com.palm.app.messaging/app/models/messaging-luna-service.js | ||
| 403 | =================================================================== | ||
| 404 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/models/messaging-luna-service.js | ||
| 405 | +++ /usr/palm/applications/com.palm.app.messaging/app/models/messaging-luna-service.js | ||
| 406 | @@ -993,5 +993,168 @@ var MessagingMojoService = { | ||
| 407 | method: 'setSMSCAddressAndEmailGateway', | ||
| 408 | parameters: {smscAddr:address, emailGateway: gateway} | ||
| 409 | }); | ||
| 410 | + }, | ||
| 411 | + | ||
| 412 | + isNumberValid: function(number) { | ||
| 413 | + return !(number === undefined | ||
| 414 | + || number == null | ||
| 415 | + || number == "" | ||
| 416 | + || number == "unknown" | ||
| 417 | + || number == "unknown caller" | ||
| 418 | + || number == "blocked caller") | ||
| 419 | + }, | ||
| 420 | + | ||
| 421 | + // use contacts service and carrier book to perform reverse lookup on number. stores results in passed contact object. | ||
| 422 | + // runs callback when done. | ||
| 423 | + // if the number isn't valid, marks contact lookup complete | ||
| 424 | + // if there's already one happening, or one already completed, just fires callback | ||
| 425 | + // if there's a lateCallback provided, calls that if the result comes much later | ||
| 426 | + rLookup: function(number, contact, callback, lateCallback){ | ||
| 427 | + | ||
| 428 | + //Reset contact to always get the tone | ||
| 429 | + contact = {}; | ||
| 430 | + Mojo.Log.error("Current contact value: %j",contact); | ||
| 431 | + Mojo.Log.error("SMS ID: %j",number); | ||
| 432 | + | ||
| 433 | + // bail if the number is invalid | ||
| 434 | + if (!(this.isNumberValid(number))) { | ||
| 435 | + this.finishLookup(contact, callback); | ||
| 436 | + return; | ||
| 437 | + } | ||
| 438 | + | ||
| 439 | + if (contact.lookupComplete) { | ||
| 440 | + callback(contact); | ||
| 441 | + return; | ||
| 442 | + } | ||
| 443 | + | ||
| 444 | + if (contact.lookupPending) { | ||
| 445 | + callback(contact); | ||
| 446 | + return; | ||
| 447 | + } | ||
| 448 | + | ||
| 449 | + | ||
| 450 | + // use contacts service to perform lookup. | ||
| 451 | + // if contact already has an id in it, use person lookup | ||
| 452 | + // instead of doing reverse lookup on number | ||
| 453 | + contact.lookupPending = true; | ||
| 454 | + var method, params; | ||
| 455 | + if (contact.initialId) { | ||
| 456 | + method = 'basicDetails' | ||
| 457 | + params = {'id' : contact.initialId} | ||
| 458 | + delete contact.initialId; | ||
| 459 | + } else { | ||
| 460 | + method = 'reverseLookup' | ||
| 461 | + params = { | ||
| 462 | + 'value': number, | ||
| 463 | + 'type': "phone" | ||
| 464 | + } | ||
| 465 | + } | ||
| 466 | + this.lastRequest = new Mojo.Service.Request('palm://com.palm.contacts', { | ||
| 467 | + 'method': method, | ||
| 468 | + parameters: params, | ||
| 469 | + onSuccess: this.onLookup.bind(this, number, contact, callback, lateCallback), | ||
| 470 | + onFailure: function() { | ||
| 471 | + // cancel previous lookup, so this doesn't fire on a service crash | ||
| 472 | + if (this.lastRequest) { | ||
| 473 | + this.lastRequest.cancel(); | ||
| 474 | + this.lastRequest = undefined; | ||
| 475 | + } | ||
| 476 | + | ||
| 477 | + this.carrierBookLookup(number,contact); | ||
| 478 | + this.finishLookup(contact, callback); | ||
| 479 | + }.bind(this) | ||
| 480 | + }); | ||
| 481 | + | ||
| 482 | + // timeout if lookup hasn't completed in 4 seconds | ||
| 483 | + this.lookupTimeout = setTimeout(this.onLookupTimeout.bind(this, contact, callback, lateCallback), 4000); | ||
| 484 | + }, | ||
| 485 | + | ||
| 486 | + // when contact lookup returns, check for valid result | ||
| 487 | + // if valid result, grab name, ringtone; if there's a picture, start loading and set callback to measure it | ||
| 488 | + // if no valid result, look in carrier book | ||
| 489 | + // fire callback when done | ||
| 490 | + onLookup: function(number, contact, callback, lateCallback, result){ | ||
| 491 | + Mojo.Log.info( "PhoneApp: Contact::onLookup CALLER ID LOOKUP %s RETURNED %j" , number , result); | ||
| 492 | + var statusChange = ""; | ||
| 493 | + | ||
| 494 | + // cancel previous lookup, so this doesn't fire on a service crash | ||
| 495 | + if (this.lastRequest) { | ||
| 496 | + this.lastRequest.cancel(); | ||
| 497 | + this.lastRequest = undefined; | ||
| 498 | + } | ||
| 499 | + | ||
| 500 | + if (result.record) { | ||
| 501 | + /* | ||
| 502 | + // don't match if the number we get back is different than the number | ||
| 503 | + // we passed in (provided the lengths are the same) | ||
| 504 | + if (!(result.record.number) | ||
| 505 | + || ( (result.record.number) && ( (result.record.number.length !== number.length) | ||
| 506 | + || (result.record.number.length === number.length | ||
| 507 | + && result.record.number === number)))) { | ||
| 508 | + */ | ||
| 509 | + contact.id = result.record.id; | ||
| 510 | + | ||
| 511 | + | ||
| 512 | + contact.ringtoneLoc = result.record.messagingRingtoneLoc; | ||
| 513 | + Mojo.Log.error("MSGTone: %j",contact.ringtoneLoc); | ||
| 514 | + | ||
| 515 | + } | ||
| 516 | + | ||
| 517 | + this.finishLookup(contact, callback, lateCallback); | ||
| 518 | + }, | ||
| 519 | + | ||
| 520 | + | ||
| 521 | + | ||
| 522 | + // mark complete; cancel timeout; fire callback if it hasn't fired yet | ||
| 523 | + finishLookup: function(contact, callback, lateCallback) { | ||
| 524 | + contact.lookupPending = false; | ||
| 525 | + | ||
| 526 | + // cancel lookup timeout | ||
| 527 | + clearTimeout(this.lookupTimeout); | ||
| 528 | + this.lookupTimeout = undefined; | ||
| 529 | + | ||
| 530 | + if (!(contact.lookupComplete)) { | ||
| 531 | + contact.lookupComplete = true; | ||
| 532 | + callback(contact); | ||
| 533 | + // if we have a late return, and we got a contact result, call | ||
| 534 | + // the late return update | ||
| 535 | + } else if (lateCallback && contact.doLateCallback && contact.id) { | ||
| 536 | + contact.doLateCallback = false; | ||
| 537 | + lateCallback.delay(5, contact); | ||
| 538 | + } else { | ||
| 539 | + } | ||
| 540 | + | ||
| 541 | + }, | ||
| 542 | + | ||
| 543 | + // flag lookup as done; proceed with callback | ||
| 544 | + onLookupTimeout: function(contact, callback, lateCallback) { | ||
| 545 | + | ||
| 546 | + if (lateCallback) { | ||
| 547 | + contact.doLateCallback = true; | ||
| 548 | + } else if (this.lastRequest && !lateCallback) { | ||
| 549 | + // cancel previous lookup, so this doesn't fire on a service crash | ||
| 550 | + this.lastRequest.cancel(); | ||
| 551 | + this.lastRequest = undefined; | ||
| 552 | + } | ||
| 553 | + | ||
| 554 | + // clear timeout | ||
| 555 | + this.lookupTimeout = undefined; | ||
| 556 | + | ||
| 557 | + // flag done; fire callback if it hasn't yet | ||
| 558 | + contact.lookupComplete = true; | ||
| 559 | + var lookupWasPending = contact.lookupPending; | ||
| 560 | + contact.lookupPending = false; | ||
| 561 | + if (lookupWasPending) | ||
| 562 | + callback(contact); | ||
| 563 | + }, | ||
| 564 | + | ||
| 565 | + getMessagetone: function(callback) { | ||
| 566 | + var request = new Mojo.Service.Request('palm://com.palm.systemservice', { | ||
| 567 | + method: 'getPreferences', | ||
| 568 | + parameters: {"keys":["messagetone"]}, | ||
| 569 | + onSuccess: callback, | ||
| 570 | + onFailure: callback | ||
| 571 | + }); | ||
| 572 | + return request; | ||
| 573 | } | ||
| 574 | }; | ||
| 575 | \ No newline at end of file | ||
| 576 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/notification-assistant.js | ||
| 577 | =================================================================== | ||
| 578 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/notification-assistant.js | ||
| 579 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/notification-assistant.js | ||
| 580 | @@ -27,6 +27,8 @@ function NotificationAssistant(controlle | ||
| 581 | }; | ||
| 582 | } | ||
| 583 | |||
| 584 | +var contact = {}; | ||
| 585 | + | ||
| 586 | NotificationAssistant.prototype.subscribeToNotifications = function(){ | ||
| 587 | this.messageNotificationRequest = MessagingMojoService.registerForIncomingMessages({onSuccess: this.sendNotification.bind(this, this.Messaging.notificationTypes.newMessage)}); | ||
| 588 | this.sendErrorNotificationRequest = MessagingMojoService.registerForSendFailures(this.sendNotification.bind(this, this.Messaging.notificationTypes.sendFailure)); | ||
| 589 | @@ -35,6 +37,37 @@ NotificationAssistant.prototype.subscrib | ||
| 590 | this.airplaneModeNotificationRequest = MessagingMojoService.registerForAirplaneModeNotifications(this.sendAirplaneModeNotification.bind(this)); | ||
| 591 | }; | ||
| 592 | |||
| 593 | +NotificationAssistant.prototype.doBanner = function(bannerParams,bannerLaunchParams,bannerType,payload) { | ||
| 594 | + if (payload.messagetone.fullPath) | ||
| 595 | + bannerParams.soundFile = payload.messagetone.fullPath; | ||
| 596 | + this.controller.showBanner(bannerParams,bannerLaunchParams,bannerType); | ||
| 597 | +}; | ||
| 598 | + | ||
| 599 | +NotificationAssistant.prototype.playMessagetone = function(payload){ | ||
| 600 | + if (payload.messagetone.fullPath) | ||
| 601 | + this.controller.playSoundNotification('alerts',payload.messagetone.fullPath); | ||
| 602 | + else | ||
| 603 | + this.controller.playSoundNotification('alerts',''); | ||
| 604 | +}; | ||
| 605 | + | ||
| 606 | +NotificationAssistant.prototype.doB = function(bannerParams,bannerLaunchParams,bannerType,contact) { | ||
| 607 | + Mojo.Log.error("Banner Ringtone: %j",contact.ringtoneLoc); | ||
| 608 | + if (contact.ringtoneLoc) { | ||
| 609 | + bannerParams.soundFile = contact.ringtoneLoc; | ||
| 610 | + this.controller.showBanner(bannerParams,bannerLaunchParams,bannerType); | ||
| 611 | + } else { | ||
| 612 | + MessagingMojoService.getMessagetone(this.doBanner.bind(this,bannerParams,bannerLaunchParams,'chat')); | ||
| 613 | + } | ||
| 614 | +}; | ||
| 615 | + | ||
| 616 | +NotificationAssistant.prototype.playmsgtone = function(contact){ | ||
| 617 | + Mojo.Log.error("Playmsgtone Ringtone: %j",contact.ringtoneLoc); | ||
| 618 | + if (contact.ringtoneLoc) | ||
| 619 | + this.controller.playSoundNotification('alerts',contact.ringtoneLoc); | ||
| 620 | + else | ||
| 621 | + MessagingMojoService.getMessagetone(this.playMessagetone.bind(this)); | ||
| 622 | +}; | ||
| 623 | + | ||
| 624 | NotificationAssistant.prototype.sendNotification = function(notificationType, resp){ | ||
| 625 | if (window.PalmSystem && !resp.returnValue) { | ||
| 626 | try { | ||
| 627 | @@ -140,7 +173,8 @@ NotificationAssistant.prototype.consider | ||
| 628 | |||
| 629 | // check if we should only play a sound (when you are already in a chat & a new message comes in) | ||
| 630 | if(notificationData.get('playSoundOnly') && this.Messaging.messagingPrefs.enableNotificationSound) { | ||
| 631 | - this.controller.playSoundNotification('alerts',''); | ||
| 632 | + var smsid = notificationData.get('address'); | ||
| 633 | + MessagingMojoService.rLookup(smsid,contact,this.playmsgtone.bind(this),this.playmsgtone.bind(this)); | ||
| 634 | return; // don't display any visual notification | ||
| 635 | } | ||
| 636 | |||
| 637 | @@ -176,10 +210,11 @@ NotificationAssistant.prototype.sendClas | ||
| 638 | |||
| 639 | notificationData.set('alertTitle',alertTitle); | ||
| 640 | this.class0AlertData.list.push(notificationData); | ||
| 641 | - this.renderClass0PopupAlert(true); | ||
| 642 | + var smsid = notificationData.get('address'); | ||
| 643 | + MessagingMojoService.getMessagetone(this.renderClass0PopupAlert.bind(this,true)); | ||
| 644 | }; | ||
| 645 | |||
| 646 | -NotificationAssistant.prototype.renderClass0PopupAlert = function(playSound) { | ||
| 647 | +NotificationAssistant.prototype.renderClass0PopupAlert = function(playSound,messageTone) { | ||
| 648 | var class0Stage = this.controller.getStageController(Class0AlertStageName); | ||
| 649 | |||
| 650 | if(class0Stage) { | ||
| 651 | @@ -188,6 +223,8 @@ NotificationAssistant.prototype.renderCl | ||
| 652 | var soundClass = 'none'; | ||
| 653 | if(playSound) { | ||
| 654 | soundClass = 'alerts'; | ||
| 655 | + if(messageTone) | ||
| 656 | + soundFile = messageTone; | ||
| 657 | } | ||
| 658 | |||
| 659 | var pushClass0AlertScene = function(stageController) { | ||
| 660 | @@ -198,7 +235,8 @@ NotificationAssistant.prototype.renderCl | ||
| 661 | name: Class0AlertStageName, | ||
| 662 | lightweight: true, | ||
| 663 | height: 300, | ||
| 664 | - soundclass: soundClass | ||
| 665 | + soundclass: soundClass, | ||
| 666 | + soundfile: soundFile | ||
| 667 | }, pushClass0AlertScene, 'popupalert'); | ||
| 668 | } | ||
| 669 | |||
| 670 | @@ -253,8 +291,6 @@ NotificationAssistant.prototype.sendNewM | ||
| 671 | var bannerParams = { | ||
| 672 | messageText: notificationText | ||
| 673 | }; | ||
| 674 | - if (this.Messaging.messagingPrefs.enableNotificationSound) | ||
| 675 | - bannerParams.soundClass = "alerts"; | ||
| 676 | var bannerLaunchParams = { | ||
| 677 | chatThreadId: chatThreadId, | ||
| 678 | clearBanner: true | ||
| 679 | @@ -262,10 +298,17 @@ NotificationAssistant.prototype.sendNewM | ||
| 680 | |||
| 681 | if (this.Messaging.DisplayState.isDisplayOn()) { | ||
| 682 | Mojo.Log.info("notificationAssistant - executing full banner notification"); | ||
| 683 | - this.controller.showBanner(bannerParams, bannerLaunchParams, 'chat'); | ||
| 684 | + if (this.Messaging.messagingPrefs.enableNotificationSound) { | ||
| 685 | + var smsid = notificationData.get('address'); | ||
| 686 | + bannerParams.soundClass = "alerts"; | ||
| 687 | + MessagingMojoService.rLookup(smsid,contact,this.doB.bind(this,bannerParams,bannerLaunchParams,'chat'),this.doB.bind(this,bannerParams,bannerLaunchParams,'chat')); | ||
| 688 | + } else { | ||
| 689 | + Mojo.Log.error("Setting banner params"); | ||
| 690 | + this.controller.showBanner(bannerParams, bannerLaunchParams, 'chat'); | ||
| 691 | + } | ||
| 692 | } else if (this.Messaging.messagingPrefs.enableNotificationSound) { | ||
| 693 | - Mojo.Log.info("notificationAssistant - playing sound notification only"); | ||
| 694 | - this.controller.playSoundNotification('alerts',''); | ||
| 695 | + var smsid = notificationData.get('address'); | ||
| 696 | + MessagingMojoService.rLookup(smsid,contact,this.playmsgtone.bind(this),this.playmsgtone.bind(this)); | ||
| 697 | } | ||
| 698 | |||
| 699 | // Store the data so it can be used in the dashboard | ||
| 700 | @@ -324,13 +367,9 @@ NotificationAssistant.prototype.sendNewM | ||
| 701 | // delay creating the dashboard window for the case where the banner is clicked on | ||
| 702 | // to take you to the chat view. This will likely result in the dashboard data | ||
| 703 | // being cleared. If the dashboard data is empty, we do not need to create the dashboard. | ||
| 704 | - if (this.Messaging.DisplayState.isDisplayOn()) { | ||
| 705 | - if (!this.isNewMessageDashboardPending) { | ||
| 706 | - this.isNewMessageDashboardPending = true; | ||
| 707 | - createDashboard.delay(5); | ||
| 708 | - } | ||
| 709 | - } else { | ||
| 710 | - createDashboard(); // if the screen is off, create the dashboard right away | ||
| 711 | + if (!this.isNewMessageDashboardPending) { | ||
| 712 | + this.isNewMessageDashboardPending = true; | ||
| 713 | + createDashboard.delay(5); | ||
| 714 | } | ||
| 715 | } | ||
| 716 | }; |
|   | |||
| 1 | Timestamps all messages with the method used to timestamp messages that show up late | ||
| 2 | |||
| 3 | Modified for 1.2 by StoneRyno | ||
| 4 | |||
| 5 | Index: /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 6 | =================================================================== | ||
| 7 | --- .orig/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 8 | +++ /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js | ||
| 9 | @@ -1303,7 +1303,7 @@ var ChatviewAssistant = Class.create({ | ||
| 10 | |||
| 11 | // if the INCOMING message was sent longer than 10 minutes before it arrived on device, | ||
| 12 | // add sent date to indicate that this delay happened | ||
| 13 | - if(!ChatFlags.isOutgoing(msg.flags) && msg.deviceTimeStamp && msg.timeStamp && (msg.deviceTimeStamp-msg.timeStamp) > (1000*60*10)) { | ||
| 14 | +// if(!ChatFlags.isOutgoing(msg.flags) && msg.deviceTimeStamp && msg.timeStamp && (msg.deviceTimeStamp-msg.timeStamp) > (1000*60*10)) { | ||
| 15 | var d = new Date(); | ||
| 16 | var today = d.getTime(); | ||
| 17 | d.setTime(msg.timeStamp); | ||
| 18 | @@ -1311,10 +1311,10 @@ var ChatviewAssistant = Class.create({ | ||
| 19 | |||
| 20 | // Only show the message sent time if it is less than two days old | ||
| 21 | // from when it arrived on device | ||
| 22 | - if(today-msg.timeStamp <= (1000*60*60*24*2)) { | ||
| 23 | +// if(today-msg.timeStamp <= (1000*60*60*24*2)) { | ||
| 24 | msg.timeStampDeltaMsg = new Template($L("Message Sent: #{dateTime}")).evaluate({dateTime:Mojo.Format.formatDate(sentTimeStamp,'short')}); | ||
| 25 | - } | ||
| 26 | - } | ||
| 27 | +// } | ||
| 28 | +// } | ||
| 29 | |||
| 30 | if (msg.callbackNumber) { | ||
| 31 | msg.callbackNumber = PalmSystem.runTextIndexer(msg.callbackNumber); |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.musicplayer/appinfo.json b/usr/palm/applications/com.palm.app.musicplayer/appinfo.json | ||
| 2 | index 268b023..ddbf5d3 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.musicplayer/appinfo.json | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.musicplayer/appinfo.json | ||
| 5 | @@ -5,5 +5,6 @@ | ||
| 6 | "id": "com.palm.app.musicplayer", | ||
| 7 | "keywords": ["Audio", "Tunes", "Songs"], | ||
| 8 | "miniicon": "images/notification-small-music.png", | ||
| 9 | - "icon": "icon.png" | ||
| 10 | + "icon": "icon.png", | ||
| 11 | + "visible": false | ||
| 12 | } |
nascar/hide-nascar-app.patch
(0 / 13)
|   | |||
| 1 | diff --git a/usr/palm/applications/com.handson.app.nascar/appinfo.json b/usr/palm/applications/com.handson.app.nascar/appinfo.json | ||
| 2 | index 1a4252a..3425a00 100644 | ||
| 3 | --- a/usr/palm/applications/com.handson.app.nascar/appinfo.json | ||
| 4 | +++ b/usr/palm/applications/com.handson.app.nascar/appinfo.json | ||
| 5 | @@ -6,6 +6,7 @@ | ||
| 6 | "icon": "icon.png", | ||
| 7 | "version": "1.14", | ||
| 8 | "vendor": "Hands-On Mobile", | ||
| 9 | - "vendorurl": "http://www.handson.com" | ||
| 10 | + "vendorurl": "http://www.handson.com", | ||
| 11 | + "visible": false | ||
| 12 | } | ||
| 13 |
nfl/hide-nfl-app.patch
(0 / 13)
|   | |||
| 1 | diff --git a/usr/palm/applications/com.handson.app.nfl/appinfo.json b/usr/palm/applications/com.handson.app.nfl/appinfo.json | ||
| 2 | index 1fca174..3d40d04 100644 | ||
| 3 | --- a/usr/palm/applications/com.handson.app.nfl/appinfo.json | ||
| 4 | +++ b/usr/palm/applications/com.handson.app.nfl/appinfo.json | ||
| 5 | @@ -6,6 +6,7 @@ | ||
| 6 | "icon": "icon.png", | ||
| 7 | "version": "1.25", | ||
| 8 | "vendor": "Hands-On Mobile", | ||
| 9 | - "vendorurl": "http://www.handson.com" | ||
| 10 | + "vendorurl": "http://www.handson.com", | ||
| 11 | + "visible": false | ||
| 12 | } | ||
| 13 |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.pdfviewer/app/controllers/document-assistant.js b/usr/palm/applications/com.palm.app.pdfviewer/app/controllers/document-assistant.js | ||
| 2 | index 666d24e..4120555 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.pdfviewer/app/controllers/document-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.pdfviewer/app/controllers/document-assistant.js | ||
| 5 | @@ -220,7 +220,6 @@ var DocumentAssistant = Class.create({ | ||
| 6 | |||
| 7 | orientationChanged: function(orientation) { | ||
| 8 | |||
| 9 | - return; | ||
| 10 | if (this.currentOrientation === orientation) | ||
| 11 | { | ||
| 12 | return; |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.pdfviewer/app/controllers/document-assistant.js b/usr/palm/applications/com.palm.app.pdfviewer/app/controllers/document-assistant.js | ||
| 2 | index 666d24e..4120555 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.pdfviewer/app/controllers/document-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.pdfviewer/app/controllers/document-assistant.js | ||
| 5 | @@ -220,7 +220,6 @@ var DocumentAssistant = Class.create({ | ||
| 6 | |||
| 7 | orientationChanged: function(orientation) { | ||
| 8 | |||
| 9 | - return; | ||
| 10 | if (this.currentOrientation === orientation) | ||
| 11 | { | ||
| 12 | return; |
phone/call-duration.patch
(0 / 13)
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js b/usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 2 | index 10d1d80..1efdb7d 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 5 | @@ -10,7 +10,7 @@ var CalllogAssistant = Class.create({ | ||
| 6 | this.stageController = Mojo.Controller.getAppController().getStageController("PhoneApp"); | ||
| 7 | this.telListener = this.appAssistant.telephonyEventListener; | ||
| 8 | // if it's true, then we hide call length | ||
| 9 | - this.hideduration = this.appAssistant.hideCallLogCallDuration; | ||
| 10 | + this.hideduration = false; | ||
| 11 | this.zeroOffset = new Date(0, 0, 0, 0, 0, 0, 0).getTime(); | ||
| 12 | |||
| 13 | if (contactId !== undefined && contactId !== "") |
|   | |||
| 1 | This patch adds an option to the phone's dropdown menu during a call to view the call history. -skp (www.teckaddict.com) | ||
| 2 | Index: /usr/palm/applications/com.palm.app.phone/app/controllers/activecall-assistant.js | ||
| 3 | =================================================================== | ||
| 4 | --- .orig/usr/palm/applications/com.palm.app.phone/app/controllers/activecall-assistant.js | ||
| 5 | +++ /usr/palm/applications/com.palm.app.phone/app/controllers/activecall-assistant.js | ||
| 6 | @@ -132,6 +132,10 @@ var ActivecallAssistant = Class.create({ | ||
| 7 | var appMenuModel = { | ||
| 8 | visible: true, | ||
| 9 | items: [{ | ||
| 10 | + label: $L('Call History'), | ||
| 11 | + command: 'callhistory' | ||
| 12 | + }, | ||
| 13 | + { | ||
| 14 | label: $L('Sounds & Ringtones'), | ||
| 15 | command: 'ringtones' | ||
| 16 | }] | ||
| 17 | @@ -143,6 +147,9 @@ var ActivecallAssistant = Class.create({ | ||
| 18 | handleCommand: function(event) { | ||
| 19 | if (event.type == Mojo.Event.command) { | ||
| 20 | switch (event.command) { | ||
| 21 | + case 'callhistory': | ||
| 22 | + this.appAssistant.showCallLog(); | ||
| 23 | + break; | ||
| 24 | case 'ringtones': | ||
| 25 | MenuController.showRingtones(this.controller.stageController); | ||
| 26 | break; | ||
| 27 | Index: /usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 28 | =================================================================== | ||
| 29 | --- .orig/usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 30 | +++ /usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 31 | @@ -169,7 +169,12 @@ var CalllogAssistant = Class.create({ | ||
| 32 | // manually deal with back; always return to dialpad even if there's | ||
| 33 | // no dialpad scene yet created | ||
| 34 | QDLogger.log( "CalllogAssistant#handleCommand", "back!"); | ||
| 35 | - this.appAssistant.showDialpad(); | ||
| 36 | + if (this.telListener.callExists() == true) { | ||
| 37 | + this.appAssistant.showActiveCall(); | ||
| 38 | + } | ||
| 39 | + else { | ||
| 40 | + this.appAssistant.showDialpad(); | ||
| 41 | + } | ||
| 42 | event.stopPropagation(); | ||
| 43 | Event.stop(event); | ||
| 44 | } else if (event.type == Mojo.Event.command) { | ||
| 45 | @@ -210,7 +215,12 @@ var CalllogAssistant = Class.create({ | ||
| 46 | }, | ||
| 47 | |||
| 48 | switchToDialpad: function(){ | ||
| 49 | - this.appAssistant.showDialpad(); | ||
| 50 | + if (this.telListener.callExists() == true) { | ||
| 51 | + this.appAssistant.showActiveCall(); | ||
| 52 | + } | ||
| 53 | + else { | ||
| 54 | + this.appAssistant.showDialpad(); | ||
| 55 | + } | ||
| 56 | }, | ||
| 57 | |||
| 58 | /* TODO FIXME |
|   | |||
| 1 | This will turn off sound and enable vibration of the dialpad. | ||
| 2 | |||
| 3 | Index: /usr/palm/applications/com.palm.app.phone/app/controllers/dialpad-assistant.js | ||
| 4 | --- .orig/usr/palm/applications/com.palm.app.phone/app/controllers/dialpad-assistant.js | ||
| 5 | +++ /usr/palm/applications/com.palm.app.phone/app/controllers/dialpad-assistant.js | ||
| 6 | @@ -634,7 +634,7 @@ var DialpadAssistant = Class.create({ | ||
| 7 | numberClick: function(event, key){ | ||
| 8 | |||
| 9 | if (key) { | ||
| 10 | - TelephonyCommands.sendDTMF(key, true); | ||
| 11 | + this.controller.serviceRequest("palm://com.palm.vibrate", {method: 'vibrate', parameters: { 'period': 0,'duration': 100 }}); | ||
| 12 | this.formatAndUpdateDialString(key,event); | ||
| 13 | if (this.dialString.length == 1 && this.speedDialString.length == 0) { | ||
| 14 | QDLogger.log( "DialpadAssistant#numberClick", "about to lookup speed dial"); | ||
| 15 | @@ -929,7 +929,7 @@ var DialpadAssistant = Class.create({ | ||
| 16 | if (this.isValidToneKey(this.pressedKey) | ||
| 17 | && this.pressedKey !== Mojo.Char.backspace | ||
| 18 | && (!this.appAssistant.lookupOnKeyPress || this.keyMapOpt.get(evt.keyIdentifier))) { | ||
| 19 | - TelephonyCommands.sendDTMF(this.pressedKey, true); | ||
| 20 | + this.controller.serviceRequest("palm://com.palm.vibrate", {method: 'vibrate', parameters: { 'period': 0,'duration': 100 }}); | ||
| 21 | } | ||
| 22 | |||
| 23 | Event.stop(evt); |
|   | |||
| 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({ | ||
| 6 | |||
| 7 | this.voiceRoamingChoices = [ | ||
| 8 | {label: this.carrierOnlyLabel,value: "homeonly"}, | ||
| 9 | - {label : $L("Automatic"),value: "any"} | ||
| 10 | + {label : $L("Automatic"),value: "any"}, | ||
| 11 | + {label : "Roam Only",value: "roamonly"} | ||
| 12 | ], | ||
| 13 | |||
| 14 | 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(); |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js b/usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 2 | index 10d1d80..1efdb7d 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 5 | @@ -10,7 +10,7 @@ var CalllogAssistant = Class.create({ | ||
| 6 | this.stageController = Mojo.Controller.getAppController().getStageController("PhoneApp"); | ||
| 7 | this.telListener = this.appAssistant.telephonyEventListener; | ||
| 8 | // if it's true, then we hide call length | ||
| 9 | - this.hideduration = this.appAssistant.hideCallLogCallDuration; | ||
| 10 | + this.hideduration = false; | ||
| 11 | this.zeroOffset = new Date(0, 0, 0, 0, 0, 0, 0).getTime(); | ||
| 12 | |||
| 13 | if (contactId !== undefined && contactId !== "") |
|   | |||
| 1 | This patch adds an option to the phone's dropdown menu during a call to view the call history. -skp (www.teckaddict.com) | ||
| 2 | Index: /usr/palm/applications/com.palm.app.phone/app/controllers/activecall-assistant.js | ||
| 3 | =================================================================== | ||
| 4 | --- .orig/usr/palm/applications/com.palm.app.phone/app/controllers/activecall-assistant.js | ||
| 5 | +++ /usr/palm/applications/com.palm.app.phone/app/controllers/activecall-assistant.js | ||
| 6 | @@ -132,6 +132,10 @@ var ActivecallAssistant = Class.create({ | ||
| 7 | var appMenuModel = { | ||
| 8 | visible: true, | ||
| 9 | items: [{ | ||
| 10 | + label: $L('Call History'), | ||
| 11 | + command: 'callhistory' | ||
| 12 | + }, | ||
| 13 | + { | ||
| 14 | label: $L('Sounds & Ringtones'), | ||
| 15 | command: 'ringtones' | ||
| 16 | }] | ||
| 17 | @@ -143,6 +147,9 @@ var ActivecallAssistant = Class.create({ | ||
| 18 | handleCommand: function(event) { | ||
| 19 | if (event.type == Mojo.Event.command) { | ||
| 20 | switch (event.command) { | ||
| 21 | + case 'callhistory': | ||
| 22 | + this.appAssistant.showCallLog(); | ||
| 23 | + break; | ||
| 24 | case 'ringtones': | ||
| 25 | MenuController.showRingtones(this.controller.stageController); | ||
| 26 | break; | ||
| 27 | Index: /usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 28 | =================================================================== | ||
| 29 | --- .orig/usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 30 | +++ /usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 31 | @@ -169,7 +169,12 @@ var CalllogAssistant = Class.create({ | ||
| 32 | // manually deal with back; always return to dialpad even if there's | ||
| 33 | // no dialpad scene yet created | ||
| 34 | QDLogger.log( "CalllogAssistant#handleCommand", "back!"); | ||
| 35 | - this.appAssistant.showDialpad(); | ||
| 36 | + if (this.telListener.callExists() == true) { | ||
| 37 | + this.appAssistant.showActiveCall(); | ||
| 38 | + } | ||
| 39 | + else { | ||
| 40 | + this.appAssistant.showDialpad(); | ||
| 41 | + } | ||
| 42 | event.stopPropagation(); | ||
| 43 | Event.stop(event); | ||
| 44 | } else if (event.type == Mojo.Event.command) { | ||
| 45 | @@ -210,7 +215,12 @@ var CalllogAssistant = Class.create({ | ||
| 46 | }, | ||
| 47 | |||
| 48 | switchToDialpad: function(){ | ||
| 49 | - this.appAssistant.showDialpad(); | ||
| 50 | + if (this.telListener.callExists() == true) { | ||
| 51 | + this.appAssistant.showActiveCall(); | ||
| 52 | + } | ||
| 53 | + else { | ||
| 54 | + this.appAssistant.showDialpad(); | ||
| 55 | + } | ||
| 56 | }, | ||
| 57 | |||
| 58 | /* TODO FIXME |
|   | |||
| 1 | This will turn off sound and enable vibration of the dialpad. | ||
| 2 | |||
| 3 | Index: /usr/palm/applications/com.palm.app.phone/app/controllers/dialpad-assistant.js | ||
| 4 | --- .orig/usr/palm/applications/com.palm.app.phone/app/controllers/dialpad-assistant.js | ||
| 5 | +++ /usr/palm/applications/com.palm.app.phone/app/controllers/dialpad-assistant.js | ||
| 6 | @@ -634,7 +634,7 @@ var DialpadAssistant = Class.create({ | ||
| 7 | numberClick: function(event, key){ | ||
| 8 | |||
| 9 | if (key) { | ||
| 10 | - TelephonyCommands.sendDTMF(key, true); | ||
| 11 | + this.controller.serviceRequest("palm://com.palm.vibrate", {method: 'vibrate', parameters: { 'period': 0,'duration': 100 }}); | ||
| 12 | this.formatAndUpdateDialString(key,event); | ||
| 13 | if (this.dialString.length == 1 && this.speedDialString.length == 0) { | ||
| 14 | QDLogger.log( "DialpadAssistant#numberClick", "about to lookup speed dial"); | ||
| 15 | @@ -929,7 +929,7 @@ var DialpadAssistant = Class.create({ | ||
| 16 | if (this.isValidToneKey(this.pressedKey) | ||
| 17 | && this.pressedKey !== Mojo.Char.backspace | ||
| 18 | && (!this.appAssistant.lookupOnKeyPress || this.keyMapOpt.get(evt.keyIdentifier))) { | ||
| 19 | - TelephonyCommands.sendDTMF(this.pressedKey, true); | ||
| 20 | + this.controller.serviceRequest("palm://com.palm.vibrate", {method: 'vibrate', parameters: { 'period': 0,'duration': 100 }}); | ||
| 21 | } | ||
| 22 | |||
| 23 | Event.stop(evt); |
|   | |||
| 1 | Adds the State name to all incoming calls. | ||
| 2 | Index: /usr/palm/applications/com.palm.app.phone/app/controllers/announcer-assistant.js | ||
| 3 | =================================================================== | ||
| 4 | --- .orig/usr/palm/applications/com.palm.app.phone/app/controllers/announcer-assistant.js | ||
| 5 | +++ /usr/palm/applications/com.palm.app.phone/app/controllers/announcer-assistant.js | ||
| 6 | @@ -309,6 +309,8 @@ var AnnouncerAssistant = Class.create({ | ||
| 7 | call.displayName = this.getDisplayNameFromContact(contact); | ||
| 8 | if (!(call.displayName)) { | ||
| 9 | call.displayName = FormatPhoneNumber(number); | ||
| 10 | + var message = Messages.contactWithLabel; | ||
| 11 | + call.displayName = new Template(message).evaluate({"contact":call.displayName, "label":RegionLookup.regionFromPhoneNumber(number)}); | ||
| 12 | } else if (contact.labelFormatted) { | ||
| 13 | var message = Messages.contactWithLabel; | ||
| 14 | call.displayName = new Template(message).evaluate({"contact":call.displayName, "label":contact.labelFormatted}); | ||
| 15 | Index: /usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 16 | =================================================================== | ||
| 17 | --- .orig/usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 18 | +++ /usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 19 | @@ -429,7 +429,7 @@ var CalllogAssistant = Class.create({ | ||
| 20 | //Mojo.Timing.resume("format#label"); | ||
| 21 | // format phone number label | ||
| 22 | if (item.label == -1) { | ||
| 23 | - item.label = ''; | ||
| 24 | + item.label = RegionLookup.regionFromPhoneNumber(item.number); | ||
| 25 | } else { | ||
| 26 | var newLabel = Messages.phoneLabel[item.label]; | ||
| 27 | if(newLabel) { | ||
| 28 | Index: /usr/palm/applications/com.palm.app.phone/app/controllers/incomingcall-assistant.js | ||
| 29 | =================================================================== | ||
| 30 | --- .orig/usr/palm/applications/com.palm.app.phone/app/controllers/incomingcall-assistant.js | ||
| 31 | +++ /usr/palm/applications/com.palm.app.phone/app/controllers/incomingcall-assistant.js | ||
| 32 | @@ -159,7 +159,7 @@ var IncomingcallAssistant = Class.create | ||
| 33 | } else if (contact.cnapName && contact.cnapName !== "unknown") { | ||
| 34 | name = contact.cnapName; | ||
| 35 | } else { | ||
| 36 | - name = Messages.unknownCaller; | ||
| 37 | + name = RegionLookup.regionFromPhoneNumber(number); | ||
| 38 | } | ||
| 39 | |||
| 40 | this.fromContacts = fromContacts; | ||
| 41 | Index: /usr/palm/applications/com.palm.app.phone/app/controllers/missedcall-assistant.js | ||
| 42 | =================================================================== | ||
| 43 | --- .orig/usr/palm/applications/com.palm.app.phone/app/controllers/missedcall-assistant.js | ||
| 44 | +++ /usr/palm/applications/com.palm.app.phone/app/controllers/missedcall-assistant.js | ||
| 45 | @@ -61,7 +61,7 @@ var MissedcallAssistant = Class.create({ | ||
| 46 | this.pictureLoc = this.formatPicture(); | ||
| 47 | |||
| 48 | // ensure empty label is displayed as empty | ||
| 49 | - this.displayLabel = (this.contact.labelFormatted ? this.contact.labelFormatted : ""); | ||
| 50 | + this.displayLabel = (this.contact.labelFormatted ? this.contact.labelFormatted : RegionLookup.regionFromPhoneNumber(number)); | ||
| 51 | var tempDateString = Mojo.Format.formatDate(new Date(parseInt(timeStamp)), {time:'short'}); | ||
| 52 | this.message = message.interpolate({timeStamp: tempDateString}); | ||
| 53 | QDLogger.log( "MissedcallAssistant::updateFields", "end"); | ||
| 54 | Index: /usr/palm/applications/com.palm.app.phone/app/models/FormattedCall.js | ||
| 55 | =================================================================== | ||
| 56 | --- .orig/usr/palm/applications/com.palm.app.phone/app/models/FormattedCall.js | ||
| 57 | +++ /usr/palm/applications/com.palm.app.phone/app/models/FormattedCall.js | ||
| 58 | @@ -50,7 +50,7 @@ var FormattedCall = Class.create({ | ||
| 59 | this.id = callMsg[lineNumber].id; | ||
| 60 | |||
| 61 | // ensure empty label is displayed as empty | ||
| 62 | - this.displayLabel = (callMsg[lineNumber].contact.labelFormatted ? callMsg[lineNumber].contact.labelFormatted : ""); | ||
| 63 | + this.displayLabel = (callMsg[lineNumber].contact.labelFormatted ? callMsg[lineNumber].contact.labelFormatted : RegionLookup.regionFromPhoneNumber(callMsg[lineNumber].number)); | ||
| 64 | this.numberCaption = ((callMsg[lineNumber].contact.name !== undefined || callMsg[lineNumber].contact.id !== undefined) ? this.number : " "); | ||
| 65 | |||
| 66 | }, |
|   | |||
| 1 | Index: /usr/palm/applications/com.palm.app.phone/app/models/FormattedCall.js | ||
| 2 | =================================================================== | ||
| 3 | --- .orig/usr/palm/applications/com.palm.app.phone/app/models/FormattedCall.js | ||
| 4 | +++ /usr/palm/applications/com.palm.app.phone/app/models/FormattedCall.js | ||
| 5 | @@ -12,6 +12,22 @@ var FormattedCall = Class.create({ | ||
| 6 | else | ||
| 7 | this.formatCall(id, lineState); | ||
| 8 | }, | ||
| 9 | + | ||
| 10 | + getSSStatus: function() { | ||
| 11 | + this.getSSStatusReq = AudioService.getSystemSoundStatus(this.getSSStatusQuery.bind(this)); | ||
| 12 | + }, | ||
| 13 | + | ||
| 14 | + getSSStatusQuery: function(payload) { | ||
| 15 | + if (!(payload === undefined)) { | ||
| 16 | + Mojo.Log.error("SVC Initial Value: %j",payload.volume); | ||
| 17 | + SSVolume = payload.volume; | ||
| 18 | + AudioService.setSystemVolume(0,null,null); | ||
| 19 | + } else { | ||
| 20 | + Mojo.Log.error("SVC No initial volume. Setting to 50."); | ||
| 21 | + SSVolume = 50; | ||
| 22 | + AudioService.setSystemVolume(0,null,null); | ||
| 23 | + } | ||
| 24 | + }, | ||
| 25 | |||
| 26 | // given the line number and the service's list of calls | ||
| 27 | // build object whose properties will be Mojo.Rendered into | ||
| 28 | @@ -19,6 +35,10 @@ var FormattedCall = Class.create({ | ||
| 29 | formatConferenceCall: function(lineNumber, callMsg) { | ||
| 30 | QDLogger.log( "formatConferenceCall"); | ||
| 31 | this.state = this.formatState(callMsg[lineNumber].state); | ||
| 32 | + if (this.state === "Ended" || this.state === "Ending") { | ||
| 33 | + Mojo.Log.error("SVC resetting system volume for conference call"); | ||
| 34 | + AudioService.setSystemVolume(SSVolume,null,null); | ||
| 35 | + } | ||
| 36 | this.conferenceLabel = this.formatConferenceLabel(); | ||
| 37 | // TODO: not sure why i didn't have this in the first place | ||
| 38 | this.contact = this.conferenceLabel; | ||
| 39 | @@ -49,6 +69,24 @@ var FormattedCall = Class.create({ | ||
| 40 | this.lineNumber = lineNumber; | ||
| 41 | this.id = callMsg[lineNumber].id; | ||
| 42 | |||
| 43 | + try { | ||
| 44 | + SSVolume=SSVolume/1 | ||
| 45 | + } catch(err) { | ||
| 46 | + SSVolume = 101; | ||
| 47 | + } | ||
| 48 | + if (this.lineNumber == '0' && this.state == "") { | ||
| 49 | + if (SSVolume===101) { | ||
| 50 | + Mojo.Log.error("SVC setting system volume to 0"); | ||
| 51 | + this.getSSStatus(); | ||
| 52 | + } | ||
| 53 | + } | ||
| 54 | + if (this.state == "Ended" || this.state == "Ending") { | ||
| 55 | + if (SSVolume < 101) { | ||
| 56 | + Mojo.Log.error("SVC resetting system volume to %j",SSVolume); | ||
| 57 | + AudioService.setSystemVolume(SSVolume,null,null); | ||
| 58 | + SSVolume = 101; | ||
| 59 | + } | ||
| 60 | + } | ||
| 61 | // ensure empty label is displayed as empty | ||
| 62 | this.displayLabel = (callMsg[lineNumber].contact.labelFormatted ? callMsg[lineNumber].contact.labelFormatted : ""); | ||
| 63 | this.numberCaption = ((callMsg[lineNumber].contact.name !== undefined || callMsg[lineNumber].contact.id !== undefined) ? this.number : " "); | ||
| 64 | Index: /usr/palm/applications/com.palm.app.phone/app/models/audio-luna-service.js | ||
| 65 | =================================================================== | ||
| 66 | --- /dev/null | ||
| 67 | +++ /usr/palm/applications/com.palm.app.phone/app/models/audio-luna-service.js | ||
| 68 | @@ -0,0 +1,35 @@ | ||
| 69 | +/* Copyright 2009 Palm, Inc. All rights reserved. */ | ||
| 70 | + | ||
| 71 | +var AudioService = Class.create({ | ||
| 72 | + initialize: function() { | ||
| 73 | + } | ||
| 74 | +}); | ||
| 75 | + | ||
| 76 | +AudioService.setSystemVolume = function(volume,callback, sceneController) { | ||
| 77 | + var request = new Mojo.Service.Request(AudioService.system_identifier, { | ||
| 78 | + method: 'setVolume', | ||
| 79 | + parameters: {volume:volume }, | ||
| 80 | + onSuccess: function(response) { | ||
| 81 | + if(callback) | ||
| 82 | + callback(response); | ||
| 83 | + }, | ||
| 84 | + onFailure: function(response) { | ||
| 85 | + if(callback) | ||
| 86 | + callback(response); | ||
| 87 | + }, | ||
| 88 | + }); | ||
| 89 | + return request; | ||
| 90 | +} | ||
| 91 | + | ||
| 92 | +AudioService.getSystemSoundStatus = function(callback) { | ||
| 93 | + var request = new Mojo.Service.Request(AudioService.system_identifier, { | ||
| 94 | + method: 'status', | ||
| 95 | + parameters: {"subscribe": false}, | ||
| 96 | + onSuccess: callback, | ||
| 97 | + onFailure: callback | ||
| 98 | + }); | ||
| 99 | + return request; | ||
| 100 | +} | ||
| 101 | + | ||
| 102 | +AudioService.system_identifier = 'palm://com.palm.audio/system'; | ||
| 103 | + | ||
| 104 | Index: /usr/palm/applications/com.palm.app.phone/sources.json | ||
| 105 | =================================================================== | ||
| 106 | --- .orig/usr/palm/applications/com.palm.app.phone/sources.json | ||
| 107 | +++ /usr/palm/applications/com.palm.app.phone/sources.json | ||
| 108 | @@ -1,5 +1,8 @@ | ||
| 109 | [ | ||
| 110 | { | ||
| 111 | + "source": "app\/models\/audio-luna-service.js" | ||
| 112 | + }, | ||
| 113 | + { | ||
| 114 | "source": "app\/models\/QDLogger.js" | ||
| 115 | }, | ||
| 116 | { |
phone/phonenoalert.patch
(0 / 116)
|   | |||
| 1 | Index: /usr/palm/applications/com.palm.app.phone/app/models/FormattedCall.js | ||
| 2 | =================================================================== | ||
| 3 | --- .orig/usr/palm/applications/com.palm.app.phone/app/models/FormattedCall.js | ||
| 4 | +++ /usr/palm/applications/com.palm.app.phone/app/models/FormattedCall.js | ||
| 5 | @@ -12,6 +12,22 @@ var FormattedCall = Class.create({ | ||
| 6 | else | ||
| 7 | this.formatCall(id, lineState); | ||
| 8 | }, | ||
| 9 | + | ||
| 10 | + getSSStatus: function() { | ||
| 11 | + this.getSSStatusReq = AudioService.getSystemSoundStatus(this.getSSStatusQuery.bind(this)); | ||
| 12 | + }, | ||
| 13 | + | ||
| 14 | + getSSStatusQuery: function(payload) { | ||
| 15 | + if (!(payload === undefined)) { | ||
| 16 | + Mojo.Log.error("SVC Initial Value: %j",payload.volume); | ||
| 17 | + SSVolume = payload.volume; | ||
| 18 | + AudioService.setSystemVolume(0,null,null); | ||
| 19 | + } else { | ||
| 20 | + Mojo.Log.error("SVC No initial volume. Setting to 50."); | ||
| 21 | + SSVolume = 50; | ||
| 22 | + AudioService.setSystemVolume(0,null,null); | ||
| 23 | + } | ||
| 24 | + }, | ||
| 25 | |||
| 26 | // given the line number and the service's list of calls | ||
| 27 | // build object whose properties will be Mojo.Rendered into | ||
| 28 | @@ -19,6 +35,10 @@ var FormattedCall = Class.create({ | ||
| 29 | formatConferenceCall: function(lineNumber, callMsg) { | ||
| 30 | QDLogger.log( "formatConferenceCall"); | ||
| 31 | this.state = this.formatState(callMsg[lineNumber].state); | ||
| 32 | + if (this.state === "Ended" || this.state === "Ending") { | ||
| 33 | + Mojo.Log.error("SVC resetting system volume for conference call"); | ||
| 34 | + AudioService.setSystemVolume(SSVolume,null,null); | ||
| 35 | + } | ||
| 36 | this.conferenceLabel = this.formatConferenceLabel(); | ||
| 37 | // TODO: not sure why i didn't have this in the first place | ||
| 38 | this.contact = this.conferenceLabel; | ||
| 39 | @@ -49,6 +69,24 @@ var FormattedCall = Class.create({ | ||
| 40 | this.lineNumber = lineNumber; | ||
| 41 | this.id = callMsg[lineNumber].id; | ||
| 42 | |||
| 43 | + try { | ||
| 44 | + SSVolume=SSVolume/1 | ||
| 45 | + } catch(err) { | ||
| 46 | + SSVolume = 101; | ||
| 47 | + } | ||
| 48 | + if (this.lineNumber == '0' && this.state == "") { | ||
| 49 | + if (SSVolume===101) { | ||
| 50 | + Mojo.Log.error("SVC setting system volume to 0"); | ||
| 51 | + this.getSSStatus(); | ||
| 52 | + } | ||
| 53 | + } | ||
| 54 | + if (this.state == "Ended" || this.state == "Ending") { | ||
| 55 | + if (SSVolume < 101) { | ||
| 56 | + Mojo.Log.error("SVC resetting system volume to %j",SSVolume); | ||
| 57 | + AudioService.setSystemVolume(SSVolume,null,null); | ||
| 58 | + SSVolume = 101; | ||
| 59 | + } | ||
| 60 | + } | ||
| 61 | // ensure empty label is displayed as empty | ||
| 62 | this.displayLabel = (callMsg[lineNumber].contact.labelFormatted ? callMsg[lineNumber].contact.labelFormatted : ""); | ||
| 63 | this.numberCaption = ((callMsg[lineNumber].contact.name !== undefined || callMsg[lineNumber].contact.id !== undefined) ? this.number : " "); | ||
| 64 | Index: /usr/palm/applications/com.palm.app.phone/app/models/audio-luna-service.js | ||
| 65 | =================================================================== | ||
| 66 | --- /dev/null | ||
| 67 | +++ /usr/palm/applications/com.palm.app.phone/app/models/audio-luna-service.js | ||
| 68 | @@ -0,0 +1,35 @@ | ||
| 69 | +/* Copyright 2009 Palm, Inc. All rights reserved. */ | ||
| 70 | + | ||
| 71 | +var AudioService = Class.create({ | ||
| 72 | + initialize: function() { | ||
| 73 | + } | ||
| 74 | +}); | ||
| 75 | + | ||
| 76 | +AudioService.setSystemVolume = function(volume,callback, sceneController) { | ||
| 77 | + var request = new Mojo.Service.Request(AudioService.system_identifier, { | ||
| 78 | + method: 'setVolume', | ||
| 79 | + parameters: {volume:volume }, | ||
| 80 | + onSuccess: function(response) { | ||
| 81 | + if(callback) | ||
| 82 | + callback(response); | ||
| 83 | + }, | ||
| 84 | + onFailure: function(response) { | ||
| 85 | + if(callback) | ||
| 86 | + callback(response); | ||
| 87 | + }, | ||
| 88 | + }); | ||
| 89 | + return request; | ||
| 90 | +} | ||
| 91 | + | ||
| 92 | +AudioService.getSystemSoundStatus = function(callback) { | ||
| 93 | + var request = new Mojo.Service.Request(AudioService.system_identifier, { | ||
| 94 | + method: 'status', | ||
| 95 | + parameters: {"subscribe": false}, | ||
| 96 | + onSuccess: callback, | ||
| 97 | + onFailure: callback | ||
| 98 | + }); | ||
| 99 | + return request; | ||
| 100 | +} | ||
| 101 | + | ||
| 102 | +AudioService.system_identifier = 'palm://com.palm.audio/system'; | ||
| 103 | + | ||
| 104 | Index: /usr/palm/applications/com.palm.app.phone/sources.json | ||
| 105 | =================================================================== | ||
| 106 | --- .orig/usr/palm/applications/com.palm.app.phone/sources.json | ||
| 107 | +++ /usr/palm/applications/com.palm.app.phone/sources.json | ||
| 108 | @@ -1,5 +1,8 @@ | ||
| 109 | [ | ||
| 110 | { | ||
| 111 | + "source": "app\/models\/audio-luna-service.js" | ||
| 112 | + }, | ||
| 113 | + { | ||
| 114 | "source": "app\/models\/QDLogger.js" | ||
| 115 | }, | ||
| 116 | { |
phone/radiopower.patch
(0 / 160)
|   | |||
| 1 | Index: /usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 2 | =================================================================== | ||
| 3 | --- .orig/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 4 | +++ /usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 5 | @@ -817,6 +817,8 @@ handletelephonyNotifications: function(p | ||
| 6 | this.callForwardNotificationSession = null; | ||
| 7 | } | ||
| 8 | } | ||
| 9 | + var stageController = Mojo.Controller.getAppController().getStageProxy("DeviceMenu"); | ||
| 10 | + stageController.delegateToSceneAssistant("updatePhone"); | ||
| 11 | } | ||
| 12 | else if (payload.eventNetwork && this.phoneRadioState) { | ||
| 13 | var networkMsg = payload.eventNetwork; | ||
| 14 | @@ -2647,6 +2649,10 @@ getCurrentWiFiState: function() { | ||
| 15 | return this.wifiState; | ||
| 16 | }, | ||
| 17 | |||
| 18 | +getCurrentPhoneState: function() { | ||
| 19 | + return this.phoneRadioState; | ||
| 20 | +}, | ||
| 21 | + | ||
| 22 | setDeviceMenuAssistant: function(menuassistant) { | ||
| 23 | this.deviceMenuAssistant = menuassistant; | ||
| 24 | }, | ||
| 25 | Index: /usr/lib/luna/system/luna-systemui/app/controllers/devicemenu-assistant.js | ||
| 26 | =================================================================== | ||
| 27 | --- .orig/usr/lib/luna/system/luna-systemui/app/controllers/devicemenu-assistant.js | ||
| 28 | +++ /usr/lib/luna/system/luna-systemui/app/controllers/devicemenu-assistant.js | ||
| 29 | @@ -1,6 +1,6 @@ | ||
| 30 | /* Copyright 2009 Palm, Inc. All rights reserved. */ | ||
| 31 | |||
| 32 | -var RadioState = new Hash({wifi: undefined, bluetooth: undefined}); | ||
| 33 | +var RadioState = new Hash({wifi: undefined, bluetooth: undefined, phone: undefined}); | ||
| 34 | |||
| 35 | var DevicemenuAssistant = Class.create({ | ||
| 36 | |||
| 37 | @@ -39,6 +39,8 @@ var DevicemenuAssistant = Class.create({ | ||
| 38 | this.drawerModel = {myOpenProperty:false}; | ||
| 39 | this.controller.setupWidget('wifidetails', {modelProperty:'myOpenProperty'}, this.drawerModel); | ||
| 40 | this.controller.setupWidget('btdetails', {modelProperty:'myOpenProperty'}, this.drawerModel); | ||
| 41 | + this.controller.setupWidget('phonedetails', {modelProperty:'myOpenProperty'}, this.drawerModel); | ||
| 42 | + this.phonedrawer = this.controller.get('phonedetails') | ||
| 43 | this.wifidrawer = this.controller.get('wifidetails'); | ||
| 44 | this.btdrawer = this.controller.get('btdetails'); | ||
| 45 | |||
| 46 | @@ -95,6 +97,17 @@ var DevicemenuAssistant = Class.create({ | ||
| 47 | else | ||
| 48 | this.controller.get('wifimsg').innerHTML = wifistate.escapeHTML(); | ||
| 49 | } | ||
| 50 | + | ||
| 51 | + var phonestate = this.barAssistant.getCurrentPhoneState(); | ||
| 52 | + if(phonestate === 'Off') { | ||
| 53 | + this.controller.get('phonemsg').innerHTML = $L('Off'); | ||
| 54 | + RadioState.set('phone',false); | ||
| 55 | + } | ||
| 56 | + else { | ||
| 57 | + this.controller.get('phonemsg').innerHTML = $L('On'); | ||
| 58 | + RadioState.set('phone',true); | ||
| 59 | + } | ||
| 60 | + | ||
| 61 | this.controller.listen(this.controller.document, Mojo.Event.deactivate, this.close.bindAsEventListener(this)); | ||
| 62 | this.isVisible = true; | ||
| 63 | |||
| 64 | @@ -118,6 +131,8 @@ var DevicemenuAssistant = Class.create({ | ||
| 65 | this.controller.get('btlist').addEventListener(Mojo.Event.listTap,this.handleBTTap.bindAsEventListener(this)); | ||
| 66 | this.controller.get('dm_wifi').addEventListener(Mojo.Event.tap, this.togglewifiList.bindAsEventListener(this)); | ||
| 67 | this.controller.get('dm_bluetooth').addEventListener(Mojo.Event.tap, this.togglebluetoothList.bindAsEventListener(this)); | ||
| 68 | + this.controller.get('dm_phone').addEventListener(Mojo.Event.tap, this.togglePhoneList.bindAsEventListener(this)); | ||
| 69 | + this.controller.get('phone_radio').addEventListener(Mojo.Event.tap, this.togglePhoneRadio.bindAsEventListener(this)); | ||
| 70 | this.controller.get('wifi_radio').addEventListener(Mojo.Event.tap, this.toggleWifiRadio.bindAsEventListener(this)); | ||
| 71 | this.controller.get('bt_radio').addEventListener(Mojo.Event.tap, this.toggleBTRadio.bindAsEventListener(this)); | ||
| 72 | this.controller.get('bt_pref').addEventListener(Mojo.Event.tap,this.handleBluetoothLaunch.bindAsEventListener(this)); | ||
| 73 | @@ -177,6 +192,49 @@ var DevicemenuAssistant = Class.create({ | ||
| 74 | } | ||
| 75 | this.apModeInProgress = false; | ||
| 76 | }, | ||
| 77 | + | ||
| 78 | + | ||
| 79 | + updatePhone: function() { | ||
| 80 | + if(this.barAssistant.getCurrentPhoneState()) { | ||
| 81 | + this.controller.get('phonemsg').innerHTML = $L('On'); | ||
| 82 | + this.controller.get('phone_radio').innerHTML = $L('Turn off Phone'); | ||
| 83 | + RadioState.set('phone', true); | ||
| 84 | + } | ||
| 85 | + else { | ||
| 86 | + this.controller.get('phonemsg').innerHTML = $L('Off'); | ||
| 87 | + this.controller.get('phone_radio').innerHTML = $L('Turn on Phone'); | ||
| 88 | + RadioState.set('phone', false); | ||
| 89 | + } | ||
| 90 | + }, | ||
| 91 | + | ||
| 92 | + togglePhoneRadio: function(event) { | ||
| 93 | + this.serviceRequest = new Mojo.Service.Request("palm://com.palm.vibrate", { | ||
| 94 | + method: 'vibrate', parameters: { 'period': 0,'duration': 250 } | ||
| 95 | + }); | ||
| 96 | + if(RadioState.get('phone')) | ||
| 97 | + TelephonyService.tempPowerSet('off',false,null,null); | ||
| 98 | + else | ||
| 99 | + TelephonyService.tempPowerSet('on',false,null,null); | ||
| 100 | + this.toggleDeviceMenu(); | ||
| 101 | + }, | ||
| 102 | + | ||
| 103 | + togglePhoneList: function(event) { | ||
| 104 | + if(this.apModeInProgress) | ||
| 105 | + return; | ||
| 106 | + | ||
| 107 | + if (this.phonedrawer.mojo.getOpenState()) { | ||
| 108 | + this.controller.hideWidgetContainer(this.controller.get('phonedetails')); | ||
| 109 | + } | ||
| 110 | + else { | ||
| 111 | + if(RadioState.get('phone')) | ||
| 112 | + this.controller.get('phone_radio').innerHTML = $L('Turn off Phone'); | ||
| 113 | + else | ||
| 114 | + this.controller.get('phone_radio').innerHTML = $L('Turn on Phone'); | ||
| 115 | + | ||
| 116 | + this.controller.showWidgetContainer(this.controller.get('phonedetails')); | ||
| 117 | + } | ||
| 118 | + this.phonedrawer.mojo.setOpenState(!this.phonedrawer.mojo.getOpenState()); | ||
| 119 | + }, | ||
| 120 | |||
| 121 | toggleBTRadio: function(event) { | ||
| 122 | if(RadioState.get('bluetooth')) { | ||
| 123 | @@ -891,6 +949,10 @@ var DevicemenuAssistant = Class.create({ | ||
| 124 | |||
| 125 | close: function() { | ||
| 126 | |||
| 127 | + if(this.phonedrawer.mojo.getOpenState()) { | ||
| 128 | + this.controller.hideWidgetContainer(this.controller.get('phonedetails')); | ||
| 129 | + this.phonedrawer.mojo.setOpenState(false); | ||
| 130 | + } | ||
| 131 | if (this.btdrawer.mojo.getOpenState()) { | ||
| 132 | this.clearBTList(); | ||
| 133 | this.controller.hideWidgetContainer(this.controller.get('btdetails')); | ||
| 134 | Index: /usr/lib/luna/system/luna-systemui/app/views/devicemenu/devicemenu-scene.html | ||
| 135 | =================================================================== | ||
| 136 | --- .orig/usr/lib/luna/system/luna-systemui/app/views/devicemenu/devicemenu-scene.html | ||
| 137 | +++ /usr/lib/luna/system/luna-systemui/app/views/devicemenu/devicemenu-scene.html | ||
| 138 | @@ -94,6 +94,22 @@ | ||
| 139 | |||
| 140 | <div class="palm-section-divider"></div> | ||
| 141 | |||
| 142 | + <div class="palm-row" id="dm_phone" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper"> | ||
| 143 | + <div class="title truncating-text"> | ||
| 144 | + <div class="label right" id="phonemsg"> </div> | ||
| 145 | + <span x-mojo-loc=''>Phone</span> | ||
| 146 | + </div> | ||
| 147 | + </div></div> | ||
| 148 | + | ||
| 149 | + <div id='phonedetails' x-mojo-element="Drawer"> | ||
| 150 | + <div class="palm-row first" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper"> | ||
| 151 | + <div id="phone_radio" class="title truncating-text"> | ||
| 152 | + </div> | ||
| 153 | + </div></div> | ||
| 154 | + </div> | ||
| 155 | + | ||
| 156 | + <div class="palm-section-divider"></div> | ||
| 157 | + | ||
| 158 | <div id="dm_airplanemode" class="palm-row last menu-end" x-mojo-tap-highlight='momentary'><div class="palm-row-wrapper"> | ||
| 159 | <div id="dm_airplanemode_status" class="title truncating-text"> | ||
| 160 | </div> |
phone/state.patch
(0 / 66)
|   | |||
| 1 | Adds the State name to all incoming calls. | ||
| 2 | Index: /usr/palm/applications/com.palm.app.phone/app/controllers/announcer-assistant.js | ||
| 3 | =================================================================== | ||
| 4 | --- .orig/usr/palm/applications/com.palm.app.phone/app/controllers/announcer-assistant.js | ||
| 5 | +++ /usr/palm/applications/com.palm.app.phone/app/controllers/announcer-assistant.js | ||
| 6 | @@ -309,6 +309,8 @@ var AnnouncerAssistant = Class.create({ | ||
| 7 | call.displayName = this.getDisplayNameFromContact(contact); | ||
| 8 | if (!(call.displayName)) { | ||
| 9 | call.displayName = FormatPhoneNumber(number); | ||
| 10 | + var message = Messages.contactWithLabel; | ||
| 11 | + call.displayName = new Template(message).evaluate({"contact":call.displayName, "label":RegionLookup.regionFromPhoneNumber(number)}); | ||
| 12 | } else if (contact.labelFormatted) { | ||
| 13 | var message = Messages.contactWithLabel; | ||
| 14 | call.displayName = new Template(message).evaluate({"contact":call.displayName, "label":contact.labelFormatted}); | ||
| 15 | Index: /usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 16 | =================================================================== | ||
| 17 | --- .orig/usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 18 | +++ /usr/palm/applications/com.palm.app.phone/app/controllers/calllog-assistant.js | ||
| 19 | @@ -429,7 +429,7 @@ var CalllogAssistant = Class.create({ | ||
| 20 | //Mojo.Timing.resume("format#label"); | ||
| 21 | // format phone number label | ||
| 22 | if (item.label == -1) { | ||
| 23 | - item.label = ''; | ||
| 24 | + item.label = RegionLookup.regionFromPhoneNumber(item.number); | ||
| 25 | } else { | ||
| 26 | var newLabel = Messages.phoneLabel[item.label]; | ||
| 27 | if(newLabel) { | ||
| 28 | Index: /usr/palm/applications/com.palm.app.phone/app/controllers/incomingcall-assistant.js | ||
| 29 | =================================================================== | ||
| 30 | --- .orig/usr/palm/applications/com.palm.app.phone/app/controllers/incomingcall-assistant.js | ||
| 31 | +++ /usr/palm/applications/com.palm.app.phone/app/controllers/incomingcall-assistant.js | ||
| 32 | @@ -159,7 +159,7 @@ var IncomingcallAssistant = Class.create | ||
| 33 | } else if (contact.cnapName && contact.cnapName !== "unknown") { | ||
| 34 | name = contact.cnapName; | ||
| 35 | } else { | ||
| 36 | - name = Messages.unknownCaller; | ||
| 37 | + name = RegionLookup.regionFromPhoneNumber(number); | ||
| 38 | } | ||
| 39 | |||
| 40 | this.fromContacts = fromContacts; | ||
| 41 | Index: /usr/palm/applications/com.palm.app.phone/app/controllers/missedcall-assistant.js | ||
| 42 | =================================================================== | ||
| 43 | --- .orig/usr/palm/applications/com.palm.app.phone/app/controllers/missedcall-assistant.js | ||
| 44 | +++ /usr/palm/applications/com.palm.app.phone/app/controllers/missedcall-assistant.js | ||
| 45 | @@ -61,7 +61,7 @@ var MissedcallAssistant = Class.create({ | ||
| 46 | this.pictureLoc = this.formatPicture(); | ||
| 47 | |||
| 48 | // ensure empty label is displayed as empty | ||
| 49 | - this.displayLabel = (this.contact.labelFormatted ? this.contact.labelFormatted : ""); | ||
| 50 | + this.displayLabel = (this.contact.labelFormatted ? this.contact.labelFormatted : RegionLookup.regionFromPhoneNumber(number)); | ||
| 51 | var tempDateString = Mojo.Format.formatDate(new Date(parseInt(timeStamp)), {time:'short'}); | ||
| 52 | this.message = message.interpolate({timeStamp: tempDateString}); | ||
| 53 | QDLogger.log( "MissedcallAssistant::updateFields", "end"); | ||
| 54 | Index: /usr/palm/applications/com.palm.app.phone/app/models/FormattedCall.js | ||
| 55 | =================================================================== | ||
| 56 | --- .orig/usr/palm/applications/com.palm.app.phone/app/models/FormattedCall.js | ||
| 57 | +++ /usr/palm/applications/com.palm.app.phone/app/models/FormattedCall.js | ||
| 58 | @@ -50,7 +50,7 @@ var FormattedCall = Class.create({ | ||
| 59 | this.id = callMsg[lineNumber].id; | ||
| 60 | |||
| 61 | // ensure empty label is displayed as empty | ||
| 62 | - this.displayLabel = (callMsg[lineNumber].contact.labelFormatted ? callMsg[lineNumber].contact.labelFormatted : ""); | ||
| 63 | + this.displayLabel = (callMsg[lineNumber].contact.labelFormatted ? callMsg[lineNumber].contact.labelFormatted : RegionLookup.regionFromPhoneNumber(callMsg[lineNumber].number)); | ||
| 64 | this.numberCaption = ((callMsg[lineNumber].contact.name !== undefined || callMsg[lineNumber].contact.id !== undefined) ? this.number : " "); | ||
| 65 | |||
| 66 | }, |
phoneprefs/roam-control.patch
(0 / 26)
|   | |||
| 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({ | ||
| 6 | |||
| 7 | this.voiceRoamingChoices = [ | ||
| 8 | {label: this.carrierOnlyLabel,value: "homeonly"}, | ||
| 9 | - {label : $L("Automatic"),value: "any"} | ||
| 10 | + {label : $L("Automatic"),value: "any"}, | ||
| 11 | + {label : "Roam Only",value: "roamonly"} | ||
| 12 | ], | ||
| 13 | |||
| 14 | 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(); |
|   | |||
| 1 | This patch allows for turning on center button led to blink in screen/lock menu when notifications are present. -Jack87 | ||
| 2 | --- /usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js.orig Mon Sep 28 16:23:58 2009 | ||
| 3 | +++ /usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js Mon Sep 28 16:25:03 2009 | ||
| 4 | @@ -51,8 +51,8 @@ | ||
| 5 | this.controller.setupWidget('showAlerts', this.onOffToggleOpt, this.alertToggleModel); | ||
| 6 | Mojo.Event.listen($('showAlerts'),'mojo-property-change', this.toggleShowAlerts.bindAsEventListener(this)); | ||
| 7 | |||
| 8 | - //this.controller.setupWidget('blinkAlerts', this.onOffToggleOpt, this.ledThrobberToggleModel); | ||
| 9 | - //Mojo.Event.listen($('blinkAlerts'),'mojo-property-change', this.toggleLEDThrobber.bindAsEventListener(this)); | ||
| 10 | + this.controller.setupWidget('blinkAlerts', this.onOffToggleOpt, this.ledThrobberToggleModel); | ||
| 11 | + Mojo.Event.listen($('blinkAlerts'),'mojo-property-change', this.toggleLEDThrobber.bindAsEventListener(this)); | ||
| 12 | |||
| 13 | this.controller.setupWidget('switchApps', this.onOffToggleOpt, this.switchApptoggleModel); | ||
| 14 | Mojo.Event.listen($('switchApps'),'mojo-property-change', this.toggleSwitchApps.bindAsEventListener(this)); | ||
| 15 | @@ -245,10 +245,10 @@ | ||
| 16 | } | ||
| 17 | } | ||
| 18 | |||
| 19 | - /*if (payload.LEDThrobberEnabled != undefined) { | ||
| 20 | + if (payload.LEDThrobberEnabled != undefined) { | ||
| 21 | this.ledThrobberToggleModel.value = payload.LEDThrobberEnabled; | ||
| 22 | this.controller.modelChanged(this.ledThrobberToggleModel, this); | ||
| 23 | - }*/ | ||
| 24 | + } | ||
| 25 | |||
| 26 | //Demo Device -- Hide the PIN / Password options. | ||
| 27 | if(payload.onDeviceDemoRunning != undefined && payload.onDeviceDemoRunning === true) { | ||
| 28 | --- /usr/palm/applications/com.palm.app.screenlock/app/views/securityconfig/securityconfig-scene.html.orig Mon Sep 28 16:23:13 2009 | ||
| 29 | +++ /usr/palm/applications/com.palm.app.screenlock/app/views/securityconfig/securityconfig-scene.html Mon Sep 28 16:23:42 2009 | ||
| 30 | @@ -89,17 +89,17 @@ | ||
| 31 | <div class="title capitalize" x-mojo-loc=''>Show when locked</div> | ||
| 32 | </div> | ||
| 33 | </div> | ||
| 34 | - <!--<div class="palm-row last"> | ||
| 35 | + <div class="palm-row last"> | ||
| 36 | <div class="palm-row-wrapper"> | ||
| 37 | <div x-mojo-element="ToggleButton" id="blinkAlerts"></div> | ||
| 38 | <div class="title capitalize" x-mojo-loc=''>Blink notifications</div> | ||
| 39 | </div> | ||
| 40 | - </div>--> | ||
| 41 | + </div> | ||
| 42 | </div> | ||
| 43 | </div> | ||
| 44 | |||
| 45 | - <!--<div class="palm-info-text single" x-mojo-loc=''> | ||
| 46 | + <div class="palm-info-text single" x-mojo-loc=''> | ||
| 47 | The gesture area blinks when new notifications arrive. | ||
| 48 | - </div>--> | ||
| 49 | + </div> | ||
| 50 | |||
| 51 | </div> | ||
| 52 | \ No newline at end of file |
|   | |||
| 1 | This patch will add times to your "turn off screen after X minutes" options under screen & lock | ||
| 2 | |||
| 3 | Index: /usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js | ||
| 4 | =================================================================== | ||
| 5 | --- .orig/usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js | ||
| 6 | +++ /usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js | ||
| 7 | @@ -108,7 +108,7 @@ var SecurityconfigAssistant = Class.crea | ||
| 8 | timerModel: {currentTimer: 30}, | ||
| 9 | |||
| 10 | //Available Timer Values. | ||
| 11 | - availableTimers: [{label: $L('30 seconds'), value:30},{label: $L('1 minute'), value:60},{label: $L('2 minutes'), value:120},{label: $L('3 minutes'), value:180}], | ||
| 12 | + availableTimers: [{label: $L('15 seconds'), value: 15}, {label: $L('30 seconds'), value:30},{label: $L('1 minute'), value:60},{label: $L('2 minutes'), value:120},{label: $L('3 minutes'), value:180},{label: $L('5 minutes'), value:300},{label: $L('Never'), value:10800}], | ||
| 13 | |||
| 14 | //Model for Security Selection List | ||
| 15 | securityModel: {currentSecurity: 'none'}, |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js b/usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js | ||
| 2 | index d6bfe45..5aa36c7 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js | ||
| 5 | @@ -35,7 +35,7 @@ var SecurityconfigAssistant = Class.create({ | ||
| 6 | sliderattributes: { | ||
| 7 | modelProperty: 'value', | ||
| 8 | maxValue: 100, | ||
| 9 | - minValue: 10, | ||
| 10 | + minValue: 0, | ||
| 11 | round: false, | ||
| 12 | updateInterval: 0.1 | ||
| 13 | }, |
|   | |||
| 1 | This patch allows for turning on center button led to blink in screen/lock menu when notifications are present. -Jack87 | ||
| 2 | --- /usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js.orig Mon Sep 28 16:23:58 2009 | ||
| 3 | +++ /usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js Mon Sep 28 16:25:03 2009 | ||
| 4 | @@ -51,8 +51,8 @@ | ||
| 5 | this.controller.setupWidget('showAlerts', this.onOffToggleOpt, this.alertToggleModel); | ||
| 6 | Mojo.Event.listen($('showAlerts'),'mojo-property-change', this.toggleShowAlerts.bindAsEventListener(this)); | ||
| 7 | |||
| 8 | - //this.controller.setupWidget('blinkAlerts', this.onOffToggleOpt, this.ledThrobberToggleModel); | ||
| 9 | - //Mojo.Event.listen($('blinkAlerts'),'mojo-property-change', this.toggleLEDThrobber.bindAsEventListener(this)); | ||
| 10 | + this.controller.setupWidget('blinkAlerts', this.onOffToggleOpt, this.ledThrobberToggleModel); | ||
| 11 | + Mojo.Event.listen($('blinkAlerts'),'mojo-property-change', this.toggleLEDThrobber.bindAsEventListener(this)); | ||
| 12 | |||
| 13 | this.controller.setupWidget('switchApps', this.onOffToggleOpt, this.switchApptoggleModel); | ||
| 14 | Mojo.Event.listen($('switchApps'),'mojo-property-change', this.toggleSwitchApps.bindAsEventListener(this)); | ||
| 15 | @@ -245,10 +245,10 @@ | ||
| 16 | } | ||
| 17 | } | ||
| 18 | |||
| 19 | - /*if (payload.LEDThrobberEnabled != undefined) { | ||
| 20 | + if (payload.LEDThrobberEnabled != undefined) { | ||
| 21 | this.ledThrobberToggleModel.value = payload.LEDThrobberEnabled; | ||
| 22 | this.controller.modelChanged(this.ledThrobberToggleModel, this); | ||
| 23 | - }*/ | ||
| 24 | + } | ||
| 25 | |||
| 26 | //Demo Device -- Hide the PIN / Password options. | ||
| 27 | if(payload.onDeviceDemoRunning != undefined && payload.onDeviceDemoRunning === true) { | ||
| 28 | --- /usr/palm/applications/com.palm.app.screenlock/app/views/securityconfig/securityconfig-scene.html.orig Mon Sep 28 16:23:13 2009 | ||
| 29 | +++ /usr/palm/applications/com.palm.app.screenlock/app/views/securityconfig/securityconfig-scene.html Mon Sep 28 16:23:42 2009 | ||
| 30 | @@ -89,17 +89,17 @@ | ||
| 31 | <div class="title capitalize" x-mojo-loc=''>Show when locked</div> | ||
| 32 | </div> | ||
| 33 | </div> | ||
| 34 | - <!--<div class="palm-row last"> | ||
| 35 | + <div class="palm-row last"> | ||
| 36 | <div class="palm-row-wrapper"> | ||
| 37 | <div x-mojo-element="ToggleButton" id="blinkAlerts"></div> | ||
| 38 | <div class="title capitalize" x-mojo-loc=''>Blink notifications</div> | ||
| 39 | </div> | ||
| 40 | - </div>--> | ||
| 41 | + </div> | ||
| 42 | </div> | ||
| 43 | </div> | ||
| 44 | |||
| 45 | - <!--<div class="palm-info-text single" x-mojo-loc=''> | ||
| 46 | + <div class="palm-info-text single" x-mojo-loc=''> | ||
| 47 | The gesture area blinks when new notifications arrive. | ||
| 48 | - </div>--> | ||
| 49 | + </div> | ||
| 50 | |||
| 51 | </div> | ||
| 52 | \ No newline at end of file |
|   | |||
| 1 | This patch will add times to your "turn off screen after X minutes" options under screen & lock | ||
| 2 | |||
| 3 | Index: /usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js | ||
| 4 | =================================================================== | ||
| 5 | --- .orig/usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js | ||
| 6 | +++ /usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js | ||
| 7 | @@ -108,7 +108,7 @@ var SecurityconfigAssistant = Class.crea | ||
| 8 | timerModel: {currentTimer: 30}, | ||
| 9 | |||
| 10 | //Available Timer Values. | ||
| 11 | - availableTimers: [{label: $L('30 seconds'), value:30},{label: $L('1 minute'), value:60},{label: $L('2 minutes'), value:120},{label: $L('3 minutes'), value:180}], | ||
| 12 | + availableTimers: [{label: $L('15 seconds'), value: 15}, {label: $L('30 seconds'), value:30},{label: $L('1 minute'), value:60},{label: $L('2 minutes'), value:120},{label: $L('3 minutes'), value:180},{label: $L('5 minutes'), value:300},{label: $L('Never'), value:10800}], | ||
| 13 | |||
| 14 | //Model for Security Selection List | ||
| 15 | securityModel: {currentSecurity: 'none'}, |
screenlock/min-brightness.patch
(0 / 13)
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js b/usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js | ||
| 2 | index d6bfe45..5aa36c7 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js | ||
| 5 | @@ -35,7 +35,7 @@ var SecurityconfigAssistant = Class.create({ | ||
| 6 | sliderattributes: { | ||
| 7 | modelProperty: 'value', | ||
| 8 | maxValue: 100, | ||
| 9 | - minValue: 10, | ||
| 10 | + minValue: 0, | ||
| 11 | round: false, | ||
| 12 | updateInterval: 0.1 | ||
| 13 | }, |
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 2 | index f343ce2..c7f389b 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 5 | @@ -1479,7 +1479,7 @@ handlePowerNotifications: function(payload) { | ||
| 6 | this.controller.showBanner({ | ||
| 7 | messageText: batteryalert, | ||
| 8 | icon: "/usr/lib/luna/system/luna-systemui/images/notification-small-charging.png", | ||
| 9 | - soundClass: soundClassName | ||
| 10 | + soundClass: "vibrate" | ||
| 11 | },null, 'chargingAlert'); | ||
| 12 | } | ||
| 13 | this.chargingBannerShown = true; |
|   | |||
| 1 | diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 2 | index f343ce2..6f9bcd3 100644 | ||
| 3 | --- a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 4 | +++ b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js | ||
| 5 | @@ -1479,7 +1479,7 @@ handlePowerNotifications: function(payload) { | ||
| 6 | this.controller.showBanner({ | ||
| 7 | messageText: batteryalert, | ||
| 8 | icon: "/usr/lib/luna/system/luna-systemui/images/notification-small-charging.png", | ||
| 9 | - soundClass: soundClassName | ||
| 10 | + soundClass: "" | ||
| 11 | },null, 'chargingAlert'); | ||
| 12 | } | ||
| 13 | this.chargingBannerShown = true; |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.soundsandalerts/app/controllers/soundsalertsconfig-assistant.js b/usr/palm/applications/com.palm.app.soundsandalerts/app/controllers/soundsalertsconfig-assistant.js | ||
| 2 | index f24c16c..5330fe4 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.soundsandalerts/app/controllers/soundsalertsconfig-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.soundsandalerts/app/controllers/soundsalertsconfig-assistant.js | ||
| 5 | @@ -94,9 +94,13 @@ var SoundsalertsconfigAssistant = Class.create({ | ||
| 6 | $('system_ui_sounds').observe('mojo-property-change', this.toggleSystemUISounds.bindAsEventListener(this)); | ||
| 7 | |||
| 8 | $('currentringtonerow').observe(Mojo.Event.tap, this.showAudioFilePicker.bindAsEventListener(this)); | ||
| 9 | + $('currentalertrow').observe(Mojo.Event.tap, this.showAlertFilePicker.bindAsEventListener(this)); | ||
| 10 | + $('currentnotificationrow').observe(Mojo.Event.tap, this.showNotificationFilePicker.bindAsEventListener(this)); | ||
| 11 | |||
| 12 | this.getCurrentVolumes(); | ||
| 13 | this.getCurrentRingtone(); | ||
| 14 | + this.getCurrentAlert(); | ||
| 15 | + this.getCurrentNotification(); | ||
| 16 | this.getVibrateSettings(); | ||
| 17 | this.getOtherSettings(); | ||
| 18 | |||
| 19 | @@ -260,6 +264,58 @@ var SoundsalertsconfigAssistant = Class.create({ | ||
| 20 | $('currentringtone').innerHTML = file.name; | ||
| 21 | }, | ||
| 22 | |||
| 23 | + // Alert Picking | ||
| 24 | + getCurrentAlert: function() { | ||
| 25 | + this.getCurrentAlertReq = SystemService.getAlerts(this.getCurrentAlertQuery.bind(this)); | ||
| 26 | + }, | ||
| 27 | + | ||
| 28 | + getCurrentAlertQuery: function(payload) { | ||
| 29 | + if (payload.alerttone) { | ||
| 30 | + $('currentalert').innerHTML = payload.alerttone.name; | ||
| 31 | + this.currAlertPath = payload.alerttone.fullPath; | ||
| 32 | + } | ||
| 33 | + else | ||
| 34 | + $('currentalert').innerHTML = $L("Pick an alert"); | ||
| 35 | + | ||
| 36 | + }, | ||
| 37 | + | ||
| 38 | + showAlertFilePicker: function(event) { | ||
| 39 | + var params = {"kinds": ["ringtone"],"filePath":this.currAlertPath,"onSelect":this.selectedAlertFile.bind(this),actionType:"attach",actionName: $L("Done")}; | ||
| 40 | + Mojo.FilePicker.pickFile(params,Mojo.Controller.stageController); | ||
| 41 | + }, | ||
| 42 | + | ||
| 43 | + selectedAlertFile: function(file) { | ||
| 44 | + //var params = {"fullPath": encodeURIComponent(file.fullPath), "name":file.name}; | ||
| 45 | + this.setAlertReq = SystemService.setAlerts(file); | ||
| 46 | + $('currentalert').innerHTML = file.name; | ||
| 47 | + }, | ||
| 48 | + | ||
| 49 | + // Notification Picking | ||
| 50 | + getCurrentNotification: function() { | ||
| 51 | + this.getCurrentNotificationReq = SystemService.getNotifications(this.getCurrentNotificationQuery.bind(this)); | ||
| 52 | + }, | ||
| 53 | + | ||
| 54 | + getCurrentNotificationQuery: function(payload) { | ||
| 55 | + if (payload.notificationtone) { | ||
| 56 | + $('currentnotification').innerHTML = payload.notificationtone.name; | ||
| 57 | + this.currNotificationPath = payload.notificationtone.fullPath; | ||
| 58 | + } | ||
| 59 | + else | ||
| 60 | + $('currentnotification').innerHTML = $L("Pick a notification"); | ||
| 61 | + | ||
| 62 | + }, | ||
| 63 | + | ||
| 64 | + showNotificationFilePicker: function(event) { | ||
| 65 | + var params = {"kinds": ["ringtone"],"filePath":this.currNotificationPath,"onSelect":this.selectedNotificationFile.bind(this),actionType:"attach",actionName: $L("Done")}; | ||
| 66 | + Mojo.FilePicker.pickFile(params,Mojo.Controller.stageController); | ||
| 67 | + }, | ||
| 68 | + | ||
| 69 | + selectedNotificationFile: function(file) { | ||
| 70 | + //var params = {"fullPath": encodeURIComponent(file.fullPath), "name":file.name}; | ||
| 71 | + this.setNotificationReq = SystemService.setNotifications(file); | ||
| 72 | + $('currentnotification').innerHTML = file.name; | ||
| 73 | + }, | ||
| 74 | + | ||
| 75 | getVibrateSettings: function() { | ||
| 76 | this.getVibrateSettingsReq = AudioService.getVibrateSettings(this.vibrateSettingsCB.bind(this),this); | ||
| 77 | }, | ||
| 78 | diff --git a/usr/palm/applications/com.palm.app.soundsandalerts/app/models/SystemService.js b/usr/palm/applications/com.palm.app.soundsandalerts/app/models/SystemService.js | ||
| 79 | index c5babe5..68e70d0 100644 | ||
| 80 | --- a/usr/palm/applications/com.palm.app.soundsandalerts/app/models/SystemService.js | ||
| 81 | +++ b/usr/palm/applications/com.palm.app.soundsandalerts/app/models/SystemService.js | ||
| 82 | @@ -28,6 +28,42 @@ SystemService.getRingtone = function(callback) { | ||
| 83 | return request; | ||
| 84 | } | ||
| 85 | |||
| 86 | +SystemService.getAlerts = function(callback) { | ||
| 87 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 88 | + method: 'getPreferences', | ||
| 89 | + parameters: {"keys":["alerttone"]}, | ||
| 90 | + onSuccess: callback, | ||
| 91 | + onFailure: callback | ||
| 92 | + }); | ||
| 93 | + return request; | ||
| 94 | +} | ||
| 95 | + | ||
| 96 | +SystemService.setAlerts = function(value){ | ||
| 97 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 98 | + method: 'setPreferences', | ||
| 99 | + parameters: {"alerttone":value}, | ||
| 100 | + }); | ||
| 101 | + return request; | ||
| 102 | +} | ||
| 103 | + | ||
| 104 | +SystemService.getNotifications = function(callback) { | ||
| 105 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 106 | + method: 'getPreferences', | ||
| 107 | + parameters: {"keys":["notificationtone"]}, | ||
| 108 | + onSuccess: callback, | ||
| 109 | + onFailure: callback | ||
| 110 | + }); | ||
| 111 | + return request; | ||
| 112 | +} | ||
| 113 | + | ||
| 114 | +SystemService.setNotifications = function(value){ | ||
| 115 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 116 | + method: 'setPreferences', | ||
| 117 | + parameters: {"notificationtone":value}, | ||
| 118 | + }); | ||
| 119 | + return request; | ||
| 120 | +} | ||
| 121 | + | ||
| 122 | SystemService.getSystemUISounds = function(callback) { | ||
| 123 | var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 124 | method: 'getPreferences', | ||
| 125 | diff --git a/usr/palm/applications/com.palm.app.soundsandalerts/app/views/soundsalertsconfig/soundsalertsconfig-scene.html b/usr/palm/applications/com.palm.app.soundsandalerts/app/views/soundsalertsconfig/soundsalertsconfig-scene.html | ||
| 126 | index b73157c..7ed29ab 100644 | ||
| 127 | --- a/usr/palm/applications/com.palm.app.soundsandalerts/app/views/soundsalertsconfig/soundsalertsconfig-scene.html | ||
| 128 | +++ b/usr/palm/applications/com.palm.app.soundsandalerts/app/views/soundsalertsconfig/soundsalertsconfig-scene.html | ||
| 129 | @@ -52,9 +52,21 @@ | ||
| 130 | </div> | ||
| 131 | </div> | ||
| 132 | </div> | ||
| 133 | + <div id='currentalertrow' class="palm-row" x-mojo-tap-highlight="momentary"> | ||
| 134 | + <div class="palm-row-wrapper"> | ||
| 135 | + <div class="label" x-mojo-loc=''>Alert</div> | ||
| 136 | + <div id='currentalert' class="title"></div> | ||
| 137 | + </div> | ||
| 138 | + </div> | ||
| 139 | + <div id='currentnotificationrow' class="palm-row" x-mojo-tap-highlight="momentary"> | ||
| 140 | + <div class="palm-row-wrapper"> | ||
| 141 | + <div class="label" x-mojo-loc=''>Notification</div> | ||
| 142 | + <div id='currentnotification' class="title"></div> | ||
| 143 | + </div> | ||
| 144 | + </div> | ||
| 145 | <div class="palm-row last"> | ||
| 146 | <div class="palm-row-wrapper"> | ||
| 147 | - <div class="title" x-mojo-loc=''>Volume</div> | ||
| 148 | + <div class="title" x-mojo-loc=''>System Volume</div> | ||
| 149 | <div x-mojo-element="Slider" id='systemvolume' class="palm-slider"></div> | ||
| 150 | </div> | ||
| 151 | </div> |
|   | |||
| 1 | diff --git a/usr/palm/applications/com.palm.app.soundsandalerts/app/controllers/soundsalertsconfig-assistant.js b/usr/palm/applications/com.palm.app.soundsandalerts/app/controllers/soundsalertsconfig-assistant.js | ||
| 2 | index f24c16c..5330fe4 100644 | ||
| 3 | --- a/usr/palm/applications/com.palm.app.soundsandalerts/app/controllers/soundsalertsconfig-assistant.js | ||
| 4 | +++ b/usr/palm/applications/com.palm.app.soundsandalerts/app/controllers/soundsalertsconfig-assistant.js | ||
| 5 | @@ -94,9 +94,13 @@ var SoundsalertsconfigAssistant = Class.create({ | ||
| 6 | $('system_ui_sounds').observe('mojo-property-change', this.toggleSystemUISounds.bindAsEventListener(this)); | ||
| 7 | |||
| 8 | $('currentringtonerow').observe(Mojo.Event.tap, this.showAudioFilePicker.bindAsEventListener(this)); | ||
| 9 | + $('currentalertrow').observe(Mojo.Event.tap, this.showAlertFilePicker.bindAsEventListener(this)); | ||
| 10 | + $('currentnotificationrow').observe(Mojo.Event.tap, this.showNotificationFilePicker.bindAsEventListener(this)); | ||
| 11 | |||
| 12 | this.getCurrentVolumes(); | ||
| 13 | this.getCurrentRingtone(); | ||
| 14 | + this.getCurrentAlert(); | ||
| 15 | + this.getCurrentNotification(); | ||
| 16 | this.getVibrateSettings(); | ||
| 17 | this.getOtherSettings(); | ||
| 18 | |||
| 19 | @@ -260,6 +264,58 @@ var SoundsalertsconfigAssistant = Class.create({ | ||
| 20 | $('currentringtone').innerHTML = file.name; | ||
| 21 | }, | ||
| 22 | |||
| 23 | + // Alert Picking | ||
| 24 | + getCurrentAlert: function() { | ||
| 25 | + this.getCurrentAlertReq = SystemService.getAlerts(this.getCurrentAlertQuery.bind(this)); | ||
| 26 | + }, | ||
| 27 | + | ||
| 28 | + getCurrentAlertQuery: function(payload) { | ||
| 29 | + if (payload.alerttone) { | ||
| 30 | + $('currentalert').innerHTML = payload.alerttone.name; | ||
| 31 | + this.currAlertPath = payload.alerttone.fullPath; | ||
| 32 | + } | ||
| 33 | + else | ||
| 34 | + $('currentalert').innerHTML = $L("Pick an alert"); | ||
| 35 | + | ||
| 36 | + }, | ||
| 37 | + | ||
| 38 | + showAlertFilePicker: function(event) { | ||
| 39 | + var params = {"kinds": ["ringtone"],"filePath":this.currAlertPath,"onSelect":this.selectedAlertFile.bind(this),actionType:"attach",actionName: $L("Done")}; | ||
| 40 | + Mojo.FilePicker.pickFile(params,Mojo.Controller.stageController); | ||
| 41 | + }, | ||
| 42 | + | ||
| 43 | + selectedAlertFile: function(file) { | ||
| 44 | + //var params = {"fullPath": encodeURIComponent(file.fullPath), "name":file.name}; | ||
| 45 | + this.setAlertReq = SystemService.setAlerts(file); | ||
| 46 | + $('currentalert').innerHTML = file.name; | ||
| 47 | + }, | ||
| 48 | + | ||
| 49 | + // Notification Picking | ||
| 50 | + getCurrentNotification: function() { | ||
| 51 | + this.getCurrentNotificationReq = SystemService.getNotifications(this.getCurrentNotificationQuery.bind(this)); | ||
| 52 | + }, | ||
| 53 | + | ||
| 54 | + getCurrentNotificationQuery: function(payload) { | ||
| 55 | + if (payload.notificationtone) { | ||
| 56 | + $('currentnotification').innerHTML = payload.notificationtone.name; | ||
| 57 | + this.currNotificationPath = payload.notificationtone.fullPath; | ||
| 58 | + } | ||
| 59 | + else | ||
| 60 | + $('currentnotification').innerHTML = $L("Pick a notification"); | ||
| 61 | + | ||
| 62 | + }, | ||
| 63 | + | ||
| 64 | + showNotificationFilePicker: function(event) { | ||
| 65 | + var params = {"kinds": ["ringtone"],"filePath":this.currNotificationPath,"onSelect":this.selectedNotificationFile.bind(this),actionType:"attach",actionName: $L("Done")}; | ||
| 66 | + Mojo.FilePicker.pickFile(params,Mojo.Controller.stageController); | ||
| 67 | + }, | ||
| 68 | + | ||
| 69 | + selectedNotificationFile: function(file) { | ||
| 70 | + //var params = {"fullPath": encodeURIComponent(file.fullPath), "name":file.name}; | ||
| 71 | + this.setNotificationReq = SystemService.setNotifications(file); | ||
| 72 | + $('currentnotification').innerHTML = file.name; | ||
| 73 | + }, | ||
| 74 | + | ||
| 75 | getVibrateSettings: function() { | ||
| 76 | this.getVibrateSettingsReq = AudioService.getVibrateSettings(this.vibrateSettingsCB.bind(this),this); | ||
| 77 | }, | ||
| 78 | diff --git a/usr/palm/applications/com.palm.app.soundsandalerts/app/models/SystemService.js b/usr/palm/applications/com.palm.app.soundsandalerts/app/models/SystemService.js | ||
| 79 | index c5babe5..68e70d0 100644 | ||
| 80 | --- a/usr/palm/applications/com.palm.app.soundsandalerts/app/models/SystemService.js | ||
| 81 | +++ b/usr/palm/applications/com.palm.app.soundsandalerts/app/models/SystemService.js | ||
| 82 | @@ -28,6 +28,42 @@ SystemService.getRingtone = function(callback) { | ||
| 83 | return request; | ||
| 84 | } | ||
| 85 | |||
| 86 | +SystemService.getAlerts = function(callback) { | ||
| 87 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 88 | + method: 'getPreferences', | ||
| 89 | + parameters: {"keys":["alerttone"]}, | ||
| 90 | + onSuccess: callback, | ||
| 91 | + onFailure: callback | ||
| 92 | + }); | ||
| 93 | + return request; | ||
| 94 | +} | ||
| 95 | + | ||
| 96 | +SystemService.setAlerts = function(value){ | ||
| 97 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 98 | + method: 'setPreferences', | ||
| 99 | + parameters: {"alerttone":value}, | ||
| 100 | + }); | ||
| 101 | + return request; | ||
| 102 | +} | ||
| 103 | + | ||
| 104 | +SystemService.getNotifications = function(callback) { | ||
| 105 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 106 | + method: 'getPreferences', | ||
| 107 | + parameters: {"keys":["notificationtone"]}, | ||
| 108 | + onSuccess: callback, | ||
| 109 | + onFailure: callback | ||
| 110 | + }); | ||
| 111 | + return request; | ||
| 112 | +} | ||
| 113 | + | ||
| 114 | +SystemService.setNotifications = function(value){ | ||
| 115 | + var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 116 | + method: 'setPreferences', | ||
| 117 | + parameters: {"notificationtone":value}, | ||
| 118 | + }); | ||
| 119 | + return request; | ||
| 120 | +} | ||
| 121 | + | ||
| 122 | SystemService.getSystemUISounds = function(callback) { | ||
| 123 | var request = new Mojo.Service.Request(SystemService.identifier, { | ||
| 124 | method: 'getPreferences', | ||
| 125 | diff --git a/usr/palm/applications/com.palm.app.soundsandalerts/app/views/soundsalertsconfig/soundsalertsconfig-scene.html b/usr/palm/applications/com.palm.app.soundsandalerts/app/views/soundsalertsconfig/soundsalertsconfig-scene.html | ||
| 126 | index b73157c..7ed29ab 100644 | ||
| 127 | --- a/usr/palm/applications/com.palm.app.soundsandalerts/app/views/soundsalertsconfig/soundsalertsconfig-scene.html | ||
| 128 | +++ b/usr/palm/applications/com.palm.app.soundsandalerts/app/views/soundsalertsconfig/soundsalertsconfig-scene.html | ||
| 129 | @@ -52,9 +52,21 @@ | ||
| 130 | </div> | ||
| 131 | </div> | ||
| 132 | </div> | ||
| 133 | + <div id='currentalertrow' class="palm-row" x-mojo-tap-highlight="momentary"> | ||
| 134 | + <div class="palm-row-wrapper"> | ||
| 135 | + <div class="label" x-mojo-loc=''>Alert</div> | ||
| 136 | + <div id='currentalert' class="title"></div> | ||
| 137 | + </div> | ||
| 138 | + </div> | ||
| 139 | + <div id='currentnotificationrow' class="palm-row" x-mojo-tap-highlight="momentary"> | ||
| 140 | + <div class="palm-row-wrapper"> | ||
| 141 | + <div class="label" x-mojo-loc=''>Notification</div> | ||
| 142 | + <div id='currentnotification' class="title"></div> | ||
| 143 | + </div> | ||
| 144 | + </div> | ||
| 145 | <div class="palm-row last"> | ||
| 146 | <div class="palm-row-wrapper"> | ||
| 147 | - <div class="title" x-mojo-loc=''>Volume</div> | ||
| 148 | + <div class="title" x-mojo-loc=''>System Volume</div> | ||
| 149 | <div x-mojo-element="Slider" id='systemvolume' class="palm-slider"></div> | ||
| 150 | </div> | ||
| 151 | </div> |
sprinttv/hide-sprinttv-app.patch
(0 / 13)
|   | |||
| 1 | diff --git a/usr/palm/applications/com.mobitv.app.sprinttv/appinfo.json b/usr/palm/applications/com.mobitv.app.sprinttv/appinfo.json | ||
| 2 | index 4ff8cbd..67ac3eb 100755 | ||
| 3 | --- a/usr/palm/applications/com.mobitv.app.sprinttv/appinfo.json | ||
| 4 | +++ b/usr/palm/applications/com.mobitv.app.sprinttv/appinfo.json | ||
| 5 | @@ -6,5 +6,6 @@ | ||
| 6 | "icon": "icon.png", | ||
| 7 | "version": "1.5", | ||
| 8 | "vendor": "Sprint", | ||
| 9 | - "vendorurl": "www.sprint.com" | ||
| 10 | + "vendorurl": "www.sprint.com", | ||
| 11 | + "visible": false | ||
| 12 | } | ||
| 13 | \ No newline at end of file |
tasks/new-task-details.patch
(0 / 36)
|   | |||
| 1 | This is a small modification that changes how new tasks are handled. | ||
| 2 | Ordinarily, new tasks appear at the bottom of the task list. In this | ||
| 3 | view, you need to tap again to enter details like a due date. With | ||
| 4 | this patch, when you add a task, a details card appears, in which you | ||
| 5 | can mmediately set the task name, due date, task list, and priority. | ||
| 6 | You're not forced to fill out each of those fields, they're just | ||
| 7 | available. Enter your info, then swipe back and you'll see your new | ||
| 8 | task in the list, or close the new task card (flick up) and the task | ||
| 9 | is saved automatically. | ||
| 10 | |||
| 11 | Tested-On: 1.1 | ||
| 12 | |||
| 13 | Mod by Tuckmobile | ||
| 14 | Patch submitted by JackieRipper | ||
| 15 | Index: /usr/palm/applications/com.palm.app.tasks/app/controllers/tasks-assistant.js | ||
| 16 | =================================================================== | ||
| 17 | --- .orig/usr/palm/applications/com.palm.app.tasks/app/controllers/tasks-assistant.js | ||
| 18 | +++ /usr/palm/applications/com.palm.app.tasks/app/controllers/tasks-assistant.js | ||
| 19 | @@ -918,7 +918,7 @@ var TasksAssistant = Class.create({ | ||
| 20 | this.listElement.mojo.insertItemsAt(index, [task]); | ||
| 21 | this.listElement.mojo.revealItem(index); | ||
| 22 | this.addWidgets(this.listElement.mojo.getNodeByIndex(index).querySelector('[name="subject"]'), task); | ||
| 23 | - this.listElement.mojo.focusItem(task); | ||
| 24 | + this.state.edit.call(this, index); | ||
| 25 | |||
| 26 | task.priority = previousTask.priority; // Attempt to inherit the priority | ||
| 27 | |||
| 28 | @@ -941,7 +941,7 @@ var TasksAssistant = Class.create({ | ||
| 29 | { | ||
| 30 | // If we find the node we just added, focus on it. We might not find the node however if the list is being refreshed | ||
| 31 | self.addWidgets(node.querySelector('[name="subject"]'), task); | ||
| 32 | - self.listElement.mojo.focusItem(task); | ||
| 33 | + self.state.edit.call(self, index); | ||
| 34 | } | ||
| 35 | |||
| 36 | Mojo.Log.info("New task %j %j", task, self.task); |
|   | |||
| 1 | This is a small modification that changes how new tasks are handled. | ||
| 2 | Ordinarily, new tasks appear at the bottom of the task list. In this | ||
| 3 | view, you need to tap again to enter details like a due date. With | ||
| 4 | this patch, when you add a task, a details card appears, in which you | ||
| 5 | can mmediately set the task name, due date, task list, and priority. | ||
| 6 | You're not forced to fill out each of those fields, they're just | ||
| 7 | available. Enter your info, then swipe back and you'll see your new | ||
| 8 | task in the list, or close the new task card (flick up) and the task | ||
| 9 | is saved automatically. | ||
| 10 | |||
| 11 | Tested-On: 1.1 | ||
| 12 | |||
| 13 | Mod by Tuckmobile | ||
| 14 | Patch submitted by JackieRipper | ||
| 15 | Index: /usr/palm/applications/com.palm.app.tasks/app/controllers/tasks-assistant.js | ||
| 16 | =================================================================== | ||
| 17 | --- .orig/usr/palm/applications/com.palm.app.tasks/app/controllers/tasks-assistant.js | ||
| 18 | +++ /usr/palm/applications/com.palm.app.tasks/app/controllers/tasks-assistant.js | ||
| 19 | @@ -918,7 +918,7 @@ var TasksAssistant = Class.create({ | ||
| 20 | this.listElement.mojo.insertItemsAt(index, [task]); | ||
| 21 | this.listElement.mojo.revealItem(index); | ||
| 22 | this.addWidgets(this.listElement.mojo.getNodeByIndex(index).querySelector('[name="subject"]'), task); | ||
| 23 | - this.listElement.mojo.focusItem(task); | ||
| 24 | + this.state.edit.call(this, index); | ||
| 25 | |||
| 26 | task.priority = previousTask.priority; // Attempt to inherit the priority | ||
| 27 | |||
| 28 | @@ -941,7 +941,7 @@ var TasksAssistant = Class.create({ | ||
| 29 | { | ||
| 30 | // If we find the node we just added, focus on it. We might not find the node however if the list is being refreshed | ||
| 31 | self.addWidgets(node.querySelector('[name="subject"]'), task); | ||
| 32 | - self.listElement.mojo.focusItem(task); | ||
| 33 | + self.state.edit.call(self, index); | ||
| 34 | } | ||
| 35 | |||
| 36 | Mojo.Log.info("New task %j %j", task, self.task); |

