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;