Loading services/core/java/com/android/server/wm/ActivityRecord.java +2 −4 Original line number Diff line number Diff line Loading @@ -359,7 +359,6 @@ import java.util.HashSet; import java.util.List; import java.util.Objects; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; /** Loading Loading @@ -4223,9 +4222,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } @Override boolean forAllActivities( Function<ActivityRecord, Boolean> callback, boolean traverseTopToBottom) { return callback.apply(this); boolean forAllActivities(Predicate<ActivityRecord> callback, boolean traverseTopToBottom) { return callback.test(this); } @Override Loading services/core/java/com/android/server/wm/DisplayArea.java +1 −1 Original line number Diff line number Diff line Loading @@ -332,7 +332,7 @@ public class DisplayArea<T extends WindowContainer> extends WindowContainer<T> { } @Override boolean forAllTaskDisplayAreas(Function<TaskDisplayArea, Boolean> callback, boolean forAllTaskDisplayAreas(Predicate<TaskDisplayArea> callback, boolean traverseTopToBottom) { // Only DisplayArea of Type.ANY may contain TaskDisplayArea as children. if (mType != DisplayArea.Type.ANY) { Loading services/core/java/com/android/server/wm/DisplayContent.java +4 −8 Original line number Diff line number Diff line Loading @@ -223,7 +223,6 @@ import com.android.internal.protolog.common.ProtoLog; import com.android.internal.util.ToBooleanFunction; import com.android.internal.util.function.TriConsumer; import com.android.internal.util.function.pooled.PooledConsumer; import com.android.internal.util.function.pooled.PooledFunction; import com.android.internal.util.function.pooled.PooledLambda; import com.android.internal.util.function.pooled.PooledPredicate; import com.android.server.inputmethod.InputMethodManagerInternal; Loading Loading @@ -4665,7 +4664,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp || mWmService.mPolicy.okToAnimate(ignoreScreenOn)); } static final class TaskForResizePointSearchResult { static final class TaskForResizePointSearchResult implements Predicate<Task> { private Task taskForResize; private int x; private int y; Loading @@ -4678,16 +4677,13 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp this.y = y; this.delta = delta; mTmpRect.setEmpty(); final PooledFunction f = PooledLambda.obtainFunction( TaskForResizePointSearchResult::processTask, this, PooledLambda.__(Task.class)); root.forAllTasks(f); f.recycle(); root.forAllTasks(this); return taskForResize; } private boolean processTask(Task task) { @Override public boolean test(Task task) { if (!task.getRootTask().getWindowConfiguration().canResizeTask()) { return true; } Loading services/core/java/com/android/server/wm/RecentsAnimationController.java +1 −8 Original line number Diff line number Diff line Loading @@ -68,7 +68,6 @@ import com.android.internal.os.BackgroundThread; import com.android.internal.protolog.common.ProtoLog; import com.android.internal.util.LatencyTracker; import com.android.internal.util.function.pooled.PooledConsumer; import com.android.internal.util.function.pooled.PooledFunction; import com.android.internal.util.function.pooled.PooledLambda; import com.android.server.LocalServices; import com.android.server.inputmethod.InputMethodManagerInternal; Loading Loading @@ -1152,13 +1151,7 @@ public class RecentsAnimationController implements DeathRecipient { private boolean isAnimatingApp(ActivityRecord activity) { for (int i = mPendingAnimations.size() - 1; i >= 0; i--) { final Task task = mPendingAnimations.get(i).mTask; final PooledFunction f = PooledLambda.obtainFunction( (a, b) -> a == b, activity, PooledLambda.__(ActivityRecord.class)); boolean isAnimatingApp = task.forAllActivities(f); f.recycle(); if (isAnimatingApp) { if (activity.isDescendantOf(mPendingAnimations.get(i).mTask)) { return true; } } Loading services/core/java/com/android/server/wm/ResetTargetTaskHelper.java +13 −18 Original line number Diff line number Diff line Loading @@ -25,14 +25,13 @@ import android.content.pm.ActivityInfo; import android.os.Debug; import com.android.internal.protolog.common.ProtoLog; import com.android.internal.util.function.pooled.PooledConsumer; import com.android.internal.util.function.pooled.PooledFunction; import com.android.internal.util.function.pooled.PooledLambda; import java.util.ArrayList; import java.util.function.Consumer; import java.util.function.Predicate; /** Helper class for processing the reset of a task. */ class ResetTargetTaskHelper { class ResetTargetTaskHelper implements Consumer<Task>, Predicate<ActivityRecord> { private Task mTask; private Task mTargetTask; private Task mTargetRootTask; Loading @@ -40,6 +39,7 @@ class ResetTargetTaskHelper { private boolean mForceReset; private boolean mCanMoveOptions; private boolean mTargetTaskFound; private boolean mIsTargetTask; private int mActivityReparentPosition; private ActivityOptions mTopOptions; private ArrayList<ActivityRecord> mResultActivities = new ArrayList<>(); Loading @@ -62,32 +62,27 @@ class ResetTargetTaskHelper { mTargetRootTask = targetTask.getRootTask(); mActivityReparentPosition = -1; final PooledConsumer c = PooledLambda.obtainConsumer( ResetTargetTaskHelper::processTask, this, PooledLambda.__(Task.class)); targetTask.mWmService.mRoot.forAllLeafTasks(c, true /*traverseTopToBottom*/); c.recycle(); targetTask.mWmService.mRoot.forAllLeafTasks(this, true /* traverseTopToBottom */); processPendingReparentActivities(); reset(null); return mTopOptions; } private void processTask(Task task) { @Override public void accept(Task task) { reset(task); mRoot = task.getRootActivity(true); if (mRoot == null) return; final boolean isTargetTask = task == mTargetTask; if (isTargetTask) mTargetTaskFound = true; mIsTargetTask = task == mTargetTask; if (mIsTargetTask) mTargetTaskFound = true; final PooledFunction f = PooledLambda.obtainFunction( ResetTargetTaskHelper::processActivity, this, PooledLambda.__(ActivityRecord.class), isTargetTask); task.forAllActivities(f); f.recycle(); task.forAllActivities(this); } private boolean processActivity(ActivityRecord r, boolean isTargetTask) { @Override public boolean test(ActivityRecord r) { // End processing if we have reached the root. if (r == mRoot) return true; Loading @@ -100,7 +95,7 @@ class ResetTargetTaskHelper { final boolean clearWhenTaskReset = (r.intent.getFlags() & Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET) != 0; if (isTargetTask) { if (mIsTargetTask) { if (!finishOnTaskLaunch && !clearWhenTaskReset) { if (r.resultTo != null) { // If this activity is sending a reply to a previous activity, we can't do Loading Loading
services/core/java/com/android/server/wm/ActivityRecord.java +2 −4 Original line number Diff line number Diff line Loading @@ -359,7 +359,6 @@ import java.util.HashSet; import java.util.List; import java.util.Objects; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; /** Loading Loading @@ -4223,9 +4222,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } @Override boolean forAllActivities( Function<ActivityRecord, Boolean> callback, boolean traverseTopToBottom) { return callback.apply(this); boolean forAllActivities(Predicate<ActivityRecord> callback, boolean traverseTopToBottom) { return callback.test(this); } @Override Loading
services/core/java/com/android/server/wm/DisplayArea.java +1 −1 Original line number Diff line number Diff line Loading @@ -332,7 +332,7 @@ public class DisplayArea<T extends WindowContainer> extends WindowContainer<T> { } @Override boolean forAllTaskDisplayAreas(Function<TaskDisplayArea, Boolean> callback, boolean forAllTaskDisplayAreas(Predicate<TaskDisplayArea> callback, boolean traverseTopToBottom) { // Only DisplayArea of Type.ANY may contain TaskDisplayArea as children. if (mType != DisplayArea.Type.ANY) { Loading
services/core/java/com/android/server/wm/DisplayContent.java +4 −8 Original line number Diff line number Diff line Loading @@ -223,7 +223,6 @@ import com.android.internal.protolog.common.ProtoLog; import com.android.internal.util.ToBooleanFunction; import com.android.internal.util.function.TriConsumer; import com.android.internal.util.function.pooled.PooledConsumer; import com.android.internal.util.function.pooled.PooledFunction; import com.android.internal.util.function.pooled.PooledLambda; import com.android.internal.util.function.pooled.PooledPredicate; import com.android.server.inputmethod.InputMethodManagerInternal; Loading Loading @@ -4665,7 +4664,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp || mWmService.mPolicy.okToAnimate(ignoreScreenOn)); } static final class TaskForResizePointSearchResult { static final class TaskForResizePointSearchResult implements Predicate<Task> { private Task taskForResize; private int x; private int y; Loading @@ -4678,16 +4677,13 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp this.y = y; this.delta = delta; mTmpRect.setEmpty(); final PooledFunction f = PooledLambda.obtainFunction( TaskForResizePointSearchResult::processTask, this, PooledLambda.__(Task.class)); root.forAllTasks(f); f.recycle(); root.forAllTasks(this); return taskForResize; } private boolean processTask(Task task) { @Override public boolean test(Task task) { if (!task.getRootTask().getWindowConfiguration().canResizeTask()) { return true; } Loading
services/core/java/com/android/server/wm/RecentsAnimationController.java +1 −8 Original line number Diff line number Diff line Loading @@ -68,7 +68,6 @@ import com.android.internal.os.BackgroundThread; import com.android.internal.protolog.common.ProtoLog; import com.android.internal.util.LatencyTracker; import com.android.internal.util.function.pooled.PooledConsumer; import com.android.internal.util.function.pooled.PooledFunction; import com.android.internal.util.function.pooled.PooledLambda; import com.android.server.LocalServices; import com.android.server.inputmethod.InputMethodManagerInternal; Loading Loading @@ -1152,13 +1151,7 @@ public class RecentsAnimationController implements DeathRecipient { private boolean isAnimatingApp(ActivityRecord activity) { for (int i = mPendingAnimations.size() - 1; i >= 0; i--) { final Task task = mPendingAnimations.get(i).mTask; final PooledFunction f = PooledLambda.obtainFunction( (a, b) -> a == b, activity, PooledLambda.__(ActivityRecord.class)); boolean isAnimatingApp = task.forAllActivities(f); f.recycle(); if (isAnimatingApp) { if (activity.isDescendantOf(mPendingAnimations.get(i).mTask)) { return true; } } Loading
services/core/java/com/android/server/wm/ResetTargetTaskHelper.java +13 −18 Original line number Diff line number Diff line Loading @@ -25,14 +25,13 @@ import android.content.pm.ActivityInfo; import android.os.Debug; import com.android.internal.protolog.common.ProtoLog; import com.android.internal.util.function.pooled.PooledConsumer; import com.android.internal.util.function.pooled.PooledFunction; import com.android.internal.util.function.pooled.PooledLambda; import java.util.ArrayList; import java.util.function.Consumer; import java.util.function.Predicate; /** Helper class for processing the reset of a task. */ class ResetTargetTaskHelper { class ResetTargetTaskHelper implements Consumer<Task>, Predicate<ActivityRecord> { private Task mTask; private Task mTargetTask; private Task mTargetRootTask; Loading @@ -40,6 +39,7 @@ class ResetTargetTaskHelper { private boolean mForceReset; private boolean mCanMoveOptions; private boolean mTargetTaskFound; private boolean mIsTargetTask; private int mActivityReparentPosition; private ActivityOptions mTopOptions; private ArrayList<ActivityRecord> mResultActivities = new ArrayList<>(); Loading @@ -62,32 +62,27 @@ class ResetTargetTaskHelper { mTargetRootTask = targetTask.getRootTask(); mActivityReparentPosition = -1; final PooledConsumer c = PooledLambda.obtainConsumer( ResetTargetTaskHelper::processTask, this, PooledLambda.__(Task.class)); targetTask.mWmService.mRoot.forAllLeafTasks(c, true /*traverseTopToBottom*/); c.recycle(); targetTask.mWmService.mRoot.forAllLeafTasks(this, true /* traverseTopToBottom */); processPendingReparentActivities(); reset(null); return mTopOptions; } private void processTask(Task task) { @Override public void accept(Task task) { reset(task); mRoot = task.getRootActivity(true); if (mRoot == null) return; final boolean isTargetTask = task == mTargetTask; if (isTargetTask) mTargetTaskFound = true; mIsTargetTask = task == mTargetTask; if (mIsTargetTask) mTargetTaskFound = true; final PooledFunction f = PooledLambda.obtainFunction( ResetTargetTaskHelper::processActivity, this, PooledLambda.__(ActivityRecord.class), isTargetTask); task.forAllActivities(f); f.recycle(); task.forAllActivities(this); } private boolean processActivity(ActivityRecord r, boolean isTargetTask) { @Override public boolean test(ActivityRecord r) { // End processing if we have reached the root. if (r == mRoot) return true; Loading @@ -100,7 +95,7 @@ class ResetTargetTaskHelper { final boolean clearWhenTaskReset = (r.intent.getFlags() & Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET) != 0; if (isTargetTask) { if (mIsTargetTask) { if (!finishOnTaskLaunch && !clearWhenTaskReset) { if (r.resultTo != null) { // If this activity is sending a reply to a previous activity, we can't do Loading