Fix Settings crash on changing device orientation
- AppDataUsage assign preferences to Applist in loaderCallback. When device rotate we will assign preference to Applist second time which throw IllegalStateException Exception. We will use restartLoader which create new loader rather than use existed loader. Change-Id: I540d645e930a29f989c4fe374e2103ca201da198 Fixes: 118195540 Test: manual
This commit is contained in:
@@ -190,7 +190,8 @@ public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceC
|
||||
|
||||
if (mPackages.size() > 1) {
|
||||
mAppList = (PreferenceCategory) findPreference(KEY_APP_LIST);
|
||||
getLoaderManager().initLoader(LOADER_APP_PREF, Bundle.EMPTY, mAppPrefCallbacks);
|
||||
LoaderManager.getInstance(this).restartLoader(LOADER_APP_PREF, Bundle.EMPTY,
|
||||
mAppPrefCallbacks);
|
||||
} else {
|
||||
removePreference(KEY_APP_LIST);
|
||||
}
|
||||
@@ -221,7 +222,7 @@ public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceC
|
||||
mDataSaverBackend.addListener(this);
|
||||
}
|
||||
mPolicy = services.mPolicyEditor.getPolicy(mTemplate);
|
||||
getLoaderManager().restartLoader(LOADER_CHART_DATA,
|
||||
LoaderManager.getInstance(this).restartLoader(LOADER_CHART_DATA,
|
||||
ChartDataLoaderCompat.buildArgs(mTemplate, mAppItem), mChartDataCallbacks);
|
||||
updatePrefs();
|
||||
}
|
||||
|
@@ -177,7 +177,8 @@ public class AppDataUsageV2 extends DataUsageBaseFragment implements OnPreferenc
|
||||
|
||||
if (mPackages.size() > 1) {
|
||||
mAppList = (PreferenceCategory) findPreference(KEY_APP_LIST);
|
||||
getLoaderManager().initLoader(LOADER_APP_PREF, Bundle.EMPTY, mAppPrefCallbacks);
|
||||
LoaderManager.getInstance(this).restartLoader(LOADER_APP_PREF, Bundle.EMPTY,
|
||||
mAppPrefCallbacks);
|
||||
} else {
|
||||
removePreference(KEY_APP_LIST);
|
||||
}
|
||||
@@ -201,7 +202,8 @@ public class AppDataUsageV2 extends DataUsageBaseFragment implements OnPreferenc
|
||||
if (mDataSaverBackend != null) {
|
||||
mDataSaverBackend.addListener(this);
|
||||
}
|
||||
getLoaderManager().restartLoader(LOADER_APP_USAGE_DATA, null /* args */, mUidDataCallbacks);
|
||||
LoaderManager.getInstance(this).restartLoader(LOADER_APP_USAGE_DATA, null /* args */,
|
||||
mUidDataCallbacks);
|
||||
updatePrefs();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user