<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.webos-internals.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tk102</id>
	<title>WebOS Internals - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.webos-internals.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tk102"/>
	<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/wiki/Special:Contributions/Tk102"/>
	<updated>2026-04-20T05:05:07Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_Camera_Using_Volume_Buttons_to_Take_a_Picture&amp;diff=9533</id>
		<title>Patch Camera Using Volume Buttons to Take a Picture</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_Camera_Using_Volume_Buttons_to_Take_a_Picture&amp;diff=9533"/>
		<updated>2010-04-07T00:14:35Z</updated>

		<summary type="html">&lt;p&gt;Tk102: /* Procedure */   fixed malformed patch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{template:patch}}&lt;br /&gt;
'''Note: If you are only looking for a hardware-based button to take a picture, the space bar will do that for you already.'''&lt;br /&gt;
&lt;br /&gt;
== Preamble==&lt;br /&gt;
&lt;br /&gt;
You will need write permissions to the filesystem on your Pre to apply this patch.&lt;br /&gt;
&lt;br /&gt;
To get write persmissions execute:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
rootfs_open -w&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To remount the filesystem as read-only:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
mount -o remount,ro /&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Procedure==&lt;br /&gt;
&lt;br /&gt;
The patch is performed on /usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js. Please back up this file before proceeding.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
--- a/usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js&lt;br /&gt;
+++ b/usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js&lt;br /&gt;
@@ -134,6 +134,7 @@&lt;br /&gt;
 				this._handleCaptureToggle();&lt;br /&gt;
 			}.bind(this));&lt;br /&gt;
 		}&lt;br /&gt;
+		this.volumeKeySubscription = null;&lt;br /&gt;
 		&lt;br /&gt;
 		&lt;br /&gt;
 		&lt;br /&gt;
@@ -136,7 +137,6 @@&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		&lt;br /&gt;
-		&lt;br /&gt;
 		this.onKeyPressHandler = this.onKeyPress.bindAsEventListener(this);&lt;br /&gt;
 		Mojo.listen(this.controller.sceneElement, Mojo.Event.keydown, this.onKeyPressHandler);&lt;br /&gt;
 		Mojo.listen(this.controller.sceneElement, Mojo.Event.keyup, this.onKeyPressHandler);&lt;br /&gt;
@@ -164,7 +164,16 @@&lt;br /&gt;
 			AppAssistant.photoRollVideoLoader = AppAssistant.libraries[&amp;quot;metascene.videos&amp;quot;];&lt;br /&gt;
 &lt;br /&gt;
 		}&lt;br /&gt;
-		&lt;br /&gt;
+		// listen to volume key events&lt;br /&gt;
+		this.volumeKeySubscription = new Mojo.Service.Request(&lt;br /&gt;
+			'palm://com.palm.keys/audio', &lt;br /&gt;
+			{&lt;br /&gt;
+				method: 'status',&lt;br /&gt;
+				parameters: {'subscribe': true},&lt;br /&gt;
+				onFailure: function() { Mojo.Log.error(&amp;quot;Could not subscribe to volume key events&amp;quot;); },&lt;br /&gt;
+				onSuccess: this.handleVolumeKeys.bind(this), &lt;br /&gt;
+			});&lt;br /&gt;
+			&lt;br /&gt;
 		llog(&amp;quot;CaptureAssistant::setup() finished&amp;quot;);&lt;br /&gt;
 	}catch(e){llog(&amp;quot;setup threw: &amp;quot;+Object.toJSON(e));}},&lt;br /&gt;
 	&lt;br /&gt;
@@ -332,6 +341,11 @@&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		this.cameraControl.closeCamera();&lt;br /&gt;
+		&lt;br /&gt;
+		// clean up listener for volume keys&lt;br /&gt;
+		if(this.volumeKeySubscription) {&lt;br /&gt;
+			this.volumeKeySubscription.cancel();&lt;br /&gt;
+		}		&lt;br /&gt;
 	},&lt;br /&gt;
 	&lt;br /&gt;
 	handleCommand: function(event){&lt;br /&gt;
@@ -382,6 +396,14 @@&lt;br /&gt;
 			this.cameraControl.stillCapture();&lt;br /&gt;
 		}&lt;br /&gt;
 	},&lt;br /&gt;
+	&lt;br /&gt;
+	// capture on release of volume keys&lt;br /&gt;
+	handleVolumeKeys: function(payload) {&lt;br /&gt;
+		// capture when either volume up or down buttons are released&lt;br /&gt;
+		if(payload.state === 'up' &amp;amp;&amp;amp; (payload.key === 'volume_up' || payload.key === 'volume_down')) {&lt;br /&gt;
+ 			this.cameraControl.stillCapture();&lt;br /&gt;
+ 		}&lt;br /&gt;
+	},&lt;br /&gt;
   &lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes==&lt;br /&gt;
