Loading src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java +21 −14 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.util.Log; import androidx.annotation.VisibleForTesting; import androidx.annotation.WorkerThread; Loading @@ -49,6 +48,7 @@ import com.android.settings.slices.SliceBackgroundWorker; import com.android.settings.slices.SliceBuilderUtils; import com.android.settingslib.utils.ThreadUtils; import java.util.Arrays; import java.util.List; public class BatteryFixSlice implements CustomSliceable { Loading @@ -58,6 +58,11 @@ public class BatteryFixSlice implements CustomSliceable { @VisibleForTesting static final String KEY_CURRENT_TIPS_TYPE = "current_tip_type"; private static final List<Integer> UNIMPORTANT_BATTERY_TIPS = Arrays.asList( BatteryTip.TipType.SUMMARY, BatteryTip.TipType.BATTERY_SAVER ); private static final String TAG = "BatteryFixSlice"; private final Context mContext; Loading @@ -78,7 +83,7 @@ public class BatteryFixSlice implements CustomSliceable { .setAccentColor(-1); // TipType.SUMMARY is battery good if (readBatteryTipAvailabilityCache(mContext) == BatteryTip.TipType.SUMMARY) { if (UNIMPORTANT_BATTERY_TIPS.contains(readBatteryTipAvailabilityCache(mContext))) { return buildBatteryGoodSlice(sliceBuilder, true); } Loading @@ -91,8 +96,11 @@ public class BatteryFixSlice implements CustomSliceable { } for (BatteryTip batteryTip : batteryTips) { if (batteryTip.getState() != BatteryTip.StateType.INVISIBLE) { final IconCompat icon = IconCompat.createWithResource(mContext, batteryTip.getIconId()); if (batteryTip.getState() == BatteryTip.StateType.INVISIBLE) { continue; } final IconCompat icon = IconCompat.createWithResource(mContext, batteryTip.getIconId()); final SliceAction primaryAction = SliceAction.createDeeplink(getPrimaryAction(), icon, ListBuilder.ICON_IMAGE, Loading @@ -104,7 +112,6 @@ public class BatteryFixSlice implements CustomSliceable { .setPrimaryAction(primaryAction)); break; } } return sliceBuilder.build(); } Loading tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSliceTest.java +23 −2 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ import static com.google.common.truth.Truth.assertThat; import android.content.Context; import android.content.SharedPreferences; import androidx.slice.Slice; import androidx.slice.SliceMetadata; import androidx.slice.SliceProvider; import androidx.slice.widget.SliceLiveData; Loading Loading @@ -55,11 +57,13 @@ import java.util.List; public class BatteryFixSliceTest { private Context mContext; private BatteryFixSlice mSlice; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mSlice = new BatteryFixSlice(mContext); // Set-up specs for SliceMetadata. SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS); Loading @@ -71,7 +75,7 @@ public class BatteryFixSliceTest { } @Test public void readBatteryTipfromPref_readCorrectValue() { public void readBatteryTipFromPref_readCorrectValue() { int target = 111; final SharedPreferences.Editor editor = mContext.getSharedPreferences(PREFS, MODE_PRIVATE).edit(); Loading @@ -90,7 +94,7 @@ public class BatteryFixSliceTest { public void updateBatteryTipAvailabilityCache_writeCorrectValue() { final List<BatteryTip> tips = new ArrayList<>(); tips.add(new LowBatteryTip(BatteryTip.StateType.INVISIBLE, false, "")); tips.add(new EarlyWarningTip(BatteryTip.StateType.HANDLED, false)); tips.add(new EarlyWarningTip(BatteryTip.StateType.NEW, false)); ShadowBatteryTipLoader.setBatteryTips(tips); BatteryFixSlice.updateBatteryTipAvailabilityCache(mContext); Loading @@ -99,6 +103,23 @@ public class BatteryFixSliceTest { BatteryTip.TipType.BATTERY_SAVER); } @Test @Config(shadows = { ShadowBatteryStatsHelperLoader.class, ShadowBatteryTipLoader.class }) public void getSlice_unimportantSlice_shouldSkip() { final List<BatteryTip> tips = new ArrayList<>(); tips.add(new LowBatteryTip(BatteryTip.StateType.INVISIBLE, false, "")); tips.add(new EarlyWarningTip(BatteryTip.StateType.NEW, false)); ShadowBatteryTipLoader.setBatteryTips(tips); BatteryFixSlice.updateBatteryTipAvailabilityCache(mContext); final Slice slice = mSlice.getSlice(); assertThat(SliceMetadata.from(mContext, slice).isErrorSlice()).isTrue(); } @Implements(BatteryStatsHelperLoader.class) public static class ShadowBatteryStatsHelperLoader { Loading Loading
src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java +21 −14 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.util.Log; import androidx.annotation.VisibleForTesting; import androidx.annotation.WorkerThread; Loading @@ -49,6 +48,7 @@ import com.android.settings.slices.SliceBackgroundWorker; import com.android.settings.slices.SliceBuilderUtils; import com.android.settingslib.utils.ThreadUtils; import java.util.Arrays; import java.util.List; public class BatteryFixSlice implements CustomSliceable { Loading @@ -58,6 +58,11 @@ public class BatteryFixSlice implements CustomSliceable { @VisibleForTesting static final String KEY_CURRENT_TIPS_TYPE = "current_tip_type"; private static final List<Integer> UNIMPORTANT_BATTERY_TIPS = Arrays.asList( BatteryTip.TipType.SUMMARY, BatteryTip.TipType.BATTERY_SAVER ); private static final String TAG = "BatteryFixSlice"; private final Context mContext; Loading @@ -78,7 +83,7 @@ public class BatteryFixSlice implements CustomSliceable { .setAccentColor(-1); // TipType.SUMMARY is battery good if (readBatteryTipAvailabilityCache(mContext) == BatteryTip.TipType.SUMMARY) { if (UNIMPORTANT_BATTERY_TIPS.contains(readBatteryTipAvailabilityCache(mContext))) { return buildBatteryGoodSlice(sliceBuilder, true); } Loading @@ -91,8 +96,11 @@ public class BatteryFixSlice implements CustomSliceable { } for (BatteryTip batteryTip : batteryTips) { if (batteryTip.getState() != BatteryTip.StateType.INVISIBLE) { final IconCompat icon = IconCompat.createWithResource(mContext, batteryTip.getIconId()); if (batteryTip.getState() == BatteryTip.StateType.INVISIBLE) { continue; } final IconCompat icon = IconCompat.createWithResource(mContext, batteryTip.getIconId()); final SliceAction primaryAction = SliceAction.createDeeplink(getPrimaryAction(), icon, ListBuilder.ICON_IMAGE, Loading @@ -104,7 +112,6 @@ public class BatteryFixSlice implements CustomSliceable { .setPrimaryAction(primaryAction)); break; } } return sliceBuilder.build(); } Loading
tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSliceTest.java +23 −2 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ import static com.google.common.truth.Truth.assertThat; import android.content.Context; import android.content.SharedPreferences; import androidx.slice.Slice; import androidx.slice.SliceMetadata; import androidx.slice.SliceProvider; import androidx.slice.widget.SliceLiveData; Loading Loading @@ -55,11 +57,13 @@ import java.util.List; public class BatteryFixSliceTest { private Context mContext; private BatteryFixSlice mSlice; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mSlice = new BatteryFixSlice(mContext); // Set-up specs for SliceMetadata. SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS); Loading @@ -71,7 +75,7 @@ public class BatteryFixSliceTest { } @Test public void readBatteryTipfromPref_readCorrectValue() { public void readBatteryTipFromPref_readCorrectValue() { int target = 111; final SharedPreferences.Editor editor = mContext.getSharedPreferences(PREFS, MODE_PRIVATE).edit(); Loading @@ -90,7 +94,7 @@ public class BatteryFixSliceTest { public void updateBatteryTipAvailabilityCache_writeCorrectValue() { final List<BatteryTip> tips = new ArrayList<>(); tips.add(new LowBatteryTip(BatteryTip.StateType.INVISIBLE, false, "")); tips.add(new EarlyWarningTip(BatteryTip.StateType.HANDLED, false)); tips.add(new EarlyWarningTip(BatteryTip.StateType.NEW, false)); ShadowBatteryTipLoader.setBatteryTips(tips); BatteryFixSlice.updateBatteryTipAvailabilityCache(mContext); Loading @@ -99,6 +103,23 @@ public class BatteryFixSliceTest { BatteryTip.TipType.BATTERY_SAVER); } @Test @Config(shadows = { ShadowBatteryStatsHelperLoader.class, ShadowBatteryTipLoader.class }) public void getSlice_unimportantSlice_shouldSkip() { final List<BatteryTip> tips = new ArrayList<>(); tips.add(new LowBatteryTip(BatteryTip.StateType.INVISIBLE, false, "")); tips.add(new EarlyWarningTip(BatteryTip.StateType.NEW, false)); ShadowBatteryTipLoader.setBatteryTips(tips); BatteryFixSlice.updateBatteryTipAvailabilityCache(mContext); final Slice slice = mSlice.getSlice(); assertThat(SliceMetadata.from(mContext, slice).isErrorSlice()).isTrue(); } @Implements(BatteryStatsHelperLoader.class) public static class ShadowBatteryStatsHelperLoader { Loading