am 40006309: Merge "Check for home activity when switching focus." into klp-dev

* commit '40006309990c40f5b4b26646b98df222d8d27922':
  Check for home activity when switching focus.
This commit is contained in:
Craig Mautner
2013-10-22 13:04:07 -07:00
committed by Android Git Automerger

View File

@@ -2174,6 +2174,19 @@ final class ActivityStack {
r.addResultLocked(null, resultWho, requestCode, resultCode, data);
}
private void adjustFocusedActivityLocked(ActivityRecord r) {
if (mStackSupervisor.isFrontStack(this) && mService.mFocusedActivity == r) {
ActivityRecord next = topRunningActivityLocked(null);
if (next != r) {
final TaskRecord task = r.task;
if (r.frontOfTask && task == topTask() && task.mOnTopOfHome) {
mStackSupervisor.moveHomeToTop();
}
}
mService.setFocusedActivityLocked(mStackSupervisor.topRunningActivityLocked());
}
}
final void stopActivityLocked(ActivityRecord r) {
if (DEBUG_SWITCH) Slog.d(TAG, "Stopping: " + r);
if ((r.intent.getFlags()&Intent.FLAG_ACTIVITY_NO_HISTORY) != 0
@@ -2193,11 +2206,7 @@ final class ActivityStack {
}
if (r.app != null && r.app.thread != null) {
if (mStackSupervisor.isFrontStack(this)) {
if (mService.mFocusedActivity == r) {
mService.setFocusedActivityLocked(topRunningActivityLocked(null));
}
}
adjustFocusedActivityLocked(r);
r.resumeKeyDispatchingLocked();
try {
r.stopped = false;
@@ -2376,11 +2385,8 @@ final class ActivityStack {
}
r.pauseKeyDispatchingLocked();
if (mStackSupervisor.isFrontStack(this)) {
if (mService.mFocusedActivity == r) {
mService.setFocusedActivityLocked(mStackSupervisor.topRunningActivityLocked());
}
}
adjustFocusedActivityLocked(r);
finishActivityResultsLocked(r, resultCode, resultData);