Loading services/core/java/com/android/server/am/ActivityStack.java +7 −0 Original line number Diff line number Diff line Loading @@ -659,6 +659,13 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai return topRunningActivityLocked(false /* focusableOnly */); } void getAllRunningVisibleActivitiesLocked(ArrayList<ActivityRecord> outActivities) { outActivities.clear(); for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { mTaskHistory.get(taskNdx).getAllRunningVisibleActivitiesLocked(outActivities); } } private ActivityRecord topRunningActivityLocked(boolean focusableOnly) { for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { ActivityRecord r = mTaskHistory.get(taskNdx).topRunningActivityLocked(); Loading services/core/java/com/android/server/am/ActivityStackSupervisor.java +12 −6 Original line number Diff line number Diff line Loading @@ -457,6 +457,8 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D final ActivityMetricsLogger mActivityMetricsLogger; private final ArrayList<ActivityRecord> mTmpActivityList = new ArrayList<>(); @Override protected int getChildCount() { return mActivityDisplays.size(); Loading Loading @@ -964,17 +966,21 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D if (!isFocusedStack(stack)) { continue; } ActivityRecord hr = stack.topRunningActivityLocked(); if (hr != null) { if (hr.app == null && app.uid == hr.info.applicationInfo.uid && processName.equals(hr.processName)) { stack.getAllRunningVisibleActivitiesLocked(mTmpActivityList); final ActivityRecord top = stack.topRunningActivityLocked(); final int size = mTmpActivityList.size(); for (int i = 0; i < size; i++) { final ActivityRecord activity = mTmpActivityList.get(i); if (activity.app == null && app.uid == activity.info.applicationInfo.uid && processName.equals(activity.processName)) { try { if (realStartActivityLocked(hr, app, true, true)) { if (realStartActivityLocked(activity, app, top == activity /* andResume */, true /* checkConfig */)) { didSomething = true; } } catch (RemoteException e) { Slog.w(TAG, "Exception in new application when starting activity " + hr.intent.getComponent().flattenToShortString(), e); + top.intent.getComponent().flattenToShortString(), e); throw e; } } Loading services/core/java/com/android/server/am/TaskRecord.java +11 −0 Original line number Diff line number Diff line Loading @@ -1160,6 +1160,17 @@ final class TaskRecord extends ConfigurationContainer implements TaskWindowConta return null; } void getAllRunningVisibleActivitiesLocked(ArrayList<ActivityRecord> outActivities) { if (mStack != null) { for (int activityNdx = mActivities.size() - 1; activityNdx >= 0; --activityNdx) { ActivityRecord r = mActivities.get(activityNdx); if (!r.finishing && r.okToShowLocked() && r.visible) { outActivities.add(r); } } } } ActivityRecord topRunningActivityWithStartingWindowLocked() { if (mStack != null) { for (int activityNdx = mActivities.size() - 1; activityNdx >= 0; --activityNdx) { Loading Loading
services/core/java/com/android/server/am/ActivityStack.java +7 −0 Original line number Diff line number Diff line Loading @@ -659,6 +659,13 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai return topRunningActivityLocked(false /* focusableOnly */); } void getAllRunningVisibleActivitiesLocked(ArrayList<ActivityRecord> outActivities) { outActivities.clear(); for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { mTaskHistory.get(taskNdx).getAllRunningVisibleActivitiesLocked(outActivities); } } private ActivityRecord topRunningActivityLocked(boolean focusableOnly) { for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { ActivityRecord r = mTaskHistory.get(taskNdx).topRunningActivityLocked(); Loading
services/core/java/com/android/server/am/ActivityStackSupervisor.java +12 −6 Original line number Diff line number Diff line Loading @@ -457,6 +457,8 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D final ActivityMetricsLogger mActivityMetricsLogger; private final ArrayList<ActivityRecord> mTmpActivityList = new ArrayList<>(); @Override protected int getChildCount() { return mActivityDisplays.size(); Loading Loading @@ -964,17 +966,21 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D if (!isFocusedStack(stack)) { continue; } ActivityRecord hr = stack.topRunningActivityLocked(); if (hr != null) { if (hr.app == null && app.uid == hr.info.applicationInfo.uid && processName.equals(hr.processName)) { stack.getAllRunningVisibleActivitiesLocked(mTmpActivityList); final ActivityRecord top = stack.topRunningActivityLocked(); final int size = mTmpActivityList.size(); for (int i = 0; i < size; i++) { final ActivityRecord activity = mTmpActivityList.get(i); if (activity.app == null && app.uid == activity.info.applicationInfo.uid && processName.equals(activity.processName)) { try { if (realStartActivityLocked(hr, app, true, true)) { if (realStartActivityLocked(activity, app, top == activity /* andResume */, true /* checkConfig */)) { didSomething = true; } } catch (RemoteException e) { Slog.w(TAG, "Exception in new application when starting activity " + hr.intent.getComponent().flattenToShortString(), e); + top.intent.getComponent().flattenToShortString(), e); throw e; } } Loading
services/core/java/com/android/server/am/TaskRecord.java +11 −0 Original line number Diff line number Diff line Loading @@ -1160,6 +1160,17 @@ final class TaskRecord extends ConfigurationContainer implements TaskWindowConta return null; } void getAllRunningVisibleActivitiesLocked(ArrayList<ActivityRecord> outActivities) { if (mStack != null) { for (int activityNdx = mActivities.size() - 1; activityNdx >= 0; --activityNdx) { ActivityRecord r = mActivities.get(activityNdx); if (!r.finishing && r.okToShowLocked() && r.visible) { outActivities.add(r); } } } } ActivityRecord topRunningActivityWithStartingWindowLocked() { if (mStack != null) { for (int activityNdx = mActivities.size() - 1; activityNdx >= 0; --activityNdx) { Loading