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

Commit a77ac324 authored by Dianne Hackborn's avatar Dianne Hackborn Committed by Android (Google) Code Review
Browse files

Merge "Fix issue #6595555: deal better with fragmentless headers."

parents 7a4e7a5c 19470ecc
Loading
Loading
Loading
Loading
+10 −1
Original line number Original line Diff line number Diff line
@@ -703,7 +703,13 @@ public abstract class PreferenceActivity extends ListActivity implements
     * show for the initial UI.
     * show for the initial UI.
     */
     */
    public Header onGetInitialHeader() {
    public Header onGetInitialHeader() {
        return mHeaders.get(0);
        for (int i=0; i<mHeaders.size(); i++) {
            Header h = mHeaders.get(i);
            if (h.fragment != null) {
                return h;
            }
        }
        throw new IllegalStateException("Must have at least one header with a fragment");
    }
    }


    /**
    /**
@@ -1167,6 +1173,9 @@ public abstract class PreferenceActivity extends ListActivity implements
            getFragmentManager().popBackStack(BACK_STACK_PREFS,
            getFragmentManager().popBackStack(BACK_STACK_PREFS,
                    FragmentManager.POP_BACK_STACK_INCLUSIVE);
                    FragmentManager.POP_BACK_STACK_INCLUSIVE);
        } else {
        } else {
            if (header.fragment == null) {
                throw new IllegalStateException("can't switch to header that has no fragment");
            }
            int direction = mHeaders.indexOf(header) - mHeaders.indexOf(mCurHeader);
            int direction = mHeaders.indexOf(header) - mHeaders.indexOf(mCurHeader);
            switchToHeaderInner(header.fragment, header.fragmentArguments, direction);
            switchToHeaderInner(header.fragment, header.fragmentArguments, direction);
            setSelectedHeader(header);
            setSelectedHeader(header);