Cache summary text to avoid flickering
Bug: 231927706 Test: build, flash, run unit test, then test manually. Change-Id: Ia0585302c5cf86cd6035315fa750c71b9df55237
This commit is contained in:
@@ -31,9 +31,9 @@ public class TopLevelLocationPreferenceController extends BasePreferenceControll
|
||||
private static final IntentFilter INTENT_FILTER_LOCATION_MODE_CHANGED =
|
||||
new IntentFilter(LocationManager.MODE_CHANGED_ACTION);
|
||||
private final LocationManager mLocationManager;
|
||||
/** Total number of apps that has location permission. */
|
||||
private int mNumTotal = -1;
|
||||
private int mNumTotalLoading = 0;
|
||||
/** Summary text. */
|
||||
private static String sSummary = null;
|
||||
private BroadcastReceiver mReceiver;
|
||||
private Preference mPreference;
|
||||
private AtomicInteger loadingInProgress = new AtomicInteger(0);
|
||||
@@ -51,12 +51,11 @@ public class TopLevelLocationPreferenceController extends BasePreferenceControll
|
||||
@Override
|
||||
public CharSequence getSummary() {
|
||||
if (mLocationManager.isLocationEnabled()) {
|
||||
if (mNumTotal == -1) {
|
||||
return mContext.getString(R.string.location_settings_loading_app_permission_stats);
|
||||
if (sSummary == null) {
|
||||
sSummary = mContext.getString(
|
||||
R.string.location_settings_loading_app_permission_stats);
|
||||
}
|
||||
return mContext.getResources().getQuantityString(
|
||||
R.plurals.location_settings_summary_location_on,
|
||||
mNumTotal, mNumTotal);
|
||||
return sSummary;
|
||||
} else {
|
||||
return mContext.getString(R.string.location_settings_summary_location_off);
|
||||
}
|
||||
@@ -64,7 +63,8 @@ public class TopLevelLocationPreferenceController extends BasePreferenceControll
|
||||
|
||||
@VisibleForTesting
|
||||
void setLocationAppCount(int numApps) {
|
||||
mNumTotal = numApps;
|
||||
sSummary = mContext.getResources().getQuantityString(
|
||||
R.plurals.location_settings_summary_location_on, numApps, numApps);
|
||||
refreshSummary(mPreference);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user