From bc1f4798a61ec545cc215529da8b6b3e19f993fc Mon Sep 17 00:00:00 2001 From: Zaiyue Xue Date: Mon, 31 Oct 2022 14:56:28 +0800 Subject: [PATCH] Refoactor 2 util functions from DatabaseUtil to BatteyUtils. Bug: 252407178 Test: presubmit Change-Id: I393777186cc308298f0a8b76af4672b9012ed681 --- .../settings/fuelgauge/BatteryUtils.java | 19 ++++++++++++++++-- .../BatteryUsageBroadcastReceiver.java | 3 ++- .../fuelgauge/batteryusage/DatabaseUtils.java | 20 +++---------------- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/com/android/settings/fuelgauge/BatteryUtils.java b/src/com/android/settings/fuelgauge/BatteryUtils.java index 7739f6dd708..c5a8b0002a7 100644 --- a/src/com/android/settings/fuelgauge/BatteryUtils.java +++ b/src/com/android/settings/fuelgauge/BatteryUtils.java @@ -23,6 +23,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import android.os.BatteryManager; import android.os.BatteryStats; import android.os.BatteryStatsManager; import android.os.BatteryUsageStats; @@ -397,8 +398,7 @@ public class BatteryUtils { final long startTime = System.currentTimeMillis(); // Stuff we always need to get BatteryInfo - final Intent batteryBroadcast = mContext.registerReceiver(null, - new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); + final Intent batteryBroadcast = getBatteryIntent(mContext); final long elapsedRealtimeUs = PowerUtil.convertMsToUs( SystemClock.elapsedRealtime()); @@ -577,4 +577,19 @@ public class BatteryUtils { return -1L; } + + /** Gets the latest sticky battery intent from the Android system. */ + public static Intent getBatteryIntent(Context context) { + return context.registerReceiver( + /*receiver=*/ null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); + } + + /** Gets the battery level from the intent. */ + public static int getBatteryLevel(Intent intent) { + final int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); + final int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 0); + return scale == 0 + ? -1 /*invalid battery level*/ + : Math.round((level / (float) scale) * 100f); + } } diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java index a9e3c1d4a1a..4eaa1545259 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java @@ -25,6 +25,7 @@ import android.util.Log; import androidx.annotation.VisibleForTesting; +import com.android.settings.fuelgauge.BatteryUtils; import com.android.settingslib.fuelgauge.BatteryStatus; import java.time.Duration; @@ -64,7 +65,7 @@ public final class BatteryUsageBroadcastReceiver extends BroadcastReceiver { } private void tryToFetchUsageData(Context context) { - final Intent batteryIntent = DatabaseUtils.getBatteryIntent(context); + final Intent batteryIntent = BatteryUtils.getBatteryIntent(context); // Returns when battery is not fully charged. if (!BatteryStatus.isCharged(batteryIntent)) { return; diff --git a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java index 29e0b0e70d4..7efd15229bd 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java +++ b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java @@ -19,7 +19,6 @@ import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; import android.content.Intent; -import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.database.Cursor; @@ -36,6 +35,7 @@ import android.util.Log; import androidx.annotation.VisibleForTesting; +import com.android.settings.fuelgauge.BatteryUtils; import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDatabase; import com.android.settingslib.fuelgauge.BatteryStatus; @@ -141,24 +141,18 @@ public final class DatabaseUtils { }); } - /** Gets the latest sticky battery intent from framework. */ - static Intent getBatteryIntent(Context context) { - return context.registerReceiver( - /*receiver=*/ null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); - } - static List sendBatteryEntryData( Context context, List batteryEntryList, BatteryUsageStats batteryUsageStats) { final long startTime = System.currentTimeMillis(); - final Intent intent = getBatteryIntent(context); + final Intent intent = BatteryUtils.getBatteryIntent(context); if (intent == null) { Log.e(TAG, "sendBatteryEntryData(): cannot fetch battery intent"); clearMemory(); return null; } - final int batteryLevel = getBatteryLevel(intent); + final int batteryLevel = BatteryUtils.getBatteryLevel(intent); final int batteryStatus = intent.getIntExtra( BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_UNKNOWN); final int batteryHealth = intent.getIntExtra( @@ -306,14 +300,6 @@ public final class DatabaseUtils { return resultMap; } - private static int getBatteryLevel(Intent intent) { - final int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); - final int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 0); - return scale == 0 - ? -1 /*invalid battery level*/ - : Math.round((level / (float) scale) * 100f); - } - private static void clearMemory() { if (SystemClock.uptimeMillis() > CLEAR_MEMORY_THRESHOLD_MS) { return;