diff options
| author | 2019-10-11 11:26:30 +0200 | |
|---|---|---|
| committer | 2019-10-11 15:19:47 +0200 | |
| commit | 1a06f153563cdb03559821bd0f9771427a7c1570 (patch) | |
| tree | d5173918e27823e28cc77968fa76e485103db777 | |
| parent | 0fd72921187fb93ebd6c582ee67f4c0595b5187e (diff) | |
Get TaskRecord children with getChildAt & co. APIs (54/n)
Helps reduce work with Task level unification.
Bug: 80414790
Test: Existing tests pass
Change-Id: I5e019c7d1f3ed50c4efd628b68fee6990841904d
11 files changed, 157 insertions, 165 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityDisplay.java b/services/core/java/com/android/server/wm/ActivityDisplay.java index 9d9a37c13bdd..673366f34fc2 100644 --- a/services/core/java/com/android/server/wm/ActivityDisplay.java +++ b/services/core/java/com/android/server/wm/ActivityDisplay.java @@ -1430,9 +1430,8 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack> { continue; } - final ArrayList<ActivityRecord> activities = task.mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - final ActivityRecord r = activities.get(activityNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); if (r.isActivityTypeHome() && ((userId == UserHandle.USER_ALL) || (r.mUserId == userId))) { return r; diff --git a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java index a0a296792680..ef8c02004116 100644 --- a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java +++ b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java @@ -527,8 +527,8 @@ class ActivityMetricsLogger { } private boolean hasVisibleNonFinishingActivity(TaskRecord t) { - for (int i = t.mActivities.size() - 1; i >= 0; --i) { - final ActivityRecord r = t.mActivities.get(i); + for (int i = t.getChildCount() - 1; i >= 0; --i) { + final ActivityRecord r = t.getChildAt(i); if (r.visible && !r.finishing) { return true; } diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 4f52d9df817a..74762494e61d 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -1577,12 +1577,12 @@ final class ActivityRecord extends AppWindowToken { task.mTaskId, shortComponentName, reason); final ArrayList<ActivityRecord> activities = task.mActivities; final int index = activities.indexOf(this); - if (index < (activities.size() - 1)) { + if (index < (task.getChildCount() - 1)) { if ((intent.getFlags() & Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET) != 0) { // If the caller asked that this activity (and all above it) // be cleared when the task is reset, don't lose that information, // but propagate it up to the next activity. - final ActivityRecord next = activities.get(index + 1); + final ActivityRecord next = task.getChildAt(index + 1); next.intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); } } @@ -2788,12 +2788,12 @@ final class ActivityRecord extends AppWindowToken { if (positionInTask == -1) { throw new IllegalStateException("Activity not found in its task"); } - if (positionInTask == task.mActivities.size() - 1) { + if (positionInTask == task.getChildCount() - 1) { // It's the topmost activity in the task - should become resumed now return true; } // Check if activity above is finishing now and this one becomes the topmost in task. - final ActivityRecord activityAbove = task.mActivities.get(positionInTask + 1); + final ActivityRecord activityAbove = task.getChildAt(positionInTask + 1); if (activityAbove.finishing && results == null) { // We will only allow making active if activity above wasn't launched for result. // Otherwise it will cause this activity to resume before getting result. @@ -2848,7 +2848,7 @@ final class ActivityRecord extends AppWindowToken { stopped = false; if (isActivityTypeHome()) { - mStackSupervisor.updateHomeProcess(task.mActivities.get(0).app); + mStackSupervisor.updateHomeProcess(task.getChildAt(0).app); } if (nowVisible) { diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java index 595925442053..11c1e36ce5ce 100644 --- a/services/core/java/com/android/server/wm/ActivityStack.java +++ b/services/core/java/com/android/server/wm/ActivityStack.java @@ -488,7 +488,7 @@ class ActivityStack extends ConfigurationContainer { int numActivities() { int count = 0; for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { - count += mTaskHistory.get(taskNdx).mActivities.size(); + count += mTaskHistory.get(taskNdx).getChildCount(); } return count; } @@ -1077,9 +1077,8 @@ class ActivityStack extends ConfigurationContainer { ActivityRecord topRunningNonOverlayTaskActivity() { for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { final TaskRecord task = mTaskHistory.get(taskNdx); - final ArrayList<ActivityRecord> activities = task.mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - final ActivityRecord r = activities.get(activityNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); if (!r.finishing && !r.mTaskOverlay) { return r; } @@ -1091,9 +1090,8 @@ class ActivityStack extends ConfigurationContainer { ActivityRecord topRunningNonDelayedActivityLocked(ActivityRecord notTop) { for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { final TaskRecord task = mTaskHistory.get(taskNdx); - final ArrayList<ActivityRecord> activities = task.mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - ActivityRecord r = activities.get(activityNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); if (!r.finishing && !r.delayedResume && r != notTop && r.okToShowLocked()) { return r; } @@ -1117,9 +1115,8 @@ class ActivityStack extends ConfigurationContainer { if (task.mTaskId == taskId) { continue; } - ArrayList<ActivityRecord> activities = task.mActivities; - for (int i = activities.size() - 1; i >= 0; --i) { - final ActivityRecord r = activities.get(i); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); // Note: the taskId check depends on real taskId fields being non-zero if (!r.finishing && (token != r.appToken) && r.okToShowLocked()) { return r; @@ -1431,10 +1428,8 @@ class ActivityStack extends ConfigurationContainer { for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { final TaskRecord task = mTaskHistory.get(taskNdx); - final ArrayList<ActivityRecord> activities = task.mActivities; - - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - ActivityRecord r = activities.get(activityNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); if (!r.okToShowLocked()) { continue; } @@ -1500,9 +1495,10 @@ class ActivityStack extends ConfigurationContainer { void awakeFromSleepingLocked() { // Ensure activities are no longer sleeping. for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { - final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - activities.get(activityNdx).setSleeping(false); + final TaskRecord task = mTaskHistory.get(taskNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); + r.setSleeping(false); } } if (mPausingActivity != null) { @@ -1516,9 +1512,9 @@ class ActivityStack extends ConfigurationContainer { final int userId = UserHandle.getUserId(aInfo.uid); for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { - final List<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - final ActivityRecord ar = activities.get(activityNdx); + final TaskRecord task = mTaskHistory.get(taskNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord ar = task.getChildAt(activityNdx); if ((userId == ar.mUserId) && packageName.equals(ar.packageName)) { ar.updateApplicationInfo(aInfo); @@ -1594,9 +1590,9 @@ class ActivityStack extends ConfigurationContainer { // Make sure any paused or stopped but visible activities are now sleeping. // This ensures that the activity's onStop() is called. for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { - final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - final ActivityRecord r = activities.get(activityNdx); + final TaskRecord task = mTaskHistory.get(taskNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); if (r.isState(STARTED, STOPPING, STOPPED, PAUSED, PAUSING)) { r.setSleeping(true); } @@ -1880,9 +1876,8 @@ class ActivityStack extends ConfigurationContainer { } for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { final TaskRecord task = mTaskHistory.get(taskNdx); - final ArrayList<ActivityRecord> activities = task.mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - final ActivityRecord r = activities.get(activityNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); if (r.finishing) { // We don't factor in finishing activities when determining translucency since @@ -2113,9 +2108,8 @@ class ActivityStack extends ConfigurationContainer { && top != null && !top.mLaunchTaskBehind; for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { final TaskRecord task = mTaskHistory.get(taskNdx); - final ArrayList<ActivityRecord> activities = task.mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - final ActivityRecord r = activities.get(activityNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); final boolean isTop = r == top; if (aboveTop && !isTop) { continue; @@ -2363,9 +2357,8 @@ class ActivityStack extends ConfigurationContainer { void clearOtherAppTimeTrackers(AppTimeTracker except) { for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { final TaskRecord task = mTaskHistory.get(taskNdx); - final ArrayList<ActivityRecord> activities = task.mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - final ActivityRecord r = activities.get(activityNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); if ( r.appTimeTracker != except) { r.appTimeTracker = null; } @@ -2423,9 +2416,9 @@ class ActivityStack extends ConfigurationContainer { } for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { - final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - final ActivityRecord r = activities.get(activityNdx); + final TaskRecord task = mTaskHistory.get(taskNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); if (aboveTop) { if (r == topActivity) { aboveTop = false; @@ -3210,14 +3203,13 @@ class ActivityStack extends ConfigurationContainer { // We only do this for activities that are not the root of the task (since if we finish // the root, we may no longer have the task!). - final ArrayList<ActivityRecord> activities = task.mActivities; - final int numActivities = activities.size(); + final int numActivities = task.getChildCount(); int lastActivityNdx = task.findRootIndex(true /* effectiveRoot */); if (lastActivityNdx == -1) { lastActivityNdx = 0; } for (int i = numActivities - 1; i > lastActivityNdx; --i) { - ActivityRecord target = activities.get(i); + ActivityRecord target = task.getChildAt(i); // TODO: Why is this needed? Looks like we're breaking the loop before we reach the root if (target.isRootOfTask()) break; @@ -3257,7 +3249,7 @@ class ActivityStack extends ConfigurationContainer { final TaskRecord targetTask; final ActivityRecord bottom = !mTaskHistory.isEmpty() && !mTaskHistory.get(0).mActivities.isEmpty() ? - mTaskHistory.get(0).mActivities.get(0) : null; + mTaskHistory.get(0).getChildAt(0) : null; if (bottom != null && target.taskAffinity.equals(bottom.getTaskRecord().affinity)) { // If the activity currently at the bottom has the // same task affinity as the one we are moving, @@ -3279,7 +3271,7 @@ class ActivityStack extends ConfigurationContainer { boolean noOptions = canMoveOptions; final int start = replyChainEnd < 0 ? i : replyChainEnd; for (int srcPos = start; srcPos >= i; --srcPos) { - final ActivityRecord p = activities.get(srcPos); + final ActivityRecord p = task.getChildAt(srcPos); if (p.finishing) { continue; } @@ -3312,7 +3304,7 @@ class ActivityStack extends ConfigurationContainer { // In this case, we want to finish this activity // and everything above it, so be sneaky and pretend // like these are all in the reply chain. - end = activities.size() - 1; + end = task.getChildCount() - 1; } else if (replyChainEnd < 0) { end = i; } else { @@ -3320,7 +3312,7 @@ class ActivityStack extends ConfigurationContainer { } boolean noOptions = canMoveOptions; for (int srcPos = i; srcPos <= end; srcPos++) { - ActivityRecord p = activities.get(srcPos); + ActivityRecord p = task.getChildAt(srcPos); if (p.finishing) { continue; } @@ -3389,8 +3381,7 @@ class ActivityStack extends ConfigurationContainer { int replyChainEnd = -1; final String taskAffinity = task.affinity; - final ArrayList<ActivityRecord> activities = affinityTask.mActivities; - final int numActivities = activities.size(); + final int numActivities = task.getChildCount(); // Do not operate on or below the effective root Activity. int lastActivityNdx = affinityTask.findRootIndex(true /* effectiveRoot */); @@ -3398,7 +3389,7 @@ class ActivityStack extends ConfigurationContainer { lastActivityNdx = 0; } for (int i = numActivities - 1; i > lastActivityNdx; --i) { - ActivityRecord target = activities.get(i); + ActivityRecord target = task.getChildAt(i); // TODO: Why is this needed? Looks like we're breaking the loop before we reach the root if (target.isRootOfTask()) break; @@ -3435,7 +3426,7 @@ class ActivityStack extends ConfigurationContainer { if (DEBUG_TASKS) Slog.v(TAG_TASKS, "Finishing task at index " + start + " to " + i); for (int srcPos = start; srcPos >= i; --srcPos) { - final ActivityRecord p = activities.get(srcPos); + final ActivityRecord p = task.getChildAt(srcPos); if (p.finishing) { continue; } @@ -3443,7 +3434,7 @@ class ActivityStack extends ConfigurationContainer { } } else { if (taskInsertionPoint < 0) { - taskInsertionPoint = task.mActivities.size(); + taskInsertionPoint = task.getChildCount(); } @@ -3452,7 +3443,7 @@ class ActivityStack extends ConfigurationContainer { "Reparenting from task=" + affinityTask + ":" + start + "-" + i + " to task=" + task + ":" + taskInsertionPoint); for (int srcPos = start; srcPos >= i; --srcPos) { - final ActivityRecord p = activities.get(srcPos); + final ActivityRecord p = task.getChildAt(srcPos); p.reparent(task, taskInsertionPoint, "resetAffinityTaskIfNeededLocked"); if (DEBUG_ADD_REMOVE) Slog.i(TAG_ADD_REMOVE, @@ -3589,9 +3580,9 @@ class ActivityStack extends ConfigurationContainer { /** Finish all activities that were started for result from the specified activity. */ final void finishSubActivityLocked(ActivityRecord self, String resultWho, int requestCode) { for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { - ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - ActivityRecord r = activities.get(activityNdx); + final TaskRecord task = mTaskHistory.get(taskNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); if (r.resultTo == self && r.requestCode == requestCode) { if ((r.resultWho == null && resultWho == null) || (r.resultWho != null && r.resultWho.equals(resultWho))) { @@ -3637,11 +3628,11 @@ class ActivityStack extends ConfigurationContainer { if (taskNdx < 0) { break; } - activityNdx = mTaskHistory.get(taskNdx).mActivities.size() - 1; + activityNdx = mTaskHistory.get(taskNdx).getChildCount() - 1; } while (activityNdx < 0); } if (activityNdx >= 0) { - r = mTaskHistory.get(taskNdx).mActivities.get(activityNdx); + r = mTaskHistory.get(taskNdx).getChildAt(activityNdx); if (r.isState(STARTED, RESUMED, PAUSING, PAUSED)) { if (!r.isActivityTypeHome() || mService.mHomeProcess != r.app) { Slog.w(TAG, " Force finishing activity " @@ -3659,8 +3650,8 @@ class ActivityStack extends ConfigurationContainer { for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { TaskRecord tr = mTaskHistory.get(taskNdx); if (tr.voiceSession != null && tr.voiceSession.asBinder() == sessionBinder) { - for (int activityNdx = tr.mActivities.size() - 1; activityNdx >= 0; --activityNdx) { - ActivityRecord r = tr.mActivities.get(activityNdx); + for (int activityNdx = tr.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + ActivityRecord r = tr.getChildAt(activityNdx); if (!r.finishing) { r.finishIfPossible("finish-voice", false /* oomAdj */); didOne = true; @@ -3668,8 +3659,8 @@ class ActivityStack extends ConfigurationContainer { } } else { // Check if any of the activities are using voice - for (int activityNdx = tr.mActivities.size() - 1; activityNdx >= 0; --activityNdx) { - ActivityRecord r = tr.mActivities.get(activityNdx); + for (int activityNdx = tr.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + ActivityRecord r = tr.getChildAt(activityNdx); if (r.voiceSession != null && r.voiceSession.asBinder() == sessionBinder) { // Inform of cancellation r.clearVoiceSessionLocked(); @@ -3695,9 +3686,9 @@ class ActivityStack extends ConfigurationContainer { void finishAllActivitiesImmediately() { boolean noActivitiesInStack = true; for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { - final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - final ActivityRecord r = activities.get(activityNdx); + final TaskRecord task = mTaskHistory.get(taskNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); noActivitiesInStack = false; Slog.d(TAG, "finishAllActivitiesImmediatelyLocked: finishing " + r); r.destroyIfPossible("finishAllActivitiesImmediatelyLocked"); @@ -3765,12 +3756,12 @@ class ActivityStack extends ConfigurationContainer { return false; } int finishTo = start - 1; - ActivityRecord parent = finishTo < 0 ? null : activities.get(finishTo); + ActivityRecord parent = finishTo < 0 ? null : task.getChildAt(finishTo); boolean foundParentInTask = false; final ComponentName dest = destIntent.getComponent(); if (start > 0 && dest != null) { for (int i = finishTo; i >= 0; i--) { - ActivityRecord r = activities.get(i); + ActivityRecord r = task.getChildAt(i); if (r.info.packageName.equals(dest.getPackageName()) && r.info.name.equals(dest.getClassName())) { finishTo = i; @@ -3931,9 +3922,9 @@ class ActivityStack extends ConfigurationContainer { boolean lastIsOpaque = false; boolean activityRemoved = false; for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { - final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - final ActivityRecord r = activities.get(activityNdx); + final TaskRecord task = mTaskHistory.get(taskNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); if (r.finishing) { continue; } @@ -3978,15 +3969,14 @@ class ActivityStack extends ConfigurationContainer { } if (DEBUG_RELEASE) Slog.d(TAG_RELEASE, "Looking for activities to release in " + task); int curNum = 0; - final ArrayList<ActivityRecord> activities = task.mActivities; - for (int actNdx = 0; actNdx < activities.size(); actNdx++) { - final ActivityRecord activity = activities.get(actNdx); + for (int actNdx = 0; actNdx < task.getChildCount(); actNdx++) { + final ActivityRecord activity = task.getChildAt(actNdx); if (activity.app == app && activity.isDestroyable()) { if (DEBUG_RELEASE) Slog.v(TAG_RELEASE, "Destroying " + activity + " in state " + activity.getState() + " resumed=" + mResumedActivity + " pausing=" + mPausingActivity + " for reason " + reason); activity.destroyImmediately(true /* removeFromApp */, reason); - if (activities.get(actNdx) != activity) { + if (task.getChildAt(actNdx) != activity) { // Was removed from list, back up so we don't miss the next one. actNdx--; } @@ -4170,8 +4160,8 @@ class ActivityStack extends ConfigurationContainer { if (timeTracker != null) { // The caller wants a time tracker associated with this task. - for (int i = tr.mActivities.size() - 1; i >= 0; i--) { - tr.mActivities.get(i).appTimeTracker = timeTracker; + for (int i = tr.getChildCount() - 1; i >= 0; i--) { + tr.getChildAt(i).appTimeTracker = timeTracker; } } @@ -4425,9 +4415,9 @@ class ActivityStack extends ConfigurationContainer { boolean willActivityBeVisibleLocked(IBinder token) { for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { - final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - final ActivityRecord r = activities.get(activityNdx); + final TaskRecord task = mTaskHistory.get(taskNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); if (r.appToken == token) { return true; } @@ -4447,9 +4437,9 @@ class ActivityStack extends ConfigurationContainer { void closeSystemDialogsLocked() { for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { - final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - final ActivityRecord r = activities.get(activityNdx); + final TaskRecord task = mTaskHistory.get(taskNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); if ((r.info.flags&ActivityInfo.FLAG_FINISH_ON_CLOSE_SYSTEM_DIALOGS) != 0) { r.finishIfPossible("close-sys", true /* oomAdj */); } @@ -4556,10 +4546,10 @@ class ActivityStack extends ConfigurationContainer { final int top = mTaskHistory.size() - 1; if (DEBUG_SWITCH) Slog.d(TAG_SWITCH, "Performing unhandledBack(): top activity at " + top); if (top >= 0) { - final ArrayList<ActivityRecord> activities = mTaskHistory.get(top).mActivities; - int activityTop = activities.size() - 1; + final TaskRecord task = mTaskHistory.get(top); + int activityTop = task.getChildCount() - 1; if (activityTop >= 0) { - activities.get(activityTop).finishIfPossible("unhandled-back", true /* oomAdj */); + task.getChildAt(activityTop).finishIfPossible("unhandled-back", true /* oomAdj */); } } } @@ -4585,9 +4575,9 @@ class ActivityStack extends ConfigurationContainer { void handleAppCrash(WindowProcessController app) { for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { - final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - final ActivityRecord r = activities.get(activityNdx); + final TaskRecord task = mTaskHistory.get(taskNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); if (r.app == app) { Slog.w(TAG, " Force finishing activity " + r.intent.getComponent().flattenToShortString()); @@ -4705,9 +4695,9 @@ class ActivityStack extends ConfigurationContainer { // All activities that came from the package must be // restarted as if there was a config change. for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { - final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - final ActivityRecord a = activities.get(activityNdx); + final TaskRecord task = mTaskHistory.get(taskNdx); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord a = task.getChildAt(activityNdx); if (a.info.packageName.equals(packageName)) { a.forceNewConfig = true; if (starting != null && a == starting && a.visible) { diff --git a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java index f1284d81bfbf..a262f160fee2 100644 --- a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java @@ -824,7 +824,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { System.identityHashCode(r), task.mTaskId, r.shortComponentName); if (r.isActivityTypeHome()) { // Home process is the root process of the task. - updateHomeProcess(task.mActivities.get(0).app); + updateHomeProcess(task.getChildAt(0).app); } mService.getPackageManagerInternalLocked().notifyPackageUse( r.intent.getComponent().getPackageName(), NOTIFY_PACKAGE_USE_ACTIVITY); @@ -1899,9 +1899,9 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { task.createTask(onTop, true /* showForAllUsers */); if (DEBUG_RECENTS) Slog.v(TAG_RECENTS, "Added restored task=" + task + " to stack=" + stack); - final ArrayList<ActivityRecord> activities = task.mActivities; - for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { - activities.get(activityNdx).setTask(task); + for (int activityNdx = task.getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = task.getChildAt(activityNdx); + r.setTask(task); } return true; } @@ -2501,8 +2501,8 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { return; } - for (int i = task.mActivities.size() - 1; i >= 0; i--) { - final ActivityRecord r = task.mActivities.get(i); + for (int i = task.getChildCount() - 1; i >= 0; i--) { + final ActivityRecord r = task.getChildAt(i); if (r.attachedToProcess()) { mMultiWindowModeChangedActivities.add(r); } @@ -2524,8 +2524,8 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { } void scheduleUpdatePictureInPictureModeIfNeeded(TaskRecord task, Rect targetStackBounds) { - for (int i = task.mActivities.size() - 1; i >= 0; i--) { - final ActivityRecord r = task.mActivities.get(i); + for (int i = task.getChildCount() - 1; i >= 0; i--) { + final ActivityRecord r = task.getChildAt(i); if (r.attachedToProcess()) { mPipModeChangedActivities.add(r); // If we are scheduling pip change, then remove this activity from multi-window @@ -2543,8 +2543,8 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { void updatePictureInPictureMode(TaskRecord task, Rect targetStackBounds, boolean forceUpdate) { mHandler.removeMessages(REPORT_PIP_MODE_CHANGED_MSG); - for (int i = task.mActivities.size() - 1; i >= 0; i--) { - final ActivityRecord r = task.mActivities.get(i); + for (int i = task.getChildCount() - 1; i >= 0; i--) { + final ActivityRecord r = task.getChildAt(i); if (r.attachedToProcess()) { r.updatePictureInPictureMode(targetStackBounds, forceUpdate); } diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index 939789307333..b68ba7cc7961 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -2430,7 +2430,7 @@ class ActivityStarter { if (mStartActivity.getTaskRecord() == null || mStartActivity.getTaskRecord() == parent) { parent.addActivityToTop(mStartActivity); } else { - mStartActivity.reparent(parent, parent.mActivities.size() /* top */, reason); + mStartActivity.reparent(parent, parent.getChildCount() /* top */, reason); } } diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index 750fc6832627..44d748d667a9 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -1982,7 +1982,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { final TaskRecord task = r.getTaskRecord(); int index = task.mActivities.lastIndexOf(r); if (index > 0) { - ActivityRecord under = task.mActivities.get(index - 1); + ActivityRecord under = task.getChildAt(index - 1); under.returningOptions = safeOptions != null ? safeOptions.getOptions(r) : null; } return r.setOccludesParent(false); diff --git a/services/core/java/com/android/server/wm/ConfigurationContainer.java b/services/core/java/com/android/server/wm/ConfigurationContainer.java index 8afbbdf303ab..300ee1ddc77d 100644 --- a/services/core/java/com/android/server/wm/ConfigurationContainer.java +++ b/services/core/java/com/android/server/wm/ConfigurationContainer.java @@ -626,6 +626,10 @@ public abstract class ConfigurationContainer<E extends ConfigurationContainer> { return mFullConfiguration.windowConfiguration.isAlwaysOnTop(); } + boolean hasChild() { + return getChildCount() > 0; + } + abstract protected int getChildCount(); abstract protected E getChildAt(int index); diff --git a/services/core/java/com/android/server/wm/RootActivityContainer.java b/services/core/java/com/android/server/wm/RootActivityContainer.java index d78d517fcfc1..60833c38c9c1 100644 --- a/services/core/java/com/android/server/wm/RootActivityContainer.java +++ b/services/core/java/com/android/server/wm/RootActivityContainer.java @@ -983,7 +983,7 @@ class RootActivityContainer extends ConfigurationContainer stack.resize(task.getRequestedOverrideBounds(), null /* tempTaskBounds */, null /* tempTaskInsetBounds */, !PRESERVE_WINDOWS, !DEFER_RESUME); - if (task.mActivities.size() == 1) { + if (task.getChildCount() == 1) { // Defer resume until below, and do not schedule PiP changes until we animate below task.reparent(stack, ON_TOP, REPARENT_MOVE_STACK_TO_FRONT, !ANIMATE, DEFER_RESUME, false /* schedulePictureInPictureModeChange */, reason); diff --git a/services/core/java/com/android/server/wm/TaskRecord.java b/services/core/java/com/android/server/wm/TaskRecord.java index 75333c728e0b..ab661cad865f 100644 --- a/services/core/java/com/android/server/wm/TaskRecord.java +++ b/services/core/java/com/android/server/wm/TaskRecord.java @@ -447,7 +447,7 @@ class TaskRecord extends ConfigurationContainer { } void cleanUpResourcesForDestroy() { - if (!mActivities.isEmpty()) { + if (hasChild()) { return; } @@ -1095,7 +1095,7 @@ class TaskRecord extends ConfigurationContainer { // There are no non-finishing activities in the task. return null; } - return mActivities.get(rootActivityIndex); + return getChildAt(rootActivityIndex); } ActivityRecord getTopActivity() { @@ -1103,8 +1103,8 @@ class TaskRecord extends ConfigurationContainer { } ActivityRecord getTopActivity(boolean includeOverlays) { - for (int i = mActivities.size() - 1; i >= 0; --i) { - final ActivityRecord r = mActivities.get(i); + for (int i = getChildCount() - 1; i >= 0; --i) { + final ActivityRecord r = getChildAt(i); if (r.finishing || (!includeOverlays && r.mTaskOverlay)) { continue; } @@ -1115,8 +1115,8 @@ class TaskRecord extends ConfigurationContainer { ActivityRecord topRunningActivityLocked() { if (mStack != null) { - for (int activityNdx = mActivities.size() - 1; activityNdx >= 0; --activityNdx) { - ActivityRecord r = mActivities.get(activityNdx); + for (int activityNdx = getChildCount() - 1; activityNdx >= 0; --activityNdx) { + ActivityRecord r = getChildAt(activityNdx); if (!r.finishing && r.okToShowLocked()) { return r; } @@ -1126,8 +1126,8 @@ class TaskRecord extends ConfigurationContainer { } boolean isVisible() { - for (int i = mActivities.size() - 1; i >= 0; --i) { - final ActivityRecord r = mActivities.get(i); + for (int i = getChildCount() - 1; i >= 0; --i) { + final ActivityRecord r = getChildAt(i); if (r.visible) { return true; } @@ -1139,8 +1139,8 @@ class TaskRecord extends ConfigurationContainer { * Return true if any activities in this task belongs to input uid. */ boolean containsAppUid(int uid) { - for (int i = mActivities.size() - 1; i >= 0; --i) { - final ActivityRecord r = mActivities.get(i); + for (int i = getChildCount() - 1; i >= 0; --i) { + final ActivityRecord r = getChildAt(i); if (r.getUid() == uid) { return true; } @@ -1150,8 +1150,8 @@ class TaskRecord extends ConfigurationContainer { void getAllRunningVisibleActivitiesLocked(ArrayList<ActivityRecord> outActivities) { if (mStack != null) { - for (int activityNdx = mActivities.size() - 1; activityNdx >= 0; --activityNdx) { - ActivityRecord r = mActivities.get(activityNdx); + for (int activityNdx = getChildCount() - 1; activityNdx >= 0; --activityNdx) { + ActivityRecord r = getChildAt(activityNdx); if (!r.finishing && r.okToShowLocked() && r.visibleIgnoringKeyguard) { outActivities.add(r); } @@ -1161,8 +1161,8 @@ class TaskRecord extends ConfigurationContainer { ActivityRecord topRunningActivityWithStartingWindowLocked() { if (mStack != null) { - for (int activityNdx = mActivities.size() - 1; activityNdx >= 0; --activityNdx) { - ActivityRecord r = mActivities.get(activityNdx); + for (int activityNdx = getChildCount() - 1; activityNdx >= 0; --activityNdx) { + ActivityRecord r = getChildAt(activityNdx); if (r.mStartingWindowState != STARTING_WINDOW_SHOWN || r.finishing || !r.okToShowLocked()) { continue; @@ -1179,8 +1179,8 @@ class TaskRecord extends ConfigurationContainer { */ void getNumRunningActivities(TaskActivitiesReport reportOut) { reportOut.reset(); - for (int i = mActivities.size() - 1; i >= 0; --i) { - final ActivityRecord r = mActivities.get(i); + for (int i = getChildCount() - 1; i >= 0; --i) { + final ActivityRecord r = getChildAt(i); if (r.finishing) { continue; } @@ -1227,17 +1227,17 @@ class TaskRecord extends ConfigurationContainer { } void addActivityToTop(ActivityRecord r) { - addActivityAtIndex(mActivities.size(), r); + addActivityAtIndex(getChildCount(), r); } @Override /*@WindowConfiguration.ActivityType*/ public int getActivityType() { final int applicationType = super.getActivityType(); - if (applicationType != ACTIVITY_TYPE_UNDEFINED || mActivities.isEmpty()) { + if (applicationType != ACTIVITY_TYPE_UNDEFINED || !hasChild()) { return applicationType; } - return mActivities.get(0).getActivityType(); + return getChildAt(0).getActivityType(); } /** @@ -1259,7 +1259,7 @@ class TaskRecord extends ConfigurationContainer { numFullscreen++; } // Only set this based on the first activity - if (mActivities.isEmpty()) { + if (!hasChild()) { if (r.getActivityType() == ACTIVITY_TYPE_UNDEFINED) { // Normally non-standard activity type for the activity record will be set when the // object is created, however we delay setting the standard application type until @@ -1279,10 +1279,10 @@ class TaskRecord extends ConfigurationContainer { r.setActivityType(getActivityType()); } - final int size = mActivities.size(); + final int size = getChildCount(); if (index == size && size > 0) { - final ActivityRecord top = mActivities.get(size - 1); + final ActivityRecord top = getChildAt(size - 1); if (top.mTaskOverlay) { // Place below the task overlay activity since the overlay activity should always // be on top. @@ -1341,7 +1341,7 @@ class TaskRecord extends ConfigurationContainer { mAtmService.getTaskChangeNotificationController().notifyTaskStackChanged(); } - if (mActivities.isEmpty()) { + if (!hasChild()) { return !mReuseTask; } updateEffectiveIntent(); @@ -1355,8 +1355,8 @@ class TaskRecord extends ConfigurationContainer { */ boolean onlyHasTaskOverlayActivities(boolean excludeFinishing) { int count = 0; - for (int i = mActivities.size() - 1; i >= 0; i--) { - final ActivityRecord r = mActivities.get(i); + for (int i = getChildCount() - 1; i >= 0; i--) { + final ActivityRecord r = getChildAt(i); if (excludeFinishing && r.finishing) { continue; } @@ -1372,7 +1372,7 @@ class TaskRecord extends ConfigurationContainer { // We will automatically remove the task either if it has explicitly asked for // this, or it is empty and has never contained an activity that got shown to // the user. - return autoRemoveRecents || (mActivities.isEmpty() && !hasBeenVisible); + return autoRemoveRecents || (!hasChild() && !hasBeenVisible); } /** @@ -1380,9 +1380,9 @@ class TaskRecord extends ConfigurationContainer { * task starting at a specified index. */ final void performClearTaskAtIndexLocked(int activityNdx, String reason) { - int numActivities = mActivities.size(); + int numActivities = getChildCount(); for ( ; activityNdx < numActivities; ++activityNdx) { - final ActivityRecord r = mActivities.get(activityNdx); + final ActivityRecord r = getChildAt(activityNdx); if (r.finishing) { continue; } @@ -1429,9 +1429,9 @@ class TaskRecord extends ConfigurationContainer { * or null if none was found. */ final ActivityRecord performClearTaskLocked(ActivityRecord newR, int launchFlags) { - int numActivities = mActivities.size(); + int numActivities = getChildCount(); for (int activityNdx = numActivities - 1; activityNdx >= 0; --activityNdx) { - ActivityRecord r = mActivities.get(activityNdx); + ActivityRecord r = getChildAt(activityNdx); if (r.finishing) { continue; } @@ -1440,7 +1440,7 @@ class TaskRecord extends ConfigurationContainer { final ActivityRecord ret = r; for (++activityNdx; activityNdx < numActivities; ++activityNdx) { - r = mActivities.get(activityNdx); + r = getChildAt(activityNdx); if (r.finishing) { continue; } @@ -1591,8 +1591,8 @@ class TaskRecord extends ConfigurationContainer { */ final ActivityRecord findActivityInHistoryLocked(ActivityRecord r) { final ComponentName realActivity = r.mActivityComponent; - for (int activityNdx = mActivities.size() - 1; activityNdx >= 0; --activityNdx) { - ActivityRecord candidate = mActivities.get(activityNdx); + for (int activityNdx = getChildCount() - 1; activityNdx >= 0; --activityNdx) { + ActivityRecord candidate = getChildAt(activityNdx); if (candidate.finishing) { continue; } @@ -1609,12 +1609,12 @@ class TaskRecord extends ConfigurationContainer { // Traverse upwards looking for any break between main task activities and // utility activities. int activityNdx; - final int numActivities = mActivities.size(); + final int numActivities = getChildCount(); final boolean relinquish = numActivities != 0 && - (mActivities.get(0).info.flags & FLAG_RELINQUISH_TASK_IDENTITY) != 0; + (getChildAt(0).info.flags & FLAG_RELINQUISH_TASK_IDENTITY) != 0; for (activityNdx = Math.min(numActivities, 1); activityNdx < numActivities; ++activityNdx) { - final ActivityRecord r = mActivities.get(activityNdx); + final ActivityRecord r = getChildAt(activityNdx); if (relinquish && (r.info.flags & FLAG_RELINQUISH_TASK_IDENTITY) == 0) { // This will be the top activity for determining taskDescription. Pre-inc to // overcome initial decrement below. @@ -1642,7 +1642,7 @@ class TaskRecord extends ConfigurationContainer { boolean navigationBarContrastWhenTransparent = false; boolean topActivity = true; for (--activityNdx; activityNdx >= 0; --activityNdx) { - final ActivityRecord r = mActivities.get(activityNdx); + final ActivityRecord r = getChildAt(activityNdx); if (r.mTaskOverlay) { continue; } @@ -1697,9 +1697,9 @@ class TaskRecord extends ConfigurationContainer { */ int findRootIndex(boolean effectiveRoot) { int effectiveNdx = -1; - final int topActivityNdx = mActivities.size() - 1; + final int topActivityNdx = getChildCount() - 1; for (int activityNdx = 0; activityNdx <= topActivityNdx; ++activityNdx) { - final ActivityRecord r = mActivities.get(activityNdx); + final ActivityRecord r = getChildAt(activityNdx); if (r.finishing) { continue; } @@ -1720,7 +1720,7 @@ class TaskRecord extends ConfigurationContainer { // But we still want to update the intent, so let's use the bottom activity. effectiveRootIndex = 0; } - final ActivityRecord r = mActivities.get(effectiveRootIndex); + final ActivityRecord r = getChildAt(effectiveRootIndex); setIntent(r); // Update the task description when the activities change @@ -2289,8 +2289,8 @@ class TaskRecord extends ConfigurationContainer { } void addStartingWindowsForVisibleActivities(boolean taskSwitch) { - for (int activityNdx = mActivities.size() - 1; activityNdx >= 0; --activityNdx) { - final ActivityRecord r = mActivities.get(activityNdx); + for (int activityNdx = getChildCount() - 1; activityNdx >= 0; --activityNdx) { + final ActivityRecord r = getChildAt(activityNdx); if (r.visible) { r.showStartingWindow(null /* prev */, false /* newTask */, taskSwitch); } @@ -2462,7 +2462,7 @@ class TaskRecord extends ConfigurationContainer { sb.append(" StackId="); sb.append(getStackId()); sb.append(" sz="); - sb.append(mActivities.size()); + sb.append(getChildCount()); sb.append('}'); return sb.toString(); } @@ -2495,8 +2495,8 @@ class TaskRecord extends ConfigurationContainer { final long token = proto.start(fieldId); super.writeToProto(proto, CONFIGURATION_CONTAINER, logLevel); proto.write(ID, mTaskId); - for (int i = mActivities.size() - 1; i >= 0; i--) { - ActivityRecord activity = mActivities.get(i); + for (int i = getChildCount() - 1; i >= 0; i--) { + ActivityRecord activity = getChildAt(i); activity.writeToProto(proto, ACTIVITIES); } proto.write(STACK_ID, mStack.mStackId); @@ -2607,10 +2607,9 @@ class TaskRecord extends ConfigurationContainer { out.endTag(null, TAG_INTENT); } - final ArrayList<ActivityRecord> activities = mActivities; - final int numActivities = activities.size(); + final int numActivities = getChildCount(); for (int activityNdx = 0; activityNdx < numActivities; ++activityNdx) { - final ActivityRecord r = activities.get(activityNdx); + final ActivityRecord r = getChildAt(activityNdx); if (r.info.persistableMode == ActivityInfo.PERSIST_ROOT_ONLY || !r.isPersistable() || ((r.intent.getFlags() & FLAG_ACTIVITY_NEW_DOCUMENT | FLAG_ACTIVITY_RETAIN_IN_RECENTS) == FLAG_ACTIVITY_NEW_DOCUMENT) && diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java index c2a05c243540..2835c1fb59ae 100644 --- a/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java @@ -891,7 +891,7 @@ public class ActivityStackTests extends ActivityTestsBase { activity.app = null; overlayActivity.app = null; - assertEquals(2, mTask.mActivities.size()); + assertEquals(2, mTask.getChildCount()); mStack.finishDisabledPackageActivitiesLocked(activity.packageName, null /* filterByClasses */, true /* doit */, true /* evenPersistent */, @@ -900,7 +900,7 @@ public class ActivityStackTests extends ActivityTestsBase { // Although the overlay activity is in another package, the non-overlay activities are // removed from the task. Since the overlay activity should be removed as well, the task // should be empty. - assertThat(mTask.mActivities).isEmpty(); + assertFalse(mTask.hasChild()); assertThat(mStack.getAllTasks()).isEmpty(); } @@ -918,11 +918,11 @@ public class ActivityStackTests extends ActivityTestsBase { // second activity will be immediately removed as it has no state. secondActivity.setSavedState(null /* savedState */); - assertEquals(2, mTask.mActivities.size()); + assertEquals(2, mTask.getChildCount()); mStack.handleAppDiedLocked(secondActivity.app); - assertThat(mTask.mActivities).isEmpty(); + assertFalse(mTask.hasChild()); assertThat(mStack.getAllTasks()).isEmpty(); } @@ -936,7 +936,7 @@ public class ActivityStackTests extends ActivityTestsBase { mStack.handleAppDiedLocked(activity.app); - assertEquals(1, mTask.mActivities.size()); + assertEquals(1, mTask.getChildCount()); assertEquals(1, mStack.getAllTasks().size()); } @@ -950,7 +950,7 @@ public class ActivityStackTests extends ActivityTestsBase { mStack.handleAppDiedLocked(activity.app); - assertThat(mTask.mActivities).isEmpty(); + assertFalse(mTask.hasChild()); assertThat(mStack.getAllTasks()).isEmpty(); } @@ -964,7 +964,7 @@ public class ActivityStackTests extends ActivityTestsBase { mStack.handleAppDiedLocked(activity.app); - assertEquals(1, mTask.mActivities.size()); + assertEquals(1, mTask.getChildCount()); assertEquals(1, mStack.getAllTasks().size()); } @@ -978,7 +978,7 @@ public class ActivityStackTests extends ActivityTestsBase { mStack.handleAppDiedLocked(activity.app); - assertThat(mTask.mActivities).isEmpty(); + assertFalse(mTask.hasChild()); assertThat(mStack.getAllTasks()).isEmpty(); } |