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
This commit is contained in:
Zaiyue Xue
2022-08-07 14:23:59 +08:00
parent f3b8a23aae
commit b9bf92f5ae
3 changed files with 20 additions and 0 deletions

View File

@@ -473,6 +473,7 @@
<dimen name="chartview_trapezoid_radius">5dp</dimen>
<dimen name="chartview_trapezoid_margin_start">1dp</dimen>
<dimen name="chartview_trapezoid_margin_bottom">2dp</dimen>
<dimen name="chartview_two_charts_margin">16dp</dimen>
<!-- Dimensions for Dream settings cards -->
<dimen name="dream_item_min_column_width">174dp</dimen>

View File

@@ -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);

View File

@@ -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;