Prevent UI jank
Move hide preference logic to getAvailabilityStatus, it can remove the preference before onresume. Fixes: 140366463 Test: manual, robolectric Change-Id: Ie11b5357b1e9340b30b8f19eac60c479cdb7687e
This commit is contained in:
@@ -49,6 +49,7 @@ public class RestrictAppPreferenceController extends BasePreferenceController {
|
||||
super(context, KEY_RESTRICT_APP);
|
||||
mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
|
||||
mUserManager = context.getSystemService(UserManager.class);
|
||||
mAppInfos = BatteryTipUtils.getRestrictedAppsList(mAppOpsManager, mUserManager);
|
||||
}
|
||||
|
||||
public RestrictAppPreferenceController(InstrumentedPreferenceFragment preferenceFragment) {
|
||||
@@ -58,21 +59,14 @@ public class RestrictAppPreferenceController extends BasePreferenceController {
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
return AVAILABLE;
|
||||
return mAppInfos.size() > 0 ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateState(Preference preference) {
|
||||
super.updateState(preference);
|
||||
|
||||
mAppInfos = BatteryTipUtils.getRestrictedAppsList(mAppOpsManager, mUserManager);
|
||||
|
||||
public CharSequence getSummary() {
|
||||
final int num = mAppInfos.size();
|
||||
// Don't show it if no app been restricted
|
||||
preference.setVisible(num > 0);
|
||||
preference.setSummary(
|
||||
mContext.getResources().getQuantityString(R.plurals.restricted_app_summary, num,
|
||||
num));
|
||||
return mContext.getResources().getQuantityString(R.plurals.restricted_app_summary, num,
|
||||
num);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user