Fix flicker for Mobile data & Wi-Fi page
Both "Mobile data usage" & "Non-carrier data usage". By, 1. Add header in onCreate() instead of onViewCreated() 2. Keep the space for Spinner, and preload initial cycles 3. Keep the space for 3 usage summaries Bug: 191730864 Test: manual Change-Id: I8c309c5f51ce6290383a2d10f75e41d0f207d61a
This commit is contained in:
@@ -144,8 +144,7 @@ public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceC
|
||||
mForegroundUsage = findPreference(KEY_FOREGROUND_USAGE);
|
||||
mBackgroundUsage = findPreference(KEY_BACKGROUND_USAGE);
|
||||
|
||||
mCycle = findPreference(KEY_CYCLE);
|
||||
mCycleAdapter = new CycleAdapter(mContext, mCycle, mCycleListener);
|
||||
initCycle();
|
||||
|
||||
final UidDetailProvider uidDetailProvider = getUidDetailProvider();
|
||||
|
||||
@@ -211,6 +210,8 @@ public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceC
|
||||
removePreference(KEY_RESTRICT_BACKGROUND);
|
||||
removePreference(KEY_APP_LIST);
|
||||
}
|
||||
|
||||
addEntityHeader();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -276,6 +277,17 @@ public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceC
|
||||
return new UidDetailProvider(mContext);
|
||||
}
|
||||
|
||||
private void initCycle() {
|
||||
mCycle = findPreference(KEY_CYCLE);
|
||||
mCycleAdapter = new CycleAdapter(mContext, mCycle, mCycleListener);
|
||||
if (mCycles != null) {
|
||||
// If coming from a page like DataUsageList where already has a selected cycle, display
|
||||
// that before loading to reduce flicker.
|
||||
mCycleAdapter.setInitialCycleList(mCycles, mSelectedCycle);
|
||||
mCycle.setHasCycles(true);
|
||||
}
|
||||
}
|
||||
|
||||
private void updatePrefs(boolean restrictBackground, boolean unrestrictData) {
|
||||
final EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfMeteredDataRestricted(
|
||||
mContext, mPackageName, UserHandle.getUserId(mAppItem.key));
|
||||
@@ -308,9 +320,9 @@ public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceC
|
||||
final long backgroundBytes, foregroundBytes;
|
||||
if (mUsageData == null || position >= mUsageData.size()) {
|
||||
backgroundBytes = foregroundBytes = 0;
|
||||
mCycle.setVisible(false);
|
||||
mCycle.setHasCycles(false);
|
||||
} else {
|
||||
mCycle.setVisible(true);
|
||||
mCycle.setHasCycles(true);
|
||||
final NetworkCycleDataForUid data = mUsageData.get(position);
|
||||
backgroundBytes = data.getBackgroudUsage();
|
||||
foregroundBytes = data.getForegroudUsage();
|
||||
@@ -335,10 +347,8 @@ public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceC
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
@VisibleForTesting
|
||||
void addEntityHeader() {
|
||||
String pkg = mPackages.size() != 0 ? mPackages.valueAt(0) : null;
|
||||
int uid = 0;
|
||||
if (pkg != null) {
|
||||
|
Reference in New Issue
Block a user