User Tools

Site Tools


script_battery_widget

**This is an old revision of the document!** ----

A PCRE internal error occured. This might be caused by a faulty plugin

====== About the script ====== * Purpose : Show Battery Widget * Author : Abednego JS ( https://plus.google.com/u/0/118095355037125433304 ) * Altered by: Jappie Toutenhoofd (https://plus.google.com/+JappieToutenhoofd) * Link: https://plus.google.com/u/0/118095355037125433304/posts/UXfaG9YQyqX ====== How to use the script ====== * Create shortcut "Lightning Action - Do Nothing" to run this script. * Disable Icon * Set resume-script to event resume * Set pause-script to event pause ====== Script code ====== ======= Item resume script ======= <code> LL.bindClass("android.os.BatteryManager"); LL.bindClass("android.content.BroadcastReceiver"); LL.bindClass("android.content.Intent"); LL.bindClass("android.content.IntentFilter"); // Update every 10s, this is a cyclic update. Improvement: use a receiver instead var PERIOD = 10000; var item = LL.getEvent().getItem(); function refresh() { var ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); var batteryStatus = LL.getContext().registerReceiver(null, ifilter); var status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1); var level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); var scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1); var isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL; var chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); var usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB; var acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC; var batperc = Math.floor((100*level)/scale); var batstat = ""; if (isCharging) { if (usbCharge) { batstat = "usb charging . . ."; }else { batstat = "AC charging . . ."; } }else { batstat = "discharged to " + batperc; } item.setLabel(batstat); var batW = item.getWidth(); var batH = item.getHeight(); var klrR = Math.floor( ( 100 - batperc) * 2.55); var klrG = Math.floor( ( 0 + batperc) * 2.55); var p = new Paint(); p.setAntiAlias(true); p.setStyle(Paint.Style.FILL); p.setColor(Color.rgb(klrR,klrG,0)); var img = LL.createImage( batW,batH); item.setBoxBackground(img, "ns"); var c = img.draw(); c.drawRect(0, 0, (batW * (batperc/100)), batH, p); img.save(); img.update(); item.setTag("batt", setTimeout(refresh, PERIOD)); } refresh(); </code> ======= Item pause script ======= <code> // important: preserve the battery life and clear timeouts when the item is paused to avoid useless background activity var id = LL.getEvent().getItem().getTag("batt"); if(id != null) { clearTimeout(parseInt(id)); } </code>

script_battery_widget.1423665966.txt.gz · Last modified: 2015/02/11 14:46 by jappie