OSDN Git Service

Tweak battery level handling for system tray + misc fixes
authorBraden Farmer <farmerbb@gmail.com>
Thu, 24 Oct 2019 00:47:17 +0000 (18:47 -0600)
committerBraden Farmer <farmerbb@gmail.com>
Thu, 24 Oct 2019 00:47:17 +0000 (18:47 -0600)
app/src/compat-28/java/com/farmerbb/taskbar/util/CompatUtils.java
app/src/main/java/com/farmerbb/taskbar/fragment/FreeformModeFragment.java
app/src/main/java/com/farmerbb/taskbar/ui/TaskbarController.java
app/src/main/java/com/farmerbb/taskbar/util/U.java
app/src/main/res/layout/system_tray.xml

index 0642eb3..8e09d4d 100644 (file)
@@ -16,7 +16,7 @@
 package com.farmerbb.taskbar.util;
 
 // Utility class meant for compatibility between the Android-x86 version of Taskbar (compiled with SDK 27)
-// and the Play Store version of Taskbar (compiled with SDK 28).
+// and the Play Store version of Taskbar (compiled with SDK 29).
 // TODO Do not make changes to this file without making corresponding changes to the Android-x86 version.
 
 import android.os.Build;
index 5bc010e..ca67547 100644 (file)
@@ -151,12 +151,12 @@ public class FreeformModeFragment extends SettingsFragment implements Preference
 
                             AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                             if(Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1
-                                    && Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {
+                                    && U.getCurrentApiVersion() <= 28.0f) {
                                 builder.setTitle(R.string.freeform_dialog_title)
                                         .setMessage(R.string.freeform_dialog_message_alt)
                                         .setPositiveButton(R.string.action_continue, (dialogInterface, i) -> freeformSetupComplete());
                             } else {
-                                String settingName = Build.VERSION.SDK_INT > Build.VERSION_CODES.P
+                                String settingName = U.getCurrentApiVersion() > 28.0f
                                         ? getString(R.string.enable_freeform_windows)
                                         : getString(R.string.force_activities_resizable);
 
index d2400ca..04a8a59 100644 (file)
@@ -1564,25 +1564,31 @@ public class TaskbarController implements UIController {
     private Drawable getBatteryDrawable() {
         BatteryManager bm = (BatteryManager) context.getSystemService(Context.BATTERY_SERVICE);
         int batLevel = bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
-        boolean isCharging = bm.isCharging();
 
         if(batLevel == Integer.MIN_VALUE)
             return null;
 
+        IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
+        Intent batteryStatus = context.registerReceiver(null, ifilter);
+
+        int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
+        boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
+                status == BatteryManager.BATTERY_STATUS_FULL;
+
         String batDrawable;
-        if(batLevel <= 10 && !isCharging)
+        if(batLevel < 10 && !isCharging)
             batDrawable = "alert";
-        else if(batLevel <= 20)
+        else if(batLevel < 25)
             batDrawable = "20";
-        else if(batLevel <= 30)
+        else if(batLevel < 40)
             batDrawable = "30";
-        else if(batLevel <= 50)
+        else if(batLevel < 55)
             batDrawable = "50";
-        else if(batLevel <= 60)
+        else if(batLevel < 70)
             batDrawable = "60";
-        else if(batLevel <= 80)
+        else if(batLevel < 85)
             batDrawable = "80";
-        else if(batLevel <= 90)
+        else if(batLevel < 95)
             batDrawable = "90";
         else
             batDrawable = "full";
index 9b75f7b..973dcd5 100644 (file)
@@ -1396,7 +1396,7 @@ public class U {
         }
     }
 
-    private static float getCurrentApiVersion() {
+    public static float getCurrentApiVersion() {
         if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
             return Float.valueOf(Build.VERSION.SDK_INT + "." + Build.VERSION.PREVIEW_SDK_INT);
         else
index 9116c8f..70289ab 100644 (file)
@@ -62,7 +62,7 @@
         android:layout_width="84dp"
         android:layout_height="match_parent"
         android:gravity="center"
-        android:textSize="16dp"
+        android:textSize="15.499dp"
         android:visibility="gone"
         tools:text="1:41 AM\n03/27/18"
         tools:visibility="visible"