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

Commit 3d3fed09 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Correctly save and restore state." into qt-dev

parents 48f76778 3335626c
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -43,6 +43,11 @@ public final class ManagePermissionsActivity extends FragmentActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // If there is a previous instance, re-use its Fragment instead of making a new one.
        if (savedInstanceState != null) {
            return;
        }

        android.app.Fragment fragment = null;
        Fragment androidXFragment = null;
        String action = getIntent().getAction();
+11 −20
Original line number Diff line number Diff line
@@ -103,9 +103,9 @@ public class PermissionUsageFragment extends SettingsWithLargeHeader implements
    private static final String KEY_SHOW_SYSTEM_PREFS = "_show_system";
    private static final String SHOW_SYSTEM_KEY = PermissionUsageFragment.class.getName()
            + KEY_SHOW_SYSTEM_PREFS;
    private static final String KEY_PERMS_INDEX = "_perms_index";
    private static final String PERMS_INDEX_KEY = PermissionUsageFragment.class.getName()
            + KEY_PERMS_INDEX;
    private static final String KEY_PERM_NAME = "_perm_name";
    private static final String PERM_NAME_KEY = PermissionUsageFragment.class.getName()
            + KEY_PERM_NAME;
    private static final String KEY_TIME_INDEX = "_time_index";
    private static final String TIME_INDEX_KEY = PermissionUsageFragment.class.getName()
            + KEY_TIME_INDEX;
@@ -139,12 +139,6 @@ public class PermissionUsageFragment extends SettingsWithLargeHeader implements

    private boolean mFinishedInitialLoad;

    /**
     * Only used to restore permission selection state or use the passed permission after onCreate.
     * Once the first list of groups is reported, this becomes invalid.
     */
    private String mSavedGroupName;

    /**
     * @return A new fragment
     */
@@ -166,10 +160,11 @@ public class PermissionUsageFragment extends SettingsWithLargeHeader implements

        mFinishedInitialLoad = false;
        mSort = SORT_RECENT_APPS;
        mFilterGroup = null;
        initializeTimeFilter();
        if (savedInstanceState != null) {
            mShowSystem = savedInstanceState.getBoolean(SHOW_SYSTEM_KEY);
            mSavedGroupName = savedInstanceState.getString(PERMS_INDEX_KEY);
            mFilterGroup = savedInstanceState.getString(PERM_NAME_KEY);
            mFilterTimeIndex = savedInstanceState.getInt(TIME_INDEX_KEY);
            mSort = savedInstanceState.getInt(SORT_KEY);
        }
@@ -181,12 +176,11 @@ public class PermissionUsageFragment extends SettingsWithLargeHeader implements
            ab.setDisplayHomeAsUpEnabled(true);
        }

        if (mSavedGroupName == null) {
            mSavedGroupName = getArguments().getString(Intent.EXTRA_PERMISSION_GROUP_NAME);
        if (mFilterGroup == null) {
            mFilterGroup = getArguments().getString(Intent.EXTRA_PERMISSION_GROUP_NAME);
        }

        Context context = getPreferenceManager().getContext();
        mFilterGroup = null;
        mCollator = Collator.getInstance(
                context.getResources().getConfiguration().getLocales().get(0));
        mPermissionUsages = new PermissionUsages(context);
@@ -252,7 +246,7 @@ public class PermissionUsageFragment extends SettingsWithLargeHeader implements
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putBoolean(SHOW_SYSTEM_KEY, mShowSystem);
        outState.putString(PERMS_INDEX_KEY, mFilterGroup);
        outState.putString(PERM_NAME_KEY, mFilterGroup);
        outState.putInt(TIME_INDEX_KEY, mFilterTimeIndex);
        outState.putInt(SORT_KEY, mSort);
    }
@@ -343,12 +337,9 @@ public class PermissionUsageFragment extends SettingsWithLargeHeader implements
        }
        mAppPermissionUsages = new ArrayList<>(mPermissionUsages.getUsages());

        // Use the saved permission group or the one passed as an argument, if applicable.
        if (mSavedGroupName != null && mFilterGroup == null) {
            if (getGroup(mSavedGroupName) != null) {
                mFilterGroup = mSavedGroupName;
                mSavedGroupName = null;
            }
        // Ensure the group name is valid.
        if (getGroup(mFilterGroup) == null) {
            mFilterGroup = null;
        }

        updateUI();