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

Commit b7a2e477 authored by Dianne Hackborn's avatar Dianne Hackborn
Browse files

Fragment and PreferenceFragment and FragmentManager, oh my!

- Introduce FragmentManager public API, for all Fragment management
  needs.  Will in the future allow the removal of the (growing number
  of) fragment APIs on Activity.

- Fragment now has a concept of arguments.  This can be supplied
  immediately after creation, and are retained across instances.

- PreferenceActivity now has an API to have it update its headers (note
  not tested).  Headers now have arguments.  Keys for controlling
  when PreferenceActivity shows at launch have been added to the SDK.

- Fixes to back stack handling and state saving/restoring.

Change-Id: Ib9d07ae2beb296c4eb3a4d9e1b3b59544675e819
parent 67dfaec8
Loading
Loading
Loading
Loading
+302 −26
Original line number Diff line number Diff line
@@ -21946,6 +21946,17 @@
 visibility="public"
>
</method>
<method name="getFragmentManager"
 return="android.app.FragmentManager"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getInstanceCount"
 return="long"
 abstract="false"
@@ -27377,18 +27388,6 @@
 visibility="public"
>
</constructor>
<constructor name="DialogFragment"
 type="android.app.DialogFragment"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="style" type="int">
</parameter>
<parameter name="theme" type="int">
</parameter>
</constructor>
<method name="dismiss"
 return="void"
 abstract="false"
@@ -27485,6 +27484,21 @@
<parameter name="cancelable" type="boolean">
</parameter>
</method>
<method name="setStyle"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="style" type="int">
</parameter>
<parameter name="theme" type="int">
</parameter>
</method>
<method name="show"
 return="void"
 abstract="false"
@@ -27765,6 +27779,28 @@
 visibility="public"
>
</method>
<method name="getArguments"
 return="android.os.Bundle"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getFragmentManager"
 return="android.app.FragmentManager"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getId"
 return="int"
 abstract="false"
@@ -27845,18 +27881,23 @@
</parameter>
<parameter name="fname" type="java.lang.String">
</parameter>
<exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException">
</exception>
<exception name="IllegalAccessException" type="java.lang.IllegalAccessException">
</exception>
<exception name="IllegalArgumentException" type="java.lang.IllegalArgumentException">
</exception>
<exception name="InstantiationException" type="java.lang.InstantiationException">
</exception>
<exception name="InvocationTargetException" type="java.lang.reflect.InvocationTargetException">
</exception>
<exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
</exception>
</method>
<method name="instantiate"
 return="android.app.Fragment"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="context" type="android.content.Context">
</parameter>
<parameter name="fname" type="java.lang.String">
</parameter>
<parameter name="args" type="android.os.Bundle">
</parameter>
</method>
<method name="isAdded"
 return="boolean"
@@ -28233,6 +28274,19 @@
<parameter name="view" type="android.view.View">
</parameter>
</method>
<method name="setArguments"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="args" type="android.os.Bundle">
</parameter>
</method>
<method name="setHasOptionsMenu"
 return="void"
 abstract="false"
@@ -28301,6 +28355,156 @@
</parameter>
</method>
</class>
<class name="Fragment.InstantiationException"
 extends="android.util.AndroidRuntimeException"
 abstract="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<constructor name="Fragment.InstantiationException"
 type="android.app.Fragment.InstantiationException"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="msg" type="java.lang.String">
</parameter>
<parameter name="cause" type="java.lang.Exception">
</parameter>
</constructor>
</class>
<interface name="FragmentManager"
 abstract="true"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<method name="findFragmentById"
 return="android.app.Fragment"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="id" type="int">
</parameter>
</method>
<method name="findFragmentByTag"
 return="android.app.Fragment"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="tag" type="java.lang.String">
</parameter>
</method>
<method name="getFragment"
 return="android.app.Fragment"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="bundle" type="android.os.Bundle">
</parameter>
<parameter name="key" type="java.lang.String">
</parameter>
</method>
<method name="openTransaction"
 return="android.app.FragmentTransaction"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="popBackStack"
 return="boolean"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="popBackStack"
 return="boolean"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="name" type="java.lang.String">
</parameter>
<parameter name="flags" type="int">
</parameter>
</method>
<method name="popBackStack"
 return="boolean"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="id" type="int">
