User Tools

Site Tools


script_battery_charging_state

====== About the script ====== * Purpose : Show battery "charging" or "discharging" state * Author : Abednego JS ( https://plus.google.com/u/0/118095355037125433304 ) * Link: https://plus.google.com/u/0/118095355037125433304/posts/UXfaG9YQyqX ====== How to use the script ====== This script will NOT showing anything when the power cable unplugged, just change the batstat value (in variable declaration or onReceive function) to change this. :D * Create shortcut "Lightning Action - Do Nothing" to run this script. * Disable Icon * Set 'BattStatus-resume' script to event resume * Set 'BattStatus-pause' script to event pause This version edited by Pierre to minimize resource usage + updated without user intervention, The old version can be found here: https://www.dropbox.com/s/c0hews7f01b7l01/_AJS_script_oldBATSTATE.txt?dl=0 :) ====== Script code ====== ======= BattStatus-resume ======= <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 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 batstat = ""; if (isCharging) { if (usbCharge) { batstat = "usb charging . . ."; }else { batstat = "AC charging . . ."; } } item.setLabel(batstat); item.setTag("battSt", setTimeout(refresh, PERIOD)); } refresh(); </code> ======= BattStatus-pause ======= <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("battSt"); if(id != null) { clearTimeout(parseInt(id)); } </code>

script_battery_charging_state.txt · Last modified: 2015/03/15 13:23 by jappie