From 3a52e335be12b14d7cb62846697a764168e37978 Mon Sep 17 00:00:00 2001 From: "Wesley.CW Wang" Date: Fri, 19 Mar 2021 19:34:49 +0800 Subject: [PATCH] Remove Battery Settings page default tips - Remove SummaryTips from default tips - Clean up test file import Screenshot: https://screenshot.googleplex.com/6rYrnMvoTbeCS7m.png Bug: 183079415 Test: make RunSettingsRoboTests -j40 Change-Id: I1001d75235a6d8d5947b974939884103eb0834da --- .../batterytip/BatteryTipLoader.java | 2 -- .../batterytip/BatteryTipPolicy.java | 2 +- .../BatteryTipPreferenceController.java | 10 ++++---- .../batterytip/BatteryTipLoaderTest.java | 1 - .../BatteryTipPreferenceControllerTest.java | 24 ++++++++++++------- .../batterytip/BatteryTipPolicyTest.java | 2 +- 6 files changed, 22 insertions(+), 19 deletions(-) diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java index 433c06d0220..1052afe8981 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java @@ -28,7 +28,6 @@ import com.android.settings.fuelgauge.batterytip.detectors.EarlyWarningDetector; import com.android.settings.fuelgauge.batterytip.detectors.HighUsageDetector; import com.android.settings.fuelgauge.batterytip.detectors.LowBatteryDetector; import com.android.settings.fuelgauge.batterytip.detectors.SmartBatteryDetector; -import com.android.settings.fuelgauge.batterytip.detectors.SummaryDetector; import com.android.settings.fuelgauge.batterytip.tips.BatteryTip; import com.android.settings.fuelgauge.batterytip.tips.LowBatteryTip; import com.android.settings.fuelgauge.batterytip.tips.SummaryTip; @@ -73,7 +72,6 @@ public class BatteryTipLoader extends AsyncLoaderCompat> { tips.add(new SmartBatteryDetector(policy, context.getContentResolver()).detect()); tips.add(new EarlyWarningDetector(policy, context).detect()); tips.add(new BatteryDefenderDetector(batteryInfo).detect()); - tips.add(new SummaryDetector(policy, batteryInfo.averageTimeToDischarge).detect()); // Disable this feature now since it introduces false positive cases. We will try to improve // it in the future. // tips.add(new RestrictAppDetector(context, policy).detect()); diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java index 487adf859d4..3fbbf5b5f81 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java @@ -230,7 +230,7 @@ public class BatteryTipPolicy { } batteryTipEnabled = mParser.getBoolean(KEY_BATTERY_TIP_ENABLED, true); - summaryEnabled = mParser.getBoolean(KEY_SUMMARY_ENABLED, true); + summaryEnabled = mParser.getBoolean(KEY_SUMMARY_ENABLED, false); batterySaverTipEnabled = mParser.getBoolean(KEY_BATTERY_SAVER_TIP_ENABLED, true); highUsageEnabled = mParser.getBoolean(KEY_HIGH_USAGE_ENABLED, true); highUsageAppCount = mParser.getInt(KEY_HIGH_USAGE_APP_COUNT, 3); diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java index 4317bffaf7d..00b1e874d33 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java @@ -28,11 +28,9 @@ import com.android.settings.core.BasePreferenceController; import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.fuelgauge.batterytip.actions.BatteryTipAction; import com.android.settings.fuelgauge.batterytip.tips.BatteryTip; -import com.android.settings.fuelgauge.batterytip.tips.SummaryTip; import com.android.settings.overlay.FeatureFactory; import com.android.settings.widget.CardPreference; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; -import com.android.settingslib.fuelgauge.EstimateKt; import java.util.HashMap; import java.util.List; @@ -91,10 +89,8 @@ public class BatteryTipPreferenceController extends BasePreferenceController { mPrefContext = screen.getContext(); mCardPreference = screen.findPreference(getPreferenceKey()); - // Add summary tip in advance to avoid UI flakiness - final SummaryTip summaryTip = new SummaryTip(BatteryTip.StateType.NEW, - EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN); - summaryTip.updatePreference(mCardPreference); + // Set preference as invisible since there is no default tips. + mCardPreference.setVisible(false); } public void updateBatteryTips(List batteryTips) { @@ -110,10 +106,12 @@ public class BatteryTipPreferenceController extends BasePreferenceController { } } + mCardPreference.setVisible(false); for (int i = 0, size = batteryTips.size(); i < size; i++) { final BatteryTip batteryTip = mBatteryTips.get(i); batteryTip.validateCheck(mContext); if (batteryTip.getState() != BatteryTip.StateType.INVISIBLE) { + mCardPreference.setVisible(true); batteryTip.updatePreference(mCardPreference); mBatteryTipMap.put(mCardPreference.getKey(), batteryTip); batteryTip.log(mContext, mMetricsFeatureProvider); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java index 82448d138d9..5d7b082bd4a 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java @@ -54,7 +54,6 @@ public class BatteryTipLoaderTest { BatteryTip.TipType.BATTERY_SAVER, BatteryTip.TipType.HIGH_DEVICE_USAGE, BatteryTip.TipType.LOW_BATTERY, - BatteryTip.TipType.SUMMARY, BatteryTip.TipType.SMART_BATTERY_MANAGER}; @Mock(answer = Answers.RETURNS_DEEP_STUBS) private BatteryUsageStats mBatteryUsageStats; diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java index b68a8f57dd7..e9192889cd9 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java @@ -20,7 +20,6 @@ import static com.android.settings.fuelgauge.batterytip.tips.BatteryTip.TipType import static com.google.common.truth.Truth.assertThat; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @@ -30,10 +29,6 @@ import android.content.Context; import android.os.Bundle; import android.text.format.DateUtils; -import androidx.preference.Preference; -import androidx.preference.PreferenceCategory; -import androidx.preference.PreferenceGroup; -import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; import com.android.internal.logging.nano.MetricsProto; @@ -49,7 +44,6 @@ import com.android.settings.widget.CardPreference; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Answers; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; @@ -104,10 +98,24 @@ public class BatteryTipPreferenceControllerTest { } @Test - public void testDisplayPreference_addSummaryTip() { + public void testDisplayPreference_isInvisible() { mBatteryTipPreferenceController.displayPreference(mPreferenceScreen); - assertOnlyContainsSummaryTip(mCardPreference); + assertThat(mCardPreference.isVisible()).isFalse(); + } + + @Test + public void testUpdateBatteryTips_tipsStateNew_isVisible() { + mBatteryTipPreferenceController.updateBatteryTips(mOldBatteryTips); + + assertThat(mCardPreference.isVisible()).isTrue(); + } + + @Test + public void testUpdateBatteryTips_tipsStateInvisible_isInvisible() { + mBatteryTipPreferenceController.updateBatteryTips(mNewBatteryTips); + + assertThat(mCardPreference.isVisible()).isFalse(); } @Test diff --git a/tests/unit/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java b/tests/unit/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java index 4be2ae6c339..9b42951bcd5 100644 --- a/tests/unit/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java +++ b/tests/unit/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java @@ -94,7 +94,7 @@ public class BatteryTipPolicyTest { final BatteryTipPolicy batteryTipPolicy = new BatteryTipPolicy(mContext); assertThat(batteryTipPolicy.batteryTipEnabled).isTrue(); - assertThat(batteryTipPolicy.summaryEnabled).isTrue(); + assertThat(batteryTipPolicy.summaryEnabled).isFalse(); assertThat(batteryTipPolicy.batterySaverTipEnabled).isTrue(); assertThat(batteryTipPolicy.highUsageEnabled).isTrue(); assertThat(batteryTipPolicy.highUsageAppCount).isEqualTo(3);