From d04ad541def2bca8fc2d810514ee15ab97893d35 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Mon, 25 Jul 2011 16:16:15 -0700 Subject: Fix issue #5063010: Loaders don't seem to be properly... ...retained with compatibility library Yikes, and also in the main platform...! :( Change-Id: I76ee3a9a5ba4a220c2f54d0af9cf49e3a736e7bd --- core/java/android/app/Activity.java | 4 ++-- core/java/android/app/BackStackRecord.java | 21 ++++++++++++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index aeb16f4756a4..8d03ac70f802 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -1593,10 +1593,10 @@ public class Activity extends ContextThemeWrapper //Log.v(TAG, "invalidateFragmentIndex: index=" + index); if (mAllLoaderManagers != null) { LoaderManagerImpl lm = mAllLoaderManagers.get(index); - if (lm != null) { + if (lm != null && !lm.mRetaining) { lm.doDestroy(); + mAllLoaderManagers.remove(index); } - mAllLoaderManagers.remove(index); } } diff --git a/core/java/android/app/BackStackRecord.java b/core/java/android/app/BackStackRecord.java index e5a7980b0c8c..93330a798901 100644 --- a/core/java/android/app/BackStackRecord.java +++ b/core/java/android/app/BackStackRecord.java @@ -224,6 +224,12 @@ final class BackStackRecord extends FragmentTransaction implements writer.print(" mExitAnim=#"); writer.println(Integer.toHexString(mExitAnim)); } + if (mPopEnterAnim != 0 || mPopExitAnim !=0) { + writer.print(prefix); writer.print("mPopEnterAnim=#"); + writer.print(Integer.toHexString(mPopEnterAnim)); + writer.print(" mPopExitAnim=#"); + writer.println(Integer.toHexString(mPopExitAnim)); + } if (mBreadCrumbTitleRes != 0 || mBreadCrumbTitleText != null) { writer.print(prefix); writer.print("mBreadCrumbTitleRes=#"); writer.print(Integer.toHexString(mBreadCrumbTitleRes)); @@ -248,13 +254,16 @@ final class BackStackRecord extends FragmentTransaction implements writer.print(innerPrefix); writer.print("cmd="); writer.print(op.cmd); writer.print(" fragment="); writer.println(op.fragment); if (op.enterAnim != 0 || op.exitAnim != 0) { - writer.print(prefix); writer.print("enterAnim="); writer.print(op.enterAnim); - writer.print(" exitAnim="); writer.println(op.exitAnim); + writer.print(prefix); writer.print("enterAnim=#"); + writer.print(Integer.toHexString(op.enterAnim)); + writer.print(" exitAnim=#"); + writer.println(Integer.toHexString(op.exitAnim)); } if (op.popEnterAnim != 0 || op.popExitAnim != 0) { - writer.print(prefix); - writer.print("popEnterAnim="); writer.print(op.popEnterAnim); - writer.print(" popExitAnim="); writer.println(op.popExitAnim); + writer.print(prefix); writer.print("popEnterAnim=#"); + writer.print(Integer.toHexString(op.popEnterAnim)); + writer.print(" popExitAnim=#"); + writer.println(Integer.toHexString(op.popExitAnim)); } if (op.removed != null && op.removed.size() > 0) { for (int i=0; i