diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java index 08369127b6d..df84aba2d89 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java @@ -20,8 +20,6 @@ import android.app.usage.UsageEvents; import android.content.Context; import android.os.AsyncTask; import android.os.BatteryUsageStats; -import android.os.Handler; -import android.os.Looper; import android.util.Log; import androidx.annotation.VisibleForTesting; @@ -117,11 +115,9 @@ public final class BatteryUsageDataLoader { private static void preprocessBatteryUsageSlots( final Context context, final UserIdsSeries userIdsSeries) { final long start = System.currentTimeMillis(); - final Handler handler = new Handler(Looper.getMainLooper()); final BatteryLevelData batteryLevelData = DataProcessManager.getBatteryLevelData( context, - handler, userIdsSeries, /* isFromPeriodJob= */ true, batteryDiffDataMap -> { diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java index 0a1a547ecc2..fd548abd274 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java +++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java @@ -19,8 +19,6 @@ package com.android.settings.fuelgauge.batteryusage; import android.app.usage.UsageEvents; import android.content.Context; import android.os.AsyncTask; -import android.os.Handler; -import android.os.Looper; import android.util.ArrayMap; import android.util.Log; @@ -82,7 +80,6 @@ public class DataProcessManager { private final long mLastFullChargeTimestamp; private final boolean mIsFromPeriodJob; private final Context mContext; - private final Handler mHandler; private final UserIdsSeries mUserIdsSeries; private final OnBatteryDiffDataMapLoadedListener mCallbackFunction; private final List mAppUsageEventList = new ArrayList<>(); @@ -123,7 +120,6 @@ public class DataProcessManager { /** Constructor when there exists battery level data. */ DataProcessManager( Context context, - Handler handler, final UserIdsSeries userIdsSeries, final boolean isFromPeriodJob, final long rawStartTimestamp, @@ -132,7 +128,6 @@ public class DataProcessManager { @NonNull final List hourlyBatteryLevelsPerDay, @NonNull final Map> batteryHistoryMap) { mContext = context.getApplicationContext(); - mHandler = handler; mUserIdsSeries = userIdsSeries; mIsFromPeriodJob = isFromPeriodJob; mRawStartTimestamp = rawStartTimestamp; @@ -145,11 +140,9 @@ public class DataProcessManager { /** Constructor when there is no battery level data. */ DataProcessManager( Context context, - Handler handler, final UserIdsSeries userIdsSeries, @NonNull final OnBatteryDiffDataMapLoadedListener callbackFunction) { mContext = context.getApplicationContext(); - mHandler = handler; mUserIdsSeries = userIdsSeries; mCallbackFunction = callbackFunction; mIsFromPeriodJob = false; @@ -444,12 +437,8 @@ public class DataProcessManager { @Override protected void onPostExecute(final Map batteryDiffDataMap) { - // Post results back to main thread to refresh UI. - if (mHandler != null && mCallbackFunction != null) { - mHandler.post( - () -> { - mCallbackFunction.onBatteryDiffDataMapLoaded(batteryDiffDataMap); - }); + if (mCallbackFunction != null) { + mCallbackFunction.onBatteryDiffDataMapLoaded(batteryDiffDataMap); } } }.execute(); @@ -534,12 +523,8 @@ public class DataProcessManager { @Override protected void onPostExecute(final Map batteryDiffDataMap) { - // Post results back to main thread to refresh UI. - if (mHandler != null && mCallbackFunction != null) { - mHandler.post( - () -> { - mCallbackFunction.onBatteryDiffDataMapLoaded(batteryDiffDataMap); - }); + if (mCallbackFunction != null) { + mCallbackFunction.onBatteryDiffDataMapLoaded(batteryDiffDataMap); } } }.execute(); @@ -581,7 +566,6 @@ public class DataProcessManager { @Nullable public static BatteryLevelData getBatteryLevelData( Context context, - @Nullable Handler handler, final UserIdsSeries userIdsSeries, final boolean isFromPeriodJob, final OnBatteryDiffDataMapLoadedListener onBatteryUsageMapLoadedListener) { @@ -601,7 +585,6 @@ public class DataProcessManager { final BatteryLevelData batteryLevelData = getPeriodBatteryLevelData( context, - handler, userIdsSeries, startTimestamp, lastFullChargeTime, @@ -621,7 +604,6 @@ public class DataProcessManager { private static BatteryLevelData getPeriodBatteryLevelData( Context context, - @Nullable Handler handler, final UserIdsSeries userIdsSeries, final long startTimestamp, final long lastFullChargeTime, @@ -639,7 +621,6 @@ public class DataProcessManager { return null; } - handler = handler != null ? handler : new Handler(Looper.getMainLooper()); final Map> batteryHistoryMap = sFakeBatteryHistoryMap != null ? sFakeBatteryHistoryMap @@ -650,8 +631,7 @@ public class DataProcessManager { lastFullChargeTime); if (batteryHistoryMap == null || batteryHistoryMap.isEmpty()) { Log.d(TAG, "batteryHistoryMap is null in getPeriodBatteryLevelData()"); - new DataProcessManager( - context, handler, userIdsSeries, onBatteryDiffDataMapLoadedListener) + new DataProcessManager(context, userIdsSeries, onBatteryDiffDataMapLoadedListener) .start(); return null; } @@ -680,8 +660,7 @@ public class DataProcessManager { DataProcessor.getLevelDataThroughProcessedHistoryMap( context, processedBatteryHistoryMap); if (batteryLevelData == null) { - new DataProcessManager( - context, handler, userIdsSeries, onBatteryDiffDataMapLoadedListener) + new DataProcessManager(context, userIdsSeries, onBatteryDiffDataMapLoadedListener) .start(); Log.d(TAG, "getBatteryLevelData() returns null"); return null; @@ -690,7 +669,6 @@ public class DataProcessManager { // Start the async task to compute diff usage data and load labels and icons. new DataProcessManager( context, - handler, userIdsSeries, isFromPeriodJob, startTimestamp, diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java index a9c23328114..1ed6a747592 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java +++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java @@ -214,20 +214,22 @@ public class PowerUsageAdvanced extends PowerUsageBase { if (!isResumed() || mBatteryLevelData == null) { return; } - mBatteryUsageMap = - DataProcessor.generateBatteryUsageMap( - getContext(), batteryDiffDataMap, mBatteryLevelData.orElse(null)); - Log.d(TAG, "onBatteryDiffDataMapUpdate: " + mBatteryUsageMap); - DataProcessor.loadLabelAndIcon(mBatteryUsageMap); - onSelectedSlotDataUpdated(); - detectAnomaly(); - logScreenUsageTime(); - if (mBatteryChartPreferenceController != null - && mBatteryLevelData.isEmpty() - && isBatteryUsageMapNullOrEmpty()) { - // No available battery usage and battery level data. - mBatteryChartPreferenceController.showEmptyChart(); - } + mHandler.post(() -> { + mBatteryUsageMap = + DataProcessor.generateBatteryUsageMap( + getContext(), batteryDiffDataMap, mBatteryLevelData.orElse(null)); + Log.d(TAG, "onBatteryDiffDataMapUpdate: " + mBatteryUsageMap); + DataProcessor.loadLabelAndIcon(mBatteryUsageMap); + onSelectedSlotDataUpdated(); + detectAnomaly(); + logScreenUsageTime(); + if (mBatteryChartPreferenceController != null + && mBatteryLevelData.isEmpty() + && isBatteryUsageMapNullOrEmpty()) { + // No available battery usage and battery level data. + mBatteryChartPreferenceController.showEmptyChart(); + } + }); } private void onSelectedSlotDataUpdated() { @@ -503,7 +505,6 @@ public class PowerUsageAdvanced extends PowerUsageBase { public BatteryLevelData loadInBackground() { return DataProcessManager.getBatteryLevelData( getContext(), - mHandler, new UserIdsSeries(getContext(), /* isNonUIRequest= */ false), /* isFromPeriodJob= */ false, PowerUsageAdvanced.this::onBatteryDiffDataMapUpdate); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java index 2f20b425788..1fed13f8e8f 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java @@ -110,7 +110,6 @@ public final class DataProcessManagerTest { mDataProcessManager = new DataProcessManager( mContext, - /* handler= */ null, mUserIdsSeries, /* isFromPeriodJob= */ false, /* rawStartTimestamp= */ 0L, @@ -131,7 +130,6 @@ public final class DataProcessManagerTest { final DataProcessManager dataProcessManager = new DataProcessManager( mContext, - /* handler= */ null, mUserIdsSeries, /* callbackFunction= */ null); assertThat(dataProcessManager.getShowScreenOnTime()).isFalse(); @@ -257,7 +255,6 @@ public final class DataProcessManagerTest { final DataProcessManager dataProcessManager = new DataProcessManager( mContext, - /* handler= */ null, mUserIdsSeries, /* isFromPeriodJob= */ false, /* rawStartTimestamp= */ 2L, @@ -349,7 +346,6 @@ public final class DataProcessManagerTest { assertThat( DataProcessManager.getBatteryLevelData( mContext, - /* handler= */ null, mUserIdsSeries, /* isFromPeriodJob= */ false, /* asyncResponseDelegate= */ null)) @@ -357,7 +353,6 @@ public final class DataProcessManagerTest { assertThat( DataProcessManager.getBatteryLevelData( mContext, - /* handler= */ null, mUserIdsSeries, /* isFromPeriodJob= */ true, /* asyncResponseDelegate= */ null)) @@ -379,7 +374,6 @@ public final class DataProcessManagerTest { final BatteryLevelData resultData = DataProcessManager.getBatteryLevelData( mContext, - /* handler= */ null, mUserIdsSeries, /* isFromPeriodJob= */ false, /* asyncResponseDelegate= */ null); @@ -408,7 +402,6 @@ public final class DataProcessManagerTest { final BatteryLevelData resultData = DataProcessManager.getBatteryLevelData( mContext, - /* handler= */ null, mUserIdsSeries, /* isFromPeriodJob= */ false, /* asyncResponseDelegate= */ null);