diff --git a/packages/SystemUI/res/drawable/recents_dismiss_dark.xml b/packages/SystemUI/res/drawable/recents_dismiss_dark.xml
index ba09ebe2f88be..951269bd37b19 100644
--- a/packages/SystemUI/res/drawable/recents_dismiss_dark.xml
+++ b/packages/SystemUI/res/drawable/recents_dismiss_dark.xml
@@ -19,6 +19,6 @@ Copyright (C) 2014 The Android Open Source Project
android:viewportWidth="48.0"
android:viewportHeight="48.0">
\ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/recents_dismiss_light.xml b/packages/SystemUI/res/drawable/recents_dismiss_light.xml
index be0825cf953a2..1f44c1c846bba 100644
--- a/packages/SystemUI/res/drawable/recents_dismiss_light.xml
+++ b/packages/SystemUI/res/drawable/recents_dismiss_light.xml
@@ -19,6 +19,6 @@ Copyright (C) 2014 The Android Open Source Project
android:viewportWidth="48.0"
android:viewportHeight="48.0">
\ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/vector_drawable_place_top_left.xml b/packages/SystemUI/res/drawable/recents_move_task_freeform_dark.xml
similarity index 93%
rename from packages/SystemUI/res/drawable/vector_drawable_place_top_left.xml
rename to packages/SystemUI/res/drawable/recents_move_task_freeform_dark.xml
index feb612c1bcc17..ce07b2da138cb 100644
--- a/packages/SystemUI/res/drawable/vector_drawable_place_top_left.xml
+++ b/packages/SystemUI/res/drawable/recents_move_task_freeform_dark.xml
@@ -19,6 +19,6 @@ Copyright (C) 2015 The Android Open Source Project
android:viewportWidth="24.0"
android:viewportHeight="24.0">
diff --git a/packages/SystemUI/res/drawable/vector_drawable_place_bottom.xml b/packages/SystemUI/res/drawable/recents_move_task_freeform_light.xml
similarity index 88%
rename from packages/SystemUI/res/drawable/vector_drawable_place_bottom.xml
rename to packages/SystemUI/res/drawable/recents_move_task_freeform_light.xml
index 14f19819aa1cd..bf452ae168f05 100644
--- a/packages/SystemUI/res/drawable/vector_drawable_place_bottom.xml
+++ b/packages/SystemUI/res/drawable/recents_move_task_freeform_light.xml
@@ -19,6 +19,6 @@ Copyright (C) 2015 The Android Open Source Project
android:viewportWidth="24.0"
android:viewportHeight="24.0">
+ android:fillColor="@color/recents_task_bar_light_icon_color"
+ android:pathData="M0.0,0.0l0.0,24.0l24.0,0.0L24.0,0.0L0.0,0.0zM4.0,4.0l10.0,0.0l0.0,10.0L4.0,14.0L4.0,4.0z"/>
diff --git a/packages/SystemUI/res/drawable/vector_drawable_place_fullscreen.xml b/packages/SystemUI/res/drawable/recents_move_task_fullscreen_dark.xml
similarity index 81%
rename from packages/SystemUI/res/drawable/vector_drawable_place_fullscreen.xml
rename to packages/SystemUI/res/drawable/recents_move_task_fullscreen_dark.xml
index aee0b7fbba994..4160efb8cd358 100644
--- a/packages/SystemUI/res/drawable/vector_drawable_place_fullscreen.xml
+++ b/packages/SystemUI/res/drawable/recents_move_task_fullscreen_dark.xml
@@ -19,15 +19,15 @@ Copyright (C) 2015 The Android Open Source Project
android:viewportWidth="24.0"
android:viewportHeight="24.0">
diff --git a/packages/SystemUI/res/drawable/vector_drawable_place_bottom_left.xml b/packages/SystemUI/res/drawable/recents_move_task_fullscreen_light.xml
similarity index 57%
rename from packages/SystemUI/res/drawable/vector_drawable_place_bottom_left.xml
rename to packages/SystemUI/res/drawable/recents_move_task_fullscreen_light.xml
index cea63248d7674..f424bf66aeb04 100644
--- a/packages/SystemUI/res/drawable/vector_drawable_place_bottom_left.xml
+++ b/packages/SystemUI/res/drawable/recents_move_task_fullscreen_light.xml
@@ -19,6 +19,15 @@ Copyright (C) 2015 The Android Open Source Project
android:viewportWidth="24.0"
android:viewportHeight="24.0">
+ android:fillColor="@color/recents_task_bar_light_icon_color"
+ android:pathData="M0.0,8.0l4.0,0.0 0.0,-4.0 4.0,0.0 0.0,-4.0 -8.0,0.0z"/>
+
+
+
diff --git a/packages/SystemUI/res/drawable/vector_drawable_place_bottom_right.xml b/packages/SystemUI/res/drawable/vector_drawable_place_bottom_right.xml
deleted file mode 100644
index c2ae9c8b58427..0000000000000
--- a/packages/SystemUI/res/drawable/vector_drawable_place_bottom_right.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
diff --git a/packages/SystemUI/res/drawable/vector_drawable_place_dock_bottom.xml b/packages/SystemUI/res/drawable/vector_drawable_place_dock_bottom.xml
deleted file mode 100644
index f11b690b90afd..0000000000000
--- a/packages/SystemUI/res/drawable/vector_drawable_place_dock_bottom.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
diff --git a/packages/SystemUI/res/drawable/vector_drawable_place_dock_left.xml b/packages/SystemUI/res/drawable/vector_drawable_place_dock_left.xml
deleted file mode 100644
index 79ade42cc94e1..0000000000000
--- a/packages/SystemUI/res/drawable/vector_drawable_place_dock_left.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
diff --git a/packages/SystemUI/res/drawable/vector_drawable_place_dock_right.xml b/packages/SystemUI/res/drawable/vector_drawable_place_dock_right.xml
deleted file mode 100644
index 49c2a38ce48e7..0000000000000
--- a/packages/SystemUI/res/drawable/vector_drawable_place_dock_right.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
diff --git a/packages/SystemUI/res/drawable/vector_drawable_place_dock_top.xml b/packages/SystemUI/res/drawable/vector_drawable_place_dock_top.xml
deleted file mode 100644
index c3abec222e7d9..0000000000000
--- a/packages/SystemUI/res/drawable/vector_drawable_place_dock_top.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
diff --git a/packages/SystemUI/res/drawable/vector_drawable_place_left.xml b/packages/SystemUI/res/drawable/vector_drawable_place_left.xml
deleted file mode 100644
index 078f83cf89264..0000000000000
--- a/packages/SystemUI/res/drawable/vector_drawable_place_left.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
diff --git a/packages/SystemUI/res/drawable/vector_drawable_place_right.xml b/packages/SystemUI/res/drawable/vector_drawable_place_right.xml
deleted file mode 100644
index 86730db141f74..0000000000000
--- a/packages/SystemUI/res/drawable/vector_drawable_place_right.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
diff --git a/packages/SystemUI/res/drawable/vector_drawable_place_top.xml b/packages/SystemUI/res/drawable/vector_drawable_place_top.xml
deleted file mode 100644
index 92e01afd35e8a..0000000000000
--- a/packages/SystemUI/res/drawable/vector_drawable_place_top.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
diff --git a/packages/SystemUI/res/drawable/vector_drawable_place_top_right.xml b/packages/SystemUI/res/drawable/vector_drawable_place_top_right.xml
deleted file mode 100644
index 9f4ee49c2b6e2..0000000000000
--- a/packages/SystemUI/res/drawable/vector_drawable_place_top_right.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
diff --git a/packages/SystemUI/res/layout-land/recents_task_resize_dialog.xml b/packages/SystemUI/res/layout-land/recents_task_resize_dialog.xml
deleted file mode 100644
index 0a4c0868fbd6b..0000000000000
--- a/packages/SystemUI/res/layout-land/recents_task_resize_dialog.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout-port/recents_task_resize_dialog.xml b/packages/SystemUI/res/layout-port/recents_task_resize_dialog.xml
deleted file mode 100644
index bf5207a7e43cb..0000000000000
--- a/packages/SystemUI/res/layout-port/recents_task_resize_dialog.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout-sw600dp-land/recents_task_resize_dialog.xml b/packages/SystemUI/res/layout-sw600dp-land/recents_task_resize_dialog.xml
deleted file mode 100644
index 6e92afc6d0bfc..0000000000000
--- a/packages/SystemUI/res/layout-sw600dp-land/recents_task_resize_dialog.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout-sw600dp-port/recents_task_resize_dialog.xml b/packages/SystemUI/res/layout-sw600dp-port/recents_task_resize_dialog.xml
deleted file mode 100644
index faa5f4be8d682..0000000000000
--- a/packages/SystemUI/res/layout-sw600dp-port/recents_task_resize_dialog.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/recents_task_view_header.xml b/packages/SystemUI/res/layout/recents_task_view_header.xml
index 2168e8b3f769f..b8caf23126620 100644
--- a/packages/SystemUI/res/layout/recents_task_view_header.xml
+++ b/packages/SystemUI/res/layout/recents_task_view_header.xml
@@ -34,7 +34,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|start"
android:layout_marginStart="64dp"
- android:layout_marginEnd="64dp"
+ android:layout_marginEnd="112dp"
android:textSize="16sp"
android:textColor="#ffffffff"
android:text="@string/recents_empty_message"
diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml
index 94350d9adf995..76c08f6491792 100644
--- a/packages/SystemUI/res/values/colors.xml
+++ b/packages/SystemUI/res/values/colors.xml
@@ -59,9 +59,9 @@
#cc000000
- #ffeeeeee
+ #ffeeeeee
- #99000000
+ #99000000
#28ffffff
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
index 1bc9a63ce75b3..9f0ac35f85501 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
@@ -56,7 +56,6 @@ import com.android.systemui.recents.events.component.RecentsVisibilityChangedEve
import com.android.systemui.recents.events.component.ScreenPinningRequestEvent;
import com.android.systemui.recents.events.ui.AllTaskViewsDismissedEvent;
import com.android.systemui.recents.events.ui.DismissTaskViewEvent;
-import com.android.systemui.recents.events.ui.ResizeTaskEvent;
import com.android.systemui.recents.events.ui.ShowApplicationInfoEvent;
import com.android.systemui.recents.events.ui.StackViewScrolledEvent;
import com.android.systemui.recents.events.ui.UpdateFreeformTaskViewVisibilityEvent;
@@ -103,9 +102,6 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
private ViewStub mHistoryViewStub;
private RecentsHistoryView mHistoryView;
- // Resize task debug
- private RecentsResizeTaskDialog mResizeTaskDebugDialog;
-
// Search AppWidget
private AppWidgetProviderInfo mSearchWidgetInfo;
private RecentsAppWidgetHost mAppWidgetHost;
@@ -587,15 +583,6 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
EventBus.getDefault().send(new ToggleRecentsEvent());
}
- /**** RecentsResizeTaskDialog ****/
-
- private RecentsResizeTaskDialog getResizeTaskDebugDialog() {
- if (mResizeTaskDebugDialog == null) {
- mResizeTaskDebugDialog = new RecentsResizeTaskDialog(getFragmentManager(), this);
- }
- return mResizeTaskDebugDialog;
- }
-
/**** EventBus events ****/
public final void onBusEvent(ToggleRecentsEvent event) {
@@ -745,10 +732,6 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
MetricsLogger.count(this, "overview_task_all_dismissed", 1);
}
- public final void onBusEvent(ResizeTaskEvent event) {
- getResizeTaskDebugDialog().showResizeTaskDialog(event.task, mRecentsView);
- }
-
public final void onBusEvent(LaunchTaskSucceededEvent event) {
MetricsLogger.histogram(this, "overview_task_launch_index", event.taskIndexFromStackFront);
}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsResizeTaskDialog.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsResizeTaskDialog.java
deleted file mode 100644
index d4158451b54b0..0000000000000
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsResizeTaskDialog.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.recents;
-
-import android.app.ActivityManager;
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.DialogFragment;
-import android.app.FragmentManager;
-import android.content.DialogInterface;
-import android.graphics.Rect;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.Button;
-import android.widget.Toast;
-import com.android.systemui.R;
-import com.android.systemui.recents.misc.SystemServicesProxy;
-import com.android.systemui.recents.model.Task;
-import com.android.systemui.recents.views.RecentsView;
-
-import static android.app.ActivityManager.StackId.DOCKED_STACK_ID;
-import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID;
-
-/**
- * A helper for the dialogs that show when task debugging is on.
- */
-public class RecentsResizeTaskDialog extends DialogFragment {
-
- static final String TAG = "RecentsResizeTaskDialog";
-
- // The various window arrangements we can handle.
- private static final int PLACE_LEFT = 1;
- private static final int PLACE_RIGHT = 2;
- private static final int PLACE_TOP = 3;
- private static final int PLACE_BOTTOM = 4;
- private static final int PLACE_TOP_LEFT = 5;
- private static final int PLACE_TOP_RIGHT = 6;
- private static final int PLACE_BOTTOM_LEFT = 7;
- private static final int PLACE_BOTTOM_RIGHT = 8;
- private static final int PLACE_FULL = 9;
- private static final int PLACE_DOCK_LEFT = 10;
- private static final int PLACE_DOCK_RIGHT = 11;
- private static final int PLACE_DOCK_TOP = 12;
- private static final int PLACE_DOCK_BOTTOM = 13;
-
- // The button resource ID combined with the arrangement command.
- private static final int[][] BUTTON_DEFINITIONS =
- {{R.id.place_dock_left, PLACE_DOCK_LEFT},
- {R.id.place_dock_right, PLACE_DOCK_RIGHT},
- {R.id.place_dock_top, PLACE_DOCK_TOP},
- {R.id.place_dock_bottom, PLACE_DOCK_BOTTOM},
- {R.id.place_left, PLACE_LEFT},
- {R.id.place_right, PLACE_RIGHT},
- {R.id.place_top, PLACE_TOP},
- {R.id.place_bottom, PLACE_BOTTOM},
- {R.id.place_top_left, PLACE_TOP_LEFT},
- {R.id.place_top_right, PLACE_TOP_RIGHT},
- {R.id.place_bottom_left, PLACE_BOTTOM_LEFT},
- {R.id.place_bottom_right, PLACE_BOTTOM_RIGHT},
- {R.id.place_full, PLACE_FULL}};
-
- // The task we want to resize.
- private FragmentManager mFragmentManager;
- private View mResizeTaskDialogContent;
- private RecentsActivity mRecentsActivity;
- private RecentsView mRecentsView;
- private Rect[] mBounds = {new Rect(), new Rect(), new Rect(), new Rect()};
- private Task[] mTasks = {null, null, null, null};
-
- /**
- * Called by FragmentManager
- */
- public RecentsResizeTaskDialog() {
- }
-
- public RecentsResizeTaskDialog(FragmentManager mgr, RecentsActivity activity) {
- mFragmentManager = mgr;
- mRecentsActivity = activity;
- }
-
- /** Shows the resize-task dialog. */
- void showResizeTaskDialog(Task mainTask, RecentsView rv) {
- mTasks[0] = mainTask;
- mRecentsView = rv;
- showAllowingStateLoss(mFragmentManager, TAG);
- }
-
- /** Creates a new resize-task dialog. */
- private void createResizeTaskDialog(LayoutInflater inflater, AlertDialog.Builder builder) {
- builder.setTitle(R.string.recents_caption_resize);
- mResizeTaskDialogContent =
- inflater.inflate(R.layout.recents_task_resize_dialog, null, false);
-
- for (int i = 0; i < BUTTON_DEFINITIONS.length; i++) {
- Button b = (Button)mResizeTaskDialogContent.findViewById(BUTTON_DEFINITIONS[i][0]);
- if (b != null) {
- final int action = BUTTON_DEFINITIONS[i][1];
- b.setOnClickListener(
- new View.OnClickListener() {
- public void onClick(View v) {
- switch (action) {
- case PLACE_DOCK_LEFT:
- case PLACE_DOCK_RIGHT:
- case PLACE_DOCK_TOP:
- case PLACE_DOCK_BOTTOM:
- placeDockTasks(action);
- break;
- default:
- placeTasks(action);
- break;
- }
- }
- });
- }
- }
-
- builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- dismissAllowingStateLoss();
- }
- });
-
- builder.setView(mResizeTaskDialogContent);
- }
-
- /** Helper function to place window(s) on the display according to an arrangement request. */
- private void placeTasks(int arrangement) {
- SystemServicesProxy ssp = Recents.getSystemServices();
- Rect rect = ssp.getDisplayRect();
- for (int i = 0; i < mBounds.length; ++i) {
- mBounds[i].set(rect);
- if (i != 0) {
- mTasks[i] = null;
- }
- }
- int additionalTasks = 0;
- switch (arrangement) {
- case PLACE_LEFT:
- mBounds[0].right = mBounds[0].centerX();
- mBounds[1].left = mBounds[0].right;
- additionalTasks = 1;
- break;
- case PLACE_RIGHT:
- mBounds[1].right = mBounds[1].centerX();
- mBounds[0].left = mBounds[1].right;
- additionalTasks = 1;
- break;
- case PLACE_TOP:
- mBounds[0].bottom = mBounds[0].centerY();
- mBounds[1].top = mBounds[0].bottom;
- additionalTasks = 1;
- break;
- case PLACE_BOTTOM:
- mBounds[1].bottom = mBounds[1].centerY();
- mBounds[0].top = mBounds[1].bottom;
- additionalTasks = 1;
- break;
- case PLACE_TOP_LEFT: // TL, TR, BL, BR
- mBounds[0].right = mBounds[0].centerX();
- mBounds[0].bottom = mBounds[0].centerY();
- mBounds[1].left = mBounds[0].right;
- mBounds[1].bottom = mBounds[0].bottom;
- mBounds[2].right = mBounds[0].right;
- mBounds[2].top = mBounds[0].bottom;
- mBounds[3].left = mBounds[0].right;
- mBounds[3].top = mBounds[0].bottom;
- additionalTasks = 3;
- break;
- case PLACE_TOP_RIGHT: // TR, TL, BR, BL
- mBounds[0].left = mBounds[0].centerX();
- mBounds[0].bottom = mBounds[0].centerY();
- mBounds[1].right = mBounds[0].left;
- mBounds[1].bottom = mBounds[0].bottom;
- mBounds[2].left = mBounds[0].left;
- mBounds[2].top = mBounds[0].bottom;
- mBounds[3].right = mBounds[0].left;
- mBounds[3].top = mBounds[0].bottom;
- additionalTasks = 3;
- break;
- case PLACE_BOTTOM_LEFT: // BL, BR, TL, TR
- mBounds[0].right = mBounds[0].centerX();
- mBounds[0].top = mBounds[0].centerY();
- mBounds[1].left = mBounds[0].right;
- mBounds[1].top = mBounds[0].top;
- mBounds[2].right = mBounds[0].right;
- mBounds[2].bottom = mBounds[0].top;
- mBounds[3].left = mBounds[0].right;
- mBounds[3].bottom = mBounds[0].top;
- additionalTasks = 3;
- break;
- case PLACE_BOTTOM_RIGHT: // BR, BL, TR, TL
- mBounds[0].left = mBounds[0].centerX();
- mBounds[0].top = mBounds[0].centerY();
- mBounds[1].right = mBounds[0].left;
- mBounds[1].top = mBounds[0].top;
- mBounds[2].left = mBounds[0].left;
- mBounds[2].bottom = mBounds[0].top;
- mBounds[3].right = mBounds[0].left;
- mBounds[3].bottom = mBounds[0].top;
- additionalTasks = 3;
- break;
- case PLACE_FULL:
- // Nothing to change.
- mBounds[0] = new Rect();
- break;
- }
-
- // Get the other tasks.
- for (int i = 1; i <= additionalTasks && mTasks[i - 1] != null; ++i) {
- mTasks[i] = mRecentsView.getNextTaskOrTopTask(mTasks[i - 1]);
- // Do stop if we circled back to the first item.
- if (mTasks[i] == mTasks[0]) {
- mTasks[i] = null;
- }
- }
-
- // Get rid of the dialog.
- dismissAllowingStateLoss();
- mRecentsActivity.dismissRecentsToHomeWithoutTransitionAnimation();
-
- // Show tasks as they might not be currently visible - beginning with the oldest so that
- // the focus ends on the selected one.
- for (int i = additionalTasks; i >= 0; --i) {
- if (mTasks[i] != null) {
- mRecentsView.launchTask(mTasks[i], mBounds[i], FREEFORM_WORKSPACE_STACK_ID);
- }
- }
- }
-
- /**
- * Helper function to place docked window(s) on the display according to an arrangement request.
- */
- private void placeDockTasks(int arrangement) {
- int createMode = ActivityManager.DOCKED_STACK_CREATE_MODE_TOP_OR_LEFT;
- switch (arrangement) {
- case PLACE_DOCK_LEFT:
- createMode = ActivityManager.DOCKED_STACK_CREATE_MODE_TOP_OR_LEFT;
- break;
- case PLACE_DOCK_TOP:
- createMode = ActivityManager.DOCKED_STACK_CREATE_MODE_TOP_OR_LEFT;
- break;
- case PLACE_DOCK_RIGHT:
- createMode = ActivityManager.DOCKED_STACK_CREATE_MODE_BOTTOM_OR_RIGHT;
- break;
- case PLACE_DOCK_BOTTOM:
- createMode = ActivityManager.DOCKED_STACK_CREATE_MODE_BOTTOM_OR_RIGHT;
- break;
- }
-
- // Dismiss the dialog before trying to launch the task
- dismissAllowingStateLoss();
-
- if (mTasks[0].key.stackId != DOCKED_STACK_ID) {
- int taskId = mTasks[0].key.id;
- SystemServicesProxy ssp = Recents.getSystemServices();
- ssp.startTaskInDockedMode(taskId, createMode);
- mRecentsView.launchTask(mTasks[0], null, DOCKED_STACK_ID);
- } else {
- Toast.makeText(getContext(), "Already docked", Toast.LENGTH_SHORT);
- }
- }
-
- @Override
- public Dialog onCreateDialog(Bundle args) {
- LayoutInflater inflater = getActivity().getLayoutInflater();
- AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
- createResizeTaskDialog(inflater, builder);
- return builder.create();
- }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/events/ui/ResizeTaskEvent.java b/packages/SystemUI/src/com/android/systemui/recents/events/activity/LaunchTaskEvent.java
similarity index 51%
rename from packages/SystemUI/src/com/android/systemui/recents/events/ui/ResizeTaskEvent.java
rename to packages/SystemUI/src/com/android/systemui/recents/events/activity/LaunchTaskEvent.java
index e0d83fd847bfe..457d81eecd7c9 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/events/ui/ResizeTaskEvent.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/events/activity/LaunchTaskEvent.java
@@ -14,19 +14,31 @@
* limitations under the License.
*/
-package com.android.systemui.recents.events.ui;
+package com.android.systemui.recents.events.activity;
+import android.graphics.Rect;
import com.android.systemui.recents.events.EventBus;
import com.android.systemui.recents.model.Task;
+import com.android.systemui.recents.views.TaskView;
/**
- * This is sent when a {@link Task} is resized.
+ * This is sent to launch a task from Recents.
*/
-public class ResizeTaskEvent extends EventBus.Event {
+public class LaunchTaskEvent extends EventBus.Event {
+ public final TaskView taskView;
public final Task task;
+ public final Rect targetTaskBounds;
+ public final int targetTaskStack;
+ public final boolean screenPinningRequested;
- public ResizeTaskEvent(Task task) {
+ public LaunchTaskEvent(TaskView taskView, Task task, Rect targetTaskBounds, int targetTaskStack,
+ boolean screenPinningRequested) {
+ this.taskView = taskView;
this.task = task;
+ this.targetTaskBounds = targetTaskBounds;
+ this.targetTaskStack = targetTaskStack;
+ this.screenPinningRequested = screenPinningRequested;
}
+
}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
index 8979843b49c7f..5888b30c514fe 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
@@ -65,7 +65,6 @@ import com.android.internal.app.AssistUtils;
import com.android.internal.os.BackgroundThread;
import com.android.systemui.Prefs;
import com.android.systemui.R;
-import com.android.systemui.recents.Recents;
import com.android.systemui.recents.RecentsDebugFlags;
import com.android.systemui.recents.RecentsImpl;
@@ -127,7 +126,7 @@ public class SystemServicesProxy {
mUm = UserManager.get(context);
mDisplay = mWm.getDefaultDisplay();
mRecentsPackage = context.getPackageName();
- mHasFreeformWorkspaceSupport = false &&
+ mHasFreeformWorkspaceSupport =
mPm.hasSystemFeature(PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT);
// Get the dummy thumbnail width/heights
diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/Task.java b/packages/SystemUI/src/com/android/systemui/recents/model/Task.java
index 512effab047ad..3aed3f3060975 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/model/Task.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/model/Task.java
@@ -39,7 +39,6 @@ public class Task {
public void onTaskDataLoaded();
/* Notifies when a task has been unbound */
public void onTaskDataUnloaded();
-
/* Notifies when a task's stack id has changed. */
public void onTaskStackIdChanged();
}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/AnimateableViewBounds.java b/packages/SystemUI/src/com/android/systemui/recents/views/AnimateableViewBounds.java
index f646a924cf08d..c0b8a9d23223d 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/AnimateableViewBounds.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/AnimateableViewBounds.java
@@ -55,7 +55,7 @@ public class AnimateableViewBounds extends ViewOutlineProvider {
* Resets the right and bottom clip for this view.
*/
public void reset() {
- mClipRect.setEmpty();
+ mClipRect.set(-1, -1, -1, -1);
updateClipBounds();
}
@@ -90,9 +90,9 @@ public class AnimateableViewBounds extends ViewOutlineProvider {
}
private void updateClipBounds() {
- mClipBounds.set(mClipRect.left, mClipRect.top,
- mSourceView.getWidth() - mClipRect.right,
- mSourceView.getHeight() - mClipRect.bottom);
+ mClipBounds.set(Math.max(0, mClipRect.left), Math.max(0, mClipRect.top),
+ mSourceView.getWidth() - Math.max(0, mClipRect.right),
+ mSourceView.getHeight() - Math.max(0, mClipRect.bottom));
mSourceView.setClipBounds(mClipBounds);
mSourceView.invalidateOutline();
}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
index addcc85d7f154..501cbc088f871 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
@@ -47,6 +47,7 @@ import com.android.systemui.recents.events.activity.DebugFlagsChangedEvent;
import com.android.systemui.recents.events.activity.DismissRecentsToHomeAnimationStarted;
import com.android.systemui.recents.events.activity.HideHistoryButtonEvent;
import com.android.systemui.recents.events.activity.HideHistoryEvent;
+import com.android.systemui.recents.events.activity.LaunchTaskEvent;
import com.android.systemui.recents.events.activity.ShowHistoryButtonEvent;
import com.android.systemui.recents.events.activity.ShowHistoryEvent;
import com.android.systemui.recents.events.component.RecentsVisibilityChangedEvent;
@@ -71,7 +72,7 @@ import static android.app.ActivityManager.StackId.INVALID_STACK_ID;
* This view is the the top level layout that contains TaskStacks (which are laid out according
* to their SpaceNode bounds.
*/
-public class RecentsView extends FrameLayout implements TaskStackView.TaskStackViewCallbacks {
+public class RecentsView extends FrameLayout {
private static final String TAG = "RecentsView";
private static final boolean DEBUG = false;
@@ -156,7 +157,6 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV
addView(mTaskStackView);
} else {
mTaskStackView = new TaskStackView(getContext(), stack);
- mTaskStackView.setCallbacks(this);
addView(mTaskStackView);
}
} else {
@@ -164,7 +164,6 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV
removeView(mTaskStackView);
}
mTaskStackView = new TaskStackView(getContext(), stack);
- mTaskStackView.setCallbacks(this);
addView(mTaskStackView);
}
@@ -223,8 +222,8 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV
Task task = mTaskStackView.getFocusedTask();
if (task != null) {
TaskView taskView = mTaskStackView.getChildViewForTask(task);
- onTaskViewClicked(mTaskStackView, taskView, stack, task, false, null,
- INVALID_STACK_ID);
+ EventBus.getDefault().send(new LaunchTaskEvent(taskView, task, null,
+ INVALID_STACK_ID, false));
return true;
}
}
@@ -238,8 +237,8 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV
Task task = stack.getLaunchTarget();
if (task != null) {
TaskView taskView = mTaskStackView.getChildViewForTask(task);
- onTaskViewClicked(mTaskStackView, taskView, stack, task, false, null,
- INVALID_STACK_ID);
+ EventBus.getDefault().send(new LaunchTaskEvent(taskView, task, null,
+ INVALID_STACK_ID, false));
return true;
}
}
@@ -256,8 +255,8 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV
for (int j = 0; j < taskViewCount; j++) {
TaskView tv = taskViews.get(j);
if (tv.getTask() == task) {
- onTaskViewClicked(mTaskStackView, tv, stack, task, false,
- taskBounds, destinationStack);
+ EventBus.getDefault().send(new LaunchTaskEvent(tv, task, taskBounds,
+ destinationStack, false));
return true;
}
}
@@ -491,19 +490,14 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV
return super.verifyDrawable(who);
}
- /**** TaskStackView.TaskStackCallbacks Implementation ****/
-
- @Override
- public void onTaskViewClicked(final TaskStackView stackView, final TaskView tv,
- final TaskStack stack, final Task task, final boolean lockToTask,
- final Rect bounds, int destinationStack) {
- mLastTaskLaunchedWasFreeform = task.isFreeformTask();
- mTransitionHelper.launchTaskFromRecents(stack, task, stackView, tv, lockToTask, bounds,
- destinationStack);
- }
-
/**** EventBus Events ****/
+ public final void onBusEvent(LaunchTaskEvent event) {
+ mLastTaskLaunchedWasFreeform = event.task.isFreeformTask();
+ mTransitionHelper.launchTaskFromRecents(mStack, event.task, mTaskStackView, event.taskView,
+ event.screenPinningRequested, event.targetTaskBounds, event.targetTaskStack);
+ }
+
public final void onBusEvent(DragStartEvent event) {
updateVisibleDockRegions(mTouchHandler.getDockStatesForCurrentOrientation(),
TaskStack.DockState.NONE.viewState.dockAreaAlpha);
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
index 404ac47deab98..61479bfdca618 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
@@ -51,6 +51,7 @@ import com.android.systemui.recents.events.activity.EnterRecentsWindowAnimationC
import com.android.systemui.recents.events.activity.HideHistoryButtonEvent;
import com.android.systemui.recents.events.activity.HideHistoryEvent;
import com.android.systemui.recents.events.activity.IterateRecentsEvent;
+import com.android.systemui.recents.events.activity.LaunchTaskEvent;
import com.android.systemui.recents.events.activity.PackagesChangedEvent;
import com.android.systemui.recents.events.activity.ShowHistoryButtonEvent;
import com.android.systemui.recents.events.activity.ShowHistoryEvent;
@@ -115,17 +116,10 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal
}
};
- /** The TaskView callbacks */
- interface TaskStackViewCallbacks {
- public void onTaskViewClicked(TaskStackView stackView, TaskView tv, TaskStack stack, Task t,
- boolean lockToTask, Rect bounds, int destinationStack);
- }
-
TaskStack mStack;
TaskStackLayoutAlgorithm mLayoutAlgorithm;
TaskStackViewScroller mStackScroller;
TaskStackViewTouchHandler mTouchHandler;
- TaskStackViewCallbacks mCb;
GradientDrawable mFreeformWorkspaceBackground;
ObjectAnimator mFreeformWorkspaceBackgroundAnimator;
ViewPool mViewPool;
@@ -223,11 +217,6 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal
}
}
- /** Sets the callbacks */
- void setCallbacks(TaskStackViewCallbacks cb) {
- mCb = cb;
- }
-
@Override
protected void onAttachedToWindow() {
SystemServicesProxy ssp = Recents.getSystemServices();
@@ -1205,7 +1194,8 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal
public boolean launchFreeformTasks() {
Task frontTask = mStack.getStackFrontMostTask();
if (frontTask != null && frontTask.isFreeformTask()) {
- onTaskViewClicked(getChildViewForTask(frontTask), frontTask, false);
+ EventBus.getDefault().send(new LaunchTaskEvent(getChildViewForTask(frontTask),
+ frontTask, null, INVALID_STACK_ID, false));
return true;
}
return false;
@@ -1375,16 +1365,6 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal
/**** TaskViewCallbacks Implementation ****/
- @Override
- public void onTaskViewClicked(TaskView tv, Task task, boolean lockToTask) {
- // Cancel any doze triggers
- mUIDozeTrigger.stopDozing();
-
- if (mCb != null) {
- mCb.onTaskViewClicked(this, tv, mStack, task, lockToTask, null, INVALID_STACK_ID);
- }
- }
-
@Override
public void onTaskViewClipStateChanged(TaskView tv) {
requestUpdateStackViewsClip();
@@ -1437,6 +1417,11 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal
}
}
+ public final void onBusEvent(LaunchTaskEvent event) {
+ // Cancel any doze triggers once a task is launched
+ mUIDozeTrigger.stopDozing();
+ }
+
public final void onBusEvent(DismissTaskViewEvent event) {
removeTaskViewFromStack(event.taskView);
}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
index 1e2227e3a77aa..ab51d5f268586 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
@@ -45,6 +45,7 @@ import com.android.systemui.recents.RecentsActivity;
import com.android.systemui.recents.RecentsActivityLaunchState;
import com.android.systemui.recents.RecentsConfiguration;
import com.android.systemui.recents.events.EventBus;
+import com.android.systemui.recents.events.activity.LaunchTaskEvent;
import com.android.systemui.recents.events.ui.DismissTaskViewEvent;
import com.android.systemui.recents.events.ui.dragndrop.DragEndEvent;
import com.android.systemui.recents.events.ui.dragndrop.DragStartEvent;
@@ -54,6 +55,8 @@ import com.android.systemui.recents.model.Task;
import com.android.systemui.recents.model.TaskStack;
import com.android.systemui.statusbar.phone.PhoneStatusBar;
+import static android.app.ActivityManager.StackId.INVALID_STACK_ID;
+
/* A task view */
public class TaskView extends FrameLayout implements Task.TaskCallbacks,
View.OnClickListener, View.OnLongClickListener {
@@ -63,8 +66,7 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
/** The TaskView callbacks */
interface TaskViewCallbacks {
- public void onTaskViewClicked(TaskView tv, Task task, boolean lockToTask);
- public void onTaskViewClipStateChanged(TaskView tv);
+ void onTaskViewClipStateChanged(TaskView tv);
}
float mTaskProgress;
@@ -278,7 +280,6 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
/** Resets this view's properties */
void resetViewProperties() {
setDim(0);
- setLayerType(View.LAYER_TYPE_NONE, null);
setVisibility(View.VISIBLE);
getViewBounds().reset();
TaskViewTransform.reset(this);
@@ -723,13 +724,14 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
@Override
public void onClick(final View v) {
+ boolean screenPinningRequested = false;
if (v == mActionButtonView) {
// Reset the translation of the action button before we animate it out
mActionButtonView.setTranslationZ(0f);
+ screenPinningRequested = true;
}
- if (mCb != null) {
- mCb.onTaskViewClicked(this, mTask, (v == mActionButtonView));
- }
+ EventBus.getDefault().send(new LaunchTaskEvent(this, mTask, null, INVALID_STACK_ID,
+ screenPinningRequested));
}
/**** View.OnLongClickListener Implementation ****/
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewHeader.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewHeader.java
index d8220fd16c285..0271ccd39b8da 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewHeader.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewHeader.java
@@ -16,25 +16,20 @@
package com.android.systemui.recents.views;
-import android.animation.ObjectAnimator;
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Canvas;
import android.graphics.Color;
-import android.graphics.Outline;
import android.graphics.Paint;
import android.graphics.PorterDuff;
-import android.graphics.PorterDuffColorFilter;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.RippleDrawable;
-import android.graphics.drawable.ShapeDrawable;
import android.util.AttributeSet;
import android.view.View;
-import android.view.ViewOutlineProvider;
import android.view.animation.AnimationUtils;
import android.view.animation.Interpolator;
import android.widget.FrameLayout;
@@ -45,12 +40,16 @@ import com.android.systemui.R;
import com.android.systemui.recents.Constants;
import com.android.systemui.recents.Recents;
import com.android.systemui.recents.events.EventBus;
-import com.android.systemui.recents.events.ui.ResizeTaskEvent;
+import com.android.systemui.recents.events.activity.LaunchTaskEvent;
import com.android.systemui.recents.events.ui.ShowApplicationInfoEvent;
import com.android.systemui.recents.misc.SystemServicesProxy;
import com.android.systemui.recents.misc.Utilities;
import com.android.systemui.recents.model.Task;
+import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID;
+import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID;
+import static android.app.ActivityManager.StackId.INVALID_STACK_ID;
+
/* The task bar view */
public class TaskViewHeader extends FrameLayout
@@ -63,6 +62,7 @@ public class TaskViewHeader extends FrameLayout
ImageView mDismissButton;
ImageView mApplicationIcon;
TextView mActivityDescription;
+ int mMoveTaskTargetStackId = INVALID_STACK_ID;
// Header drawables
Rect mTaskViewRect = new Rect();
@@ -157,23 +157,54 @@ public class TaskViewHeader extends FrameLayout
*/
public void onTaskViewSizeChanged(int width, int height) {
mTaskViewRect.set(0, 0, width, height);
- if (mDismissButton.getMeasuredWidth() > (width - mApplicationIcon.getMeasuredWidth())) {
- mDismissButton.setAlpha(0f);
- } else {
- mDismissButton.setAlpha(1f);
- if (mDismissButton != null) {
- mDismissButton.setTranslationX(width - getMeasuredWidth());
+ boolean updateMoveTaskButton = mMoveTaskButton.getVisibility() != View.GONE;
+ int appIconWidth = mApplicationIcon.getMeasuredWidth();
+ int activityDescWidth = mActivityDescription.getMeasuredWidth();
+ int dismissIconWidth = mDismissButton.getMeasuredWidth();
+ int moveTaskIconWidth = mMoveTaskButton.getVisibility() == View.VISIBLE
+ ? mMoveTaskButton.getMeasuredWidth()
+ : 0;
+
+ // Priority-wise, we show the activity icon first, the dismiss icon if there is room, the
+ // move-task icon if there is room, and then finally, the activity label if there is room
+ if (width < (appIconWidth + dismissIconWidth)) {
+ mActivityDescription.setVisibility(View.INVISIBLE);
+ if (updateMoveTaskButton) {
+ mMoveTaskButton.setVisibility(View.INVISIBLE);
}
- }
- if (mActivityDescription.getMeasuredWidth() > (width -
- (mApplicationIcon.getMeasuredWidth() + mDismissButton.getMeasuredWidth()))) {
- mActivityDescription.setAlpha(0f);
+ mDismissButton.setVisibility(View.INVISIBLE);
+ } else if (width < (appIconWidth + dismissIconWidth + moveTaskIconWidth)) {
+ mActivityDescription.setVisibility(View.INVISIBLE);
+ if (updateMoveTaskButton) {
+ mMoveTaskButton.setVisibility(View.INVISIBLE);
+ }
+ mDismissButton.setVisibility(View.VISIBLE);
+ } else if (width < (appIconWidth + dismissIconWidth + moveTaskIconWidth +
+ activityDescWidth)) {
+ mActivityDescription.setVisibility(View.INVISIBLE);
+ if (updateMoveTaskButton) {
+ mMoveTaskButton.setVisibility(View.VISIBLE);
+ }
+ mDismissButton.setVisibility(View.VISIBLE);
} else {
- mActivityDescription.setAlpha(1f);
+ mActivityDescription.setVisibility(View.VISIBLE);
+ if (updateMoveTaskButton) {
+ mMoveTaskButton.setVisibility(View.VISIBLE);
+ }
+ mDismissButton.setVisibility(View.VISIBLE);
}
+ if (updateMoveTaskButton) {
+ mMoveTaskButton.setTranslationX(width - getMeasuredWidth());
+ }
+ mDismissButton.setTranslationX(width - getMeasuredWidth());
invalidate();
}
+ @Override
+ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+ onTaskViewSizeChanged(mTaskViewRect.width(), mTaskViewRect.height());
+ }
+
@Override
protected void onDraw(Canvas canvas) {
// Draw the highlight at the top edge (but put the bottom edge just out of view)
@@ -197,6 +228,7 @@ public class TaskViewHeader extends FrameLayout
/** Binds the bar view to the task */
public void rebindToTask(Task t) {
+ SystemServicesProxy ssp = Recents.getSystemServices();
mTask = t;
// If an activity icon is defined, then we use that as the primary icon to show in the bar,
@@ -228,12 +260,26 @@ public class TaskViewHeader extends FrameLayout
mLightDismissDrawable : mDarkDismissDrawable);
mDismissButton.setContentDescription(String.format(mDismissContentDescription,
t.contentDescription));
- updateResizeTaskBarIcon(t);
- mMoveTaskButton.setVisibility(View.VISIBLE);
- mMoveTaskButton.setOnClickListener(this);
+
+ // When freeform workspaces are enabled, then update the move-task button depending on the
+ // current task
+ if (ssp.hasFreeformWorkspaceSupport()) {
+ if (t.isFreeformTask()) {
+ mMoveTaskTargetStackId = FULLSCREEN_WORKSPACE_STACK_ID;
+ mMoveTaskButton.setImageResource(t.useLightOnPrimaryColor
+ ? R.drawable.recents_move_task_fullscreen_light
+ : R.drawable.recents_move_task_fullscreen_dark);
+ } else {
+ mMoveTaskTargetStackId = FREEFORM_WORKSPACE_STACK_ID;
+ mMoveTaskButton.setImageResource(t.useLightOnPrimaryColor
+ ? R.drawable.recents_move_task_freeform_light
+ : R.drawable.recents_move_task_freeform_dark);
+ }
+ mMoveTaskButton.setVisibility(View.VISIBLE);
+ mMoveTaskButton.setOnClickListener(this);
+ }
// In accessibility, a single click on the focused app info button will show it
- SystemServicesProxy ssp = Recents.getSystemServices();
if (ssp.isTouchExplorationEnabled()) {
mApplicationIcon.setOnClickListener(this);
}
@@ -247,40 +293,6 @@ public class TaskViewHeader extends FrameLayout
mMoveTaskButton.setOnClickListener(null);
}
- /** Updates the resize task bar button. */
- void updateResizeTaskBarIcon(Task t) {
- SystemServicesProxy ssp = Recents.getSystemServices();
- Rect display = ssp.getWindowRect();
- Rect taskRect = ssp.getTaskBounds(t.key.id);
- int resId = R.drawable.star;
- if (display.equals(taskRect) || taskRect.isEmpty()) {
- resId = R.drawable.vector_drawable_place_fullscreen;
- } else {
- boolean top = display.top == taskRect.top;
- boolean bottom = display.bottom == taskRect.bottom;
- boolean left = display.left == taskRect.left;
- boolean right = display.right == taskRect.right;
- if (top && bottom && left) {
- resId = R.drawable.vector_drawable_place_left;
- } else if (top && bottom && right) {
- resId = R.drawable.vector_drawable_place_right;
- } else if (top && left && right) {
- resId = R.drawable.vector_drawable_place_top;
- } else if (bottom && left && right) {
- resId = R.drawable.vector_drawable_place_bottom;
- } else if (top && right) {
- resId = R.drawable.vector_drawable_place_top_right;
- } else if (top && left) {
- resId = R.drawable.vector_drawable_place_top_left;
- } else if (bottom && right) {
- resId = R.drawable.vector_drawable_place_bottom_right;
- } else if (bottom && left) {
- resId = R.drawable.vector_drawable_place_bottom_left;
- }
- }
- mMoveTaskButton.setImageResource(resId);
- }
-
/** Animates this task bar dismiss button when launching a task. */
void startLaunchTaskDismissAnimation(final Runnable postAnimationRunanble) {
if (mDismissButton.getVisibility() == View.VISIBLE) {
@@ -356,7 +368,12 @@ public class TaskViewHeader extends FrameLayout
MetricsLogger.histogram(getContext(), "overview_task_dismissed_source",
Constants.Metrics.DismissSourceHeaderButton);
} else if (v == mMoveTaskButton) {
- EventBus.getDefault().send(new ResizeTaskEvent(mTask));
+ TaskView tv = Utilities.findParent(this, TaskView.class);
+ Rect bounds = mMoveTaskTargetStackId == FREEFORM_WORKSPACE_STACK_ID
+ ? new Rect(mTaskViewRect)
+ : new Rect();
+ EventBus.getDefault().send(new LaunchTaskEvent(tv, mTask, bounds,
+ mMoveTaskTargetStackId, false));
}
}