From b9bf92f5aee262c1ca47b2d39886cb6e6f2efcd3 Mon Sep 17 00:00:00 2001 From: Zaiyue Xue Date: Sun, 7 Aug 2022 14:23:59 +0800 Subject: [PATCH] Add margin between battery daily and hourly charts screenshot: https://drive.google.com/file/d/1vXL4XO9HezZ4fTJ5wh6Fi13oXf54yc9q/view?usp=sharing&resourcekey=0--k4_Qk4e9ELyENeAySlYFw Bug: 236101166 Test: manual Change-Id: Ib4f5705661d2799cc74f6a957ce715ebb93b28b8 --- res/values/dimens.xml | 1 + .../BatteryChartPreferenceControllerV2.java | 12 ++++++++++++ .../BatteryChartPreferenceControllerV2Test.java | 7 +++++++ 3 files changed, 20 insertions(+) diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 33786ccc8f4..3d6aa966ef3 100755 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -473,6 +473,7 @@ 5dp 1dp 2dp + 16dp 174dp diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2.java index 4e533815739..b847f04d048 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2.java @@ -28,6 +28,7 @@ import android.text.format.DateFormat; import android.text.format.DateUtils; import android.util.Log; import android.view.View; +import android.widget.LinearLayout; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; @@ -361,11 +362,14 @@ public class BatteryChartPreferenceControllerV2 extends AbstractPreferenceContro if (mDailyChartIndex == BatteryChartViewModel.SELECTED_INDEX_ALL) { // Multiple days are selected, hide the hourly chart view. mHourlyChartView.setVisibility(View.GONE); + updateMarginBetweenCharts(false); } else { mHourlyChartView.setVisibility(View.VISIBLE); final BatteryChartViewModel hourlyViewModel = mHourlyViewModels.get(mDailyChartIndex); hourlyViewModel.setSelectedIndex(mHourlyChartIndex); mHourlyChartView.setViewModel(hourlyViewModel); + + updateMarginBetweenCharts(true); } mHandler.post(() -> { @@ -379,6 +383,14 @@ public class BatteryChartPreferenceControllerV2 extends AbstractPreferenceContro return true; } + private void updateMarginBetweenCharts(boolean addMargin) { + final LinearLayout.LayoutParams layoutParams = + (LinearLayout.LayoutParams) mDailyChartView.getLayoutParams(); + layoutParams.bottomMargin = addMargin ? Math.round( + mContext.getResources().getDimension(R.dimen.chartview_two_charts_margin)) : 0; + mDailyChartView.setLayoutParams(layoutParams); + } + private void addAllPreferences() { final BatteryDiffData batteryDiffData = mBatteryUsageMap.get(mDailyChartIndex).get(mHourlyChartIndex); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2Test.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2Test.java index 77adcb2b643..cd985b6ccc5 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2Test.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2Test.java @@ -35,6 +35,7 @@ import android.os.Bundle; import android.os.LocaleList; import android.text.format.DateUtils; import android.view.View; +import android.widget.LinearLayout; import androidx.preference.Preference; import androidx.preference.PreferenceCategory; @@ -86,6 +87,8 @@ public final class BatteryChartPreferenceControllerV2Test { private PowerGaugePreference mPowerGaugePreference; @Mock private BatteryUtils mBatteryUtils; + @Mock + private LinearLayout.LayoutParams mLayoutParams; private Context mContext; private FakeFeatureFactory mFeatureFactory; @@ -111,6 +114,7 @@ public final class BatteryChartPreferenceControllerV2Test { doReturn(new String[]{"com.android.gms.persistent"}) .when(mFeatureFactory.powerUsageFeatureProvider) .getHideApplicationEntries(mContext); + doReturn(mLayoutParams).when(mDailyChartView).getLayoutParams(); mBatteryChartPreferenceController = createController(); mBatteryChartPreferenceController.mPrefContext = mContext; mBatteryChartPreferenceController.mAppListPrefGroup = mAppListGroup; @@ -194,6 +198,7 @@ public final class BatteryChartPreferenceControllerV2Test { reset(mDailyChartView); reset(mHourlyChartView); + doReturn(mLayoutParams).when(mDailyChartView).getLayoutParams(); mBatteryChartPreferenceController.mDailyChartIndex = 0; mBatteryChartPreferenceController.refreshUi(); verify(mDailyChartView).setVisibility(View.VISIBLE); @@ -212,6 +217,7 @@ public final class BatteryChartPreferenceControllerV2Test { reset(mDailyChartView); reset(mHourlyChartView); + doReturn(mLayoutParams).when(mDailyChartView).getLayoutParams(); mBatteryChartPreferenceController.mDailyChartIndex = 1; mBatteryChartPreferenceController.mHourlyChartIndex = 6; mBatteryChartPreferenceController.refreshUi(); @@ -231,6 +237,7 @@ public final class BatteryChartPreferenceControllerV2Test { reset(mDailyChartView); reset(mHourlyChartView); + doReturn(mLayoutParams).when(mDailyChartView).getLayoutParams(); mBatteryChartPreferenceController.mDailyChartIndex = 2; mBatteryChartPreferenceController.mHourlyChartIndex = BatteryChartViewModel.SELECTED_INDEX_ALL;