am 2e22cec8: am 3266f60b: Merge "Call Activity#onAttachFragment()" into mnc-dev

* commit '2e22cec888ae7de0abf78d0c3f14b8d79d34b82f':
  Call Activity#onAttachFragment()
This commit is contained in:
Todd Kennedy
2015-05-05 19:06:28 +00:00
committed by Android Git Automerger
6 changed files with 25 additions and 13 deletions

View File

@@ -4495,6 +4495,7 @@ package android.app {
public abstract class FragmentHostCallback extends android.app.FragmentContainer {
ctor public FragmentHostCallback(android.content.Context, android.os.Handler, int);
method public void onAttachFragment(android.app.Fragment);
method public void onDump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
method public android.view.View onFindViewById(int);
method public abstract E onGetHost();

View File

@@ -4587,6 +4587,7 @@ package android.app {
public abstract class FragmentHostCallback extends android.app.FragmentContainer {
ctor public FragmentHostCallback(android.content.Context, android.os.Handler, int);
method public void onAttachFragment(android.app.Fragment);
method public void onDump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
method public android.view.View onFindViewById(int);
method public abstract E onGetHost();

View File

@@ -6498,6 +6498,11 @@ public class Activity extends ContextThemeWrapper
return (w == null) ? 0 : w.getAttributes().windowAnimations;
}
@Override
public void onAttachFragment(Fragment fragment) {
Activity.this.onAttachFragment(fragment);
}
@Nullable
@Override
public View onFindViewById(int id) {

View File

@@ -1314,6 +1314,12 @@ public class Fragment implements ComponentCallbacks2, OnCreateContextMenuListene
com.android.internal.R.styleable.Fragment_fragmentAllowReturnTransitionOverlap, true);
}
a.recycle();
final Activity hostActivity = mHost == null ? null : mHost.getActivity();
if (hostActivity != null) {
mCalled = false;
onInflate(hostActivity, attrs, savedInstanceState);
}
}
/**

View File

@@ -23,7 +23,6 @@ import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.ArrayMap;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
@@ -140,6 +139,14 @@ public abstract class FragmentHostCallback<E> extends FragmentContainer {
return mWindowAnimations;
}
/**
* Called when a {@link Fragment} is being attached to this host, immediately
* after the call to its {@link Fragment#onAttach(Context)} method and before
* {@link Fragment#onCreate(Bundle)}.
*/
public void onAttachFragment(Fragment fragment) {
}
@Nullable
@Override
public View onFindViewById(int id) {
@@ -187,14 +194,6 @@ public abstract class FragmentHostCallback<E> extends FragmentContainer {
}
}
void onFragmentInflate(Fragment fragment, AttributeSet attrs, Bundle savedInstanceState) {
fragment.onInflate(mContext, attrs, savedInstanceState);
}
void onFragmentAttach(Fragment fragment) {
fragment.onAttach(mContext);
}
void doLoaderStart() {
if (mLoadersStarted) {
return;

View File

@@ -844,13 +844,13 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate
f.mFragmentManager = mParent != null
? mParent.mChildFragmentManager : mHost.getFragmentManagerImpl();
f.mCalled = false;
mHost.onFragmentAttach(f);
f.onAttach(mHost.getContext());
if (!f.mCalled) {
throw new SuperNotCalledException("Fragment " + f
+ " did not call through to super.onAttach()");
}
if (f.mParentFragment == null) {
mHost.onFragmentAttach(f);
mHost.onAttachFragment(f);
}
if (!f.mRetaining) {
@@ -2107,7 +2107,7 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate
fragment.mTag = tag;
fragment.mInLayout = true;
fragment.mFragmentManager = this;
mHost.onFragmentInflate(fragment, attrs, fragment.mSavedFragmentState);
fragment.onInflate(mHost.getContext(), attrs, fragment.mSavedFragmentState);
addFragment(fragment, true);
} else if (fragment.mInLayout) {
// A fragment already exists and it is not one we restored from
@@ -2124,7 +2124,7 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate
// from last saved state), then give it the attributes to
// initialize itself.
if (!fragment.mRetaining) {
mHost.onFragmentInflate(fragment, attrs, fragment.mSavedFragmentState);
fragment.onInflate(mHost.getContext(), attrs, fragment.mSavedFragmentState);
}
}