diff options
author | Todd Kennedy <toddke@google.com> | 2015-09-23 17:56:52 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-09-23 17:56:52 +0000 |
commit | 739bb7c694aee521995100c456cf1c8341820bec (patch) | |
tree | c9ca0b4edfb580b8a71f326bbbcc72439fa965aa /core | |
parent | 4b7b81178482029f7f58d64cea8620574294ce78 (diff) | |
parent | e16fb554dd49db118327ece0d9aac8eb788c7c54 (diff) | |
download | frameworks_base-739bb7c694aee521995100c456cf1c8341820bec.zip frameworks_base-739bb7c694aee521995100c456cf1c8341820bec.tar.gz frameworks_base-739bb7c694aee521995100c456cf1c8341820bec.tar.bz2 |
Merge "save "retain loader" state" into mnc-dr-dev
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/app/Fragment.java | 5 | ||||
-rw-r--r-- | core/java/android/app/FragmentController.java | 1 | ||||
-rw-r--r-- | core/java/android/app/FragmentManager.java | 11 |
3 files changed, 16 insertions, 1 deletions
diff --git a/core/java/android/app/Fragment.java b/core/java/android/app/Fragment.java index 82206ea..d50483e 100644 --- a/core/java/android/app/Fragment.java +++ b/core/java/android/app/Fragment.java @@ -460,6 +460,9 @@ public class Fragment implements ComponentCallbacks2, OnCreateContextMenuListene // If set this fragment is being retained across the current config change. boolean mRetaining; + // If set this fragment's loaders are being retained across the current config change. + boolean mRetainLoader; + // If set this fragment has menu items to contribute. boolean mHasMenu; @@ -2401,7 +2404,7 @@ public class Fragment implements ComponentCallbacks2, OnCreateContextMenuListene mLoaderManager = mHost.getLoaderManager(mWho, mLoadersStarted, false); } if (mLoaderManager != null) { - if (mRetaining) { + if (mRetainLoader) { mLoaderManager.doRetain(); } else { mLoaderManager.doStop(); diff --git a/core/java/android/app/FragmentController.java b/core/java/android/app/FragmentController.java index 28dadfa..1b45137 100644 --- a/core/java/android/app/FragmentController.java +++ b/core/java/android/app/FragmentController.java @@ -341,6 +341,7 @@ public class FragmentController { */ public void doLoaderStop(boolean retain) { mHost.doLoaderStop(retain); + mHost.mFragmentManager.setRetainLoader(retain); } /** diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java index 132ffef..51d6132 100644 --- a/core/java/android/app/FragmentManager.java +++ b/core/java/android/app/FragmentManager.java @@ -869,6 +869,17 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate } } + void setRetainLoader(boolean retain) { + if (mActive != null) { + for (int i=0; i<mActive.size(); i++) { + Fragment f = mActive.get(i); + if (f != null) { + f.mRetainLoader = retain; + } + } + } + } + void moveToState(Fragment f, int newState, int transit, int transitionStyle, boolean keepActive) { if (DEBUG && false) Log.v(TAG, "moveToState: " + f |