Loading core/java/android/app/DialogFragment.java +41 −12 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.app; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; Loading Loading @@ -340,8 +341,48 @@ public class DialogFragment extends Fragment mShowsDialog = savedInstanceState.getBoolean(SAVED_SHOWS_DIALOG, mShowsDialog); mBackStackId = savedInstanceState.getInt(SAVED_BACK_STACK_ID, -1); } } /** @hide */ @Override public LayoutInflater getLayoutInflater(Bundle savedInstanceState) { if (!mShowsDialog) { return super.getLayoutInflater(savedInstanceState); } mDialog = onCreateDialog(savedInstanceState); mDestroyed = false; switch (mStyle) { case STYLE_NO_INPUT: mDialog.getWindow().addFlags( WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); // fall through... case STYLE_NO_FRAME: case STYLE_NO_TITLE: mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); } return (LayoutInflater)mDialog.getContext().getSystemService( Context.LAYOUT_INFLATER_SERVICE); } /** * Override to build your own custom Dialog container. This is typically * used to show an AlertDialog instead of a generic Dialog; when doing so, * {@link #onCreateView(LayoutInflater, ViewGroup, Bundle)} does not need * to be implemented since the AlertDialog takes care of its own content. * * <p>This method will be called after {@link #onCreate(Bundle)} and * before {@link #onCreateView(LayoutInflater, ViewGroup, Bundle)}. The * default implementation simply instantiates and returns a {@link Dialog} * class. * * @param savedInstanceState The last saved instance state of the Fragment, * or null if this is a freshly created Fragment. * * @return Return a new Dialog instance to be displayed by the Fragment. */ public Dialog onCreateDialog(Bundle savedInstanceState) { return new Dialog(getActivity(), getTheme()); } Loading @@ -367,18 +408,6 @@ public class DialogFragment extends Fragment return; } mDialog = onCreateDialog(savedInstanceState); mDestroyed = false; switch (mStyle) { case STYLE_NO_INPUT: mDialog.getWindow().addFlags( WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); // fall through... case STYLE_NO_FRAME: case STYLE_NO_TITLE: mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); } View view = getView(); if (view != null) { if (view.getParent() != null) { Loading core/java/android/app/Fragment.java +9 −0 Original line number Diff line number Diff line Loading @@ -849,6 +849,15 @@ public class Fragment implements ComponentCallbacks, OnCreateContextMenuListener public void onActivityResult(int requestCode, int resultCode, Intent data) { } /** * @hide Hack so that DialogFragment can make its Dialog before creating * its views, and the view construction can use the dialog's context for * inflation. Maybe this should become a public API. Note sure. */ public LayoutInflater getLayoutInflater(Bundle savedInstanceState) { return mActivity.getLayoutInflater(); } /** * Called when a fragment is being created as part of a view layout * inflation, typically from setting the content view of an activity. This Loading core/java/android/app/FragmentManager.java +2 −2 Original line number Diff line number Diff line Loading @@ -705,7 +705,7 @@ final class FragmentManagerImpl extends FragmentManager { // For fragments that are part of the content view // layout, we need to instantiate the view immediately // and the inflater will take care of adding it. f.mView = f.onCreateView(mActivity.getLayoutInflater(), f.mView = f.onCreateView(f.getLayoutInflater(f.mSavedFragmentState), null, f.mSavedFragmentState); if (f.mView != null) { f.mView.setSaveFromParentEnabled(false); Loading @@ -727,7 +727,7 @@ final class FragmentManagerImpl extends FragmentManager { } } f.mContainer = container; f.mView = f.onCreateView(mActivity.getLayoutInflater(), f.mView = f.onCreateView(f.getLayoutInflater(f.mSavedFragmentState), container, f.mSavedFragmentState); if (f.mView != null) { f.mView.setSaveFromParentEnabled(false); Loading Loading
core/java/android/app/DialogFragment.java +41 −12 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.app; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; Loading Loading @@ -340,8 +341,48 @@ public class DialogFragment extends Fragment mShowsDialog = savedInstanceState.getBoolean(SAVED_SHOWS_DIALOG, mShowsDialog); mBackStackId = savedInstanceState.getInt(SAVED_BACK_STACK_ID, -1); } } /** @hide */ @Override public LayoutInflater getLayoutInflater(Bundle savedInstanceState) { if (!mShowsDialog) { return super.getLayoutInflater(savedInstanceState); } mDialog = onCreateDialog(savedInstanceState); mDestroyed = false; switch (mStyle) { case STYLE_NO_INPUT: mDialog.getWindow().addFlags( WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); // fall through... case STYLE_NO_FRAME: case STYLE_NO_TITLE: mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); } return (LayoutInflater)mDialog.getContext().getSystemService( Context.LAYOUT_INFLATER_SERVICE); } /** * Override to build your own custom Dialog container. This is typically * used to show an AlertDialog instead of a generic Dialog; when doing so, * {@link #onCreateView(LayoutInflater, ViewGroup, Bundle)} does not need * to be implemented since the AlertDialog takes care of its own content. * * <p>This method will be called after {@link #onCreate(Bundle)} and * before {@link #onCreateView(LayoutInflater, ViewGroup, Bundle)}. The * default implementation simply instantiates and returns a {@link Dialog} * class. * * @param savedInstanceState The last saved instance state of the Fragment, * or null if this is a freshly created Fragment. * * @return Return a new Dialog instance to be displayed by the Fragment. */ public Dialog onCreateDialog(Bundle savedInstanceState) { return new Dialog(getActivity(), getTheme()); } Loading @@ -367,18 +408,6 @@ public class DialogFragment extends Fragment return; } mDialog = onCreateDialog(savedInstanceState); mDestroyed = false; switch (mStyle) { case STYLE_NO_INPUT: mDialog.getWindow().addFlags( WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); // fall through... case STYLE_NO_FRAME: case STYLE_NO_TITLE: mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); } View view = getView(); if (view != null) { if (view.getParent() != null) { Loading
core/java/android/app/Fragment.java +9 −0 Original line number Diff line number Diff line Loading @@ -849,6 +849,15 @@ public class Fragment implements ComponentCallbacks, OnCreateContextMenuListener public void onActivityResult(int requestCode, int resultCode, Intent data) { } /** * @hide Hack so that DialogFragment can make its Dialog before creating * its views, and the view construction can use the dialog's context for * inflation. Maybe this should become a public API. Note sure. */ public LayoutInflater getLayoutInflater(Bundle savedInstanceState) { return mActivity.getLayoutInflater(); } /** * Called when a fragment is being created as part of a view layout * inflation, typically from setting the content view of an activity. This Loading
core/java/android/app/FragmentManager.java +2 −2 Original line number Diff line number Diff line Loading @@ -705,7 +705,7 @@ final class FragmentManagerImpl extends FragmentManager { // For fragments that are part of the content view // layout, we need to instantiate the view immediately // and the inflater will take care of adding it. f.mView = f.onCreateView(mActivity.getLayoutInflater(), f.mView = f.onCreateView(f.getLayoutInflater(f.mSavedFragmentState), null, f.mSavedFragmentState); if (f.mView != null) { f.mView.setSaveFromParentEnabled(false); Loading @@ -727,7 +727,7 @@ final class FragmentManagerImpl extends FragmentManager { } } f.mContainer = container; f.mView = f.onCreateView(mActivity.getLayoutInflater(), f.mView = f.onCreateView(f.getLayoutInflater(f.mSavedFragmentState), container, f.mSavedFragmentState); if (f.mView != null) { f.mView.setSaveFromParentEnabled(false); Loading