From 551a1a0176dcf534a474dc70bd83c477bbf1bd6c Mon Sep 17 00:00:00 2001 From: Lei Yu Date: Fri, 18 May 2018 13:00:03 -0700 Subject: [PATCH] Refine update process for restrict tip. When restrict tip update, we should also update app list unless it goes from NEW to INVISIBLE. After that it won't show "0 apps been restricted". Change-Id: Iedf4288fcddfe632a9ba8c16afdfb5bc044bce2e Fix: 79890132 Test: RunSettingsRoboTests --- .../batterytip/tips/RestrictAppTip.java | 1 + .../batterytip/tips/RestrictAppTipTest.java | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java index 9aa8363f415..c2e45b19c48 100644 --- a/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java +++ b/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java @@ -103,6 +103,7 @@ public class RestrictAppTip extends BatteryTip { } else { mState = tip.getState(); mShowDialog = tip.shouldShowDialog(); + mRestrictAppList = ((RestrictAppTip) tip).mRestrictAppList; } } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTipTest.java index a5a6602950a..e2c80df9a1f 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTipTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTipTest.java @@ -60,6 +60,7 @@ public class RestrictAppTipTest { private RestrictAppTip mHandledBatteryTip; private RestrictAppTip mInvisibleBatteryTip; private List mUsageAppList; + private AppInfo mAppInfo; @Mock private ApplicationInfo mApplicationInfo; @Mock @@ -77,15 +78,16 @@ public class RestrictAppTipTest { PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.MATCH_ANY_USER); doReturn(DISPLAY_NAME).when(mApplicationInfo).loadLabel(mPackageManager); - mUsageAppList = new ArrayList<>(); - mUsageAppList.add(new AppInfo.Builder() + mAppInfo = new AppInfo.Builder() .setPackageName(PACKAGE_NAME) .addAnomalyType(ANOMALY_WAKEUP) .addAnomalyType(ANOMALY_WAKELOCK) - .build()); + .build(); + mUsageAppList = new ArrayList<>(); + mUsageAppList.add(mAppInfo); mNewBatteryTip = new RestrictAppTip(BatteryTip.StateType.NEW, mUsageAppList); mHandledBatteryTip = new RestrictAppTip(BatteryTip.StateType.HANDLED, mUsageAppList); - mInvisibleBatteryTip = new RestrictAppTip(BatteryTip.StateType.INVISIBLE, mUsageAppList); + mInvisibleBatteryTip = new RestrictAppTip(BatteryTip.StateType.INVISIBLE, new ArrayList<>()); } @Test @@ -164,6 +166,13 @@ public class RestrictAppTipTest { assertThat(mHandledBatteryTip.getState()).isEqualTo(BatteryTip.StateType.NEW); } + @Test + public void update_newHandledAnomalyComes_containHandledAnomaly() { + mInvisibleBatteryTip.updateState(mHandledBatteryTip); + assertThat(mInvisibleBatteryTip.getState()).isEqualTo(BatteryTip.StateType.HANDLED); + assertThat(mInvisibleBatteryTip.getRestrictAppList()).containsExactly(mAppInfo); + } + @Test public void toString_containsAppData() { assertThat(mNewBatteryTip.toString()).isEqualTo(