Patch webOS Workaround for Touchstone Charging Event Problem

This is a workaround for the widely reported problem with Touchstone docks, where when the battery reaches 100%, webOS starts to repeatedly report the 'Charging Battery' notification. The problem is widely believed to be in the Touchstone dock unit itself, and if you're experiencing this problem, I'd strongly recommend you visit the shop where you purchased the Touchstone docks and get a replacement - this is the real solution to the problem!

However, if, like me, you've found that the shop is now completely out-of-stock of good docks because everything they had were faulty, and you want a workaround while you're waiting then this patch is for you. Also, I think this is quite a useful patch to have if you don't trust the Touchstone much any more (but still love it and will continue using it) and want to GUARANTEE a good night's sleep next to your Pre.

This patch was inspired by the patch for Disable Charging Event Sounds.

= Effect =
 * When battery reaches 100%, and the device is charged using the Touchstone dock, the 'Charging Battery' notification will no longer pop up
 * Continues to show the notification if battery is not yet at 100% or if not using the dock (i.e. if charging using USB)
 * Notice that at 100%, the battery icon in the top-right still flickers between charging and not charging - all this patch does is suppress the notification - it doesn't actually fix the underlying problem which is in the Touchstone dock

= Procedure (webOS 1.1) =

Step 1: sudo -i

Step 2: Unlock file system mount -o remount rw /

Step 3: Edit and goto line 1480 (or near line 1480) vi /usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js
 * 1480

Step 4: Replace this: if(!this.chargingBannerShown && payload.name && (payload.name == "wall" || payload.name == "puck")) {

Step 5: With this, and save: if(!this.chargingBannerShown && payload.name && (payload.name == "wall" || (payload.name == "puck" && this.batteryLevel < 100))) {

Step 6: Lock file system mount -o remount ro /

Step 7: Restart Luna System Manager pkill LunaSysMgr