summaryrefslogtreecommitdiffstats
path: root/core/java/android/app
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2014-09-19 15:39:44 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-09-19 15:39:45 +0000
commit8f8f5f579fa6448a2ed370c5bd48af35a30f4944 (patch)
treec97ec60a70d23d6df38df742870aad702b64adf8 /core/java/android/app
parenta1e7d53b0ad625202db3ed3c3c03ff3e2bdf4680 (diff)
parent0b26e4d58ab1a60340dd7ab35ca6e3bddff9f760 (diff)
downloadframeworks_base-8f8f5f579fa6448a2ed370c5bd48af35a30f4944.zip
frameworks_base-8f8f5f579fa6448a2ed370c5bd48af35a30f4944.tar.gz
frameworks_base-8f8f5f579fa6448a2ed370c5bd48af35a30f4944.tar.bz2
Merge "Fix exception when fragment container has no View." into lmp-dev
Diffstat (limited to 'core/java/android/app')
-rw-r--r--core/java/android/app/Activity.java5
-rw-r--r--core/java/android/app/BackStackRecord.java6
-rw-r--r--core/java/android/app/Fragment.java5
-rw-r--r--core/java/android/app/FragmentManager.java1
4 files changed, 17 insertions, 0 deletions
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 5f3ed61..25c4897 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -745,6 +745,11 @@ public class Activity extends ContextThemeWrapper
public View findViewById(int id) {
return Activity.this.findViewById(id);
}
+ @Override
+ public boolean hasView() {
+ Window window = Activity.this.getWindow();
+ return (window != null && window.peekDecorView() != null);
+ }
};
// Most recent call to requestVisibleBehind().
diff --git a/core/java/android/app/BackStackRecord.java b/core/java/android/app/BackStackRecord.java
index 832e1e3..8644c3d 100644
--- a/core/java/android/app/BackStackRecord.java
+++ b/core/java/android/app/BackStackRecord.java
@@ -868,6 +868,9 @@ final class BackStackRecord extends FragmentTransaction implements
*/
private void calculateFragments(SparseArray<Fragment> firstOutFragments,
SparseArray<Fragment> lastInFragments) {
+ if (!mManager.mContainer.hasView()) {
+ return; // nothing to see, so no transitions
+ }
Op op = mHead;
while (op != null) {
switch (op.cmd) {
@@ -923,6 +926,9 @@ final class BackStackRecord extends FragmentTransaction implements
*/
public void calculateBackFragments(SparseArray<Fragment> firstOutFragments,
SparseArray<Fragment> lastInFragments) {
+ if (!mManager.mContainer.hasView()) {
+ return; // nothing to see, so no transitions
+ }
Op op = mHead;
while (op != null) {
switch (op.cmd) {
diff --git a/core/java/android/app/Fragment.java b/core/java/android/app/Fragment.java
index a95abab..5196834 100644
--- a/core/java/android/app/Fragment.java
+++ b/core/java/android/app/Fragment.java
@@ -2015,6 +2015,11 @@ public class Fragment implements ComponentCallbacks2, OnCreateContextMenuListene
}
return mView.findViewById(id);
}
+
+ @Override
+ public boolean hasView() {
+ return (mView != null);
+ }
}, this);
}
diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java
index ef69fdd..fc761fe 100644
--- a/core/java/android/app/FragmentManager.java
+++ b/core/java/android/app/FragmentManager.java
@@ -395,6 +395,7 @@ final class FragmentManagerState implements Parcelable {
*/
interface FragmentContainer {
public View findViewById(int id);
+ public boolean hasView();
}
/**