</parameter>
<parameter name="flags" type="int">
</parameter>
</method>
<method name="putFragment"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="bundle" type="android.os.Bundle">
</parameter>
<parameter name="key" type="java.lang.String">
</parameter>
<parameter name="fragment" type="android.app.Fragment">
</parameter>
</method>
<field name="POP_BACK_STACK_INCLUSIVE"
 type="int"
 transient="false"
 volatile="false"
 value="1"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
</interface>
<interface name="FragmentTransaction"
 abstract="true"
 static="false"
@@ -138394,6 +138598,17 @@
 visibility="public"
>
</method>
<method name="invalidateHeaders"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="loadHeadersFromResource"
 return="void"
 abstract="false"
@@ -138422,8 +138637,8 @@
<parameter name="target" type="java.util.List&lt;android.preference.PreferenceActivity.Header&gt;">
</parameter>
</method>
<method name="onGetInitialFragment"
 return="java.lang.String"
<method name="onGetInitialHeader"
 return="android.preference.PreferenceActivity.Header"
 abstract="false"
 native="false"
 synchronized="false"
@@ -138525,6 +138740,8 @@
>
<parameter name="fragmentName" type="java.lang.String">
</parameter>
<parameter name="args" type="android.os.Bundle">
</parameter>
</method>
<method name="switchToHeader"
 return="void"
@@ -138538,7 +138755,42 @@
>
<parameter name="fragmentName" type="java.lang.String">
</parameter>
<parameter name="args" type="android.os.Bundle">
</parameter>
</method>
<field name="EXTRA_NO_HEADERS"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;:android:no_headers&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="EXTRA_SHOW_FRAGMENT"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;:android:show_fragment&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="EXTRA_SHOW_FRAGMENT_ARGUMENTS"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;:android:show_fragment_args&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
</class>
<class name="PreferenceActivity.Header"
 extends="java.lang.Object"
@@ -179173,6 +179425,18 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="name" type="java.lang.String">
</parameter>
<parameter name="cause" type="java.lang.Throwable">
</parameter>
</constructor>
<constructor name="AndroidException"
 type="android.util.AndroidException"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="cause" type="java.lang.Exception">
</parameter>
</constructor>
@@ -179210,6 +179474,18 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="name" type="java.lang.String">
</parameter>
<parameter name="cause" type="java.lang.Throwable">
</parameter>
</constructor>
<constructor name="AndroidRuntimeException"
 type="android.util.AndroidRuntimeException"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="cause" type="java.lang.Exception">
</parameter>
</constructor>
+42 −41
Original line number Diff line number Diff line
@@ -667,7 +667,7 @@ public class Activity extends ContextThemeWrapper
    private CharSequence mTitle;
    private int mTitleColor = 0;

    final FragmentManager mFragments = new FragmentManager();
    final FragmentManagerImpl mFragments = new FragmentManagerImpl();
    
    SparseArray<LoaderManagerImpl> mAllLoaderManagers;
    LoaderManagerImpl mLoaderManager;
