summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2014-09-19 16:30:33 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-09-19 16:30:33 +0000
commit1a780826c2f24b5414c6e0e5b3d9fbc55c0be887 (patch)
tree2033b01877caa45eaa1fccda0054bf09e210b386 /core/java/android
parent74b01d84afad804338f11b1d46feb4e5168fc8b3 (diff)
parent11b751add13b1f6ae1f88af06faa39eeb6395834 (diff)
downloadframeworks_base-1a780826c2f24b5414c6e0e5b3d9fbc55c0be887.zip
frameworks_base-1a780826c2f24b5414c6e0e5b3d9fbc55c0be887.tar.gz
frameworks_base-1a780826c2f24b5414c6e0e5b3d9fbc55c0be887.tar.bz2
am fbb670d9: am 5a988492: am 00877d68: am f187823e: Merge "Fix exception when fragment container has no View." into lmp-dev
* commit 'fbb670d9ddd16c174369cdd4575860dee6ffe8c4': Fix exception when fragment container has no View.
Diffstat (limited to 'core/java/android')
-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 f8b321e..c49012b 100644
--- a/core/java/android/app/Fragment.java
+++ b/core/java/android/app/Fragment.java
@@ -2014,6 +2014,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 b87b022..ccceef4 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();
}
/**