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
This commit is contained in:
Raff Tsai
2019-09-09 11:53:39 +08:00
parent 33a05692f0
commit 8291671f97
3 changed files with 10 additions and 5 deletions

View File

@@ -80,7 +80,7 @@ public abstract class PowerUsageBase extends DashboardFragment {
final Bundle bundle = new Bundle(); final Bundle bundle = new Bundle();
bundle.putInt(KEY_REFRESH_TYPE, refreshType); 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); protected abstract void refreshUi(@BatteryUpdateType int refreshType);

View File

@@ -63,10 +63,15 @@ public class RestrictAppPreferenceController extends BasePreferenceController {
} }
@Override @Override
public CharSequence getSummary() { public void updateState(Preference preference) {
super.updateState(preference);
mAppInfos = BatteryTipUtils.getRestrictedAppsList(mAppOpsManager, mUserManager);
final int num = mAppInfos.size(); final int num = mAppInfos.size();
return mContext.getResources().getQuantityString(R.plurals.restricted_app_summary, num, // Fragment change RestrictedAppsList after onPause(), UI needs to be updated in onResume()
num); preference.setVisible(num > 0);
preference.setSummary(
mContext.getResources().getQuantityString(R.plurals.restricted_app_summary, num,
num));
} }
@Override @Override

View File

@@ -57,7 +57,7 @@ public class PowerUsageBaseTest {
mFragment = spy(new TestFragment()); mFragment = spy(new TestFragment());
mFragment.setBatteryStatsHelper(mBatteryStatsHelper); mFragment.setBatteryStatsHelper(mBatteryStatsHelper);
doReturn(mLoaderManager).when(LoaderManager.getInstance(any())); doReturn(mLoaderManager).when(mFragment).getLoaderManager();
} }
@Test @Test