@@ -1579,12 +1579,20 @@ public class Activity extends ContextThemeWrapper
        mCalled = true;
    }
    
    /**
     * Return the FragmentManager for interacting with fragments associated
     * with this activity.
     */
    public FragmentManager getFragmentManager() {
        return mFragments;
    }

    /**
     * Start a series of edit operations on the Fragments associated with
     * this activity.
     */
    public FragmentTransaction openFragmentTransaction() {
        return new BackStackEntry(mFragments);
        return mFragments.openTransaction();
    }
    
    void invalidateFragmentIndex(int index) {
@@ -2072,7 +2080,7 @@ public class Activity extends ContextThemeWrapper
     * to pop, else false.
     */
    public boolean popBackStack() {
        return popBackStack(null, 0);
        return mFragments.popBackStack();
    }

    /**
@@ -2085,7 +2093,7 @@ public class Activity extends ContextThemeWrapper
     * @param flags Either 0 or {@link #POP_BACK_STACK_INCLUSIVE}.
     */
    public boolean popBackStack(String name, int flags) {
        return mFragments.popBackStackState(mHandler, name, flags);
        return mFragments.popBackStack(name, flags);
    }

    /**
@@ -2099,7 +2107,7 @@ public class Activity extends ContextThemeWrapper
     * @param flags Either 0 or {@link #POP_BACK_STACK_INCLUSIVE}.
     */
    public boolean popBackStack(int id, int flags) {
        return mFragments.popBackStackState(mHandler, id, flags);
        return mFragments.popBackStack(id, flags);
    }
    
    /**
@@ -3999,12 +4007,11 @@ public class Activity extends ContextThemeWrapper
                    + ": Must specify unique android:id for " + fname);
        }
        
        try {
        // If we restored from a previous state, we may already have
        // instantiated this fragment from the state and should use
        // that instance instead of making a new one.
        Fragment fragment = mFragments.findFragmentById(id);
            if (FragmentManager.DEBUG) Log.v(TAG, "onCreateView: id=0x"
        if (FragmentManagerImpl.DEBUG) Log.v(TAG, "onCreateView: id=0x"
                + Integer.toHexString(id) + " fname=" + fname
                + " existing=" + fragment);
        if (fragment == null) {
@@ -4030,12 +4037,6 @@ public class Activity extends ContextThemeWrapper
            fragment.mView.setTag(tag);
        }
        return fragment.mView;
        } catch (Exception e) {
            InflateException ie = new InflateException(attrs.getPositionDescription()
                    + ": Error inflating fragment " + fname);
            ie.initCause(e);
            throw ie;
        }
    }

    /**
+56 −50
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ final class BackStackState implements Parcelable {
    final String mName;
    final int mIndex;
    
    public BackStackState(FragmentManager fm, BackStackEntry bse) {
    public BackStackState(FragmentManagerImpl fm, BackStackEntry bse) {
        int numRemoved = 0;
        BackStackEntry.Op op = bse.mHead;
        while (op != null) {
@@ -38,6 +38,10 @@ final class BackStackState implements Parcelable {
        }
        mOps = new int[bse.mNumOp*5 + numRemoved];
        
        if (!bse.mAddToBackStack) {
            throw new IllegalStateException("Not on back stack");
        }

        op = bse.mHead;
        int pos = 0;
        while (op != null) {
@@ -70,14 +74,15 @@ final class BackStackState implements Parcelable {
        mIndex = in.readInt();
    }
    
    public BackStackEntry instantiate(FragmentManager fm) {
    public BackStackEntry instantiate(FragmentManagerImpl fm) {
        BackStackEntry bse = new BackStackEntry(fm);
        int pos = 0;
        while (pos < mOps.length) {
            BackStackEntry.Op op = new BackStackEntry.Op();
            op.cmd = mOps[pos++];
            if (FragmentManagerImpl.DEBUG) Log.v(FragmentManagerImpl.TAG,
                    "BSE " + bse + " set base fragment #" + mOps[pos]);
            Fragment f = fm.mActive.get(mOps[pos++]);
            f.mBackStackNesting++;
            op.fragment = f;
            op.enterAnim = mOps[pos++];
            op.exitAnim = mOps[pos++];
@@ -85,7 +90,10 @@ final class BackStackState implements Parcelable {
            if (N > 0) {
                op.removed = new ArrayList<Fragment>(N);
                for (int i=0; i<N; i++) {
                    op.removed.add(fm.mActive.get(mOps[pos++]));
                    if (FragmentManagerImpl.DEBUG) Log.v(FragmentManagerImpl.TAG,
                            "BSE " + bse + " set remove fragment #" + mOps[pos]);
                    Fragment r = fm.mActive.get(mOps[pos++]);
                    op.removed.add(r);
                }
            }
            bse.addOp(op);
@@ -94,6 +102,8 @@ final class BackStackState implements Parcelable {
        bse.mTransitionStyle = mTransitionStyle;
        bse.mName = mName;
        bse.mIndex = mIndex;
        bse.mAddToBackStack = true;
        bse.bumpBackStackNesting(1);
        return bse;
    }
    
@@ -127,7 +137,7 @@ final class BackStackState implements Parcelable {
final class BackStackEntry implements FragmentTransaction, Runnable {
    static final String TAG = "BackStackEntry";
    
    final FragmentManager mManager;
    final FragmentManagerImpl mManager;
    
    static final int OP_NULL = 0;
    static final int OP_ADD = 1;
@@ -158,7 +168,7 @@ final class BackStackEntry implements FragmentTransaction, Runnable {
    boolean mCommitted;
    int mIndex;
    
    public BackStackEntry(FragmentManager manager) {
    public BackStackEntry(FragmentManagerImpl manager) {
        mManager = manager;
    }
    
@@ -295,9 +305,32 @@ final class BackStackEntry implements FragmentTransaction, Runnable {
        return this;
    }

    void bumpBackStackNesting(int amt) {
        if (!mAddToBackStack) {
            return;
        }
        if (FragmentManagerImpl.DEBUG) Log.v(TAG, "Bump nesting in " + this
                + " by " + amt);
        Op op = mHead;
        while (op != null) {
            op.fragment.mBackStackNesting += amt;
            if (FragmentManagerImpl.DEBUG) Log.v(TAG, "Bump nesting of "
                    + op.fragment + " to " + op.fragment.mBackStackNesting);
            if (op.removed != null) {
                for (int i=op.removed.size()-1; i>=0; i--) {
                    Fragment r = op.removed.get(i);
                    r.mBackStackNesting += amt;
                    if (FragmentManagerImpl.DEBUG) Log.v(TAG, "Bump nesting of "
                            + r + " to " + r.mBackStackNesting);
                }
            }
            op = op.next;
        }
    }

    public int commit() {
        if (mCommitted) throw new IllegalStateException("commit already called");
        if (FragmentManager.DEBUG) Log.v(TAG, "Commit: " + this);
        if (FragmentManagerImpl.DEBUG) Log.v(TAG, "Commit: " + this);
        mCommitted = true;
        if (mAddToBackStack) {
            mIndex = mManager.allocBackStackIndex(this);
@@ -309,7 +342,7 @@ final class BackStackEntry implements FragmentTransaction, Runnable {
    }
    
    public void run() {
        if (FragmentManager.DEBUG) Log.v(TAG, "Run: " + this);
        if (FragmentManagerImpl.DEBUG) Log.v(TAG, "Run: " + this);
        
        if (mAddToBackStack) {
            if (mIndex < 0) {
@@ -317,14 +350,13 @@ final class BackStackEntry implements FragmentTransaction, Runnable {
            }
        }

        bumpBackStackNesting(1);

        Op op = mHead;
        while (op != null) {
            switch (op.cmd) {
                case OP_ADD: {
                    Fragment f = op.fragment;
                    if (mAddToBackStack) {
                        f.mBackStackNesting++;
                    }
                    f.mNextAnim = op.enterAnim;
                    mManager.addFragment(f, false);
                } break;
@@ -333,48 +365,38 @@ final class BackStackEntry implements FragmentTransaction, Runnable {
                    if (mManager.mAdded != null) {
                        for (int i=0; i<mManager.mAdded.size(); i++) {
                            Fragment old = mManager.mAdded.get(i);
                            if (FragmentManager.DEBUG) Log.v(TAG,
                            if (FragmentManagerImpl.DEBUG) Log.v(TAG,
                                    "OP_REPLACE: adding=" + f + " old=" + old);
                            if (old.mContainerId == f.mContainerId) {
                                if (op.removed == null) {
                                    op.removed = new ArrayList<Fragment>();
                                }
                                op.removed.add(old);
                                old.mNextAnim = op.exitAnim;
                                if (mAddToBackStack) {
                                    old.mBackStackNesting++;
                                    old.mBackStackNesting += 1;
                                    if (FragmentManagerImpl.DEBUG) Log.v(TAG, "Bump nesting of "
                                            + old + " to " + old.mBackStackNesting);
                                }
                                old.mNextAnim = op.exitAnim;
                                mManager.removeFragment(old, mTransition, mTransitionStyle);
                            }
                        }
                    }
                    if (mAddToBackStack) {
                        f.mBackStackNesting++;
                    }
                    f.mNextAnim = op.enterAnim;
                    mManager.addFragment(f, false);
                } break;
                case OP_REMOVE: {
                    Fragment f = op.fragment;
                    if (mAddToBackStack) {
                        f.mBackStackNesting++;
                    }
                    f.mNextAnim = op.exitAnim;
                    mManager.removeFragment(f, mTransition, mTransitionStyle);
                } break;
                case OP_HIDE: {
                    Fragment f = op.fragment;
                    if (mAddToBackStack) {
                        f.mBackStackNesting++;
                    }
                    f.mNextAnim = op.exitAnim;
                    mManager.hideFragment(f, mTransition, mTransitionStyle);
                } break;
                case OP_SHOW: {
                    Fragment f = op.fragment;
                    if (mAddToBackStack) {
                        f.mBackStackNesting++;
                    }
                    f.mNextAnim = op.enterAnim;
                    mManager.showFragment(f, mTransition, mTransitionStyle);
                } break;
@@ -399,36 +421,29 @@ final class BackStackEntry implements FragmentTransaction, Runnable {
    }
    
    public void popFromBackStack() {
        if (FragmentManager.DEBUG) Log.v(TAG, "popFromBackStack: " + this);
        if (FragmentManagerImpl.DEBUG) Log.v(TAG, "popFromBackStack: " + this);

        bumpBackStackNesting(-1);
        
        Op op = mTail;
        while (op != null) {
            switch (op.cmd) {
                case OP_ADD: {
                    Fragment f = op.fragment;
                    if (mAddToBackStack) {
                        f.mBackStackNesting--;
                    }
                    f.mImmediateActivity = null;
                    mManager.removeFragment(f,
                            FragmentManager.reverseTransit(mTransition),
                            FragmentManagerImpl.reverseTransit(mTransition),
                            mTransitionStyle);
                } break;
                case OP_REPLACE: {
                    Fragment f = op.fragment;
                    if (mAddToBackStack) {
                        f.mBackStackNesting--;
                    }
                    f.mImmediateActivity = null;
                    mManager.removeFragment(f,
                            FragmentManager.reverseTransit(mTransition),
                            FragmentManagerImpl.reverseTransit(mTransition),
                            mTransitionStyle);
                    if (op.removed != null) {
                        for (int i=0; i<op.removed.size(); i++) {
                            Fragment old = op.removed.get(i);
                            if (mAddToBackStack) {
                                old.mBackStackNesting--;
                            }
                            f.mImmediateActivity = mManager.mActivity;
                            mManager.addFragment(old, false);
                        }
@@ -436,27 +451,18 @@ final class BackStackEntry implements FragmentTransaction, Runnable {
                } break;
                case OP_REMOVE: {
                    Fragment f = op.fragment;
                    if (mAddToBackStack) {
                        f.mBackStackNesting--;
                    }
                    f.mImmediateActivity = mManager.mActivity;
                    mManager.addFragment(f, false);
                } break;
                case OP_HIDE: {
                    Fragment f = op.fragment;
                    if (mAddToBackStack) {
                        f.mBackStackNesting--;
                    }
                    mManager.showFragment(f,
                            FragmentManager.reverseTransit(mTransition), mTransitionStyle);
                            FragmentManagerImpl.reverseTransit(mTransition), mTransitionStyle);
                } break;
                case OP_SHOW: {
                    Fragment f = op.fragment;
                    if (mAddToBackStack) {
                        f.mBackStackNesting--;
                    }
                    mManager.hideFragment(f,
                            FragmentManager.reverseTransit(mTransition), mTransitionStyle);
                            FragmentManagerImpl.reverseTransit(mTransition), mTransitionStyle);
                } break;
                default: {
                    throw new IllegalArgumentException("Unknown cmd: " + op.cmd);
@@ -467,7 +473,7 @@ final class BackStackEntry implements FragmentTransaction, Runnable {
        }
        
        mManager.moveToState(mManager.mCurState,
                FragmentManager.reverseTransit(mTransition), mTransitionStyle, true);
                FragmentManagerImpl.reverseTransit(mTransition), mTransitionStyle, true);
        if (mManager.mNeedMenuInvalidate && mManager.mActivity != null) {
            mManager.mActivity.invalidateOptionsMenu();
            mManager.mNeedMenuInvalidate = false;
+4 −3
Original line number Diff line number Diff line
@@ -84,11 +84,12 @@ public class DialogFragment extends Fragment
    }

    /**
     * Constructor to customize the basic appearance and behavior of the
     * Call to customize the basic appearance and behavior of the
     * fragment's dialog.  This can be used for some common dialog behaviors,
     * taking care of selecting flags, theme, and other options for you.  The
     * same effect can be achieve by manually setting Dialog and Window
     * attributes yourself.
     * attributes yourself.  Calling this after the fragment's Dialog is
     * created will have no effect.
     *
     * @param style Selects a standard style: may be {@link #STYLE_NORMAL},
     * {@link #STYLE_NO_TITLE}, {@link #STYLE_NO_FRAME}, or
@@ -96,7 +97,7 @@ public class DialogFragment extends Fragment
     * @param theme Optional custom theme.  If 0, an appropriate theme (based
     * on the style) will be selected for you.
     */
    public DialogFragment(int style, int theme) {
    public void setStyle(int style, int theme) {
        mStyle = style;
        if (mStyle == STYLE_NO_FRAME || mStyle == STYLE_NO_INPUT) {
            mTheme = android.R.style.Theme_Dialog_NoFrame;
+95 −27

File changed.

Preview size limit exceeded, changes collapsed.

Loading