Merge "Update BatterySettingsFeatureProvider interface" into udc-qpr-dev
diff --git a/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceController.java b/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceController.java
index 7d10b5b..6c7a743 100644
--- a/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceController.java
+++ b/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceController.java
@@ -45,7 +45,7 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return mBatterySettingsFeatureProvider.isFirstUseDateAvailable(getFirstUseDate())
+        return mBatterySettingsFeatureProvider.isFirstUseDateAvailable(mContext, getFirstUseDate())
                 ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
     }
 
diff --git a/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceController.java b/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceController.java
index d1b9df0..ff54c77 100644
--- a/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceController.java
+++ b/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceController.java
@@ -45,7 +45,8 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return mBatterySettingsFeatureProvider.isManufactureDateAvailable(getManufactureDate())
+        return mBatterySettingsFeatureProvider.isManufactureDateAvailable(mContext,
+                getManufactureDate())
                 ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
     }
 
diff --git a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java
index dd13f1c..260fde0 100644
--- a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java
+++ b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java
@@ -16,12 +16,14 @@
 
 package com.android.settings.fuelgauge;
 
+import android.content.Context;
+
 /** Feature provider for battery settings usage. */
 public interface BatterySettingsFeatureProvider {
 
     /** Returns true if manufacture date should be shown */
-    boolean isManufactureDateAvailable(long manufactureDateMs);
+    boolean isManufactureDateAvailable(Context context, long manufactureDateMs);
 
     /** Returns true if first use date should be shown */
-    boolean isFirstUseDateAvailable(long firstUseDateMs);
+    boolean isFirstUseDateAvailable(Context context, long firstUseDateMs);
 }
diff --git a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java
index 2dcb1b1..6b456b7 100644
--- a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java
+++ b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java
@@ -16,16 +16,18 @@
 
 package com.android.settings.fuelgauge;
 
+import android.content.Context;
+
 /** Feature provider implementation for battery settings usage. */
 public class BatterySettingsFeatureProviderImpl implements BatterySettingsFeatureProvider {
 
     @Override
-    public boolean isManufactureDateAvailable(long manufactureDateMs) {
+    public boolean isManufactureDateAvailable(Context context, long manufactureDateMs) {
         return false;
     }
 
     @Override
-    public boolean isFirstUseDateAvailable(long firstUseDateMs) {
+    public boolean isFirstUseDateAvailable(Context context, long firstUseDateMs) {
         return false;
     }
 }
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceControllerTest.java
index 9ac69af..ff8ea62 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceControllerTest.java
@@ -22,6 +22,7 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.Mockito.eq;
 import static org.mockito.Mockito.when;
 import static org.robolectric.Shadows.shadowOf;
 
@@ -60,24 +61,24 @@
 
     @Test
     public void getAvailabilityStatus_dateAvailable_returnAvailable() {
-        when(mFactory.batterySettingsFeatureProvider.isFirstUseDateAvailable(anyLong()))
-                .thenReturn(true);
+        when(mFactory.batterySettingsFeatureProvider.isFirstUseDateAvailable(eq(mContext),
+                anyLong())).thenReturn(true);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
     @Test
     public void getAvailabilityStatus_dateUnavailable_returnNotAvailable() {
-        when(mFactory.batterySettingsFeatureProvider.isFirstUseDateAvailable(anyLong()))
-                .thenReturn(false);
+        when(mFactory.batterySettingsFeatureProvider.isFirstUseDateAvailable(eq(mContext),
+                anyLong())).thenReturn(false);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
     }
 
     @Test
     public void getSummary_available_returnExpectedDate() {
-        when(mFactory.batterySettingsFeatureProvider.isFirstUseDateAvailable(anyLong()))
-                .thenReturn(true);
+        when(mFactory.batterySettingsFeatureProvider.isFirstUseDateAvailable(eq(mContext),
+                anyLong())).thenReturn(true);
         mShadowBatteryManager.setLongProperty(BatteryManager.BATTERY_PROPERTY_FIRST_USAGE_DATE,
                 1669680000L);
 
@@ -88,8 +89,8 @@
 
     @Test
     public void getSummary_unavailable_returnNull() {
-        when(mFactory.batterySettingsFeatureProvider.isFirstUseDateAvailable(anyLong()))
-                .thenReturn(false);
+        when(mFactory.batterySettingsFeatureProvider.isFirstUseDateAvailable(eq(mContext),
+                anyLong())).thenReturn(false);
 
         assertThat(mController.getSummary()).isNull();
     }
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceControllerTest.java
index fed74f3..608ce00 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceControllerTest.java
@@ -22,6 +22,7 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.Mockito.eq;
 import static org.mockito.Mockito.when;
 import static org.robolectric.Shadows.shadowOf;
 
@@ -61,7 +62,7 @@
 
     @Test
     public void getAvailabilityStatus_dateAvailable_returnAvailable() {
-        when(mFactory.batterySettingsFeatureProvider.isManufactureDateAvailable(
+        when(mFactory.batterySettingsFeatureProvider.isManufactureDateAvailable(eq(mContext),
                 anyLong())).thenReturn(true);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
@@ -69,15 +70,15 @@
 
     @Test
     public void getAvailabilityStatus_dateUnavailable_returnNotAvailable() {
-        when(mFactory.batterySettingsFeatureProvider.isManufactureDateAvailable(anyLong()))
-                .thenReturn(false);
+        when(mFactory.batterySettingsFeatureProvider.isManufactureDateAvailable(eq(mContext),
+                anyLong())).thenReturn(false);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
     }
 
     @Test
     public void getSummary_available_returnExpectedDate() {
-        when(mFactory.batterySettingsFeatureProvider.isManufactureDateAvailable(
+        when(mFactory.batterySettingsFeatureProvider.isManufactureDateAvailable(eq(mContext),
                 anyLong())).thenReturn(true);
         mShadowBatteryManager.setLongProperty(BatteryManager.BATTERY_PROPERTY_MANUFACTURING_DATE,
                 1669680000L);
@@ -89,8 +90,8 @@
 
     @Test
     public void getSummary_unavailable_returnNull() {
-        when(mFactory.batterySettingsFeatureProvider.isManufactureDateAvailable(anyLong()))
-                .thenReturn(false);
+        when(mFactory.batterySettingsFeatureProvider.isManufactureDateAvailable(eq(mContext),
+                anyLong())).thenReturn(false);
 
         assertThat(mController.getSummary()).isNull();
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImplTest.java
index 6c09125..29f09ea 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImplTest.java
@@ -19,6 +19,11 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.Mockito.eq;
+
+import android.content.Context;
+
+import androidx.test.core.app.ApplicationProvider;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -28,19 +33,21 @@
 @RunWith(RobolectricTestRunner.class)
 public class BatterySettingsFeatureProviderImplTest {
     private BatterySettingsFeatureProviderImpl mImpl;
+    private Context mContext;
 
     @Before
     public void setUp() {
         mImpl = new BatterySettingsFeatureProviderImpl();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @Test
     public void isManufactureDateAvailable_returnFalse() {
-        assertThat(mImpl.isManufactureDateAvailable(anyLong())).isFalse();
+        assertThat(mImpl.isManufactureDateAvailable(eq(mContext), anyLong())).isFalse();
     }
 
     @Test
     public void isFirstUseDateAvailable_returnFalse() {
-        assertThat(mImpl.isFirstUseDateAvailable(anyLong())).isFalse();
+        assertThat(mImpl.isFirstUseDateAvailable(eq(mContext), anyLong())).isFalse();
     }
 }