Fix broken battery usage Robolectric tests

Bug: 248686898
Test: presubmit
Change-Id: I4f09f9e5af57a62249970cc2170b60dab267488e
Merged-In: I4f09f9e5af57a62249970cc2170b60dab267488e
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 26e0f50..4e552b9 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
@@ -18,6 +18,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.anyFloat;
+import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.atLeast;
 import static org.mockito.Mockito.atLeastOnce;
@@ -36,6 +38,7 @@
 import android.os.LocaleList;
 import android.text.format.DateUtils;
 import android.view.View;
+import android.view.ViewPropertyAnimator;
 import android.widget.LinearLayout;
 
 import androidx.preference.Preference;
@@ -85,6 +88,8 @@
     @Mock
     private BatteryChartView mHourlyChartView;
     @Mock
+    private ViewPropertyAnimator mViewPropertyAnimator;
+    @Mock
     private PowerGaugePreference mPowerGaugePreference;
     @Mock
     private BatteryUtils mBatteryUtils;
@@ -116,6 +121,7 @@
                 .when(mFeatureFactory.powerUsageFeatureProvider)
                 .getHideApplicationEntries(mContext);
         doReturn(mLayoutParams).when(mDailyChartView).getLayoutParams();
+        setupHourlyChartViewAnimationMock();
         mBatteryChartPreferenceController = createController();
         mBatteryChartPreferenceController.mPrefContext = mContext;
         mBatteryChartPreferenceController.mAppListPrefGroup = mAppListGroup;
@@ -174,11 +180,15 @@
 
     @Test
     public void setBatteryChartViewModel_6Hours() {
+        reset(mDailyChartView);
         reset(mHourlyChartView);
+        setupHourlyChartViewAnimationMock();
+
         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(
@@ -192,6 +202,10 @@
 
     @Test
     public void setBatteryChartViewModel_60Hours() {
+        reset(mDailyChartView);
+        reset(mHourlyChartView);
+        setupHourlyChartViewAnimationMock();
+
         BatteryChartViewModel expectedDailyViewModel = new BatteryChartViewModel(
                 List.of(100, 83, 59, 41),
                 // "Sat", "Sun", "Mon", "Mon"
@@ -205,16 +219,18 @@
         mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(60));
 
         verify(mDailyChartView, atLeastOnce()).setVisibility(View.VISIBLE);
-        verify(mHourlyChartView, atLeastOnce()).setVisibility(View.GONE);
+        verify(mViewPropertyAnimator, atLeastOnce()).alpha(0f);
         verify(mDailyChartView).setViewModel(expectedDailyViewModel);
 
         reset(mDailyChartView);
         reset(mHourlyChartView);
+        setupHourlyChartViewAnimationMock();
         doReturn(mLayoutParams).when(mDailyChartView).getLayoutParams();
         mBatteryChartPreferenceController.mDailyChartIndex = 0;
         mBatteryChartPreferenceController.refreshUi();
         verify(mDailyChartView).setVisibility(View.VISIBLE);
         verify(mHourlyChartView).setVisibility(View.VISIBLE);
+        verify(mViewPropertyAnimator, atLeastOnce()).alpha(1f);
 
         expectedDailyViewModel.setSelectedIndex(0);
         verify(mDailyChartView).setViewModel(expectedDailyViewModel);
@@ -234,12 +250,14 @@
 
         reset(mDailyChartView);
         reset(mHourlyChartView);
+        setupHourlyChartViewAnimationMock();
         doReturn(mLayoutParams).when(mDailyChartView).getLayoutParams();
         mBatteryChartPreferenceController.mDailyChartIndex = 1;
         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);
         BatteryChartViewModel expectedHourlyViewModel = new BatteryChartViewModel(
@@ -264,6 +282,7 @@
 
         reset(mDailyChartView);
         reset(mHourlyChartView);
+        setupHourlyChartViewAnimationMock();
         doReturn(mLayoutParams).when(mDailyChartView).getLayoutParams();
         mBatteryChartPreferenceController.mDailyChartIndex = 2;
         mBatteryChartPreferenceController.mHourlyChartIndex =
@@ -271,6 +290,7 @@
         mBatteryChartPreferenceController.refreshUi();
         verify(mDailyChartView).setVisibility(View.VISIBLE);
         verify(mHourlyChartView).setVisibility(View.VISIBLE);
+        verify(mViewPropertyAnimator, atLeastOnce()).alpha(1f);
         expectedDailyViewModel.setSelectedIndex(2);
         verify(mDailyChartView).setViewModel(expectedDailyViewModel);
         verify(mHourlyChartView).setViewModel(new BatteryChartViewModel(
@@ -734,4 +754,11 @@
         controller.mPrefContext = mContext;
         return controller;
     }
+
+    private void setupHourlyChartViewAnimationMock() {
+        doReturn(mViewPropertyAnimator).when(mHourlyChartView).animate();
+        doReturn(mViewPropertyAnimator).when(mViewPropertyAnimator).alpha(anyFloat());
+        doReturn(mViewPropertyAnimator).when(mViewPropertyAnimator).setDuration(anyLong());
+        doReturn(mViewPropertyAnimator).when(mViewPropertyAnimator).setListener(any());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
index c483204..df9d865 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
@@ -579,9 +579,13 @@
                 ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 25.0,
                 /*foregroundUsageTimeInMs=*/ 50, /*backgroundUsageTimeInMs=*/ 60);
         verify(mMetricsFeatureProvider)
-                .action(mContext, SettingsEnums.ACTION_BATTERY_USAGE_SHOWN_APP_COUNT, 3);
+                .action(mContext.getApplicationContext(),
+                        SettingsEnums.ACTION_BATTERY_USAGE_SHOWN_APP_COUNT,
+                        3);
         verify(mMetricsFeatureProvider)
-                .action(mContext, SettingsEnums.ACTION_BATTERY_USAGE_HIDDEN_APP_COUNT, 0);
+                .action(mContext.getApplicationContext(),
+                        SettingsEnums.ACTION_BATTERY_USAGE_HIDDEN_APP_COUNT,
+                        0);
     }
 
     @Test
@@ -674,9 +678,13 @@
         assertThat(resultMap.get(0).get(0)).isNotNull();
         assertThat(resultMap.get(0).get(DataProcessor.SELECTED_INDEX_ALL)).isNotNull();
         verify(mMetricsFeatureProvider)
-                .action(mContext, SettingsEnums.ACTION_BATTERY_USAGE_SHOWN_APP_COUNT, 2);
+                .action(mContext.getApplicationContext(),
+                        SettingsEnums.ACTION_BATTERY_USAGE_SHOWN_APP_COUNT,
+                        2);
         verify(mMetricsFeatureProvider)
-                .action(mContext, SettingsEnums.ACTION_BATTERY_USAGE_HIDDEN_APP_COUNT, 0);
+                .action(mContext.getApplicationContext(),
+                        SettingsEnums.ACTION_BATTERY_USAGE_HIDDEN_APP_COUNT,
+                        0);
     }
 
     @Test
@@ -739,9 +747,13 @@
         assertThat(resultMap.get(0).get(0)).isNotNull();
         assertThat(resultMap.get(0).get(DataProcessor.SELECTED_INDEX_ALL)).isNotNull();
         verify(mMetricsFeatureProvider)
-                .action(mContext, SettingsEnums.ACTION_BATTERY_USAGE_SHOWN_APP_COUNT, 1);
+                .action(mContext.getApplicationContext(),
+                        SettingsEnums.ACTION_BATTERY_USAGE_SHOWN_APP_COUNT,
+                        1);
         verify(mMetricsFeatureProvider)
-                .action(mContext, SettingsEnums.ACTION_BATTERY_USAGE_HIDDEN_APP_COUNT, 0);
+                .action(mContext.getApplicationContext(),
+                        SettingsEnums.ACTION_BATTERY_USAGE_HIDDEN_APP_COUNT,
+                        0);
     }
 
     @Test
@@ -814,9 +826,13 @@
                 ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 50.0,
                 /*foregroundUsageTimeInMs=*/ 10, /*backgroundUsageTimeInMs=*/ 20);
         verify(mMetricsFeatureProvider)
