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;