Merge "Removing the debug header bar icon."
This commit is contained in:
@@ -19,6 +19,6 @@ Copyright (C) 2014 The Android Open Source Project
|
||||
android:viewportWidth="48.0"
|
||||
android:viewportHeight="48.0">
|
||||
<path
|
||||
android:fillColor="@color/recents_task_bar_dark_dismiss_color"
|
||||
android:fillColor="@color/recents_task_bar_dark_icon_color"
|
||||
android:pathData="M38.000000,12.800000l-2.799999,-2.800000 -11.200001,11.200001 -11.200000,-11.200001 -2.800000,2.800000 11.200001,11.200000 -11.200001,11.200001 2.800000,2.799999 11.200000,-11.200001 11.200001,11.200001 2.799999,-2.799999 -11.200001,-11.200001z"/>
|
||||
</vector>
|
||||
@@ -19,6 +19,6 @@ Copyright (C) 2014 The Android Open Source Project
|
||||
android:viewportWidth="48.0"
|
||||
android:viewportHeight="48.0">
|
||||
<path
|
||||
android:fillColor="@color/recents_task_bar_light_dismiss_color"
|
||||
android:fillColor="@color/recents_task_bar_light_icon_color"
|
||||
android:pathData="M38.000000,12.800000l-2.799999,-2.800000 -11.200001,11.200001 -11.200000,-11.200001 -2.800000,2.800000 11.200001,11.200000 -11.200001,11.200001 2.800000,2.799999 11.200000,-11.200001 11.200001,11.200001 2.799999,-2.799999 -11.200001,-11.200001z"/>
|
||||
</vector>
|
||||
@@ -19,6 +19,6 @@ Copyright (C) 2015 The Android Open Source Project
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:fillColor="@color/recents_task_bar_dark_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"/>
|
||||
</vector>
|
||||
@@ -19,6 +19,6 @@ Copyright (C) 2015 The Android Open Source Project
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M0.0,0.0l0.0,24.0l24.0,0.0L24.0,0.0L0.0,0.0zM4.0,10.0l16.0,0.0l0.0,10.0L4.0,20.0L4.0,10.0z"/>
|
||||
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"/>
|
||||
</vector>
|
||||
@@ -19,15 +19,15 @@ Copyright (C) 2015 The Android Open Source Project
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:fillColor="@color/recents_task_bar_dark_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"/>
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:fillColor="@color/recents_task_bar_dark_icon_color"
|
||||
android:pathData="M4.0,16.0l-4.0,0.0 0.0,8.0 8.0,0.0 0.0,-4.0 -4.0,0.0z"/>
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:fillColor="@color/recents_task_bar_dark_icon_color"
|
||||
android:pathData="M16.0,0.0l0.0,4.0 4.0,0.0 0.0,4.0 4.0,0.0 0.0,-8.0z"/>
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:fillColor="@color/recents_task_bar_dark_icon_color"
|
||||
android:pathData="M20.0,20.0l-4.0,0.0 0.0,4.0 8.0,0.0 0.0,-8.0 -4.0,0.0z"/>
|
||||
</vector>
|
||||
@@ -19,6 +19,15 @@ Copyright (C) 2015 The Android Open Source Project
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M24.0,24.0L24.0,0.0L0.0,0.0l0.0,24.0L24.0,24.0zM4.0,10.0l10.0,0.0l0.0,10.0L4.0,20.0L4.0,10.0z"/>
|
||||
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"/>
|
||||
<path
|
||||
android:fillColor="@color/recents_task_bar_light_icon_color"
|
||||
android:pathData="M4.0,16.0l-4.0,0.0 0.0,8.0 8.0,0.0 0.0,-4.0 -4.0,0.0z"/>
|
||||
<path
|
||||
android:fillColor="@color/recents_task_bar_light_icon_color"
|
||||
android:pathData="M16.0,0.0l0.0,4.0 4.0,0.0 0.0,4.0 4.0,0.0 0.0,-8.0z"/>
|
||||
<path
|
||||
android:fillColor="@color/recents_task_bar_light_icon_color"
|
||||
android:pathData="M20.0,20.0l-4.0,0.0 0.0,4.0 8.0,0.0 0.0,-8.0 -4.0,0.0z"/>
|
||||
</vector>
|
||||
@@ -1,24 +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.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24.0dp"
|
||||
android:height="24.0dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M24.0,24.0L24.0,0.0L0.0,0.0l0.0,24.0L24.0,24.0zM20.0,20.0L10.0,20.0L10.0,10.0l10.0,0.0L20.0,20.0z"/>
|
||||
</vector>
|
||||
@@ -1,24 +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.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24.0dp"
|
||||
android:height="24.0dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF0000FF"
|
||||
android:pathData="M0.0,0.0l0.0,24.0l24.0,0.0L24.0,0.0L0.0,0.0zM4.0,10.0l16.0,0.0l0.0,10.0L4.0,20.0L4.0,10.0z"/>
|
||||
</vector>
|
||||
@@ -1,24 +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.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24.0dp"
|
||||
android:height="24.0dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF0000FF"
|
||||
android:pathData="M24.0,0.0L0.0,0.0l0.0,24.0l24.0,0.0L24.0,0.0zM14.0,4.0l0.0,16.0L4.0,20.0L4.0,4.0L14.0,4.0z"/>
|
||||
</vector>
|
||||
@@ -1,24 +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.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24.0dp"
|
||||
android:height="24.0dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF0000FF"
|
||||
android:pathData="M0.0,24.0l24.0,0.0L24.0,0.0L0.0,0.0L0.0,24.0zM10.0,20.0L10.0,4.0l10.0,0.0l0.0,16.0L10.0,20.0z"/>
|
||||
</vector>
|
||||
@@ -1,24 +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.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24.0dp"
|
||||
android:height="24.0dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF0000FF"
|
||||
android:pathData="M24.0,24.0L24.0,0.0L0.0,0.0l0.0,24.0L24.0,24.0zM20.0,14.0L4.0,14.0L4.0,4.0l16.0,0.0L20.0,14.0z"/>
|
||||
</vector>
|
||||
@@ -1,24 +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.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24.0dp"
|
||||
android:height="24.0dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M24.0,0.0L0.0,0.0l0.0,24.0l24.0,0.0L24.0,0.0zM14.0,4.0l0.0,16.0L4.0,20.0L4.0,4.0L14.0,4.0z"/>
|
||||
</vector>
|
||||
@@ -1,24 +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.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24.0dp"
|
||||
android:height="24.0dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M0.0,24.0l24.0,0.0L24.0,0.0L0.0,0.0L0.0,24.0zM10.0,20.0L10.0,4.0l10.0,0.0l0.0,16.0L10.0,20.0z"/>
|
||||
</vector>
|
||||
@@ -1,24 +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.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24.0dp"
|
||||
android:height="24.0dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M24.0,24.0L24.0,0.0L0.0,0.0l0.0,24.0L24.0,24.0zM20.0,14.0L4.0,14.0L4.0,4.0l16.0,0.0L20.0,14.0z"/>
|
||||
</vector>
|
||||
@@ -1,24 +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.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24.0dp"
|
||||
android:height="24.0dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M0.0,0.0l0.0,24.0l24.0,0.0L24.0,0.0L0.0,0.0zM20.0,14.0L10.0,14.0L10.0,4.0l10.0,0.0L20.0,14.0z"/>
|
||||
</vector>
|
||||
@@ -1,65 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="16dp"
|
||||
android:orientation="vertical"
|
||||
android:descendantFocusability="beforeDescendants"
|
||||
android:focusableInTouchMode="true">
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
<Button
|
||||
android:id="@+id/place_dock_left"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_dock_left" />
|
||||
<Button
|
||||
android:id="@+id/place_dock_right"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_dock_right" />
|
||||
<Button
|
||||
android:id="@+id/place_left"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_left" />
|
||||
<Button
|
||||
android:id="@+id/place_right"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_right" />
|
||||
<Button
|
||||
android:id="@+id/place_full"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_fullscreen" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -1,65 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="16dp"
|
||||
android:orientation="vertical"
|
||||
android:descendantFocusability="beforeDescendants"
|
||||
android:focusableInTouchMode="true">
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
<Button
|
||||
android:id="@+id/place_dock_top"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_dock_top" />
|
||||
<Button
|
||||
android:id="@+id/place_dock_bottom"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_dock_bottom" />
|
||||
<Button
|
||||
android:id="@+id/place_top"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_top" />
|
||||
<Button
|
||||
android:id="@+id/place_bottom"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_bottom" />
|
||||
<Button
|
||||
android:id="@+id/place_full"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_fullscreen" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -1,93 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="16dp"
|
||||
android:orientation="vertical"
|
||||
android:descendantFocusability="beforeDescendants"
|
||||
android:focusableInTouchMode="true">
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
<Button
|
||||
android:id="@+id/place_dock_left"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_dock_left" />
|
||||
<Button
|
||||
android:id="@+id/place_dock_right"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_dock_right" />
|
||||
<Button
|
||||
android:id="@+id/place_left"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_left" />
|
||||
<Button
|
||||
android:id="@+id/place_right"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_right" />
|
||||
<Button
|
||||
android:id="@+id/place_top_left"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_top_left" />
|
||||
<Button
|
||||
android:id="@+id/place_top_right"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_top_right" />
|
||||
<Button
|
||||
android:id="@+id/place_bottom_left"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_bottom_left" />
|
||||
<Button
|
||||
android:id="@+id/place_bottom_right"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_bottom_right" />
|
||||
<Button
|
||||
android:id="@+id/place_full"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_fullscreen" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -1,93 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="16dp"
|
||||
android:orientation="vertical"
|
||||
android:descendantFocusability="beforeDescendants"
|
||||
android:focusableInTouchMode="true">
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
<Button
|
||||
android:id="@+id/place_dock_top"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_dock_top" />
|
||||
<Button
|
||||
android:id="@+id/place_dock_bottom"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_dock_bottom" />
|
||||
<Button
|
||||
android:id="@+id/place_top"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_top" />
|
||||
<Button
|
||||
android:id="@+id/place_bottom"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_bottom" />
|
||||
<Button
|
||||
android:id="@+id/place_top_left"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_top_left" />
|
||||
<Button
|
||||
android:id="@+id/place_top_right"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_top_right" />
|
||||
<Button
|
||||
android:id="@+id/place_bottom_left"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_bottom_left" />
|
||||
<Button
|
||||
android:id="@+id/place_bottom_right"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_bottom_right" />
|
||||
<Button
|
||||
android:id="@+id/place_full"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="10dp"
|
||||
android:background="@drawable/vector_drawable_place_fullscreen" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -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"
|
||||
|
||||
@@ -59,9 +59,9 @@
|
||||
<!-- The recents task bar dark text color to be drawn on top of light backgrounds. -->
|
||||
<color name="recents_task_bar_dark_text_color">#cc000000</color>
|
||||
<!-- The recents task bar light dismiss icon color to be drawn on top of dark backgrounds. -->
|
||||
<color name="recents_task_bar_light_dismiss_color">#ffeeeeee</color>
|
||||
<color name="recents_task_bar_light_icon_color">#ffeeeeee</color>
|
||||
<!-- The recents task bar dark dismiss icon color to be drawn on top of light backgrounds. -->
|
||||
<color name="recents_task_bar_dark_dismiss_color">#99000000</color>
|
||||
<color name="recents_task_bar_dark_icon_color">#99000000</color>
|
||||
<!-- The recents task bar highlight color. -->
|
||||
<color name="recents_task_bar_highlight_color">#28ffffff</color>
|
||||
<!-- The lock to task button background color. -->
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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<TaskView, Task> 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);
|
||||
}
|
||||
|
||||
@@ -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 ****/
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user