&lt;br /&gt;
=== Volume Control===&lt;br /&gt;
The keys will still alter the volume of the device. There is a way to lock the buttons so that they don't modify volume when pressed but still report events. Needs futher investigation.&lt;br /&gt;
&lt;br /&gt;
~FXDemolisher&lt;/div&gt;</summary>
		<author><name>Tk102</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_Camera_Using_Volume_Buttons_to_Take_a_Picture&amp;diff=9503</id>
		<title>Patch Camera Using Volume Buttons to Take a Picture</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_Camera_Using_Volume_Buttons_to_Take_a_Picture&amp;diff=9503"/>
		<updated>2010-04-02T17:22:54Z</updated>

		<summary type="html">&lt;p&gt;Tk102: /* Procedure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{template:patch}}&lt;br /&gt;
'''Note: If you are only looking for a hardware-based button to take a picture, the space bar will do that for you already.'''&lt;br /&gt;
&lt;br /&gt;
== Preamble==&lt;br /&gt;
&lt;br /&gt;
You will need write permissions to the filesystem on your Pre to apply this patch.&lt;br /&gt;
&lt;br /&gt;
To get write persmissions execute:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
rootfs_open -w&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To remount the filesystem as read-only:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
mount -o remount,ro /&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Procedure==&lt;br /&gt;
&lt;br /&gt;
The patch is performed on /usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js. Please back up this file before proceeding.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
--- sftp://Palm Pre/apps/com.palm.app.camera/app/controllers/capture-assistant.js.webosinternals.orig &lt;br /&gt;
+++ sftp://Palm Pre/apps/com.palm.app.camera/app/controllers/capture-assistant.js &lt;br /&gt;
@@ -134,6 +134,7 @@&lt;br /&gt;
 				this._handleCaptureToggle();&lt;br /&gt;
 			}.bind(this));&lt;br /&gt;
 		}&lt;br /&gt;
+		this.volumeKeySubscription = undefined;		&lt;br /&gt;
 		&lt;br /&gt;
 		&lt;br /&gt;
 		&lt;br /&gt;
@@ -164,6 +165,15 @@&lt;br /&gt;
 			AppAssistant.photoRollVideoLoader = AppAssistant.libraries[&amp;quot;metascene.videos&amp;quot;];&lt;br /&gt;
 &lt;br /&gt;
 		}&lt;br /&gt;
+		// listen to volume key events&lt;br /&gt;
+		this.volumeKeySubscription = new Mojo.Service.Request(&lt;br /&gt;
+			'palm://com.palm.keys/audio', &lt;br /&gt;
+			{&lt;br /&gt;
+				method: 'status',&lt;br /&gt;
+				parameters: {'subscribe': true},&lt;br /&gt;
+				onFailure: function() { Mojo.Log.error(&amp;quot;Could not subscribe to volume key events&amp;quot;); },&lt;br /&gt;
+				onSuccess: this.handleVolumeKeys.bind(this), &lt;br /&gt;
+			});&lt;br /&gt;
 		&lt;br /&gt;
 		llog(&amp;quot;CaptureAssistant::setup() finished&amp;quot;);&lt;br /&gt;
 	}catch(e){llog(&amp;quot;setup threw: &amp;quot;+Object.toJSON(e));}},&lt;br /&gt;
@@ -332,6 +342,11 @@&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		this.cameraControl.closeCamera();&lt;br /&gt;
+		&lt;br /&gt;
+		// clean up listener for volume keys&lt;br /&gt;
+		if(this.volumeKeySubscription) {&lt;br /&gt;
+			this.volumeKeySubscription.cancel();&lt;br /&gt;
+		}&lt;br /&gt;
 	},&lt;br /&gt;
 	&lt;br /&gt;
 	handleCommand: function(event){&lt;br /&gt;
@@ -383,6 +398,13 @@&lt;br /&gt;
 		}&lt;br /&gt;
 	},&lt;br /&gt;
   &lt;br /&gt;
+	// capture on release of volume keys&lt;br /&gt;
+	handleVolumeKeys: function(payload) {&lt;br /&gt;
+		// capture when either volume up or down buttons are released&lt;br /&gt;
+		if(payload.state === 'up' &amp;amp;&amp;amp; (payload.key === 'volume_up' || payload.key === 'volume_down')) {&lt;br /&gt;
+ 			this.cameraControl.stillCapture();&lt;br /&gt;
+ 		}&lt;br /&gt;
+ 	},&lt;br /&gt;
 	&lt;br /&gt;
 	/**&lt;br /&gt;
 	 * Called by Mojo when the orientation of the device changes.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes==&lt;br /&gt;
&lt;br /&gt;
=== Volume Control===&lt;br /&gt;
The keys will still alter the volume of the device. There is a way to lock the buttons so that they don't modify volume when pressed but still report events. Needs futher investigation.&lt;br /&gt;
&lt;br /&gt;
~FXDemolisher&lt;/div&gt;</summary>
		<author><name>Tk102</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Patch_Camera_Using_Volume_Buttons_to_Take_a_Picture&amp;diff=9335</id>
		<title>Talk:Patch Camera Using Volume Buttons to Take a Picture</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Patch_Camera_Using_Volume_Buttons_to_Take_a_Picture&amp;diff=9335"/>
		<updated>2010-03-11T18:34:46Z</updated>

		<summary type="html">&lt;p&gt;Tk102: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'd love to see this working in 1.2.1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Possible Bug ==&lt;br /&gt;
WebOS Vrsion 1.3.5.2, Language: German&lt;br /&gt;
I cannot decrease volume after this patch, removing it re-enables this function again. Increasing volume works all the time, with the patch only the system app for tones does its job for decreasing. Hope this hint can help. --[[User:W01f|W01f]] 18:48, 17 February 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Change needed for 1.4.0 ==&lt;br /&gt;
The references to ''this.cameraControl.capture();'' need to be changed to ''this.cameraControl.stillCapture();'' --&lt;br /&gt;
[[User:Tk102|Tk102]] 18:34, 11 March 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Tk102</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Change_%22Enter_Key%22_To_Create_Newline&amp;diff=7252</id>
		<title>Patch Messaging Change &quot;Enter Key&quot; To Create Newline</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Change_%22Enter_Key%22_To_Create_Newline&amp;diff=7252"/>
		<updated>2009-11-19T03:46:56Z</updated>

		<summary type="html">&lt;p&gt;Tk102: /* Process */  (line numbers updated for WebOS v1.3.1)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{template:patch}}&lt;br /&gt;
= Description=&lt;br /&gt;
I know a lot of people really like sending messages that are coherent, and a great way to do that is with the newline character. However, pressing the ENTER key in the messaging app sends a message, rather than typing a newline character. This page will show you how to (easily) change that action.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites=&lt;br /&gt;
* Rooted phone.&lt;br /&gt;
&lt;br /&gt;
= Process=&lt;br /&gt;
# Log in as root.&lt;br /&gt;
# Mount the file system as RW.&lt;br /&gt;
# Enter the '''/usr/palm/applications/com.palm.app.messaging/app/controllers''' directory.&lt;br /&gt;
# Change '''compose-assistant.js''' (line 109) and '''chatview-assistant.js''' (line 133) and set '''enterSubmits''' to be '''false'''.&lt;br /&gt;
# In the '''handleTextAreaKeyUp''' function in '''compose-assistant.js''' (lines 313 and 314) and '''chatview-assistant.js''' (lines 2225 to 2226), comment out the following lines:&lt;br /&gt;
#: &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;this.considerForSend();&lt;br /&gt;
#: Event.stop(event); &amp;lt;/source&amp;gt;&lt;br /&gt;
# To actually display newlines in the chatview: In '''chatview-assistant.js''', in the ''ChatviewAssisant::preFormatChatList'' method (around line 1313), locate the lines:&lt;br /&gt;
#: &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;if(msg.messageText &amp;amp;&amp;amp; !ChatFlags.isTransient(msg.flags)) { &lt;br /&gt;
#:: msg.messageText = msg.messageText.escapeHTML();&lt;br /&gt;
#::}&amp;lt;/source&amp;gt;&lt;br /&gt;
#: and add the following just after:&lt;br /&gt;
#:&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;msg.messageText = msg.messageText.replace(/\n/g,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;); &amp;lt;/source&amp;gt;&lt;br /&gt;
# Mount the file system as RO.&lt;br /&gt;
# Reboot.&lt;br /&gt;
&lt;br /&gt;
= Post-Mod Screenshots=&lt;br /&gt;
[[Image:Messaging-newline1.jpg]]&lt;br /&gt;
[[Image:Messaging-newline2.jpg]]&lt;br /&gt;
&lt;br /&gt;
= Issues=&lt;br /&gt;
* When moving down a line, you can't get the first character to be lower-case.&lt;br /&gt;
&lt;br /&gt;
= Further Development=&lt;br /&gt;
* I'm sure this is quite simple, but as I said before, I haven't put too much time into this yet... It would be really nice if we could use a SHIFT+ENTER to type a newline, and only pressing ENTER would send the message as it does now. That way, everybody wins.&lt;br /&gt;
&lt;br /&gt;
== Author(s)==&lt;br /&gt;
* xluryan&lt;/div&gt;</summary>
		<author><name>Tk102</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Jump_Forward,_Backward_One_Word_at_a_Time&amp;diff=4874</id>
		<title>Patch Messaging Jump Forward, Backward One Word at a Time</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Jump_Forward,_Backward_One_Word_at_a_Time&amp;diff=4874"/>
		<updated>2009-08-28T15:37:15Z</updated>

		<summary type="html">&lt;p&gt;Tk102: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{template:patch}}&lt;br /&gt;
