Merge changes I93d4d089,I4f09f9e5 into tm-qpr-dev am: f5a9766041

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20280700

Change-Id: I7d8393abd95e6a82f6d8b7540171e60d6b3ccc07
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
index 2c92488..56da0f4 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
@@ -108,6 +108,7 @@
 
     private boolean mIs24HourFormat;
     private boolean mIsFooterPrefAdded = false;
+    private boolean mHourlyChartVisible = true;
     private View mBatteryChartViewGroup;
     private View mCategoryTitleView;
     private PreferenceScreen mPreferenceScreen;
@@ -690,9 +691,10 @@
     }
 
     private void animateBatteryHourlyChartView(final boolean visible) {
-        if (mHourlyChartView == null) {
+        if (mHourlyChartView == null || mHourlyChartVisible == visible) {
             return;
         }
+        mHourlyChartVisible = visible;
 
         if (visible) {
             mHourlyChartView.setVisibility(View.VISIBLE);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
index 4e552b9..9fbcb16 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
@@ -187,8 +187,6 @@
         mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(6));
 
         verify(mDailyChartView, atLeastOnce()).setVisibility(View.GONE);
-        verify(mHourlyChartView, atLeastOnce()).setVisibility(View.VISIBLE);
-        verify(mViewPropertyAnimator, atLeastOnce()).alpha(1f);
         // Ignore fast refresh ui from the data processor callback.
         verify(mHourlyChartView, atLeast(0)).setViewModel(null);
         verify(mHourlyChartView, atLeastOnce()).setViewModel(new BatteryChartViewModel(
@@ -256,7 +254,6 @@
         mBatteryChartPreferenceController.mHourlyChartIndex = 6;
         mBatteryChartPreferenceController.refreshUi();
         verify(mDailyChartView).setVisibility(View.VISIBLE);
-        verify(mHourlyChartView).setVisibility(View.VISIBLE);
         verify(mViewPropertyAnimator, atLeastOnce()).alpha(1f);
         expectedDailyViewModel.setSelectedIndex(1);
         verify(mDailyChartView).setViewModel(expectedDailyViewModel);
@@ -289,7 +286,6 @@
                 BatteryChartViewModel.SELECTED_INDEX_ALL;
         mBatteryChartPreferenceController.refreshUi();
         verify(mDailyChartView).setVisibility(View.VISIBLE);
-        verify(mHourlyChartView).setVisibility(View.VISIBLE);
         verify(mViewPropertyAnimator, atLeastOnce()).alpha(1f);
         expectedDailyViewModel.setSelectedIndex(2);
         verify(mDailyChartView).setViewModel(expectedDailyViewModel);