From 00b7846b1e6c847b12cd3aaa97b3e3b29a48f514 Mon Sep 17 00:00:00 2001 From: George Mount Date: Fri, 22 Jul 2016 15:25:27 -0700 Subject: [PATCH] Check for target SDK version for out-of-order fragment creation. Bug 30230667 Ensure that pre-N applications initialize in the proper order, but allow N and above applications to be created prior to asking for a Transition. Change-Id: I859f22a7c5518e4b496cbd7ee58ef1d3206a5c86 (cherry picked from commit 78d38fc8390b9d648f88687efb333e054146865d) --- core/java/android/app/BackStackRecord.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/java/android/app/BackStackRecord.java b/core/java/android/app/BackStackRecord.java index 1e2cc26620182..a8d332b8378cf 100644 --- a/core/java/android/app/BackStackRecord.java +++ b/core/java/android/app/BackStackRecord.java @@ -17,6 +17,7 @@ package android.app; import android.graphics.Rect; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; @@ -852,7 +853,9 @@ final class BackStackRecord extends FragmentTransaction implements * Ensure that fragments that are entering are at least at the CREATED state * so that they may load Transitions using TransitionInflater. */ - if (fragment.mState < Fragment.CREATED && mManager.mCurState >= Fragment.CREATED) { + if (fragment.mState < Fragment.CREATED && mManager.mCurState >= Fragment.CREATED && + mManager.mHost.getContext().getApplicationInfo().targetSdkVersion >= + Build.VERSION_CODES.N) { mManager.makeActive(fragment); mManager.moveToState(fragment, Fragment.CREATED, 0, 0, false); }