From f8ef23b63e30556bb58d48e3a6df8183a6c57c93 Mon Sep 17 00:00:00 2001 From: jackqdyulei Date: Fri, 16 Feb 2018 14:57:10 -0800 Subject: [PATCH] Change the order of battery tips Bug: 72492206 Test: RunSettingsRoboTests Change-Id: I27b2d5c27fbac2259d9ee483b755ac799dd0de68 --- .../fuelgauge/batterytip/tips/BatteryTip.java | 18 +++++++++++++++++- .../batterytip/BatteryTipLoaderTest.java | 8 ++++---- .../batterytip/tips/BatteryTipTest.java | 13 +++++++++++++ 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTip.java index 59cd5ee4226..3257d946539 100644 --- a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTip.java +++ b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTip.java @@ -21,7 +21,9 @@ import android.os.Parcel; import android.os.Parcelable; import android.support.annotation.IdRes; import android.support.annotation.IntDef; +import android.support.annotation.VisibleForTesting; import android.support.v7.preference.Preference; +import android.util.SparseIntArray; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -63,6 +65,20 @@ public abstract class BatteryTip implements Comparable, Parcelable { int REMOVE_APP_RESTRICTION = 7; } + @VisibleForTesting + static final SparseIntArray TIP_ORDER; + static { + TIP_ORDER = new SparseIntArray(); + TIP_ORDER.append(TipType.APP_RESTRICTION, 0); + TIP_ORDER.append(TipType.BATTERY_SAVER, 1); + TIP_ORDER.append(TipType.HIGH_DEVICE_USAGE, 2); + TIP_ORDER.append(TipType.SUMMARY, 3); + TIP_ORDER.append(TipType.SMART_BATTERY_MANAGER, 4); + TIP_ORDER.append(TipType.REDUCED_BATTERY, 5); + TIP_ORDER.append(TipType.LOW_BATTERY, 6); + TIP_ORDER.append(TipType.REMOVE_APP_RESTRICTION, 7); + } + private static final String KEY_PREFIX = "key_battery_tip"; protected int mType; @@ -140,6 +156,6 @@ public abstract class BatteryTip implements Comparable, Parcelable { @Override public int compareTo(BatteryTip o) { - return mType - o.mType; + return TIP_ORDER.get(mType) - TIP_ORDER.get(o.mType); } } 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 09e67edbdbc..c044a14276f 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java @@ -50,12 +50,12 @@ import java.util.List; @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class BatteryTipLoaderTest { private static final int[] TIP_ORDER = { - BatteryTip.TipType.SMART_BATTERY_MANAGER, BatteryTip.TipType.APP_RESTRICTION, - BatteryTip.TipType.HIGH_DEVICE_USAGE, BatteryTip.TipType.BATTERY_SAVER, - BatteryTip.TipType.LOW_BATTERY, - BatteryTip.TipType.SUMMARY}; + BatteryTip.TipType.HIGH_DEVICE_USAGE, + BatteryTip.TipType.SUMMARY, + BatteryTip.TipType.SMART_BATTERY_MANAGER, + BatteryTip.TipType.LOW_BATTERY}; @Mock(answer = Answers.RETURNS_DEEP_STUBS) private BatteryStatsHelper mBatteryStatsHelper; @Mock diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java index 6efd5d305bd..74b9e2fb138 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java @@ -34,6 +34,9 @@ import org.junit.runner.RunWith; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; +import java.util.ArrayList; +import java.util.List; + @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class BatteryTipTest { @@ -75,6 +78,16 @@ public class BatteryTipTest { assertThat(parcelTip.getIconId()).isEqualTo(ICON_ID); } + @Test + public void testTipOrder_orderUnique() { + final List orders = new ArrayList<>(); + for (int i = 0, size = BatteryTip.TIP_ORDER.size(); i < size; i++) { + orders.add(BatteryTip.TIP_ORDER.valueAt(i)); + } + + assertThat(orders).containsNoDuplicates(); + } + /** * Used to test the non abstract methods in {@link TestBatteryTip} */