From c369a8df5aeeee3ab32887ea3b3490a66e4eec54 Mon Sep 17 00:00:00 2001 From: mxyyiyi Date: Wed, 18 Dec 2024 21:38:27 +0800 Subject: [PATCH] [Expressive Battery] Tweak the animation of Battery Usage screen. Fix the blinking while tapping chart to select time intervals. - setHasStableIds(true) to avoid BatteryChartView create viewHolder again when SettingsPreferenceGroupAdapter invoke notifyDataSetChanged() Recover the fade-in animation when display the hourly chart for the first time. - set the default alpha of hourly chart in xml to 0. Bug: 378997970 Bug: 349652542 Flag: EXEMPT bug fix Test: visual Change-Id: Ia6c131452fca65db7149664c7e18ca68e9703def --- res/layout/battery_chart_graph.xml | 1 + .../fuelgauge/batteryusage/PowerUsageAdvanced.java | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/res/layout/battery_chart_graph.xml b/res/layout/battery_chart_graph.xml index b84f38a55c5..358cdd053e0 100644 --- a/res/layout/battery_chart_graph.xml +++ b/res/layout/battery_chart_graph.xml @@ -53,6 +53,7 @@ android:layout_height="@dimen/chartview_layout_height" android:layout_marginBottom="16dp" android:visibility="gone" + android:alpha="0" android:contentDescription="@string/hourly_battery_usage_chart" android:textAppearance="?android:attr/textAppearanceSmall" settings:textColor="?android:attr/textColorSecondary" /> diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java index 1ed6a747592..613548c40a2 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java +++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java @@ -32,6 +32,8 @@ import android.util.Pair; import androidx.annotation.VisibleForTesting; import androidx.loader.app.LoaderManager; import androidx.loader.content.Loader; +import androidx.preference.PreferenceScreen; +import androidx.recyclerview.widget.RecyclerView; import com.android.settings.R; import com.android.settings.SettingsActivity; @@ -149,6 +151,13 @@ public class PowerUsageAdvanced extends PowerUsageBase { } } + @Override + protected RecyclerView.Adapter onCreateAdapter(PreferenceScreen preferenceScreen) { + final RecyclerView.Adapter adapter = super.onCreateAdapter(preferenceScreen); + adapter.setHasStableIds(true); + return adapter; + } + @Override protected List createPreferenceControllers(Context context) { final List controllers = new ArrayList<>();