diff options
| author | 2015-04-01 11:50:31 -0700 | |
|---|---|---|
| committer | 2015-04-01 11:54:26 -0700 | |
| commit | 16a6279e5f1dde063707adc852f8de1e14206905 (patch) | |
| tree | f97c34a9dec0c783e3c06a54afde0493b75cab14 | |
| parent | 222ab662051e9836b3623826fcb80ee7b5fa286f (diff) | |
| parent | 2094bf7bfda56dcb9498d209fd961d7fcd63701b (diff) | |
resolved conflicts for merge of 2094bf7b to master
Change-Id: I1820d186ca602bb3cd21a15f3c23f7d6d309d43b
| -rwxr-xr-x | services/core/java/com/android/server/am/ActivityRecord.java | 20 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityStackSupervisor.java | 10 |
2 files changed, 16 insertions, 14 deletions
diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java index 24ce190f250a..c97921f74130 100755 --- a/services/core/java/com/android/server/am/ActivityRecord.java +++ b/services/core/java/com/android/server/am/ActivityRecord.java @@ -1041,24 +1041,22 @@ final class ActivityRecord { } ActivityRecord getWaitingHistoryRecordLocked() { - // First find the real culprit... if we are waiting - // for another app to start, then we have paused dispatching - // for this activity. + // First find the real culprit... if this activity is waiting for + // another activity to start or has stopped, then the key dispatching + // timeout should not be caused by this. ActivityRecord r = this; - if (mStackSupervisor.mWaitingVisibleActivities.contains(this)) { + if (mStackSupervisor.mWaitingVisibleActivities.contains(this) || stopped) { final ActivityStack stack = mStackSupervisor.getFocusedStack(); - // Hmmm, who might we be waiting for? - r = stack.mResumedActivity; + // Try to use the one which is closest to top. + ActivityRecord r = stack.mResumedActivity; if (r == null) { r = stack.mPausingActivity; } - // Both of those null? Fall back to 'this' again - if (r == null) { - r = this; + if (r != null) { + return r; } } - - return r; + return this; } /** diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index c564a6a08b48..07e3492b9780 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -650,17 +650,21 @@ public final class ActivityStackSupervisor implements DisplayListener { } boolean allResumedActivitiesVisible() { + boolean foundResumed = false; for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) { ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks; for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) { final ActivityStack stack = stacks.get(stackNdx); final ActivityRecord r = stack.mResumedActivity; - if (r != null && (!r.nowVisible || mWaitingVisibleActivities.contains(r))) { - return false; + if (r != null) { + if (!r.nowVisible || r.waitingVisible) { + return false; + } + foundResumed = true; } } } - return true; + return foundResumed; } /** |