diff options
author | Winson Chung <winsonc@google.com> | 2014-01-15 14:31:59 -0800 |
---|---|---|
committer | Winson Chung <winsonc@google.com> | 2014-01-16 14:26:07 -0800 |
commit | 205cd7727f3bd8b65892c580e6f243464878fe6e (patch) | |
tree | 603e323173787cae0bf5c4d882b73265c00bd904 | |
parent | 230cbf831cbbe8aaa6eaff976f755a8adf5e1708 (diff) | |
download | packages_apps_Trebuchet-205cd7727f3bd8b65892c580e6f243464878fe6e.tar.gz packages_apps_Trebuchet-205cd7727f3bd8b65892c580e6f243464878fe6e.tar.bz2 packages_apps_Trebuchet-205cd7727f3bd8b65892c580e6f243464878fe6e.zip |
Updating Tablet clings. (Bug 11973614)
Change-Id: I6cb10424a345691d50c4fac7969e0b97bbee4b3c
24 files changed, 888 insertions, 233 deletions
diff --git a/res/layout-land/folder_cling.xml b/res/layout-land/folder_cling.xml index 86286d71b..5dd372973 100644 --- a/res/layout-land/folder_cling.xml +++ b/res/layout-land/folder_cling.xml @@ -16,7 +16,7 @@ <com.android.launcher3.Cling xmlns:android="http://schemas.android.com/apk/res/android" xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3" - launcher:drawIdentifier="folder_portrait"> + launcher:drawIdentifier="folder_landscape"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" @@ -25,6 +25,7 @@ android:layout_marginTop="10dp" android:layout_marginBottom="10dp"> <LinearLayout + android:id="@+id/folder_bubble" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> @@ -59,6 +60,6 @@ android:id="@+id/cling_dismiss" android:layout_marginBottom="15dp" android:layout_marginEnd="20dp" - android:layout_gravity="bottom|end" + android:layout_gravity="bottom|right" android:onClick="dismissFolderCling" /> </com.android.launcher3.Cling> diff --git a/res/layout-land/launcher.xml b/res/layout-land/launcher.xml index 2880c18bf..779160925 100644 --- a/res/layout-land/launcher.xml +++ b/res/layout-land/launcher.xml @@ -65,12 +65,21 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" /> + <include layout="@layout/migration_cling" + android:id="@+id/migration_cling" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:visibility="gone" /> + <include layout="@layout/migration_workspace_cling" + android:id="@+id/migration_workspace_cling" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:visibility="gone" /> <include layout="@layout/workspace_cling" android:id="@+id/workspace_cling" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" /> - <include layout="@layout/folder_cling" android:id="@+id/folder_cling" android:layout_width="match_parent" diff --git a/res/layout-land/migration_workspace_cling.xml b/res/layout-land/migration_workspace_cling.xml index bf7075b3d..2d7194075 100644 --- a/res/layout-land/migration_workspace_cling.xml +++ b/res/layout-land/migration_workspace_cling.xml @@ -19,25 +19,26 @@ android:layout_width="match_parent" android:layout_height="match_parent" launcher:drawIdentifier="migration_workspace_landscape"> - <FrameLayout + <LinearLayout android:id="@+id/content" - android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_width="400dp" + android:layout_height="wrap_content" + android:layout_gravity="end|center_vertical" + android:paddingEnd="60dp" + android:orientation="vertical"> <LinearLayout android:id="@+id/migration_workspace_cling_bubble" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_gravity="bottom" - android:layout_marginStart="25dp" - android:layout_marginEnd="25dp" - android:orientation="vertical"> + android:orientation="horizontal"> <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginRight="4dp" android:paddingLeft="20dp" android:paddingRight="20dp" android:paddingTop="20dp" android:paddingBottom="20dp" - android:layout_width="match_parent" - android:layout_height="wrap_content" android:orientation="vertical" android:background="@drawable/cling"> <TextView @@ -54,17 +55,15 @@ <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:src="@drawable/cling_arrow_down" /> + android:layout_gravity="center_vertical" + android:src="@drawable/cling_arrow_end" /> </LinearLayout> - <Button style="@style/ClingButton" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginBottom="15dp" - android:layout_marginRight="20dp" - android:layout_gravity="bottom|right" + android:layout_marginTop="5dp" + android:layout_gravity="right" android:onClick="dismissMigrationWorkspaceCling" /> - </FrameLayout> + </LinearLayout> </com.android.launcher3.Cling> diff --git a/res/layout-land/workspace_cling.xml b/res/layout-land/workspace_cling.xml index db33db06f..d3b07d74d 100644 --- a/res/layout-land/workspace_cling.xml +++ b/res/layout-land/workspace_cling.xml @@ -18,24 +18,20 @@ xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3" android:layout_width="match_parent" android:layout_height="match_parent" - launcher:drawIdentifier="workspace_portrait"> + launcher:drawIdentifier="workspace_landscape"> <FrameLayout android:id="@+id/content" android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_marginStart="25dp" - android:layout_marginEnd="25dp" - android:layout_marginTop="310dp"> + android:layout_height="match_parent"> <LinearLayout + android:id="@+id/workspace_cling_bubble" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="top" + android:layout_marginStart="25dp" + android:layout_marginEnd="25dp" + android:layout_marginTop="30dp" android:orientation="vertical"> - <ImageView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:src="@drawable/cling_arrow_up" /> <LinearLayout android:paddingLeft="20dp" android:paddingRight="20dp" @@ -56,14 +52,57 @@ android:layout_height="wrap_content" android:text="@string/workspace_cling_move_item" /> </LinearLayout> + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:src="@drawable/cling_arrow_down" /> + </LinearLayout> + + <LinearLayout + android:id="@+id/focused_hotseat_app_bubble" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="bottom|left" + android:layout_marginLeft="25dp" + android:layout_marginBottom="90dp" + android:orientation="vertical" + android:visibility="gone"> + <LinearLayout + android:paddingLeft="20dp" + android:paddingRight="20dp" + android:paddingTop="20dp" + android:paddingBottom="20dp" + android:layout_width="240dp" + android:layout_height="wrap_content" + android:orientation="vertical" + android:background="@drawable/cling"> + <TextView + android:id="@+id/focused_hotseat_app_title" + style="@style/ClingTitleText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" /> + <TextView + android:id="@+id/focused_hotseat_app_description" + style="@style/ClingText" + android:layout_width="match_parent" + android:layout_height="wrap_content" /> + </LinearLayout> + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="left" + android:layout_marginLeft="78dp" + android:src="@drawable/cling_arrow_down" /> </LinearLayout> </FrameLayout> + <Button style="@style/ClingButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="15dp" - android:layout_marginEnd="20dp" - android:layout_gravity="bottom|end" + android:layout_marginRight="20dp" + android:layout_gravity="bottom|right" android:onClick="dismissWorkspaceCling" /> </com.android.launcher3.Cling> diff --git a/res/layout-port/folder_cling.xml b/res/layout-port/folder_cling.xml index 86286d71b..1a1b11fce 100644 --- a/res/layout-port/folder_cling.xml +++ b/res/layout-port/folder_cling.xml @@ -25,6 +25,7 @@ android:layout_marginTop="10dp" android:layout_marginBottom="10dp"> <LinearLayout + android:id="@+id/folder_bubble" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> @@ -59,6 +60,6 @@ android:id="@+id/cling_dismiss" android:layout_marginBottom="15dp" android:layout_marginEnd="20dp" - android:layout_gravity="bottom|end" + android:layout_gravity="bottom|right" android:onClick="dismissFolderCling" /> </com.android.launcher3.Cling> diff --git a/res/layout-port/migration_workspace_cling.xml b/res/layout-port/migration_workspace_cling.xml index bc5e22ff1..576bb41f2 100644 --- a/res/layout-port/migration_workspace_cling.xml +++ b/res/layout-port/migration_workspace_cling.xml @@ -63,7 +63,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="15dp" - android:layout_marginRight="20dp" + android:layout_marginEnd="20dp" android:layout_gravity="bottom|right" android:onClick="dismissMigrationWorkspaceCling" /> </FrameLayout> diff --git a/res/layout-port/workspace_cling.xml b/res/layout-port/workspace_cling.xml index b926ca967..624568668 100644 --- a/res/layout-port/workspace_cling.xml +++ b/res/layout-port/workspace_cling.xml @@ -24,6 +24,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout + android:id="@+id/workspace_cling_bubble" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="top" diff --git a/res/layout-sw600dp-port/first_run_cling.xml b/res/layout-sw600dp-port/first_run_cling.xml new file mode 100644 index 000000000..d80c084ab --- /dev/null +++ b/res/layout-sw600dp-port/first_run_cling.xml @@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 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. +--> +<com.android.launcher3.Cling + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3" + android:layout_width="match_parent" + android:layout_height="match_parent" + launcher:drawIdentifier="first_run_portrait"> + <FrameLayout + android:id="@+id/content" + android:layout_width="match_parent" + android:layout_height="match_parent"> + <LinearLayout + android:id="@+id/bubble_content" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:layout_marginLeft="100dp" + android:layout_marginRight="100dp" + android:orientation="vertical"> + <TextView + style="@style/ClingAltTitleText" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_marginBottom="10dp" + android:text="@string/first_run_cling_title" + android:textColor="#FFFFFFFF" + android:gravity="center" /> + <TextView + style="@style/ClingAltText" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:text="@string/first_run_cling_description" + android:textColor="#80000000" + android:gravity="center" /> + </LinearLayout> + <TextView + style="@style/ClingHintText" + android:id="@+id/search_bar_hint" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="top|end" + android:layout_marginEnd="30dp" + android:layout_marginTop="80dp" + android:gravity="center_horizontal" + android:maxWidth="160dp" + android:visibility="gone" + android:drawableTop="@drawable/cling_arrow_up" + android:drawablePadding="10dp" + android:text="@string/first_run_cling_search_bar_hint" /> + <TextView + style="@style/ClingHintText" + android:id="@+id/custom_content_hint" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="top|start" + android:layout_marginStart="30dp" + android:layout_marginTop="120dp" + android:gravity="start" + android:maxWidth="160dp" + android:visibility="gone" + android:drawableStart="@drawable/cling_arrow_start" + android:drawablePadding="10dp" + android:text="@string/first_run_cling_custom_content_hint" /> + <TextView + style="@style/ClingHintText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="bottom|end" + android:layout_marginEnd="30dp" + android:layout_marginBottom="120dp" + android:maxWidth="180dp" + android:drawableEnd="@drawable/cling_arrow_end" + android:drawablePadding="10dp" + android:text="@string/first_run_cling_create_screens_hint" /> + </FrameLayout> + <Button + style="@style/ClingButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="30dp" + android:layout_marginEnd="30dp" + android:layout_gravity="bottom|end" + android:onClick="dismissFirstRunCling" /> +</com.android.launcher3.Cling> diff --git a/res/layout-sw600dp-port/folder_cling.xml b/res/layout-sw600dp-port/folder_cling.xml deleted file mode 100644 index 87086cb62..000000000 --- a/res/layout-sw600dp-port/folder_cling.xml +++ /dev/null @@ -1,51 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2011 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. ---> -<com.android.launcher3.Cling - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3" - launcher:drawIdentifier="folder_portrait"> - <FrameLayout - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_marginStart="20dp" - android:layout_marginEnd="10dp" - android:layout_marginTop="@dimen/folderClingMarginTop"> - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical"> - <TextView - style="@style/ClingTitleText" - android:id="@+id/folder_cling_title" - android:text="@string/folder_cling_title" /> - <TextView - style="@style/ClingText" - android:id="@+id/folder_cling_create_folder" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="@string/folder_cling_create_folder" /> - </LinearLayout> - </FrameLayout> - <Button - style="@style/ClingButton" - android:id="@+id/cling_dismiss" - android:minWidth="168dp" - android:textSize="24sp" - android:layout_marginBottom="27dp" - android:layout_marginEnd="36dp" - android:layout_gravity="bottom|end" - android:onClick="dismissFolderCling" /> -</com.android.launcher3.Cling> diff --git a/res/layout-sw600dp-port/migration_workspace_cling.xml b/res/layout-sw600dp-port/migration_workspace_cling.xml new file mode 100644 index 000000000..eb13137a1 --- /dev/null +++ b/res/layout-sw600dp-port/migration_workspace_cling.xml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 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. +--> +<com.android.launcher3.Cling + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3" + android:layout_width="match_parent" + android:layout_height="match_parent" + launcher:drawIdentifier="migration_workspace_large_portrait"> + <FrameLayout + android:id="@+id/content" + android:layout_width="480dp" + android:layout_height="match_parent" + android:layout_gravity="bottom|center_horizontal"> + <LinearLayout + android:id="@+id/migration_workspace_cling_bubble" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="bottom" + android:layout_marginStart="25dp" + android:layout_marginEnd="25dp" + android:orientation="vertical"> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginRight="4dp" + android:paddingLeft="20dp" + android:paddingRight="20dp" + android:paddingTop="20dp" + android:paddingBottom="20dp" + android:orientation="vertical" + android:background="@drawable/cling"> + <TextView + style="@style/ClingTitleText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/workspace_cling_title" /> + <TextView + style="@style/ClingText" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/workspace_cling_move_item" /> + </LinearLayout> + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:src="@drawable/cling_arrow_down" /> + <Button + style="@style/ClingButton" + android:id="@+id/dismiss_migration_workspace_cling_button" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="right" + android:onClick="dismissMigrationWorkspaceCling" /> + </LinearLayout> + </FrameLayout> +</com.android.launcher3.Cling> diff --git a/res/layout-sw600dp/first_run_cling.xml b/res/layout-sw600dp/first_run_cling.xml new file mode 100644 index 000000000..295765b6e --- /dev/null +++ b/res/layout-sw600dp/first_run_cling.xml @@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 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. +--> +<com.android.launcher3.Cling + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3" + android:layout_width="match_parent" + android:layout_height="match_parent" + launcher:drawIdentifier="first_run_landscape"> + <FrameLayout + android:id="@+id/content" + android:layout_width="match_parent" + android:layout_height="match_parent"> + <LinearLayout + android:id="@+id/bubble_content" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:layout_marginLeft="100dp" + android:layout_marginRight="100dp" + android:orientation="vertical"> + <TextView + style="@style/ClingAltTitleText" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_marginBottom="10dp" + android:text="@string/first_run_cling_title" + android:textColor="#FFFFFFFF" + android:gravity="center" /> + <TextView + style="@style/ClingAltText" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:text="@string/first_run_cling_description" + android:textColor="#80000000" + android:gravity="center" /> + </LinearLayout> + <TextView + style="@style/ClingHintText" + android:id="@+id/search_bar_hint" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="top|start" + android:layout_marginStart="60dp" + android:layout_marginTop="105dp" + android:gravity="start" + android:maxWidth="160dp" + android:visibility="gone" + android:drawableStart="@drawable/cling_arrow_start" + android:drawablePadding="10dp" + android:text="@string/first_run_cling_search_bar_hint" /> + <TextView + style="@style/ClingHintText" + android:id="@+id/custom_content_hint" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="top|start" + android:layout_marginStart="60dp" + android:layout_marginTop="200dp" + android:gravity="start" + android:maxWidth="160dp" + android:visibility="gone" + android:drawableStart="@drawable/cling_arrow_start" + android:drawablePadding="10dp" + android:text="@string/first_run_cling_custom_content_hint" /> + <TextView + style="@style/ClingHintText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="bottom|end" + android:layout_marginEnd="30dp" + android:layout_marginBottom="120dp" + android:maxWidth="180dp" + android:drawableEnd="@drawable/cling_arrow_end" + android:drawablePadding="10dp" + android:text="@string/first_run_cling_create_screens_hint" /> + </FrameLayout> + <Button + style="@style/ClingButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="30dp" + android:layout_marginEnd="30dp" + android:layout_gravity="bottom|end" + android:onClick="dismissFirstRunCling" /> +</com.android.launcher3.Cling> diff --git a/res/layout-sw600dp/folder_cling.xml b/res/layout-sw600dp/folder_cling.xml new file mode 100644 index 000000000..f21aef4e4 --- /dev/null +++ b/res/layout-sw600dp/folder_cling.xml @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 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. +--> +<com.android.launcher3.Cling + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3" + launcher:drawIdentifier="folder_large"> + <LinearLayout + android:id="@+id/folder_bubble" + android:layout_width="300dp" + android:layout_height="match_parent" + android:layout_gravity="left|top" + android:paddingTop="28dp" + android:paddingRight="10dp" + android:orientation="vertical"> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"> + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:src="@drawable/cling_arrow_start" /> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginRight="4dp" + android:paddingLeft="20dp" + android:paddingRight="20dp" + android:paddingTop="20dp" + android:paddingBottom="20dp" + android:orientation="vertical" + android:background="@drawable/cling"> + <TextView + style="@style/ClingTitleText" + android:id="@+id/folder_cling_title" + android:text="@string/folder_cling_title" /> + <TextView + style="@style/ClingText" + android:id="@+id/folder_cling_create_folder" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/folder_cling_create_folder" /> + </LinearLayout> + </LinearLayout> + <Button + style="@style/ClingButton" + android:id="@+id/cling_dismiss" + android:layout_marginTop="5dp" + android:layout_gravity="right" + android:onClick="dismissFolderCling" /> + </LinearLayout> +</com.android.launcher3.Cling> diff --git a/res/layout-sw600dp/migration_cling.xml b/res/layout-sw600dp/migration_cling.xml new file mode 100644 index 000000000..19def6a56 --- /dev/null +++ b/res/layout-sw600dp/migration_cling.xml @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 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. +--> +<com.android.launcher3.Cling + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3" + android:layout_width="match_parent" + android:layout_height="match_parent" + launcher:drawIdentifier="migration_portrait"> + <LinearLayout + android:id="@+id/content" + android:layout_width="360dp" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:orientation="vertical"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="top" + android:layout_marginBottom="15dp" + android:orientation="vertical"> + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center" + android:text="@string/first_run_cling_title" + android:textSize="42dp" + android:textColor="#FFffffff" /> + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="10dp" + android:layout_marginBottom="0dp" + android:layout_gravity="center_horizontal" + android:src="@drawable/on_boarding_welcome" /> + + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:src="@drawable/cling_arrow_up" /> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="4dp" + android:layout_marginRight="4dp" + android:paddingLeft="25dp" + android:paddingRight="25dp" + android:paddingTop="20dp" + android:paddingBottom="20dp" + android:orientation="vertical" + android:background="@drawable/cling"> + <TextView + style="@style/ClingTitleText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/migration_cling_title" /> + <TextView + style="@style/ClingText" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/migration_cling_description" /> + </LinearLayout> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="bottom" + android:orientation="vertical"> + <Button + style="@style/ClingButton" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/migration_cling_copy_apps" + android:onClick="dismissMigrationClingCopyApps" /> + <Button + style="@style/ClingButton" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/migration_cling_use_default" + android:onClick="dismissMigrationClingUseDefault" /> + </LinearLayout> + </LinearLayout> +</com.android.launcher3.Cling> diff --git a/res/layout-sw600dp/workspace_cling.xml b/res/layout-sw600dp/workspace_cling.xml new file mode 100644 index 000000000..63b5522ca --- /dev/null +++ b/res/layout-sw600dp/workspace_cling.xml @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 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. +--> +<com.android.launcher3.Cling + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3" + android:layout_width="match_parent" + android:layout_height="match_parent" + launcher:drawIdentifier="workspace_large"> + <FrameLayout + android:id="@+id/content" + android:layout_width="match_parent" + android:layout_height="match_parent"> + <LinearLayout + android:id="@+id/workspace_cling_bubble" + android:layout_width="400dp" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal|bottom" + android:orientation="vertical"> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingLeft="20dp" + android:paddingRight="20dp" + android:paddingTop="20dp" + android:paddingBottom="20dp" + android:orientation="vertical" + android:background="@drawable/cling"> + <TextView + style="@style/ClingTitleText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/workspace_cling_title" /> + <TextView + style="@style/ClingText" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/workspace_cling_move_item" /> + </LinearLayout> + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:src="@drawable/cling_arrow_down" /> + <Button + style="@style/ClingButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="right" + android:onClick="dismissWorkspaceCling" /> + </LinearLayout> + </FrameLayout> +</com.android.launcher3.Cling> diff --git a/res/layout-sw720dp-port/folder_cling.xml b/res/layout-sw720dp-port/folder_cling.xml deleted file mode 100644 index 40d4e20a5..000000000 --- a/res/layout-sw720dp-port/folder_cling.xml +++ /dev/null @@ -1,46 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2011 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. ---> -<com.android.launcher3.Cling - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3" - launcher:drawIdentifier="folder_large"> - <FrameLayout - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_marginStart="@dimen/cling_text_block_offset_x" - android:layout_marginTop="@dimen/cling_text_block_offset_y"> - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical"> - <TextView - style="@style/ClingTitleText" - android:id="@+id/folder_cling_title" - android:text="@string/folder_cling_title" /> - <TextView - style="@style/ClingText" - android:id="@+id/folder_cling_create_folder" - android:layout_width="480dp" - android:layout_height="wrap_content" - android:text="@string/folder_cling_create_folder" /> - <Button - style="@style/ClingButton" - android:id="@+id/cling_dismiss" - android:layout_marginTop="15dp" - android:onClick="dismissFolderCling" /> - </LinearLayout> - </FrameLayout> -</com.android.launcher3.Cling> diff --git a/res/layout-sw720dp/first_run_cling.xml b/res/layout-sw720dp/first_run_cling.xml new file mode 100644 index 000000000..c43d8d32e --- /dev/null +++ b/res/layout-sw720dp/first_run_cling.xml @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 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. +--> +<com.android.launcher3.Cling + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3" + android:layout_width="match_parent" + android:layout_height="match_parent" + launcher:drawIdentifier="first_run_portrait"> + <FrameLayout + android:id="@+id/content" + android:layout_width="match_parent" + android:layout_height="match_parent"> + <LinearLayout + android:id="@+id/bubble_content" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:layout_marginLeft="100dp" + android:layout_marginRight="100dp" + android:orientation="vertical"> + <TextView + style="@style/ClingAltTitleText" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_marginBottom="10dp" + android:text="@string/first_run_cling_title" + android:textColor="#FFFFFFFF" + android:gravity="center" /> + <TextView + style="@style/ClingAltText" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:text="@string/first_run_cling_description" + android:textColor="#80000000" + android:gravity="center" /> + </LinearLayout> + <TextView + style="@style/ClingHintText" + android:id="@+id/search_bar_hint" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="top|end" + android:layout_marginEnd="120dp" + android:layout_marginTop="80dp" + android:gravity="center_horizontal" + android:maxWidth="160dp" + android:visibility="gone" + android:drawableTop="@drawable/cling_arrow_up" + android:drawablePadding="10dp" + android:text="@string/first_run_cling_search_bar_hint" /> + <TextView + style="@style/ClingHintText" + android:id="@+id/custom_content_hint" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical|start" + android:layout_marginStart="30dp" + android:gravity="start" + android:maxWidth="160dp" + android:visibility="gone" + android:drawableStart="@drawable/cling_arrow_start" + android:drawablePadding="10dp" + android:text="@string/first_run_cling_custom_content_hint" /> + <TextView + style="@style/ClingHintText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical|end" + android:layout_marginEnd="30dp" + android:maxWidth="180dp" + android:drawableEnd="@drawable/cling_arrow_end" + android:drawablePadding="10dp" + android:text="@string/first_run_cling_create_screens_hint" /> + </FrameLayout> + <Button + style="@style/ClingButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="30dp" + android:layout_marginEnd="40dp" + android:layout_gravity="bottom|end" + android:onClick="dismissFirstRunCling" /> +</com.android.launcher3.Cling> diff --git a/res/layout-sw720dp/launcher.xml b/res/layout-sw720dp/launcher.xml index 64b0fa0d6..685d03c6f 100644 --- a/res/layout-sw720dp/launcher.xml +++ b/res/layout-sw720dp/launcher.xml @@ -64,17 +64,31 @@ <!-- The Workspace cling must appear under the AppsCustomizePagedView below to ensure that it is still visible during the transition to AllApps and doesn't overlay on top of that view. --> + <com.android.launcher3.ScrimView + android:id="@+id/cling_scrim" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:visibility="gone" /> <include layout="@layout/first_run_cling" android:id="@+id/first_run_cling" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" /> + <include layout="@layout/migration_cling" + android:id="@+id/migration_cling" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:visibility="gone" /> + <include layout="@layout/migration_workspace_cling" + android:id="@+id/migration_workspace_cling" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:visibility="gone" /> <include layout="@layout/workspace_cling" android:id="@+id/workspace_cling" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" /> - <include layout="@layout/folder_cling" android:id="@+id/folder_cling" android:layout_width="match_parent" diff --git a/res/layout-sw720dp/migration_workspace_cling.xml b/res/layout-sw720dp/migration_workspace_cling.xml new file mode 100644 index 000000000..eb13137a1 --- /dev/null +++ b/res/layout-sw720dp/migration_workspace_cling.xml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 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. +--> +<com.android.launcher3.Cling + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3" + android:layout_width="match_parent" + android:layout_height="match_parent" + launcher:drawIdentifier="migration_workspace_large_portrait"> + <FrameLayout + android:id="@+id/content" + android:layout_width="480dp" + android:layout_height="match_parent" + android:layout_gravity="bottom|center_horizontal"> + <LinearLayout + android:id="@+id/migration_workspace_cling_bubble" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="bottom" + android:layout_marginStart="25dp" + android:layout_marginEnd="25dp" + android:orientation="vertical"> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginRight="4dp" + android:paddingLeft="20dp" + android:paddingRight="20dp" + android:paddingTop="20dp" + android:paddingBottom="20dp" + android:orientation="vertical" + android:background="@drawable/cling"> + <TextView + style="@style/ClingTitleText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/workspace_cling_title" /> + <TextView + style="@style/ClingText" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/workspace_cling_move_item" /> + </LinearLayout> + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:src="@drawable/cling_arrow_down" /> + <Button + style="@style/ClingButton" + android:id="@+id/dismiss_migration_workspace_cling_button" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="right" + android:onClick="dismissMigrationWorkspaceCling" /> + </LinearLayout> + </FrameLayout> +</com.android.launcher3.Cling> diff --git a/res/values-sw600dp/styles.xml b/res/values-sw600dp/styles.xml index 200c0a0bd..bcbbafdbb 100644 --- a/res/values-sw600dp/styles.xml +++ b/res/values-sw600dp/styles.xml @@ -18,33 +18,4 @@ --> <resources> - <style name="ClingButton"> - <item name="android:layout_width">wrap_content</item> - <item name="android:layout_height">wrap_content</item> - <item name="android:paddingTop">10dp</item> - <item name="android:paddingBottom">15dp</item> - <item name="android:paddingLeft">35dp</item> - <item name="android:paddingRight">35dp</item> - <item name="android:text">@string/cling_dismiss</item> - <item name="android:textStyle">bold</item> - <item name="android:background">@drawable/cling_button_bg</item> - </style> - <style name="ClingTitleText"> - <item name="android:layout_width">wrap_content</item> - <item name="android:layout_height">wrap_content</item> - <item name="android:layout_marginBottom">5dp</item> - <item name="android:textSize">30sp</item> - <item name="android:textColor">#33B5E5</item> - <item name="android:shadowColor">#000000</item> - <item name="android:shadowDy">2</item> - <item name="android:shadowRadius">2.0</item> - </style> - <style name="ClingText"> - <item name="android:textSize">22sp</item> - <item name="android:textColor">#FFFFFF</item> - <item name="android:shadowColor">#000000</item> - <item name="android:shadowDy">2</item> - <item name="android:shadowRadius">2.0</item> - <item name="android:lineSpacingMultiplier">1.1</item> - </style> </resources> diff --git a/res/values-sw720dp/styles.xml b/res/values-sw720dp/styles.xml index 507af1d16..71f030400 100644 --- a/res/values-sw720dp/styles.xml +++ b/res/values-sw720dp/styles.xml @@ -18,38 +18,6 @@ --> <resources> -<!-- Clings --> - <style name="ClingButton"> - <item name="android:layout_width">wrap_content</item> - <item name="android:layout_height">wrap_content</item> - <item name="android:paddingTop">10dp</item> - <item name="android:paddingBottom">15dp</item> - <item name="android:paddingLeft">35dp</item> - <item name="android:paddingRight">35dp</item> - <item name="android:text">@string/cling_dismiss</item> - <item name="android:textSize">20sp</item> - <item name="android:textStyle">bold</item> - <item name="android:background">@drawable/cling_button_bg</item> - </style> - <style name="ClingTitleText"> - <item name="android:layout_width">wrap_content</item> - <item name="android:layout_height">wrap_content</item> - <item name="android:layout_marginBottom">5dp</item> - <item name="android:textSize">32sp</item> - <item name="android:textColor">#49C0EC</item> - <item name="android:shadowColor">#000000</item> - <item name="android:shadowDy">2</item> - <item name="android:shadowRadius">2.0</item> - </style> - <style name="ClingText"> - <item name="android:textSize">22sp</item> - <item name="android:textColor">#FFFFFF</item> - <item name="android:shadowColor">#000000</item> - <item name="android:shadowDy">2</item> - <item name="android:shadowRadius">2.0</item> - <item name="android:lineSpacingMultiplier">1.1</item> - </style> - <!-- Workspace --> <style name="TabIndicator.AppsCustomize"> <item name="android:paddingLeft">32dp</item> diff --git a/src/com/android/launcher3/Cling.java b/src/com/android/launcher3/Cling.java index 185b49b08..a6139ccbc 100644 --- a/src/com/android/launcher3/Cling.java +++ b/src/com/android/launcher3/Cling.java @@ -30,6 +30,7 @@ import android.util.DisplayMetrics; import android.view.FocusFinder; import android.view.MotionEvent; import android.view.View; +import android.view.ViewGroup; import android.view.animation.AccelerateInterpolator; import android.widget.FrameLayout; import android.widget.TextView; @@ -49,6 +50,7 @@ public class Cling extends FrameLayout implements Insettable, View.OnClickListen private static String MIGRATION_LANDSCAPE = "migration_landscape"; private static String MIGRATION_WORKSPACE_PORTRAIT = "migration_workspace_portrait"; + private static String MIGRATION_WORKSPACE_LARGE_PORTRAIT = "migration_workspace_large_portrait"; private static String MIGRATION_WORKSPACE_LANDSCAPE = "migration_workspace_landscape"; private static String FOLDER_PORTRAIT = "folder_portrait"; @@ -56,6 +58,7 @@ public class Cling extends FrameLayout implements Insettable, View.OnClickListen private static String FOLDER_LARGE = "folder_large"; private static float FIRST_RUN_CIRCLE_BUFFER_DPS = 60; + private static float FIRST_RUN_MAX_CIRCLE_RADIUS_DPS = 180; private static float WORKSPACE_INNER_CIRCLE_RADIUS_DPS = 50; private static float WORKSPACE_OUTER_CIRCLE_RADIUS_DPS = 60; private static float WORKSPACE_CIRCLE_Y_OFFSET_DPS = 30; @@ -106,7 +109,7 @@ public class Cling extends FrameLayout implements Insettable, View.OnClickListen if (!mIsInitialized) { mLauncher = l; mScrimView = scrim; - mBackgroundColor = 0xdd000000; + mBackgroundColor = 0xcc000000; setOnLongClickListener(this); setOnClickListener(this); setOnTouchListener(this); @@ -141,7 +144,9 @@ public class Cling extends FrameLayout implements Insettable, View.OnClickListen Resources r = getResources(); int appIconId = drawableId; Hotseat hotseat = mLauncher.getHotseat(); - if (hotseat != null && appIconId > -1 && appRank > -1 && !title.isEmpty() && + // Skip the focused app in the large layouts + if (!mDrawIdentifier.equals(WORKSPACE_LARGE) && + hotseat != null && appIconId > -1 && appRank > -1 && !title.isEmpty() && !description.isEmpty()) { // Set the app bounds int x = hotseat.getCellXFromOrder(appRank); @@ -175,6 +180,18 @@ public class Cling extends FrameLayout implements Insettable, View.OnClickListen } } + void setOpenFolderRect(Rect r) { + if (mDrawIdentifier.equals(FOLDER_LANDSCAPE) || + mDrawIdentifier.equals(FOLDER_LARGE)) { + ViewGroup vg = (ViewGroup) findViewById(R.id.folder_bubble); + ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) vg.getLayoutParams(); + lp.topMargin = r.top - mInsets.bottom; + lp.leftMargin = r.right; + vg.setLayoutDirection(View.LAYOUT_DIRECTION_LTR); + vg.requestLayout(); + } + } + void updateMigrationWorkspaceBubblePosition() { DisplayMetrics metrics = new DisplayMetrics(); mLauncher.getWindowManager().getDefaultDisplay().getMetrics(metrics); @@ -184,10 +201,59 @@ public class Cling extends FrameLayout implements Insettable, View.OnClickListen DeviceProfile grid = app.getDynamicGrid().getDeviceProfile(); Rect pageIndicatorBounds = grid.getWorkspacePageIndicatorBounds(mInsets); - View bubble = findViewById(R.id.migration_workspace_cling_bubble); - FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) bubble.getLayoutParams(); - lp.bottomMargin = grid.heightPx - pageIndicatorBounds.top; - bubble.requestLayout(); + if (mDrawIdentifier.equals(MIGRATION_WORKSPACE_PORTRAIT)) { + View bubble = findViewById(R.id.migration_workspace_cling_bubble); + ViewGroup.MarginLayoutParams lp = + (ViewGroup.MarginLayoutParams) bubble.getLayoutParams(); + lp.bottomMargin = grid.heightPx - pageIndicatorBounds.top; + bubble.requestLayout(); + } else if (mDrawIdentifier.equals(MIGRATION_WORKSPACE_LARGE_PORTRAIT)) { + View bubble = findViewById(R.id.content); + ViewGroup.MarginLayoutParams lp = + (ViewGroup.MarginLayoutParams) bubble.getLayoutParams(); + lp.bottomMargin = grid.heightPx - pageIndicatorBounds.top; + bubble.requestLayout(); + } else if (mDrawIdentifier.equals(MIGRATION_WORKSPACE_LANDSCAPE)) { + View bubble = findViewById(R.id.content); + ViewGroup.MarginLayoutParams lp = + (ViewGroup.MarginLayoutParams) bubble.getLayoutParams(); + if (grid.isLayoutRtl) { + lp.leftMargin = pageIndicatorBounds.right; + } else { + lp.rightMargin = (grid.widthPx - pageIndicatorBounds.left); + } + bubble.requestLayout(); + } + } + + void updateWorkspaceBubblePosition() { + DisplayMetrics metrics = new DisplayMetrics(); + mLauncher.getWindowManager().getDefaultDisplay().getMetrics(metrics); + + // Get the cut-out bounds + LauncherAppState app = LauncherAppState.getInstance(); + DeviceProfile grid = app.getDynamicGrid().getDeviceProfile(); + Rect cutOutBounds = getWorkspaceCutOutBounds(metrics); + + if (mDrawIdentifier.equals(WORKSPACE_LARGE)) { + View bubble = findViewById(R.id.workspace_cling_bubble); + ViewGroup.MarginLayoutParams lp = + (ViewGroup.MarginLayoutParams) bubble.getLayoutParams(); + lp.bottomMargin = grid.heightPx - cutOutBounds.top - mInsets.bottom; + bubble.requestLayout(); + } + } + + private Rect getWorkspaceCutOutBounds(DisplayMetrics metrics) { + int halfWidth = metrics.widthPixels / 2; + int halfHeight = metrics.heightPixels / 2; + int yOffset = DynamicGrid.pxFromDp(WORKSPACE_CIRCLE_Y_OFFSET_DPS, metrics); + if (mDrawIdentifier.equals(WORKSPACE_LARGE)) { + yOffset = 0; + } + int radius = DynamicGrid.pxFromDp(WORKSPACE_OUTER_CIRCLE_RADIUS_DPS, metrics); + return new Rect(halfWidth - radius, halfHeight - yOffset - radius, halfWidth + radius, + halfHeight - yOffset + radius); } void show(boolean animate, int duration) { @@ -198,6 +264,7 @@ public class Cling extends FrameLayout implements Insettable, View.OnClickListen mDrawIdentifier.equals(WORKSPACE_LARGE) || mDrawIdentifier.equals(WORKSPACE_CUSTOM) || mDrawIdentifier.equals(MIGRATION_WORKSPACE_PORTRAIT) || + mDrawIdentifier.equals(MIGRATION_WORKSPACE_LARGE_PORTRAIT) || mDrawIdentifier.equals(MIGRATION_WORKSPACE_LANDSCAPE)) { View content = getContent(); content.setAlpha(0f); @@ -381,6 +448,7 @@ public class Cling extends FrameLayout implements Insettable, View.OnClickListen mLauncher.getLauncherClings().dismissWorkspaceCling(null); return true; } else if (mDrawIdentifier.equals(MIGRATION_WORKSPACE_PORTRAIT) || + mDrawIdentifier.equals(MIGRATION_WORKSPACE_LARGE_PORTRAIT) || mDrawIdentifier.equals(MIGRATION_WORKSPACE_LANDSCAPE)) { mLauncher.getLauncherClings().dismissMigrationWorkspaceCling(null); return true; @@ -417,6 +485,7 @@ public class Cling extends FrameLayout implements Insettable, View.OnClickListen mDrawIdentifier.equals(WORKSPACE_LANDSCAPE) || mDrawIdentifier.equals(WORKSPACE_LARGE) || mDrawIdentifier.equals(MIGRATION_WORKSPACE_PORTRAIT) || + mDrawIdentifier.equals(MIGRATION_WORKSPACE_LARGE_PORTRAIT) || mDrawIdentifier.equals(MIGRATION_WORKSPACE_LANDSCAPE)) { // Initialize the draw buffer (to allow punching through) eraseBg = Bitmap.createBitmap(getMeasuredWidth(), getMeasuredHeight(), @@ -443,24 +512,23 @@ public class Cling extends FrameLayout implements Insettable, View.OnClickListen bubbleContent.getGlobalVisibleRect(bubbleRect); mBubblePaint.setAlpha((int) (255 * alpha)); float buffer = DynamicGrid.pxFromDp(FIRST_RUN_CIRCLE_BUFFER_DPS, metrics); + float maxRadius = DynamicGrid.pxFromDp(FIRST_RUN_MAX_CIRCLE_RADIUS_DPS, metrics); + float radius = Math.min(maxRadius, (bubbleContent.getMeasuredWidth() + buffer) / 2); canvas.drawCircle(metrics.widthPixels / 2, - bubbleRect.centerY(), - (bubbleContent.getMeasuredWidth() + buffer) / 2, + bubbleRect.centerY(), radius, mBubblePaint); } else if (mDrawIdentifier.equals(WORKSPACE_PORTRAIT) || mDrawIdentifier.equals(WORKSPACE_LANDSCAPE) || mDrawIdentifier.equals(WORKSPACE_LARGE)) { - int offset = DynamicGrid.pxFromDp(WORKSPACE_CIRCLE_Y_OFFSET_DPS, metrics); + Rect cutOutBounds = getWorkspaceCutOutBounds(metrics); // Draw the outer circle mErasePaint.setAlpha(128); - eraseCanvas.drawCircle(metrics.widthPixels / 2, - metrics.heightPixels / 2 - offset, + eraseCanvas.drawCircle(cutOutBounds.centerX(), cutOutBounds.centerY(), DynamicGrid.pxFromDp(WORKSPACE_OUTER_CIRCLE_RADIUS_DPS, metrics), mErasePaint); // Draw the inner circle mErasePaint.setAlpha(0); - eraseCanvas.drawCircle(metrics.widthPixels / 2, - metrics.heightPixels / 2 - offset, + eraseCanvas.drawCircle(cutOutBounds.centerX(), cutOutBounds.centerY(), DynamicGrid.pxFromDp(WORKSPACE_INNER_CIRCLE_RADIUS_DPS, metrics), mErasePaint); canvas.drawBitmap(eraseBg, 0, 0, null); @@ -476,6 +544,7 @@ public class Cling extends FrameLayout implements Insettable, View.OnClickListen mFocusedHotseatApp.draw(canvas); } } else if (mDrawIdentifier.equals(MIGRATION_WORKSPACE_PORTRAIT) || + mDrawIdentifier.equals(MIGRATION_WORKSPACE_LARGE_PORTRAIT) || mDrawIdentifier.equals(MIGRATION_WORKSPACE_LANDSCAPE)) { int offset = DynamicGrid.pxFromDp(WORKSPACE_CIRCLE_Y_OFFSET_DPS, metrics); // Draw the outer circle diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index 7ce044676..8bcf6c32e 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -483,9 +483,22 @@ public class DeviceProfile { /** Returns the bounds of the workspace page indicators. */ Rect getWorkspacePageIndicatorBounds(Rect insets) { Rect workspacePadding = getWorkspacePadding(); - int pageIndicatorTop = heightPx - insets.bottom - workspacePadding.bottom; - return new Rect(workspacePadding.left, pageIndicatorTop, - widthPx - workspacePadding.right, pageIndicatorTop + pageIndicatorHeightPx); + if (isLandscape && transposeLayoutWithOrientation) { + if (isLayoutRtl) { + return new Rect(workspacePadding.left, workspacePadding.top, + workspacePadding.left + pageIndicatorHeightPx, + heightPx - workspacePadding.bottom - insets.bottom); + } else { + int pageIndicatorLeft = widthPx - workspacePadding.right; + return new Rect(pageIndicatorLeft, workspacePadding.top, + pageIndicatorLeft + pageIndicatorHeightPx, + heightPx - workspacePadding.bottom - insets.bottom); + } + } else { + int pageIndicatorTop = heightPx - insets.bottom - workspacePadding.bottom; + return new Rect(workspacePadding.left, pageIndicatorTop, + widthPx - workspacePadding.right, pageIndicatorTop + pageIndicatorHeightPx); + } } /** Returns the workspace padding in the specified orientation */ diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index c119999e8..61a594f21 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -4367,17 +4367,17 @@ public class Launcher extends Activity } void showWorkspaceSearchAndHotseat() { - mWorkspace.setAlpha(1f); - mHotseat.setAlpha(1f); - mPageIndicators.setAlpha(1f); - mSearchDropTargetBar.showSearchBar(false); + if (mWorkspace != null) mWorkspace.setAlpha(1f); + if (mHotseat != null) mHotseat.setAlpha(1f); + if (mPageIndicators != null) mPageIndicators.setAlpha(1f); + if (mSearchDropTargetBar != null) mSearchDropTargetBar.showSearchBar(false); } void hideWorkspaceSearchAndHotseat() { - mWorkspace.setAlpha(0f); - mHotseat.setAlpha(0f); - mPageIndicators.setAlpha(0f); - mSearchDropTargetBar.hideSearchBar(false); + if (mWorkspace != null) mWorkspace.setAlpha(0f); + if (mHotseat != null) mHotseat.setAlpha(0f); + if (mPageIndicators != null) mPageIndicators.setAlpha(0f); + if (mSearchDropTargetBar != null) mSearchDropTargetBar.hideSearchBar(false); } diff --git a/src/com/android/launcher3/LauncherClings.java b/src/com/android/launcher3/LauncherClings.java index 42a134fdb..94b062ddc 100644 --- a/src/com/android/launcher3/LauncherClings.java +++ b/src/com/android/launcher3/LauncherClings.java @@ -23,6 +23,7 @@ import android.animation.AnimatorListenerAdapter; import android.app.ActivityManager; import android.content.Context; import android.content.SharedPreferences; +import android.graphics.Rect; import android.os.Bundle; import android.os.UserManager; import android.view.LayoutInflater; @@ -34,7 +35,8 @@ import android.widget.TextView; class LauncherClings { private static final String FIRST_RUN_CLING_DISMISSED_KEY = "cling_gel.first_run.dismissed"; private static final String MIGRATION_CLING_DISMISSED_KEY = "cling_gel.migration.dismissed"; - private static final String MIGRATION_WORKSPACE_CLING_DISMISSED_KEY = "cling_gel.migration.dismissed"; + private static final String MIGRATION_WORKSPACE_CLING_DISMISSED_KEY = + "cling_gel.migration_workspace.dismissed"; private static final String WORKSPACE_CLING_DISMISSED_KEY = "cling_gel.workspace.dismissed"; private static final String FOLDER_CLING_DISMISSED_KEY = "cling_gel.folder.dismissed"; @@ -61,7 +63,7 @@ class LauncherClings { Cling cling = (Cling) mLauncher.findViewById(clingId); View scrim = null; if (scrimId > 0) { - scrim = mLauncher.findViewById(R.id.cling_scrim); + scrim = mLauncher.findViewById(scrimId); } if (cling != null) { cling.init(mLauncher, scrim); @@ -76,21 +78,11 @@ class LauncherClings { } /** Returns whether the clings are enabled or should be shown */ - private boolean isClingsEnabled() { + private boolean areClingsEnabled() { if (DISABLE_CLINGS) { return false; } - // For now, limit only to phones - LauncherAppState app = LauncherAppState.getInstance(); - DeviceProfile grid = app.getDynamicGrid().getDeviceProfile(); - if (grid.isTablet()) { - return false; - } - if (grid.isLandscape) { - return false; - } - // disable clings when running in a test harness if(ActivityManager.isRunningInTestHarness()) return false; @@ -202,7 +194,7 @@ class LauncherClings { public boolean shouldShowFirstRunOrMigrationClings() { SharedPreferences sharedPrefs = mLauncher.getSharedPrefs(); - return isClingsEnabled() && + return areClingsEnabled() && !sharedPrefs.getBoolean(FIRST_RUN_CLING_DISMISSED_KEY, false) && !sharedPrefs.getBoolean(MIGRATION_CLING_DISMISSED_KEY, false); } @@ -271,7 +263,7 @@ class LauncherClings { public void showMigrationWorkspaceCling() { // Enable the clings only if they have not been dismissed before - if (isClingsEnabled() && !mLauncher.getSharedPrefs().getBoolean( + if (areClingsEnabled() && !mLauncher.getSharedPrefs().getBoolean( MIGRATION_WORKSPACE_CLING_DISMISSED_KEY, false)) { Cling c = initCling(R.id.migration_workspace_cling, 0, false, true); c.updateMigrationWorkspaceBubblePosition(); @@ -284,9 +276,10 @@ class LauncherClings { public void showWorkspaceCling() { // Enable the clings only if they have not been dismissed before - if (isClingsEnabled() && !mLauncher.getSharedPrefs().getBoolean( + if (areClingsEnabled() && !mLauncher.getSharedPrefs().getBoolean( WORKSPACE_CLING_DISMISSED_KEY, false)) { Cling c = initCling(R.id.workspace_cling, 0, false, true); + c.updateWorkspaceBubblePosition(); // Set the focused hotseat app if there is one c.setFocusedHotseatApp(mLauncher.getFirstRunFocusedHotseatAppDrawableId(), @@ -301,11 +294,18 @@ class LauncherClings { public Cling showFoldersCling() { SharedPreferences sharedPrefs = mLauncher.getSharedPrefs(); // Enable the clings only if they have not been dismissed before - if (isClingsEnabled() && + if (areClingsEnabled() && !sharedPrefs.getBoolean(FOLDER_CLING_DISMISSED_KEY, false) && !sharedPrefs.getBoolean(Launcher.USER_HAS_MIGRATED, false)) { Cling cling = initCling(R.id.folder_cling, R.id.cling_scrim, true, true); + Folder openFolder = mLauncher.getWorkspace().getOpenFolder(); + if (openFolder != null) { + Rect openFolderRect = new Rect(); + openFolder.getHitRect(openFolderRect); + cling.setOpenFolderRect(openFolderRect); + openFolder.bringToFront(); + } return cling; } else { removeCling(R.id.folder_cling); |