Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1d88f4c6 authored by Raff Tsai's avatar Raff Tsai
Browse files

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
parent 416ff0ab
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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();
    }
+4 −2
Original line number Diff line number Diff line
@@ -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();
    }