From 8291671f97abe44c7e66bb1ddf71f5bd75637629 Mon Sep 17 00:00:00 2001 From: Raff Tsai Date: Mon, 9 Sep 2019 11:53:39 +0800 Subject: [PATCH] Fix testcase error and UI refresh issue Restricted App list can be update in RestrictedAppDetails page and go back to SmartBatterySettings page without update the App list. We need to update the list in updateState() again. Fixes: 140585454 Test: manual, robolectric Change-Id: I48a197351ffb9b07490f1de7ba1f7417102458a2 --- .../android/settings/fuelgauge/PowerUsageBase.java | 2 +- .../fuelgauge/RestrictAppPreferenceController.java | 11 ++++++++--- .../settings/fuelgauge/PowerUsageBaseTest.java | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/fuelgauge/PowerUsageBase.java b/src/com/android/settings/fuelgauge/PowerUsageBase.java index 821bd7a0eb0..98b62d9e4cf 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageBase.java +++ b/src/com/android/settings/fuelgauge/PowerUsageBase.java @@ -80,7 +80,7 @@ public abstract class PowerUsageBase extends DashboardFragment { final Bundle bundle = new Bundle(); bundle.putInt(KEY_REFRESH_TYPE, refreshType); - LoaderManager.getInstance(this).restartLoader(0, bundle, new PowerLoaderCallback()); + getLoaderManager().restartLoader(0, bundle, new PowerLoaderCallback()); } protected abstract void refreshUi(@BatteryUpdateType int refreshType); diff --git a/src/com/android/settings/fuelgauge/RestrictAppPreferenceController.java b/src/com/android/settings/fuelgauge/RestrictAppPreferenceController.java index 4dd44195830..1460d751ad0 100644 --- a/src/com/android/settings/fuelgauge/RestrictAppPreferenceController.java +++ b/src/com/android/settings/fuelgauge/RestrictAppPreferenceController.java @@ -63,10 +63,15 @@ public class RestrictAppPreferenceController extends BasePreferenceController { } @Override - public CharSequence getSummary() { + public void updateState(Preference preference) { + super.updateState(preference); + mAppInfos = BatteryTipUtils.getRestrictedAppsList(mAppOpsManager, mUserManager); final int num = mAppInfos.size(); - return mContext.getResources().getQuantityString(R.plurals.restricted_app_summary, num, - num); + // Fragment change RestrictedAppsList after onPause(), UI needs to be updated in onResume() + preference.setVisible(num > 0); + preference.setSummary( + mContext.getResources().getQuantityString(R.plurals.restricted_app_summary, num, + num)); } @Override diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageBaseTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageBaseTest.java index e66c7e142ad..cd1b1780d2c 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageBaseTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageBaseTest.java @@ -57,7 +57,7 @@ public class PowerUsageBaseTest { mFragment = spy(new TestFragment()); mFragment.setBatteryStatsHelper(mBatteryStatsHelper); - doReturn(mLoaderManager).when(LoaderManager.getInstance(any())); + doReturn(mLoaderManager).when(mFragment).getLoaderManager(); } @Test