-                .action(mContext, SettingsEnums.ACTION_BATTERY_USAGE_SHOWN_APP_COUNT, 1);
+                .action(mContext.getApplicationContext(),
+                        SettingsEnums.ACTION_BATTERY_USAGE_SHOWN_APP_COUNT,
+                        1);
         verify(mMetricsFeatureProvider)
-                .action(mContext, SettingsEnums.ACTION_BATTERY_USAGE_HIDDEN_APP_COUNT, 1);
+                .action(mContext.getApplicationContext(),
+                        SettingsEnums.ACTION_BATTERY_USAGE_HIDDEN_APP_COUNT,
+                        1);
     }
 
     @Test
@@ -889,9 +905,13 @@
         resultEntry = resultDiffData.getAppDiffEntryList().get(1);
         assertThat(resultEntry.mBackgroundUsageTimeInMs).isEqualTo(0);
         verify(mMetricsFeatureProvider)
-                .action(mContext, SettingsEnums.ACTION_BATTERY_USAGE_SHOWN_APP_COUNT, 2);
+                .action(mContext.getApplicationContext(),
+                        SettingsEnums.ACTION_BATTERY_USAGE_SHOWN_APP_COUNT,
+                        2);
         verify(mMetricsFeatureProvider)
-                .action(mContext, SettingsEnums.ACTION_BATTERY_USAGE_HIDDEN_APP_COUNT, 0);
+                .action(mContext.getApplicationContext(),
+                        SettingsEnums.ACTION_BATTERY_USAGE_HIDDEN_APP_COUNT,
+                        0);
     }
 
     @Test