method public void onDestroyOptionsMenu();
method public void onDestroyView();
method public void onDetach();
- method public android.view.LayoutInflater onGetLayoutInflater(android.os.Bundle);
method public void onHiddenChanged(boolean);
method public deprecated void onInflate(android.util.AttributeSet, android.os.Bundle);
method public void onInflate(android.content.Context, android.util.AttributeSet, android.os.Bundle);
method public abstract android.app.FragmentManager.BackStackEntry getBackStackEntryAt(int);
method public abstract int getBackStackEntryCount();
method public abstract android.app.Fragment getFragment(android.os.Bundle, java.lang.String);
- method public abstract java.util.List<android.app.Fragment> getFragments();
method public abstract android.app.Fragment getPrimaryNavigationFragment();
method public void invalidateOptionsMenu();
method public abstract boolean isDestroyed();
method public void onDestroyOptionsMenu();
method public void onDestroyView();
method public void onDetach();
- method public android.view.LayoutInflater onGetLayoutInflater(android.os.Bundle);
method public void onHiddenChanged(boolean);
method public deprecated void onInflate(android.util.AttributeSet, android.os.Bundle);
method public void onInflate(android.content.Context, android.util.AttributeSet, android.os.Bundle);
method public abstract android.app.FragmentManager.BackStackEntry getBackStackEntryAt(int);
method public abstract int getBackStackEntryCount();
method public abstract android.app.Fragment getFragment(android.os.Bundle, java.lang.String);
- method public abstract java.util.List<android.app.Fragment> getFragments();
method public abstract android.app.Fragment getPrimaryNavigationFragment();
method public void invalidateOptionsMenu();
method public abstract boolean isDestroyed();
method public void onDestroyOptionsMenu();
method public void onDestroyView();
method public void onDetach();
- method public android.view.LayoutInflater onGetLayoutInflater(android.os.Bundle);
method public void onHiddenChanged(boolean);
method public deprecated void onInflate(android.util.AttributeSet, android.os.Bundle);
method public void onInflate(android.content.Context, android.util.AttributeSet, android.os.Bundle);
method public abstract android.app.FragmentManager.BackStackEntry getBackStackEntryAt(int);
method public abstract int getBackStackEntryCount();
method public abstract android.app.Fragment getFragment(android.os.Bundle, java.lang.String);
- method public abstract java.util.List<android.app.Fragment> getFragments();
method public abstract android.app.Fragment getPrimaryNavigationFragment();
method public void invalidateOptionsMenu();
method public abstract boolean isDestroyed();
/** @hide */
@Override
- public LayoutInflater onGetLayoutInflater(Bundle savedInstanceState) {
+ public LayoutInflater getLayoutInflater(Bundle savedInstanceState) {
if (!mShowsDialog) {
- return super.onGetLayoutInflater(savedInstanceState);
+ return super.getLayoutInflater(savedInstanceState);
}
mDialog = onCreateDialog(savedInstanceState);
import android.os.Build;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
+import android.os.Handler;
import android.os.Looper;
import android.os.Parcel;
import android.os.Parcelable;
}
/**
- * Returns the LayoutInflater used to inflate Views of this Fragment. The default
- * implementation will throw an exception if the Fragment is not attached.
- *
- * @return The LayoutInflater used to inflate Views of this Fragment.
+ * @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 onGetLayoutInflater(Bundle savedInstanceState) {
- if (mHost == null) {
- throw new IllegalStateException("onGetLayoutInflater() cannot be executed until the "
- + "Fragment is attached to the FragmentManager.");
- }
+ public LayoutInflater getLayoutInflater(Bundle savedInstanceState) {
final LayoutInflater result = mHost.onGetLayoutInflater();
if (mHost.onUseFragmentManagerInflaterFactory()) {
getChildFragmentManager(); // Init if needed; use raw implementation below.
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
public abstract Fragment getFragment(Bundle bundle, String key);
/**
- * Get a list of all fragments that are currently added to the FragmentManager.
- * This may include those that are hidden as well as those that are shown.
- * This will not include any fragments only in the back stack, or fragments that
- * are detached or removed.
- *
- * @return A list of all fragments that are added to the FragmentManager.
- */
- public abstract List<Fragment> getFragments();
-
- /**
* Save the current instance state of the given Fragment. This can be
* used later when creating a new instance of the Fragment and adding
* it to the fragment manager, to have it create itself to match the
}
@Override
- public List<Fragment> getFragments() {
- if (mAdded == null) {
- return Collections.EMPTY_LIST;
- }
- synchronized (mAdded) {
- return (List<Fragment>) mAdded.clone();
- }
- }
-
- @Override
public Fragment.SavedState saveFragmentInstanceState(Fragment fragment) {
if (fragment.mIndex < 0) {
throwException(new IllegalStateException("Fragment " + fragment
}
}
f.mContainer = container;
- f.mView = f.performCreateView(f.onGetLayoutInflater(
+ f.mView = f.performCreateView(f.getLayoutInflater(
f.mSavedFragmentState), container, f.mSavedFragmentState);
if (f.mView != null) {
f.mView.setSaveFromParentEnabled(false);
void ensureInflatedFragmentView(Fragment f) {
if (f.mFromLayout && !f.mPerformedCreateView) {
- f.mView = f.performCreateView(f.onGetLayoutInflater(
+ f.mView = f.performCreateView(f.getLayoutInflater(
f.mSavedFragmentState), null, f.mSavedFragmentState);
if (f.mView != null) {
f.mView.setSaveFromParentEnabled(false);
if (mAdded.contains(fragment)) {
throw new IllegalStateException("Fragment already added: " + fragment);
}
- synchronized (mAdded) {
- mAdded.add(fragment);
- }
+ mAdded.add(fragment);
fragment.mAdded = true;
fragment.mRemoving = false;
if (fragment.mView == null) {
}
}
if (mAdded != null) {
- synchronized (mAdded) {
- mAdded.remove(fragment);
- }
+ mAdded.remove(fragment);
}
if (fragment.mHasMenu && fragment.mMenuVisible) {
mNeedMenuInvalidate = true;
// We are not already in back stack, so need to remove the fragment.
if (mAdded != null) {
if (DEBUG) Log.v(TAG, "remove from detach: " + fragment);
- synchronized (mAdded) {
- mAdded.remove(fragment);
- }
+ mAdded.remove(fragment);
}
if (fragment.mHasMenu && fragment.mMenuVisible) {
mNeedMenuInvalidate = true;
throw new IllegalStateException("Fragment already added: " + fragment);
}
if (DEBUG) Log.v(TAG, "add from attach: " + fragment);
- synchronized (mAdded) {
- mAdded.add(fragment);
- }
+ mAdded.add(fragment);
fragment.mAdded = true;
if (fragment.mHasMenu && fragment.mMenuVisible) {
mNeedMenuInvalidate = true;
if (mAdded.contains(f)) {
throw new IllegalStateException("Already added!");
}
- synchronized (mAdded) {
- mAdded.add(f);
- }
+ mAdded.add(f);
}
} else {
mAdded = null;