= Summary =&lt;br /&gt;
'''Sym+f''' : jump backwards one word&amp;lt;br&amp;gt;&lt;br /&gt;
'''Sym+g''' : jump forwards one word&lt;br /&gt;
= Description =&lt;br /&gt;
It's very easy to fat finger while thumbing out a message and difficult to tap the cursor into the right position to correct a typo.  Not having arrow keys to move the cursor drove me nuts, especially when the typo was near the submit icon -- oops accidentally sent garbage because my fingertip wasn't sharp enough.  This patch allows Sym+f to jump backwards one word and Sym+g to jump forward one word.  This, plus the built-in Shift+Backspace to delete the current word makes fixing typos much easier.  Most other Sym+key combinations are shortcuts for other symbols but f and g were unused.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites=&lt;br /&gt;
* Rooted phone.&lt;br /&gt;
&lt;br /&gt;
= Process=&lt;br /&gt;
# Log in as root.&lt;br /&gt;
# Mount the file system as RW.&lt;br /&gt;
# Enter the '''/usr/palm/applications/com.palm.app.messaging/app/controllers''' directory.&lt;br /&gt;
# In '''chatview-assistant.js''', locate the ''handleTextAreaUp'' event handler near line 1680:&lt;br /&gt;
#: &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;		handleTextAreaKeyUp: function(event) {handleTextAreaKeyUp: function(event) {&amp;lt;/source&amp;gt;&lt;br /&gt;
#: and add the following just after:&lt;br /&gt;
#:: &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;		   if (event &amp;amp;&amp;amp; event.ctrlKey &amp;amp;&amp;amp; event.keyCode==Mojo.Char.f) {&lt;br /&gt;
#::			currentText=this.messageTextElement.value;&lt;br /&gt;
#::			oldPos = this.messageTextElement.selectionStart;&lt;br /&gt;
#::			newPos = currentText.lastIndexOf(' ',oldPos-1);&lt;br /&gt;
#::			if (newPos&amp;gt;-1) {&lt;br /&gt;
#::				this.messageTextElement.setSelectionRange(newPos,newPos);&lt;br /&gt;
#::			}&lt;br /&gt;
#::			else {&lt;br /&gt;
#::				this.messageTextElement.setSelectionRange(0,0);&lt;br /&gt;
#::			}&lt;br /&gt;
#::			Event.stop(event);&lt;br /&gt;
#::		}&lt;br /&gt;
#::&lt;br /&gt;
#::		if (event &amp;amp;&amp;amp; event.ctrlKey &amp;amp;&amp;amp; event.keyCode==Mojo.Char.g ) {&lt;br /&gt;
#::			currentText=this.messageTextElement.value;&lt;br /&gt;
#::			oldPos = this.messageTextElement.selectionStart;&lt;br /&gt;
#::			newPos = currentText.indexOf(' ',oldPos);&lt;br /&gt;
#::			if (newPos&amp;gt;-1) {&lt;br /&gt;
#::				this.messageTextElement.setSelectionRange(newPos+1,newPos+1);&lt;br /&gt;
#::			}&lt;br /&gt;
#::			else {&lt;br /&gt;
#::				this.messageTextElement.setSelectionRange(currentText.length,currentText.length);&lt;br /&gt;
#::			}&lt;br /&gt;
#::			Event.stop(event);&lt;br /&gt;
#::		} &amp;lt;/source&amp;gt;&lt;br /&gt;
# Mount the file system as RO.&lt;br /&gt;
# Reboot.&lt;/div&gt;</summary>
		<author><name>Tk102</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Portal:Patches_to_webOS&amp;diff=4843</id>
		<title>Portal:Patches to webOS</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Portal:Patches_to_webOS&amp;diff=4843"/>
		<updated>2009-08-27T17:20:36Z</updated>

		<summary type="html">&lt;p&gt;Tk102: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__notoc__&lt;br /&gt;
{{portal-header&lt;br /&gt;
|This page lists patches to webOS existing apps which modify the behavior as shipped.  '''Note''' that these patches may be version specific and may be broken by future webOS updates.  Proceed with caution. If you get one that works please move it under the correct column, alphabetically, and title the page:&lt;br /&gt;
'''&amp;quot;Patch [application] [description]&amp;quot;''' (for application specific patches) &amp;lt;br&amp;gt;&lt;br /&gt;
'''&amp;quot;Patch webOS [description]&amp;quot;''' (for patches not part of a specific application)&lt;br /&gt;
}}&lt;br /&gt;
This page is undergoing structuring please contribute moving or adding new entries under the appropriate headings. For now put pages in alphabetical order. Each page should contain at least the basic headings&lt;br /&gt;
*1. '''Introduction''': A brief description to introduce people to the patch.&lt;br /&gt;
**1.1 '''Usage''':An explanation if it is needed on how to use the modification see Add/Delete Pages in the Launcher as an example.&lt;br /&gt;
*2. '''Editing Process''': Step by step instructions to manually edit. &lt;br /&gt;
*3. '''Patching Process''': Details for making the edits with a patch file and pointing people to the [[Applying Patches]] page if the patch is also provided in the webos-internals gitorious repository.&lt;br /&gt;
&lt;br /&gt;
{{portal-three-columns&lt;br /&gt;
|column1= &lt;br /&gt;
===webOS Update Information===&lt;br /&gt;
* [[Update 1.1.0|Update 1.1]]&lt;br /&gt;
* [[Update 1.0.4|Update 1.0.4]] &lt;br /&gt;
* [[Update 1.0.3|Update 1.0.3]]&lt;br /&gt;
&lt;br /&gt;
===Patches that Need Work===&lt;br /&gt;
* [[Bugs]]&lt;br /&gt;
&lt;br /&gt;
|column2=&lt;br /&gt;
===Patch Ideas to be Created or in Progress===&lt;br /&gt;
&lt;br /&gt;
* [[More_Calculator_Functions|Accessing additional built-in calculator functions]]&lt;br /&gt;
* [[Add_Ability_To_Choose_Snooze_Length|Add Ability to Choose Snooze Length]]&lt;br /&gt;
* [[Add_Icon_To_Quick_Launcher|Add an icon to the quick launcher]]&lt;br /&gt;
* [[Changing Clipboard Data From The Shell|Changing Clipboard Data from the Shell]]&lt;br /&gt;
* [[Development_%26_Tweak_Ideas | Development &amp;amp; Tweaking Ideas]]&lt;br /&gt;
* [[Longer Vibrate|Longer Vibrate]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|column3=&lt;br /&gt;
===Notes===&lt;br /&gt;
These modifications lack a patch process, please add one to the details to the page and have it added to the webOS-internals gitorious repository. Info for the repository is on [[Applying Patches]].&lt;br /&gt;
&lt;br /&gt;
*Empty&lt;br /&gt;
}}&lt;br /&gt;
{{portal-three-columns&lt;br /&gt;
|column1= &lt;br /&gt;
==Patches to webOS apps==&lt;br /&gt;
===webOS 1.1 OK===&lt;br /&gt;
&lt;br /&gt;
* [[Patch Amazon Download Music over EVDO|Amazon: Download Music over EVDO]]&lt;br /&gt;
* [[Patch Browser Global Search Addons|Browser: Global Search Addons]]&lt;br /&gt;
* [[Patch Browser Delete Individual History Items|Browser: Delete Individual History Items]]&lt;br /&gt;
* [[Patch Browser Downloading Files|Browser: Downloading Files]] &lt;br /&gt;
* [[Patch Calendar Show All-Day Events in Month View|Calendar: Show All-Day Events in Month View]] &lt;br /&gt;
* [[Patch Camera 10 Second Countdown Timer|Camera: 10 Second Countdown Timer]]&lt;br /&gt;
* [[Patch Camera Shutter Sound On-Off Button|Camera: Shutter Sound On-Off Button]]&lt;br /&gt;
* [[Patch Camera Using Volume Buttons to Take a Picture|Camera: Using Volume Buttons to Take a Picture]]&lt;br /&gt;
* [[Patch Clock Changing Alarm Button Order and Snooze Duration|Clock: Changing Alarm Button Order and Snooze Duration]]&lt;br /&gt;
* [[Patch Clock Enabling the Hidden Theme|Clock: Enabling the Hidden Theme]]&lt;br /&gt;
* [[Patch Email Change &amp;quot;Running Late&amp;quot; Message|Email: Change &amp;quot;Running Late&amp;quot; Message]]&lt;br /&gt;
* [[Patch Email Confirm Deletion|Email: Confirm Deletion]]&lt;br /&gt;
* [[Patch Email Change Default Font for Replies-Forwards from Navy to Black|Email: Change Default Font for Replies/Forwards from Navy to Black]]&lt;br /&gt;
* [[Patch Email DeleteAll|Email: Delete All]]&lt;br /&gt;
* [[Patch Launcher Add or Delete Pages|Launcher: Add/Delete Pages]]&lt;br /&gt;
* [[Patch Launcher To Allow More Icons Per Row|Launcher: Allows More Icons Per Row]]&lt;br /&gt;
* [[Patch Launcher Hide-Delete The NASCAR App|Launcher: Hide/Delete The NASCAR App]]&lt;br /&gt;
* [[Patch Launcher Hide Media Sync Option|Launcher: Hide Media Sync Option]]&lt;br /&gt;
* [[Patch Launcher Reset Scroll on Page Change|Launcher: Reset Scroll on Page Change]]&lt;br /&gt;
* [[Patch Launcher Unhide the DeveloperMode App|Launcher: Unhide the DeveloperMode App]]&lt;br /&gt;
* [[Patch Messaging Adding Timestamps to All Received Messages|Messaging: Adding Timestamps to All Received Messages]]&lt;br /&gt;
* [[Patch Messaging Change &amp;quot;Enter Key&amp;quot; To Create Newline|Messaging: Change &amp;quot;Enter Key&amp;quot; To Create Newline]]&lt;br /&gt;
* [[Patch Messaging Character Counter|Messaging: Character Counter]]&lt;br /&gt;
* [[Patch Messaging Display Full Status Messages|Messaging: Display Full Status Messages]] &lt;br /&gt;
* [[Patch Messaging Force Offline Send Without Dialog|Messaging: Force Offline Send Without Dialog]]&lt;br /&gt;
* [[Patch Messaging Forward Messages|Messaging: Forward Messages]]&lt;br /&gt;
* [[Patch Messaging Jump Forward, Backward One Word at a Time|Messaging: Jump Forward, Backward One Word at a Time]]&lt;br /&gt;
* [[Patch Messaging New Cards For Each Conversation|Messaging: New Cards For Each Conversation]]&lt;br /&gt;
* [[Patch Messaging Sounds|Messaging: Message Sound]]&lt;br /&gt;
* [[Patch MCraig Enabling Personals Category|mCraig: Enabling Personals Category]]&lt;br /&gt;
* [[Patch MediaPlayer Bookmarking|Music Player: Bookmarking]]&lt;br /&gt;
* [[Patch MediaPlayer Ignore 'A', 'An', and 'The' In Artist and Album names|Music Player: Ignore 'A', 'An', and 'The' in Artist and Album Names]]&lt;br /&gt;
* [[Patch PDF Viewer Change Orientation|PDF Viewer: Change Orientation]]&lt;br /&gt;
* [[Patch Phone Disable Various Call Sounds|Phone: Disable Various Call Sounds]]&lt;br /&gt;
* [[Patch Phone Edit Dialer Theme|Phone: Edit Dialer Theme]]&lt;br /&gt;
* [[Patch Phone Editing the Lock Screen|Phone: Editing the Lock Screen]]&lt;br /&gt;
* [[Patch Phone Show Call Duration in the Call Log|Phone: Show Call Duration in the Call Log]]&lt;br /&gt;
* [[Patch Tasks Always Show Details of New Tasks|Tasks: Always Show Details of New Tasks]]&lt;br /&gt;
* [[Patch WebOS Bypassing Lock Screen|Unlock: Bypass the Passcode Entry Screen]]&lt;br /&gt;
&lt;br /&gt;
===Fixed in 1.1 - No longer needed===&lt;br /&gt;
* [[Patch Email Fix Broken Formatting|Email: Fix Broken Formatting for E-mails]]&lt;br /&gt;
&lt;br /&gt;
===Not 1.1 compatible===&lt;br /&gt;
* [[Patch Camera Remote View|Camera: Remote View]]&lt;br /&gt;
* [[Patch Email Enable Landscape Viewing|Email: Enable Landscape Viewing]] &lt;br /&gt;
* [[Patch Email Fix Attachments|Email: Fix Attachments]]&lt;br /&gt;
* [[Patch Sudoku Disable Zooming|Sudoku: Disable Zooming]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
|column2=&lt;br /&gt;
==Patches not part of a specific app==&lt;br /&gt;
===webOS 1.1 OK===&lt;br /&gt;
* [[Patch webOS Boot Themes|Boot Themes]]&lt;br /&gt;
* [[Patch webOS Brightness|Brightness]]&lt;br /&gt;
* [[Patch webOS Bypassing Activation|Bypassing Activation]]&lt;br /&gt;
* [[Patch webOS Change Carrier String|Change Carrier String]]&lt;br /&gt;
* [[Change_the_default_notification.wav_Sound|Change the Default notification.wav Sound]]&lt;br /&gt;
* [[Patch webOS Changing the &amp;quot;Turn off after X&amp;quot; time|Changing the &amp;quot;Turn off after X&amp;quot; Time]]&lt;br /&gt;
* [[Patch webOS CPU Frequency or Voltage Scaling|CPU Frequency or Voltage Scaling]]&lt;br /&gt;
* [[Patch webOS Disable Charging Event Sounds|Disable Charging Event Sounds]]&lt;br /&gt;
* [[Patch webOS GPS Tracking|GPS Tracking]]&lt;br /&gt;
* [[Patch webOS Graphics|Graphics]]&lt;br /&gt;
* [[Patch webOS Hourly Chime|Hourly Chime]] &lt;br /&gt;
* [[Patch webOS Turning Off Dialpad Noise|Turning Off Dialpad Noise]]&lt;br /&gt;
* [[Patch webOS Keep Phone Awake While in Remote Session|Keep Phone Awake While in Remote Session]]&lt;br /&gt;
* [[Patch webOS Logging Information from Within Scripts|Logging Information from Within Scripts]]&lt;br /&gt;
* [[Patch webOS Modifying a Stock App While Keeping the Original|Modifying a Stock App While Keeping the Original]] &lt;br /&gt;
* [[Patch webOS Add Words to AutoCorrect Dictionary|Modify AutoCorrect Dictionary]]&lt;br /&gt;
* [[On Screen Keyboard]]&lt;br /&gt;
* [[Patch webOS Radio Power Switch|Radio Power Switch]]&lt;br /&gt;
* [[Patch webOS Random Wallpaper Switching|Random Wallpaper Switching]]&lt;br /&gt;
* [[Patch webOS Reverse Tunnel|Reverse Tunnel]] &lt;br /&gt;
* [[Patch webOS Roam Control|Roam Control]]&lt;br /&gt;
* [[Patch webOS Show Actual Battery Percentage | Show Actual Battery Percentage]]&lt;br /&gt;
* [[Screenlock On When Connected|Stay On While Connected]]&lt;br /&gt;
* [[Make USB Partition Writable via SFTP|Make USB Partition writable via SFTP]]&lt;br /&gt;
&lt;br /&gt;
===Fixed in 1.1 - No longer needed===&lt;br /&gt;
* Empty&lt;br /&gt;
&lt;br /&gt;
===Not 1.1 compatible===&lt;br /&gt;
* [[Patch webOS Email App Patch to Prompt for IPK Installation|Email App Patch to Prompt for IPK Installation]] &lt;br /&gt;
&lt;br /&gt;
|column3=&lt;br /&gt;
==== The following have not been checked for compatibility with webOS 1.1. ====&lt;br /&gt;
&lt;br /&gt;
* [[Browser_Plugins|Browser Plugins]]&lt;br /&gt;
* [[Camera Mod Alternate Sound Disable]]&lt;br /&gt;
* [[Changes_Alert/Notification_Sounds|Changes Alert/Notification Sounds]]&lt;br /&gt;
* [[Myavatar In Messaging App|Myavatar In Messaging App]] &lt;br /&gt;
* [[Photos Slideshow|Photos Slideshow]] &lt;br /&gt;
&lt;br /&gt;
==== The following are deprecated.  They have been replaced with methods which are easier or are moot in 1.1 ====&lt;br /&gt;
&lt;br /&gt;
* [[Installing Homebrew Apps With A Rooted Pre|Installing Homebrew Apps With A Linux Accessed Pre]]  &lt;br /&gt;
* [[Packaging Homebrew Apps for Stock Pre without Rooting|Packaging Homebrew Apps for Stock Pre without Accessing Linux]] &lt;br /&gt;
* [[Modifying Stock Applications|Modifying Stock Applications]] &lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Tk102</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Jump_Forward,_Backward_One_Word_at_a_Time&amp;diff=4841</id>
		<title>Patch Messaging Jump Forward, Backward One Word at a Time</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Jump_Forward,_Backward_One_Word_at_a_Time&amp;diff=4841"/>
		<updated>2009-08-27T17:13:12Z</updated>

		<summary type="html">&lt;p&gt;Tk102: New page: {{template:patch}} = Summary = '''Sym+f''' : jump backwards one word&amp;lt;br&amp;gt; '''Sym+g''' : jump forwards one word = Description = It's very easy to fat finger while thumbing out a message and ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{template:patch}}&lt;br /&gt;
= Summary =&lt;br /&gt;
'''Sym+f''' : jump backwards one word&amp;lt;br&amp;gt;&lt;br /&gt;
'''Sym+g''' : jump forwards one word&lt;br /&gt;
= Description =&lt;br /&gt;
It's very easy to fat finger while thumbing out a message and difficult to tap the cursor into the right position to correct a typo.  Not having arrow keys to move the cursor drove me nuts, especially when the typo was near the submit icon -- oops accidentally sent garbage because my fingertip was sharp enough.  This patch allows Sym+f to jump backwards one word and Sym+g to jump forward one word.  This, plus the built-in Shift+Backspace to delete the current word makes fixing typos much easier.  Most other Sym+key combinations are shortcuts for other symbols but f and g were unused. &lt;br /&gt;
&lt;br /&gt;
= Prerequisites=&lt;br /&gt;
* Rooted phone.&lt;br /&gt;
&lt;br /&gt;
= Process=&lt;br /&gt;
# Log in as root.&lt;br /&gt;
# Mount the file system as RW.&lt;br /&gt;
# Enter the '''/usr/palm/applications/com.palm.app.messaging/app/controllers''' directory.&lt;br /&gt;
# In '''chatview-assistant.js''', locate the ''handleTextAreaUp'' event handler near line 1680:&lt;br /&gt;
#: &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;		handleTextAreaKeyUp: function(event) {handleTextAreaKeyUp: function(event) {&amp;lt;/source&amp;gt;&lt;br /&gt;
#: and add the following just after:&lt;br /&gt;
#:: &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;		   if (event &amp;amp;&amp;amp; event.ctrlKey &amp;amp;&amp;amp; event.keyCode==Mojo.Char.f) {&lt;br /&gt;
#::			currentText=this.messageTextElement.value;&lt;br /&gt;
#::			oldPos = this.messageTextElement.selectionStart;&lt;br /&gt;
#::			newPos = currentText.lastIndexOf(' ',oldPos-1);&lt;br /&gt;
#::			if (newPos&amp;gt;-1) {&lt;br /&gt;
#::				this.messageTextElement.setSelectionRange(newPos,newPos);&lt;br /&gt;
#::			}&lt;br /&gt;
#::			else {&lt;br /&gt;
#::				this.messageTextElement.setSelectionRange(0,0);&lt;br /&gt;
#::			}&lt;br /&gt;
#::			Event.stop(event);&lt;br /&gt;
#::		}&lt;br /&gt;
#::&lt;br /&gt;
#::		if (event &amp;amp;&amp;amp; event.ctrlKey &amp;amp;&amp;amp; event.keyCode==Mojo.Char.g ) {&lt;br /&gt;
#::			currentText=this.messageTextElement.value;&lt;br /&gt;
#::			oldPos = this.messageTextElement.selectionStart;&lt;br /&gt;
#::			newPos = currentText.indexOf(' ',oldPos);&lt;br /&gt;
#::			if (newPos&amp;gt;-1) {&lt;br /&gt;
#::				this.messageTextElement.setSelectionRange(newPos+1,newPos+1);&lt;br /&gt;
#::			}&lt;br /&gt;
#::			else {&lt;br /&gt;
#::				this.messageTextElement.setSelectionRange(currentText.length,currentText.length);&lt;br /&gt;
#::			}&lt;br /&gt;
#::			Event.stop(event);&lt;br /&gt;
#::		} &amp;lt;/source&amp;gt;&lt;br /&gt;
# Mount the file system as RO.&lt;br /&gt;
# Reboot.&lt;/div&gt;</summary>
		<author><name>Tk102</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Change_%22Enter_Key%22_To_Create_Newline&amp;diff=4840</id>
		<title>Patch Messaging Change &quot;Enter Key&quot; To Create Newline</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Change_%22Enter_Key%22_To_Create_Newline&amp;diff=4840"/>
		<updated>2009-08-27T14:36:19Z</updated>

		<summary type="html">&lt;p&gt;Tk102: /* Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{template:patch}}&lt;br /&gt;
= Description=&lt;br /&gt;
I know a lot of people really like sending messages that are coherent, and a great way to do that is with the newline character. However, pressing the ENTER key in the messaging app sends a message, rather than typing a newline character. This page will show you how to (easily) change that action.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites=&lt;br /&gt;
* Rooted phone.&lt;br /&gt;
&lt;br /&gt;
= Process=&lt;br /&gt;
# Log in as root.&lt;br /&gt;
# Mount the file system as RW.&lt;br /&gt;
# Enter the '''/usr/palm/applications/com.palm.app.messaging/app/controllers''' directory.&lt;br /&gt;
# Change '''compose-assistant.js''' (line 87) and '''chatview-assistant.js''' (line 100) and set '''enterSubmits''' to be '''false'''.&lt;br /&gt;
# In the '''handleTextAreaKeyUp''' function in '''compose-assistant.js''' (lines 278 to 283) and '''chatview-assistant.js''' (lines 1678 to 1683), comment out the following lines:&lt;br /&gt;
#: &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;this.considerForSend();&lt;br /&gt;
#: Event.stop(event); &amp;lt;/source&amp;gt;&lt;br /&gt;
# To actually display newlines in the chatview: In '''chatview-assistant.js''', in the ''ChatviewAssisant::preFormatChatList'' method (around line 1220), locate the lines:&lt;br /&gt;
#: &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;if(msg.messageText &amp;amp;&amp;amp; !ChatFlags.isTransient(msg.flags)) { &lt;br /&gt;
#:: msg.messageText = msg.messageText.escapeHTML(); &amp;lt;/source&amp;gt;&lt;br /&gt;
#: and add the following just after:&lt;br /&gt;
#:&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;msg.messageText = msg.messageText.replace(/\n/g,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;); &amp;lt;/source&amp;gt;&lt;br /&gt;
# Mount the file system as RO.&lt;br /&gt;
# Reboot.&lt;br /&gt;
&lt;br /&gt;
= Post-Mod Screenshots=&lt;br /&gt;
[[Image:Messaging-newline1.jpg]]&lt;br /&gt;
[[Image:Messaging-newline2.jpg]]&lt;br /&gt;
&lt;br /&gt;
= Issues=&lt;br /&gt;
* When moving down a line, you can't get the first character to be lower-case.&lt;br /&gt;
&lt;br /&gt;
= Further Development=&lt;br /&gt;
* I'm sure this is quite simple, but as I said before, I haven't put too much time into this yet... It would be really nice if we could use a SHIFT+ENTER to type a newline, and only pressing ENTER would send the message as it does now. That way, everybody wins.&lt;br /&gt;
&lt;br /&gt;
== Author(s)==&lt;br /&gt;
* xluryan&lt;/div&gt;</summary>
		<author><name>Tk102</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Change_%22Enter_Key%22_To_Create_Newline&amp;diff=4839</id>
		<title>Patch Messaging Change &quot;Enter Key&quot; To Create Newline</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Change_%22Enter_Key%22_To_Create_Newline&amp;diff=4839"/>
		<updated>2009-08-27T14:29:59Z</updated>

		<summary type="html">&lt;p&gt;Tk102: Undo revision 4836 by Hernie (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{template:patch}}&lt;br /&gt;
= Description=&lt;br /&gt;
I know a lot of people really like sending messages that are coherent, and a great way to do that is with the newline character. However, pressing the ENTER key in the messaging app sends a message, rather than typing a newline character. This page will show you how to (easily) change that action.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites=&lt;br /&gt;
* Rooted phone.&lt;br /&gt;
&lt;br /&gt;
= Process=&lt;br /&gt;
# Log in as root.&lt;br /&gt;
# Mount the file system as RW.&lt;br /&gt;
# Enter the '''/usr/palm/applications/com.palm.app.messaging/app/controllers''' directory.&lt;br /&gt;
# Change '''compose-assistant.js''' (line 87) and '''chatview-assistant.js''' (line 100) and set '''enterSubmits''' to be '''false'''.&lt;br /&gt;
# Comment out the '''handleTextAreaKeyUp''' function in '''compose-assistant.js''' (lines 278 to 283) and '''chatview-assistant.js''' (lines 1678 to 1683).&lt;br /&gt;
# To actually display newlines in the chatview: In '''chatview-assistant.js''', in the ''ChatviewAssisant::preFormatChatList'' method (around line 1220), locate the lines:&lt;br /&gt;
#: &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;if(msg.messageText &amp;amp;&amp;amp; !ChatFlags.isTransient(msg.flags)) { &lt;br /&gt;
#:: msg.messageText = msg.messageText.escapeHTML(); &amp;lt;/source&amp;gt;&lt;br /&gt;
#: and add the following just after:&lt;br /&gt;
#:&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;msg.messageText = msg.messageText.replace(/\n/g,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;); &amp;lt;/source&amp;gt;&lt;br /&gt;
# Mount the file system as RO.&lt;br /&gt;
# Reboot.&lt;br /&gt;
&lt;br /&gt;
= Post-Mod Screenshots=&lt;br /&gt;
[[Image:Messaging-newline1.jpg]]&lt;br /&gt;
[[Image:Messaging-newline2.jpg]]&lt;br /&gt;
&lt;br /&gt;
= Issues=&lt;br /&gt;
* When moving down a line, you can't get the first character to be lower-case.&lt;br /&gt;
&lt;br /&gt;
= Further Development=&lt;br /&gt;
* I'm sure this is quite simple, but as I said before, I haven't put too much time into this yet... It would be really nice if we could use a SHIFT+ENTER to type a newline, and only pressing ENTER would send the message as it does now. That way, everybody wins.&lt;br /&gt;
&lt;br /&gt;
== Author(s)==&lt;br /&gt;
* xluryan&lt;/div&gt;</summary>
		<author><name>Tk102</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=User:Tk102&amp;diff=4764</id>
		<title>User:Tk102</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=User:Tk102&amp;diff=4764"/>
		<updated>2009-08-24T19:30:00Z</updated>

		<summary type="html">&lt;p&gt;Tk102: New page: Nothing really to say, just don't care to see my username in red.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nothing really to say, just don't care to see my username in red.&lt;/div&gt;</summary>
		<author><name>Tk102</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Patch_Messaging_Change_%22Enter_Key%22_To_Create_Newline&amp;diff=4747</id>
		<title>Talk:Patch Messaging Change &quot;Enter Key&quot; To Create Newline</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Patch_Messaging_Change_%22Enter_Key%22_To_Create_Newline&amp;diff=4747"/>
		<updated>2009-08-24T00:06:54Z</updated>

		<summary type="html">&lt;p&gt;Tk102: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;this is a useful mod, thx for sharing!&lt;br /&gt;
&lt;br /&gt;
as for displaying the newlines and spaces in the message body, the issue is that pretty much everything is a web page.  therefore you have to wrap the message text in &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt; tags to preserve the format.  see [[Patch_Messaging_Adding_Timestamps_to_All_Received_Messages#Add_Timestamps_to_All_Messages_-_another_approach|this link]] for a solution to the problem.&lt;br /&gt;
: That is one method, although the &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt; tag makes the text look like a typewriter and prevents word wrapping from occurring correctly.  A better alternative is actually replace the newline characters with &amp;lt;nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/nowiki&amp;gt; tags before the message is rendered. &lt;br /&gt;
: [[User:Tk102|Tk102]] 00:06, 24 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
This is great. I am often hitting enter by accident and sending before I'm ready, so please also include how to do the opposite of your plan: enter does a new line and shift-enter sends. Thanks!!!&lt;/div&gt;</summary>
		<author><name>Tk102</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Change_%22Enter_Key%22_To_Create_Newline&amp;diff=4744</id>
		<title>Patch Messaging Change &quot;Enter Key&quot; To Create Newline</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Change_%22Enter_Key%22_To_Create_Newline&amp;diff=4744"/>
		<updated>2009-08-24T00:03:49Z</updated>

		<summary type="html">&lt;p&gt;Tk102: /* Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{template:patch}}&lt;br /&gt;
= Description=&lt;br /&gt;
I know a lot of people really like sending messages that are coherent, and a great way to do that is with the newline character. However, pressing the ENTER key in the messaging app sends a message, rather than typing a newline character. This page will show you how to (easily) change that action.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites=&lt;br /&gt;
* Rooted phone.&lt;br /&gt;
&lt;br /&gt;
= Process=&lt;br /&gt;
# Log in as root.&lt;br /&gt;
# Mount the file system as RW.&lt;br /&gt;
# Enter the '''/usr/palm/applications/com.palm.app.messaging/app/controllers''' directory.&lt;br /&gt;
# Change '''compose-assistant.js''' (line 87) and '''chatview-assistant.js''' (line 100) and set '''enterSubmits''' to be '''false'''.&lt;br /&gt;
# Comment out the '''handleTextAreaKeyUp''' function in '''compose-assistant.js''' (lines 278 to 283) and '''chatview-assistant.js''' (lines 1678 to 1683).&lt;br /&gt;
# To actually display newlines in the chatview: In '''chatview-assistant.js''', in the ''ChatviewAssisant::preFormatChatList'' method (around line 1220), locate the lines:&lt;br /&gt;
#: &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;if(msg.messageText &amp;amp;&amp;amp; !ChatFlags.isTransient(msg.flags)) { &lt;br /&gt;
#:: msg.messageText = msg.messageText.escapeHTML(); &amp;lt;/source&amp;gt;&lt;br /&gt;
#: and add the following just after:&lt;br /&gt;
#:&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;msg.messageText = msg.messageText.replace(/\n/g,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;); &amp;lt;/source&amp;gt;&lt;br /&gt;
# Mount the file system as RO.&lt;br /&gt;
# Reboot.&lt;br /&gt;
&lt;br /&gt;
= Post-Mod Screenshots=&lt;br /&gt;
[[Image:Messaging-newline1.jpg]]&lt;br /&gt;
[[Image:Messaging-newline2.jpg]]&lt;br /&gt;
&lt;br /&gt;
= Issues=&lt;br /&gt;
* When moving down a line, you can't get the first character to be lower-case.&lt;br /&gt;
&lt;br /&gt;
= Further Development=&lt;br /&gt;
* I'm sure this is quite simple, but as I said before, I haven't put too much time into this yet... It would be really nice if we could use a SHIFT+ENTER to type a newline, and only pressing ENTER would send the message as it does now. That way, everybody wins.&lt;br /&gt;
&lt;br /&gt;
== Author(s)==&lt;br /&gt;
* xluryan&lt;/div&gt;</summary>
		<author><name>Tk102</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Change_%22Enter_Key%22_To_Create_Newline&amp;diff=4743</id>
		<title>Patch Messaging Change &quot;Enter Key&quot; To Create Newline</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Change_%22Enter_Key%22_To_Create_Newline&amp;diff=4743"/>
		<updated>2009-08-24T00:03:16Z</updated>

		<summary type="html">&lt;p&gt;Tk102: /* Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{template:patch}}&lt;br /&gt;
= Description=&lt;br /&gt;
I know a lot of people really like sending messages that are coherent, and a great way to do that is with the newline character. However, pressing the ENTER key in the messaging app sends a message, rather than typing a newline character. This page will show you how to (easily) change that action.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites=&lt;br /&gt;
* Rooted phone.&lt;br /&gt;
&lt;br /&gt;
= Process=&lt;br /&gt;
# Log in as root.&lt;br /&gt;
# Mount the file system as RW.&lt;br /&gt;
# Enter the '''/usr/palm/applications/com.palm.app.messaging/app/controllers''' directory.&lt;br /&gt;
# Change '''compose-assistant.js''' (line 87) and '''chatview-assistant.js''' (line 100) and set '''enterSubmits''' to be '''false'''.&lt;br /&gt;
# Comment out the '''handleTextAreaKeyUp''' function in '''compose-assistant.js''' (lines 278 to 283) and '''chatview-assistant.js''' (lines 1678 to 1683).&lt;br /&gt;
# To actually display newlines in the chatview: In '''chatview-assistant.js''', in the ''ChatviewAssisant::preFormatChatList'' method (around line 1220), locate the lines:&lt;br /&gt;
#: &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;if(msg.messageText &amp;amp;&amp;amp; !ChatFlags.isTransient(msg.flags)) { &lt;br /&gt;
#:: msg.messageText = msg.messageText.escapeHTML(); &amp;lt;/source&amp;gt;&lt;br /&gt;
#: and add the following just after:&lt;br /&gt;
#:&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;msg.messageText = msg.messageText.replace(/\n/g,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;); &amp;lt;/source&amp;gt;&lt;br /&gt;
# Mount the file system as RO.&lt;br /&gt;
# Reboot.&lt;br /&gt;
&lt;br /&gt;
= Post-Mod Screenshots=&lt;br /&gt;
[[Image:Messaging-newline1.jpg]]&lt;br /&gt;
[[Image:Messaging-newline2.jpg]]&lt;br /&gt;
&lt;br /&gt;
= Issues=&lt;br /&gt;
* I haven't put enough time into this yet to figure out how to get the chat history to actually //show// the newlines. I think somewhere it just converts them to spaces. I'll research this more and let you know. (I have actually confirmed from another phone that it does send out the newline characters). (see the ''discussion'' tab above for the solution)&lt;br /&gt;
* When moving down a line, you can't get the first character to be lower-case.&lt;br /&gt;
&lt;br /&gt;
= Further Development=&lt;br /&gt;
* I'm sure this is quite simple, but as I said before, I haven't put too much time into this yet... It would be really nice if we could use a SHIFT+ENTER to type a newline, and only pressing ENTER would send the message as it does now. That way, everybody wins.&lt;br /&gt;
&lt;br /&gt;
== Author(s)==&lt;br /&gt;
* xluryan&lt;/div&gt;</summary>
		<author><name>Tk102</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Adding_Timestamps_to_All_Received_Messages&amp;diff=3791</id>
		<title>Patch Messaging Adding Timestamps to All Received Messages</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Adding_Timestamps_to_All_Received_Messages&amp;diff=3791"/>
		<updated>2009-08-04T22:27:55Z</updated>

		<summary type="html">&lt;p&gt;Tk102: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{template:patch}}&lt;br /&gt;
== Introduction==&lt;br /&gt;
&lt;br /&gt;
A number of users have requested adding timestamps to each message that arrives on the device.&lt;br /&gt;
Palm actually goes out of their way to group messages that have arrived during various time intervals,&lt;br /&gt;
but if you'd prefer to see a timestamp on each message, simply follow the instructions below.&lt;br /&gt;
&lt;br /&gt;
== Procedure==&lt;br /&gt;
&lt;br /&gt;
1. Remount the file system as read/write&lt;br /&gt;
&lt;br /&gt;
2. cd to '''/usr/palm/applications/com.palm.app.messaging/app/controllers/'''&lt;br /&gt;
&lt;br /&gt;
3. Backup '''chatview-assistant.js''' (just to be safe)&lt;br /&gt;
&lt;br /&gt;
4. Open '''chatview-assistant.js''' and comment out the following lines:&lt;br /&gt;
&lt;br /&gt;
 * 1169 (webOS 1.1: '''1242''') - line that starts with: '''if(!ChatFlags.'''&lt;br /&gt;
 * 1177 (webOS 1.1: '''1250''') - line that starts with: '''if(today-msg.'''&lt;br /&gt;
 * 1179 (webOS 1.1: '''1252''') - first closing bracket on its own line: '''}'''&lt;br /&gt;
 * 1180 (webOS 1.1: '''1253''') - second closing bracket on its own line: '''}'''&lt;br /&gt;
&lt;br /&gt;
5. Save the file and exit the editor&lt;br /&gt;
&lt;br /&gt;
6. Remount the file system as read-only&lt;br /&gt;
&lt;br /&gt;
7. Logout of your root session&lt;br /&gt;
&lt;br /&gt;
8. Reboot the device&lt;br /&gt;
&lt;br /&gt;
You should now see a full timestamp on all received messages.&lt;br /&gt;
&lt;br /&gt;
= Add Timestamps to All Messages - another approach =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The method described above is the easiest way to display message timestamps.  I went a little farther since I didn't want the &amp;quot;Message Sent:&amp;quot; label and I also wanted to format the string a bit more.  While I was at it, I also modified the view for the message text to display as pre-formatted text since text messages are text after all, not html.&lt;br /&gt;
&lt;br /&gt;
== Procedure ==&lt;br /&gt;
&lt;br /&gt;
* same as steps 1 &amp;amp; 2 above&lt;br /&gt;
* save a backup of /usr/palm/applications/com.palm.app.messaging/&lt;br /&gt;
** stylesheets/messaging.css&lt;br /&gt;
** app/views/chatview/message/message-text.html&lt;br /&gt;
** app/controllers/chatview-assistant.js&lt;br /&gt;
* edit stylesheets/messaging.css&lt;br /&gt;
** search for the string 'messageText' and append the following after its style definition&lt;br /&gt;
&lt;br /&gt;
 .messageText pre {&lt;br /&gt;
    font-family: inherit;&lt;br /&gt;
    font-size: inherit;&lt;br /&gt;
    color: inherit;&lt;br /&gt;
 }&lt;br /&gt;
 .timeStamp {&lt;br /&gt;
    font-size: 12px;&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
    color: #1111ff;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
**feel free to change the style to your liking.  I tried using 'white-space: pre-wrap' in the .messageText class but it didn't behave as expected, hence the use of the pre tag.&lt;br /&gt;
* edit app/views/chatview/message/message-text.html&lt;br /&gt;
** change the single line to:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;messageText&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;#{-messageText}&amp;lt;/pre&amp;gt; #{-errorContent}&amp;lt;span class=&amp;quot;timeStamp&amp;quot;&amp;gt;#{-timeStampText}&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* edit app/controllers/chatview-assistant.js&lt;br /&gt;
** search for the string 'preFormatChatList:' and just below that look for 'var msg = stuff.list[i];'&lt;br /&gt;
** somewhere after that line (within the for loop) add the following:&lt;br /&gt;
 var ts = new Date();&lt;br /&gt;
 ts.setTime(msg.deviceTimeStamp);&lt;br /&gt;
 msg.timeStampText = Mojo.Format.formatDate(ts,'short');&lt;br /&gt;
** note that I used msg.deviceTimeStamp which I believe is when your phone sent/received the message.  If you'd prefer the time it was actually sent by the sender, use msg.timeStamp instead.  while you're in here, you may consider applying the [[Patch Messaging Change &amp;quot;Enter Key&amp;quot; To Create Newline|send on return behavior]] changes.&lt;br /&gt;
* restart LunaSysMgr or reboot&lt;br /&gt;
&lt;br /&gt;
be sure to save the files you modified as they could get overwritten on the next sprint update.  better yet, install [[Applying_Patches|quilt]] to manage the diffs as a patch.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements==&lt;br /&gt;
&lt;br /&gt;
Thanks to tk102 and scuba_steve on [http://www.precentral.net/ PreCentral] for the mod.&lt;/div&gt;</summary>
		<author><name>Tk102</name></author>
	</entry>
</feed>