From b9ec94a1ff5cfb43916167aa7ffac50746a7dbf7 Mon Sep 17 00:00:00 2001 From: Wetitpig Date: Wed, 1 Nov 2023 16:04:29 +0800 Subject: [PATCH] Built-in BATTERY_PROPERTY_CAPACITY and BATTERY_PROPERTY_CHARGE_COUNTER `BATTERY_PROPERTY_CHARGE_COUNTER` can be multiplied with `EXTRA_VOLTAGE` in another pull request to obtain the energy level, while `BATTERY_PROPERTY_CAPACITY` can be obtained since API level 21 without doing the calculation by Termux itself. --- .../main/java/com/termux/api/apis/BatteryStatusAPI.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/termux/api/apis/BatteryStatusAPI.java b/app/src/main/java/com/termux/api/apis/BatteryStatusAPI.java index b18aa5436..08a6f0dc1 100644 --- a/app/src/main/java/com/termux/api/apis/BatteryStatusAPI.java +++ b/app/src/main/java/com/termux/api/apis/BatteryStatusAPI.java @@ -23,10 +23,6 @@ public static void onReceive(TermuxApiReceiver apiReceiver, final Context contex public void writeJson(JsonWriter out) throws Exception { Intent batteryStatus = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); - int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); - int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1); - final int batteryPercentage = (level * 100) / scale; - int health = batteryStatus.getIntExtra(BatteryManager.EXTRA_HEALTH, -1); String batteryHealth; switch (health) { @@ -106,11 +102,12 @@ public void writeJson(JsonWriter out) throws Exception { out.beginObject(); out.name("health").value(batteryHealth); - out.name("percentage").value(batteryPercentage); + out.name("percentage").value(batteryManager.getLongProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY)); out.name("plugged").value(batteryPlugged); out.name("status").value(batteryStatusString); out.name("temperature").value(batteryTemperature); out.name("current").value(batteryManager.getLongProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_NOW)); + out.name("charge").value(batteryManager.getLongProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER)); out.endObject(); } });