Merge "Evaluate task on top of home when task is brought to front." into klp-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
dd88879ce1
@@ -572,8 +572,8 @@ final class ActivityRecord {
|
||||
}
|
||||
|
||||
boolean isRootActivity() {
|
||||
ArrayList<ActivityRecord> activities = task.mActivities;
|
||||
return activities.size() == 0 || this == task.mActivities.get(0);
|
||||
final ArrayList<ActivityRecord> activities = task.mActivities;
|
||||
return activities.size() == 0 || this == activities.get(0);
|
||||
}
|
||||
|
||||
UriPermissionOwner getUriPermissionsLocked() {
|
||||
|
||||
@@ -1618,6 +1618,12 @@ final class ActivityStack {
|
||||
}
|
||||
|
||||
private void insertTaskAtTop(TaskRecord task) {
|
||||
// If this is being moved to the top by another activity or being launched from the home
|
||||
// activity, set mOnTopOfHome accordingly.
|
||||
final boolean fromHome = mStackSupervisor.getLastStack().isHomeStack();
|
||||
if (!isHomeStack() && (fromHome || topTask() != task)) {
|
||||
task.mOnTopOfHome = fromHome;
|
||||
}
|
||||
mTaskHistory.remove(task);
|
||||
// Now put task at top.
|
||||
int stackNdx = mTaskHistory.size();
|
||||
|
||||
@@ -292,22 +292,6 @@ public final class ActivityStackSupervisor {
|
||||
return mService.startHomeActivityLocked(mCurrentUser);
|
||||
}
|
||||
|
||||
final void setLaunchHomeTaskNextFlag(ActivityRecord sourceRecord, ActivityRecord r,
|
||||
ActivityStack stack) {
|
||||
if (stack == mHomeStack) {
|
||||
return;
|
||||
}
|
||||
if ((sourceRecord == null && getLastStack() == mHomeStack) ||
|
||||
(sourceRecord != null && sourceRecord.isHomeActivity())) {
|
||||
if (r == null) {
|
||||
r = stack.topRunningActivityLocked(null);
|
||||
}
|
||||
if (r != null && !r.isHomeActivity() && r.isRootActivity()) {
|
||||
r.task.mOnTopOfHome = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void setDismissKeyguard(boolean dismiss) {
|
||||
if (ActivityManagerService.DEBUG_LOCKSCREEN) mService.logLockScreen(" dismiss=" + dismiss);
|
||||
mDismissKeyguardOnNextActivity = dismiss;
|
||||
@@ -1483,7 +1467,6 @@ public final class ActivityStackSupervisor {
|
||||
// is the case, so this is it! And for paranoia, make
|
||||
// sure we have correctly resumed the top activity.
|
||||
if (doResume) {
|
||||
setLaunchHomeTaskNextFlag(sourceRecord, null, targetStack);
|
||||
resumeTopActivitiesLocked(targetStack, null, options);
|
||||
} else {
|
||||
ActivityOptions.abort(options);
|
||||
@@ -1579,9 +1562,6 @@ public final class ActivityStackSupervisor {
|
||||
// don't use that intent!) And for paranoia, make
|
||||
// sure we have correctly resumed the top activity.
|
||||
if (doResume) {
|
||||
// Reset flag so it gets correctly reevaluated.
|
||||
intentActivity.task.mOnTopOfHome = false;
|
||||
setLaunchHomeTaskNextFlag(sourceRecord, intentActivity, targetStack);
|
||||
targetStack.resumeTopActivityLocked(null, options);
|
||||
} else {
|
||||
ActivityOptions.abort(options);
|
||||
@@ -1619,7 +1599,6 @@ public final class ActivityStackSupervisor {
|
||||
// resumed the top activity.
|
||||
topStack.mLastPausedActivity = null;
|
||||
if (doResume) {
|
||||
setLaunchHomeTaskNextFlag(sourceRecord, null, topStack);
|
||||
resumeTopActivitiesLocked();
|
||||
}
|
||||
ActivityOptions.abort(options);
|
||||
@@ -1698,7 +1677,6 @@ public final class ActivityStackSupervisor {
|
||||
// resumed the top activity.
|
||||
targetStack.mLastPausedActivity = null;
|
||||
if (doResume) {
|
||||
setLaunchHomeTaskNextFlag(sourceRecord, null, targetStack);
|
||||
targetStack.resumeTopActivityLocked(null);
|
||||
}
|
||||
ActivityOptions.abort(options);
|
||||
@@ -1721,7 +1699,6 @@ public final class ActivityStackSupervisor {
|
||||
top.deliverNewIntentLocked(callingUid, r.intent);
|
||||
targetStack.mLastPausedActivity = null;
|
||||
if (doResume) {
|
||||
setLaunchHomeTaskNextFlag(sourceRecord, null, targetStack);
|
||||
targetStack.resumeTopActivityLocked(null);
|
||||
}
|
||||
return ActivityManager.START_DELIVERED_TO_TOP;
|
||||
@@ -1755,7 +1732,6 @@ public final class ActivityStackSupervisor {
|
||||
EventLog.writeEvent(EventLogTags.AM_CREATE_TASK, r.userId, r.task.taskId);
|
||||
}
|
||||
ActivityStack.logStartActivity(EventLogTags.AM_CREATE_ACTIVITY, r, r.task);
|
||||
setLaunchHomeTaskNextFlag(sourceRecord, r, targetStack);
|
||||
targetStack.mLastPausedActivity = null;
|
||||
targetStack.startActivityLocked(r, newTask, doResume, keepCurTransition, options);
|
||||
mService.setFocusedActivityLocked(r);
|
||||
|
||||
Reference in New Issue
Block a user