Merge "Use desktop API to remove desktop for dismiss" into main
This commit is contained in:
@@ -130,6 +130,7 @@ import android.widget.ListView;
|
||||
import android.widget.OverScroller;
|
||||
import android.widget.Toast;
|
||||
import android.window.PictureInPictureSurfaceTransaction;
|
||||
import android.window.flags.DesktopModeFlags;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
@@ -3935,9 +3936,11 @@ public abstract class RecentsView<
|
||||
if (shouldRemoveTask) {
|
||||
if (dismissedTaskView.isRunningTask()) {
|
||||
finishRecentsAnimation(true /* toRecents */, false /* shouldPip */,
|
||||
() -> removeTaskInternal(dismissedTaskViewId));
|
||||
() -> removeTaskInternal(dismissedTaskViewId,
|
||||
dismissedTaskView instanceof DesktopTaskView));
|
||||
} else {
|
||||
removeTaskInternal(dismissedTaskViewId);
|
||||
removeTaskInternal(dismissedTaskViewId,
|
||||
dismissedTaskView instanceof DesktopTaskView);
|
||||
}
|
||||
announceForAccessibility(
|
||||
getResources().getString(R.string.task_view_closed));
|
||||
@@ -4305,16 +4308,21 @@ public abstract class RecentsView<
|
||||
return lastVisibleIndex;
|
||||
}
|
||||
|
||||
private void removeTaskInternal(int dismissedTaskViewId) {
|
||||
private void removeTaskInternal(int dismissedTaskViewId, boolean isDesktop) {
|
||||
int[] taskIds = getTaskIdsForTaskViewId(dismissedTaskViewId);
|
||||
UI_HELPER_EXECUTOR.getHandler().post(
|
||||
() -> {
|
||||
for (int taskId : taskIds) {
|
||||
if (taskId != -1) {
|
||||
ActivityManagerWrapper.getInstance().removeTask(taskId);
|
||||
}
|
||||
UI_HELPER_EXECUTOR.getHandler().post(() -> {
|
||||
if (DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION.isTrue() && isDesktop) {
|
||||
// TODO: b/372005228 - Use the api with desktop id instead.
|
||||
SystemUiProxy.INSTANCE.get(getContext()).removeDesktop(
|
||||
mContainer.getDisplay().getDisplayId());
|
||||
} else {
|
||||
for (int taskId : taskIds) {
|
||||
if (taskId != -1) {
|
||||
ActivityManagerWrapper.getInstance().removeTask(taskId);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected void onDismissAnimationEnds() {
|
||||
|
||||
Reference in New Issue
Block a user