From 919864918cffdd7d47ff7bd3d9213428bf050324 Mon Sep 17 00:00:00 2001 From: ykhung Date: Tue, 23 Aug 2022 16:49:22 +0800 Subject: [PATCH] Add fade in animation for battery usage chart group Bug: 236101166 Test: manually checking for UI Change-Id: I56e2f80036397efd1ce0dceec46fceff08af43d6 --- res/layout/battery_chart_graph.xml | 42 +++++++++++-------- .../BatteryChartPreferenceController.java | 18 +++++++- .../BatteryHistoryPreference.java | 7 ++-- 3 files changed, 45 insertions(+), 22 deletions(-) diff --git a/res/layout/battery_chart_graph.xml b/res/layout/battery_chart_graph.xml index 6e86aec0760..f116c8ee313 100644 --- a/res/layout/battery_chart_graph.xml +++ b/res/layout/battery_chart_graph.xml @@ -31,25 +31,33 @@ android:textColor="?android:attr/textColorSecondary" android:text="@string/battery_usage_chart_graph_hint_last_full_charge" /> - + android:layout_height="wrap_content" + android:orientation="vertical" + android:alpha="0"> + + + + - > batteryHistoryMap) { Log.d(TAG, "setBatteryHistoryMap() " + (batteryHistoryMap == null ? "null" : ("size=" + batteryHistoryMap.size()))); + // Ensure the battery chart group is visible for users. + animateBatteryChartViewGroup(); final BatteryLevelData batteryLevelData = DataProcessor.getBatteryLevelData(mContext, mHandler, batteryHistoryMap, batteryUsageMap -> { @@ -304,8 +308,13 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll void setBatteryChartView(@NonNull final BatteryChartView dailyChartView, @NonNull final BatteryChartView hourlyChartView) { + final View parentView = (View) dailyChartView.getParent(); + if (parentView != null && parentView.getId() == R.id.battery_chart_group) { + mBatteryChartViewGroup = (View) dailyChartView.getParent(); + } if (mDailyChartView != dailyChartView || mHourlyChartView != hourlyChartView) { mHandler.post(() -> setBatteryChartViewInner(dailyChartView, hourlyChartView)); + animateBatteryChartViewGroup(); } } @@ -615,6 +624,13 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll return !DataProcessor.contains(packageName, mNotAllowShowSummaryPackages); } + private void animateBatteryChartViewGroup() { + if (mBatteryChartViewGroup != null && mBatteryChartViewGroup.getAlpha() == 0) { + mBatteryChartViewGroup.animate().alpha(1f).setDuration(FADE_ANIMATION_DURATION) + .start(); + } + } + private void addFooterPreferenceIfNeeded(boolean containAppItems) { if (mIsFooterPrefAdded || mFooterPreference == null) { return; diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreference.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreference.java index 71fd26ce95c..674822359be 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreference.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreference.java @@ -106,12 +106,11 @@ public class BatteryHistoryPreference extends Preference { return; } if (mIsChartGraphEnabled) { + final TextView companionTextView = (TextView) view.findViewById(R.id.companion_text); mDailyChartView = (BatteryChartView) view.findViewById(R.id.daily_battery_chart); - mDailyChartView.setCompanionTextView( - (TextView) view.findViewById(R.id.companion_text)); + mDailyChartView.setCompanionTextView(companionTextView); mHourlyChartView = (BatteryChartView) view.findViewById(R.id.hourly_battery_chart); - mHourlyChartView.setCompanionTextView( - (TextView) view.findViewById(R.id.companion_text)); + mHourlyChartView.setCompanionTextView(companionTextView); if (mChartPreferenceController != null) { mChartPreferenceController.setBatteryChartView(mDailyChartView, mHourlyChartView); }