Update gesture tutorial colors

- Updated all redesigned gesture nav menu and tutorial colors to dynamic color spec

Flag: ENABLE_NEW_GESTURE_NAV_TUTORIAL
Bug: 281764891
Bug: 279823249
Test: launched tutorial menu and tutorial steps
Change-Id: I03532b80c6e14867c1374bbdf9f984c1cece9809
This commit is contained in:
Schneider Victor-tulias
2023-05-18 10:47:33 -07:00
parent e212779ffd
commit 474f3c4e90
30 changed files with 445 additions and 107 deletions
@@ -19,5 +19,5 @@
android:viewportHeight="208">
<path
android:pathData="M24.53,169.2L32.09,165.56C77.7,143.55 77.7,64.45 32.09,42.35L24.53,38.71C14.55,33.95 6.06,25.56 0,14.92V193.08C6.06,182.44 14.55,174.05 24.53,169.2Z"
android:fillColor="#217500"/>
android:fillColor="?attr/onSurfaceBack"/>
</vector>
@@ -19,5 +19,5 @@
android:viewportHeight="67">
<path
android:pathData="M180.9,0.6H51.1C22.9,0.6 0,23.4 0,51.7V67.6H232V51.7C232,23.4 209.1,0.6 180.9,0.6Z"
android:fillColor="#4B67AE"/>
android:fillColor="?attr/onSurfaceHome"/>
</vector>
@@ -19,5 +19,5 @@
android:viewportHeight="94">
<path
android:pathData="M185.56,76.95C184.79,75.3 184.3,73.56 184.21,71.81L182.85,55.81C182.46,51.34 180.13,47.27 176.45,44.65L163.25,35.44C161.8,34.37 160.54,33.11 159.47,31.65L150.16,18.46C147.54,14.77 143.47,12.45 139,12.06L123,10.6C121.25,10.41 119.51,10.02 117.86,9.24L103.31,2.45C101.27,1.49 99.04,1 96.91,1C94.77,1 92.54,1.49 90.5,2.45L75.95,9.24C74.31,10.02 72.56,10.51 70.81,10.6L54.81,11.96C50.35,12.35 46.27,14.68 43.65,18.36L34.44,31.56C33.37,33.01 32.11,34.27 30.66,35.34L17.27,44.65C13.58,47.27 11.26,51.34 10.87,55.81L9.41,71.81C9.22,73.56 8.83,75.3 8.05,76.95L1.26,91.5C0.78,92.67 0.39,93.83 0.1,94.99H193.52C193.32,93.83 192.94,92.57 192.35,91.5L185.56,76.95Z"
android:fillColor="#7E44AD"/>
android:fillColor="?attr/onSurfaceOverview"/>
</vector>
@@ -19,5 +19,5 @@
android:viewportHeight="303">
<path
android:pathData="M35.65,245.9L46.63,240.61C112.92,208.62 112.92,93.67 46.63,61.54L35.65,56.26C21.15,49.34 8.81,37.14 0,21.69V280.6C8.81,265.15 21.15,252.95 35.65,245.9Z"
android:fillColor="#217500"/>
android:fillColor="?attr/onSurfaceBack"/>
</vector>
@@ -19,5 +19,5 @@
android:viewportHeight="73">
<path
android:pathData="M282.3,0H79.7C38,0 3.7,32.1 0.3,73H361.7C358.3,32.1 324,0 282.3,0Z"
android:fillColor="#4B67AE"/>
android:fillColor="?attr/onSurfaceHome"/>
</vector>
@@ -19,5 +19,5 @@
android:viewportHeight="144">
<path
android:pathData="M284.38,116.48C283.19,113.95 282.45,111.28 282.3,108.61L280.22,84.1C279.63,77.27 276.06,71.03 270.42,67.03L250.22,52.92C247.99,51.28 246.06,49.35 244.43,47.13L230.18,26.93C226.16,21.29 219.93,17.72 213.1,17.13L188.6,14.9C185.92,14.6 183.25,14.01 180.72,12.82L158.45,2.43C155.33,0.94 151.91,0.2 148.65,0.2C145.38,0.2 141.97,0.94 138.85,2.43L116.57,12.82C114.05,14.01 111.38,14.75 108.7,14.9L84.2,16.98C77.37,17.57 71.13,21.14 67.12,26.78L53.01,46.98C51.38,49.21 49.45,51.14 47.22,52.77L26.73,67.03C21.09,71.03 17.52,77.27 16.93,84.1L14.7,108.61C14.4,111.28 13.81,113.95 12.62,116.48L2.23,138.75C1.48,140.53 0.89,142.32 0.45,144.1H296.55C296.26,142.32 295.66,140.38 294.77,138.75L284.38,116.48Z"
android:fillColor="#7E44AD"/>
android:fillColor="?attr/onSurfaceOverview"/>
</vector>
@@ -13,7 +13,8 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
<item>
<shape
android:id="@android:id/mask"
@@ -25,7 +26,7 @@
<shape
android:shape="rectangle">
<corners android:radius="50dp"/>
<solid android:color="?android:attr/colorAccent"/>
<solid android:color="?androidprv:attr/materialColorPrimary"/>
</shape>
</item>
</layer-list>
@@ -19,5 +19,5 @@
android:viewportHeight="208">
<path
android:pathData="M23.53,169.2L31.09,165.56C76.7,143.55 76.7,64.45 31.09,42.35L23.53,38.71C13.55,33.95 5.06,25.56 -1,14.92V193.08C5.06,182.44 13.55,174.05 23.53,169.2Z"
android:fillColor="#217500"/>
android:fillColor="?attr/onSurfaceBack"/>
</vector>
@@ -19,5 +19,5 @@
android:viewportHeight="66">
<path
android:pathData="M283.8,0H80.2C40.7,0 8,28.5 1.3,66H362.8C356,28.5 323.3,0 283.8,0Z"
android:fillColor="#4B67AE"/>
android:fillColor="?attr/onSurfaceHome"/>
</vector>
@@ -15,5 +15,6 @@
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="?attr/surfaceBack" />
<corners android:radius="@dimen/gesture_tutorial_menu_button_radius" />
</shape>
@@ -0,0 +1,20 @@
<!-- Copyright (C) 2023 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.
-->
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="?attr/surfaceHome" />
<corners android:radius="@dimen/gesture_tutorial_menu_button_radius" />
</shape>
@@ -0,0 +1,20 @@
<!-- Copyright (C) 2023 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.
-->
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="?attr/surfaceOverview" />
<corners android:radius="@dimen/gesture_tutorial_menu_button_radius" />
</shape>
@@ -19,5 +19,5 @@
android:viewportHeight="76">
<path
android:pathData="M188.6,56.5C188.2,51.9 185.8,47.7 182,45L168.4,35.5C166.9,34.4 165.6,33.1 164.5,31.6L155,18C152.3,14.2 148.1,11.8 143.5,11.4L127,9.9C125.2,9.7 123.4,9.3 121.7,8.5L106.7,1.5C104.6,0.5 102.3,0 100.1,0C97.8,0 95.6,0.5 93.5,1.5L78.5,8.5C76.8,9.3 75,9.8 73.2,9.9L56.7,11.3C52.1,11.7 47.9,14.1 45.2,17.9L35.7,31.5C34.6,33 33.3,34.3 31.8,35.4L18,45C14.2,47.7 11.8,51.9 11.4,56.5L9.9,73C9.8,74 9.6,75 9.3,76H190.6C190.3,75 190.1,74 190,73L188.6,56.5Z"
android:fillColor="#7E44AD"/>
android:fillColor="?attr/onSurfaceOverview"/>
</vector>
+1 -1
View File
@@ -16,6 +16,6 @@
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/gesture_home_tutorial_background" />
<solid android:color="?attr/surfaceHome" />
<corners android:radius="@dimen/gesture_tutorial_hotseat_icon_corner_radius" />
</shape>
@@ -13,5 +13,5 @@
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/gesture_home_tutorial_background" />
<solid android:color="?attr/surfaceHome" />
</shape>
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2023 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.
-->
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="?attr/surfaceContainer" />
<corners android:radius="@dimen/gesture_tutorial_small_task_view_corner_radius" />
</shape>
@@ -15,13 +15,15 @@
-->
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:theme="@style/GestureTutorialActivity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="@dimen/gesture_tutorial_menu_padding_top"
android:paddingBottom="@dimen/gesture_tutorial_menu_padding_bottom"
android:paddingHorizontal="@dimen/gesture_tutorial_menu_padding_horizontal"
android:background="@color/gesture_tutorial_menu_background">
android:background="?androidprv:attr/materialColorSurfaceContainer">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/gesture_tutorial_menu_home_button"
@@ -29,9 +31,8 @@
android:layout_height="@dimen/gesture_tutorial_menu_button_height"
android:layout_marginEnd="@dimen/gesture_tutorial_menu_button_spacing"
android:layout_marginBottom="24dp"
android:background="@drawable/gesture_tutorial_menu_button_background"
android:background="@drawable/gesture_tutorial_menu_home_button_background"
android:clipToOutline="true"
android:backgroundTint="@color/gesture_home_tutorial_background"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/guideline"
@@ -50,7 +51,7 @@
app:layout_constraintEnd_toEndOf="parent"/>
<TextView
style="@style/TextAppearance.GestureTutorial.MenuButton"
style="@style/TextAppearance.GestureTutorial.MenuButton.Home"
android:id="@+id/gesture_tutorial_menu_home_button_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -69,9 +70,8 @@
android:layout_height="@dimen/gesture_tutorial_menu_button_height"
android:layout_marginEnd="@dimen/gesture_tutorial_menu_button_spacing"
android:layout_marginBottom="24dp"
android:background="@drawable/gesture_tutorial_menu_button_background"
android:background="@drawable/gesture_tutorial_menu_back_button_background"
android:clipToOutline="true"
android:backgroundTint="@color/gesture_back_tutorial_exiting_app"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/guideline"
@@ -90,7 +90,7 @@
app:layout_constraintStart_toStartOf="parent"/>
<TextView
style="@style/TextAppearance.GestureTutorial.MenuButton"
style="@style/TextAppearance.GestureTutorial.MenuButton.Back"
android:id="@+id/gesture_tutorial_menu_back_button_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -108,9 +108,8 @@
android:layout_width="0dp"
android:layout_height="@dimen/gesture_tutorial_menu_button_height"
android:layout_marginBottom="24dp"
android:background="@drawable/gesture_tutorial_menu_button_background"
android:background="@drawable/gesture_tutorial_menu_overview_button_background"
android:clipToOutline="true"
android:backgroundTint="@color/gesture_overview_tutorial_background"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/guideline"
@@ -129,7 +128,7 @@
app:layout_constraintEnd_toEndOf="parent"/>
<TextView
style="@style/TextAppearance.GestureTutorial.MenuButton"
style="@style/TextAppearance.GestureTutorial.MenuButton.Overview"
android:id="@+id/gesture_tutorial_menu_overview_button_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -13,8 +13,9 @@
-->
<View
xmlns:android="http://schemas.android.com/apk/res/android"
android:theme="@style/GestureTutorialActivity"
android:id="@+id/overview_gesture_tutorial_shape"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:background="@color/gesture_overview_tutorial_background" />
android:background="?attr/onSurfaceOverview" />
@@ -15,22 +15,23 @@
-->
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:theme="@style/GestureTutorialActivity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="@dimen/gesture_tutorial_menu_padding_top"
android:paddingBottom="@dimen/gesture_tutorial_menu_padding_bottom"
android:paddingHorizontal="@dimen/gesture_tutorial_menu_padding_horizontal"
android:background="@color/gesture_tutorial_menu_background"
android:background="?androidprv:attr/materialColorSurfaceContainer"
android:clipToPadding="false">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/gesture_tutorial_menu_home_button"
android:layout_width="match_parent"
android:layout_height="@dimen/gesture_tutorial_menu_button_height"
android:background="@drawable/gesture_tutorial_menu_button_background"
android:background="@drawable/gesture_tutorial_menu_home_button_background"
android:clipToOutline="true"
android:backgroundTint="@color/gesture_home_tutorial_background"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintTop_toTopOf="parent"
@@ -50,7 +51,7 @@
app:layout_constraintEnd_toEndOf="parent"/>
<TextView
style="@style/TextAppearance.GestureTutorial.MenuButton"
style="@style/TextAppearance.GestureTutorial.MenuButton.Home"
android:id="@+id/gesture_tutorial_menu_home_button_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -68,9 +69,8 @@
android:layout_width="match_parent"
android:layout_height="@dimen/gesture_tutorial_menu_button_height"
android:layout_marginTop="@dimen/gesture_tutorial_menu_button_spacing"
android:background="@drawable/gesture_tutorial_menu_button_background"
android:background="@drawable/gesture_tutorial_menu_back_button_background"
android:clipToOutline="true"
android:backgroundTint="@color/gesture_back_tutorial_exiting_app"
app:layout_constraintTop_toBottomOf="@id/gesture_tutorial_menu_home_button"
app:layout_constraintBottom_toTopOf="@id/gesture_tutorial_menu_overview_button"
@@ -89,7 +89,7 @@
app:layout_constraintStart_toStartOf="parent"/>
<TextView
style="@style/TextAppearance.GestureTutorial.MenuButton"
style="@style/TextAppearance.GestureTutorial.MenuButton.Back"
android:id="@+id/gesture_tutorial_menu_back_button_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -107,9 +107,8 @@
android:layout_width="match_parent"
android:layout_height="@dimen/gesture_tutorial_menu_button_height"
android:layout_marginTop="@dimen/gesture_tutorial_menu_button_spacing"
android:background="@drawable/gesture_tutorial_menu_button_background"
android:background="@drawable/gesture_tutorial_menu_overview_button_background"
android:clipToOutline="true"
android:backgroundTint="@color/gesture_overview_tutorial_background"
app:layout_constraintTop_toBottomOf="@id/gesture_tutorial_menu_back_button"
app:layout_constraintBottom_toTopOf="@id/guideline"
@@ -128,7 +127,7 @@
app:layout_constraintEnd_toEndOf="parent"/>
<TextView
style="@style/TextAppearance.GestureTutorial.MenuButton"
style="@style/TextAppearance.GestureTutorial.MenuButton.Overview"
android:id="@+id/gesture_tutorial_menu_overview_button_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -61,7 +61,7 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="@dimen/gesture_tutorial_multi_row_task_view_spacing"
android:background="@drawable/top_task_view"
android:background="@drawable/redesigned_top_task_view"
android:clipToOutline="true"
android:visibility="invisible"
@@ -74,7 +74,7 @@
android:id="@+id/bottom_task_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@drawable/top_task_view"
android:background="@drawable/redesigned_top_task_view"
android:clipToOutline="true"
android:visibility="invisible"
@@ -121,7 +121,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerVertical="true"
android:background="@color/gesture_back_tutorial_exiting_app"
android:visibility="gone" />
<RelativeLayout
@@ -216,7 +215,6 @@
<Button
android:id="@+id/gesture_tutorial_fragment_action_button"
style="@style/TextAppearance.GestureTutorial.ButtonLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/gesture_tutorial_action_button_background"
@@ -13,7 +13,8 @@
-->
<View
xmlns:android="http://schemas.android.com/apk/res/android"
android:theme="@style/GestureTutorialActivity"
android:id="@+id/swipe_up_gesture_tutorial_shape"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gesture_home_tutorial_background" />
android:background="?attr/surfaceHome" />
+56 -1
View File
@@ -14,7 +14,8 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources>
<resources
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
<style name="AllSetTheme" parent="@android:style/Theme.DeviceDefault.NoActionBar">
<item name="android:navigationBarColor">@android:color/transparent</item>
@@ -24,4 +25,58 @@
<item name="android:windowBackground">@android:color/transparent</item>
</style>
<style name="TextAppearance.GestureTutorial.MenuButton.Home"
parent="TextAppearance.GestureTutorial.MenuButton">
<item name="android:textColor">?attr/onSurfaceHome</item>
</style>
<style name="TextAppearance.GestureTutorial.MenuButton.Back"
parent="TextAppearance.GestureTutorial.MenuButton">
<item name="android:textColor">?attr/onSurfaceBack</item>
</style>
<style name="TextAppearance.GestureTutorial.MenuButton.Overview"
parent="TextAppearance.GestureTutorial.MenuButton">
<item name="android:textColor">?attr/onSurfaceOverview</item>
</style>
<style name="TextAppearance.GestureTutorial.ButtonLabel.Home"
parent="TextAppearance.GestureTutorial.ButtonLabel">
<item name="android:textColor">?attr/secondaryHome</item>
</style>
<style name="TextAppearance.GestureTutorial.ButtonLabel.Back"
parent="TextAppearance.GestureTutorial.ButtonLabel">
<item name="android:textColor">?attr/secondaryBack</item>
</style>
<style name="TextAppearance.GestureTutorial.ButtonLabel.Overview"
parent="TextAppearance.GestureTutorial.ButtonLabel">
<item name="android:textColor">?attr/secondaryOverview</item>
</style>
<style name="TextAppearance.GestureTutorial.MainTitle.Success.Home"
parent="TextAppearance.GestureTutorial.MainTitle.Home" />
<style name="TextAppearance.GestureTutorial.MainTitle.Success.Back"
parent="TextAppearance.GestureTutorial.MainTitle.Back" />
<style name="TextAppearance.GestureTutorial.MainTitle.Success.Overview"
parent="TextAppearance.GestureTutorial.MainTitle.Overview" />
<style name="GestureTutorialActivity" parent="@style/AppTheme">
<item name="background">@android:color/transparent</item>
<item name="tutorialSubtitle">@android:color/white</item>
<item name="surfaceContainer">?androidprv:attr/materialColorSurfaceContainer</item>
<item name="onSurfaceHome">?androidprv:attr/materialColorPrimaryFixedDim</item>
<item name="surfaceHome">?androidprv:attr/materialColorOnPrimaryFixedVariant</item>
<item name="secondaryHome">?androidprv:attr/materialColorOnPrimaryFixed</item>
<item name="onSurfaceBack">?androidprv:attr/materialColorTertiaryFixedDim</item>
<item name="surfaceBack">?androidprv:attr/materialColorOnTertiaryFixedVariant</item>
<item name="secondaryBack">?androidprv:attr/materialColorOnTertiaryFixed</item>
<item name="onSurfaceOverview">?androidprv:attr/materialColorPrimaryFixed</item>
<item name="surfaceOverview">?androidprv:attr/materialColorOnSecondaryFixedVariant</item>
<item name="secondaryOverview">?androidprv:attr/materialColorOnSecondaryFixed</item>
</style>
</resources>
+18
View File
@@ -28,4 +28,22 @@
<!-- Border color for a keyboard quick switch task views -->
<attr name="borderColor" format="color" />
</declare-styleable>
<!--
Gesture nav edu specific attributes. These attributes are used to customize Gesture nav edu
view lottie animation colors in XML files.
-->
<declare-styleable name="RootSandboxLayout">
<attr name="tutorialSubtitle" format="color" />
<attr name="surfaceContainer" format="color" />
<attr name="onSurfaceHome" format="color" />
<attr name="surfaceHome" format="color" />
<attr name="secondaryHome" format="color" />
<attr name="onSurfaceBack" format="color" />
<attr name="surfaceBack" format="color" />
<attr name="secondaryBack" format="color" />
<attr name="onSurfaceOverview" format="color" />
<attr name="surfaceOverview" format="color" />
<attr name="secondaryOverview" format="color" />
</declare-styleable>
</resources>
-11
View File
@@ -42,17 +42,6 @@
<color name="gesture_tutorial_fake_previous_task_view_color">#3C4043</color> <!-- Gray -->
<color name="gesture_tutorial_taskbar_color">#E8EAED</color>
<!-- Redesigned gesture navigation tutorial -->
<color name="gesture_home_tutorial_background">#FFAD91</color> <!-- Light Orange -->
<color name="gesture_tutorial_workspace_background">#4B64AE</color> <!-- Indigo Blue -->
<color name="gesture_home_tutorial_arrow">#DBF59E</color> <!-- Lime Green -->
<color name="gesture_back_tutorial_exiting_app">#F9A2B9</color> <!-- Pink -->
<color name="gesture_back_tutorial_instructional_shape">#217500</color> <!-- Green -->
<color name="gesture_overview_tutorial_background">#DFF3AF</color> <!-- Light Green -->
<color name="gesture_overview_tutorial_swipe_rect">#7E44AD</color> <!-- Purple -->
<color name="gesture_overview_background">#CABCD6</color> <!-- Light Purple -->
<color name="gesture_tutorial_menu_background">#1C1B1F</color> <!-- Black -->
<!-- Mock hotseat -->
<color name="mock_app_icon">#BDC1C6</color>
<color name="mock_search_bar">#3C4043</color>
+76 -18
View File
@@ -18,10 +18,10 @@
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
<style name="TextAppearance.GestureTutorial"
parent="android:TextAppearance.Material.Body1" />
parent="@android:style/Theme.DeviceDefault.DayNight" />
<style name="TextAppearance.GestureTutorial.CallToAction"
parent="android:TextAppearance.Material.Body2" />
parent="@android:style/Theme.DeviceDefault.DayNight" />
<style name="TextAppearance.GestureTutorial.Title"
parent="TextAppearance.GestureTutorial">
@@ -51,10 +51,24 @@
<style name="TextAppearance.GestureTutorial.MenuButton"
parent="TextAppearance.GestureTutorial.Feedback.Title">
<item name="android:gravity">center</item>
<item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
<item name="fontWeight">400</item>
</style>
<style name="TextAppearance.GestureTutorial.MenuButton.Home"
parent="TextAppearance.GestureTutorial.MenuButton">
<item name="android:textColor">?attr/secondaryHome</item>
</style>
<style name="TextAppearance.GestureTutorial.MenuButton.Back"
parent="TextAppearance.GestureTutorial.MenuButton">
<item name="android:textColor">?attr/secondaryBack</item>
</style>
<style name="TextAppearance.GestureTutorial.MenuButton.Overview"
parent="TextAppearance.GestureTutorial.MenuButton">
<item name="android:textColor">?attr/secondaryOverview</item>
</style>
<style name="TextAppearance.GestureTutorial.Feedback.Title.AllSet"
parent="TextAppearance.GestureTutorial.Feedback.Title">
<item name="android:letterSpacing">0.03</item>
@@ -110,13 +124,28 @@
<style name="TextAppearance.GestureTutorial.ButtonLabel"
parent="TextAppearance.GestureTutorial.CallToAction">
<item name="android:gravity">center</item>
<item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
<item name="android:textColor">?androidprv:attr/materialColorOnPrimary</item>
<item name="android:letterSpacing">0.02</item>
<item name="android:textSize">16sp</item>
<item name="android:textAllCaps">false</item>
<item name="android:fontFamily">google-sans-text-medium</item>
</style>
<style name="TextAppearance.GestureTutorial.ButtonLabel.Home"
parent="TextAppearance.GestureTutorial.ButtonLabel">
<item name="android:textColor">?attr/onSurfaceHome</item>
</style>
<style name="TextAppearance.GestureTutorial.ButtonLabel.Back"
parent="TextAppearance.GestureTutorial.ButtonLabel">
<item name="android:textColor">?attr/onSurfaceBack</item>
</style>
<style name="TextAppearance.GestureTutorial.ButtonLabel.Overview"
parent="TextAppearance.GestureTutorial.ButtonLabel">
<item name="android:textColor">?attr/onSurfaceOverview</item>
</style>
<style name="TextAppearance.GestureTutorial.CancelButtonLabel"
parent="TextAppearance.GestureTutorial.ButtonLabel">
<item name="android:textColor">?android:attr/colorAccent</item>
@@ -135,26 +164,45 @@
<style name="TextAppearance.GestureTutorial.MainTitle"
parent="TextAppearance.GestureTutorial">
<item name="android:textSize">36sp</item>
<item name="android:textColor">@android:color/black</item>
<item name="android:fontFamily">google-sans</item>
</style>
<style name="TextAppearance.GestureTutorial.MainTitle.Home"
parent="TextAppearance.GestureTutorial.MainTitle">
<item name="android:textColor">?attr/onSurfaceHome</item>
</style>
<style name="TextAppearance.GestureTutorial.MainTitle.Back"
parent="TextAppearance.GestureTutorial.MainTitle">
<item name="android:textColor">?attr/onSurfaceBack</item>
</style>
<style name="TextAppearance.GestureTutorial.MainTitle.Overview"
parent="TextAppearance.GestureTutorial.MainTitle">
<item name="android:textColor">?attr/onSurfaceOverview</item>
</style>
<style name="TextAppearance.GestureTutorial.MainTitle.Success.Home"
parent="TextAppearance.GestureTutorial.MainTitle.Home">
<item name="android:textColor">?attr/secondaryHome</item>
</style>
<style name="TextAppearance.GestureTutorial.MainTitle.Success.Back"
parent="TextAppearance.GestureTutorial.MainTitle.Back">
<item name="android:textColor">?attr/secondaryBack</item>
</style>
<style name="TextAppearance.GestureTutorial.MainTitle.Success.Overview"
parent="TextAppearance.GestureTutorial.MainTitle.Overview">
<item name="android:textColor">?attr/secondaryOverview</item>
</style>
<style name="TextAppearance.GestureTutorial.MainSubtitle"
parent="TextAppearance.GestureTutorial.Subtitle">
<item name="android:textSize">16sp</item>
<item name="android:letterSpacing">0.02</item>
<item name="android:textColor">@android:color/black</item>
<item name="android:fontFamily">google-sans-text</item>
</style>
<style name="TextAppearance.GestureTutorial.SuccessTitle"
parent="TextAppearance.GestureTutorial.MainTitle">
<item name="android:textColor">@android:color/white</item>
</style>
<style name="TextAppearance.GestureTutorial.SuccessSubtitle"
parent="TextAppearance.GestureTutorial.MainSubtitle">
<item name="android:textColor">@android:color/white</item>
<item name="android:textColor">?attr/tutorialSubtitle</item>
</style>
<style name="AllSetTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
@@ -226,8 +274,18 @@
<item name="android:textColor">?androidprv:attr/materialColorOnSurfaceInverse</item>
</style>
<style name="GestureTutorialActivity"
parent="@style/AppTheme">
<style name="GestureTutorialActivity" parent="@style/AppTheme">
<item name="background">@android:color/transparent</item>
<item name="tutorialSubtitle">@android:color/black</item>
<item name="surfaceContainer">?androidprv:attr/materialColorSurfaceContainer</item>
<item name="onSurfaceHome">?androidprv:attr/materialColorPrimaryFixed</item>
<item name="surfaceHome">@android:color/system_accent1_300</item>
<item name="secondaryHome">?androidprv:attr/materialColorOnPrimaryFixedVariant</item>
<item name="onSurfaceBack">?androidprv:attr/materialColorTertiaryFixed</item>
<item name="surfaceBack">@android:color/system_accent3_300</item>
<item name="secondaryBack">?androidprv:attr/materialColorOnTertiaryFixedVariant</item>
<item name="onSurfaceOverview">?androidprv:attr/materialColorPrimaryFixed</item>
<item name="surfaceOverview">@android:color/system_accent2_300</item>
<item name="secondaryOverview">?androidprv:attr/materialColorOnSecondaryFixedVariant</item>
</style>
</resources>
@@ -62,6 +62,28 @@ final class BackGestureTutorialController extends TutorialController {
: R.string.back_gesture_feedback_complete_with_overview_follow_up;
}
@Override
public int getTitleTextAppearance() {
return R.style.TextAppearance_GestureTutorial_MainTitle_Back;
}
@Override
public int getSuccessTitleTextAppearance() {
return R.style.TextAppearance_GestureTutorial_MainTitle_Success_Back;
}
@Override
public int getDoneButtonTextAppearance() {
return R.style.TextAppearance_GestureTutorial_ButtonLabel_Back;
}
@Override
public int getDoneButtonColor() {
return Utilities.isDarkTheme(mContext)
? mTutorialFragment.mRootView.mColorOnSurfaceBack
: mTutorialFragment.mRootView.mColorSecondaryBack;
}
@Override
protected int getMockAppTaskLayoutResId() {
return getMockAppTaskCurrentPageLayoutResId();
@@ -95,8 +117,13 @@ final class BackGestureTutorialController extends TutorialController {
}
@Override
protected int getSwipeActionColorResId() {
return R.color.gesture_tutorial_workspace_background;
protected int getSwipeActionColor() {
return mTutorialFragment.mRootView.mColorSurfaceContainer;
}
@Override
protected int getExitingAppColor() {
return mTutorialFragment.mRootView.mColorSurfaceBack;
}
@Override
@@ -22,6 +22,7 @@ import android.graphics.PointF;
import android.os.Build;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.quickstep.interaction.EdgeBackGestureHandler.BackGestureResult;
import com.android.quickstep.interaction.NavBarGestureHandler.NavBarGestureResult;
import com.android.quickstep.util.LottieAnimationColorUtils;
@@ -37,10 +38,9 @@ final class HomeGestureTutorialController extends SwipeUpGestureTutorialControll
if (ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()) {
LottieAnimationColorUtils.updateColors(
mAnimatedGestureDemonstration,
Map.of(".onSurfaceHome", R.color.gesture_tutorial_workspace_background,
".surfaceHome", R.color.gesture_home_tutorial_background,
".arrow", R.color.gesture_home_tutorial_arrow),
mContext.getTheme());
Map.of(".onSurfaceHome", fragment.mRootView.mColorOnSurfaceHome,
".surfaceHome", fragment.mRootView.mColorSurfaceHome,
".arrow", fragment.mRootView.mColorSecondaryHome));
}
}
@@ -70,6 +70,28 @@ final class HomeGestureTutorialController extends SwipeUpGestureTutorialControll
: R.string.home_gesture_feedback_complete_with_follow_up;
}
@Override
public int getTitleTextAppearance() {
return R.style.TextAppearance_GestureTutorial_MainTitle_Home;
}
@Override
public int getSuccessTitleTextAppearance() {
return R.style.TextAppearance_GestureTutorial_MainTitle_Success_Home;
}
@Override
public int getDoneButtonTextAppearance() {
return R.style.TextAppearance_GestureTutorial_ButtonLabel_Home;
}
@Override
public int getDoneButtonColor() {
return Utilities.isDarkTheme(mContext)
? mTutorialFragment.mRootView.mColorOnSurfaceHome
: mTutorialFragment.mRootView.mColorSecondaryHome;
}
@Override
protected int getMockAppTaskLayoutResId() {
return ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()
@@ -89,8 +111,13 @@ final class HomeGestureTutorialController extends SwipeUpGestureTutorialControll
}
@Override
protected int getSwipeActionColorResId() {
return R.color.gesture_tutorial_workspace_background;
protected int getSwipeActionColor() {
return mTutorialFragment.mRootView.mColorSurfaceContainer;
}
@Override
protected int getExitingAppColor() {
return mTutorialFragment.mRootView.mColorSurfaceHome;
}
@Override
@@ -28,6 +28,7 @@ import android.os.Handler;
import android.view.View;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.anim.AnimatedFloat;
import com.android.launcher3.anim.PendingAnimation;
import com.android.quickstep.SwipeUpAnimationLogic;
@@ -68,6 +69,28 @@ final class OverviewGestureTutorialController extends SwipeUpGestureTutorialCont
: R.string.overview_gesture_feedback_complete_without_follow_up;
}
@Override
public int getTitleTextAppearance() {
return R.style.TextAppearance_GestureTutorial_MainTitle_Overview;
}
@Override
public int getSuccessTitleTextAppearance() {
return R.style.TextAppearance_GestureTutorial_MainTitle_Success_Overview;
}
@Override
public int getDoneButtonTextAppearance() {
return R.style.TextAppearance_GestureTutorial_ButtonLabel_Overview;
}
@Override
public int getDoneButtonColor() {
return Utilities.isDarkTheme(mContext)
? mTutorialFragment.mRootView.mColorOnSurfaceOverview
: mTutorialFragment.mRootView.mColorSecondaryOverview;
}
@Override
protected int getMockAppTaskLayoutResId() {
return ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()
@@ -87,15 +110,21 @@ final class OverviewGestureTutorialController extends SwipeUpGestureTutorialCont
}
@Override
protected int getSwipeActionColorResId() {
return R.color.gesture_overview_background;
protected int getSwipeActionColor() {
return mTutorialFragment.mRootView.mColorSurfaceOverview;
}
@Override
protected int getMockPreviousAppTaskThumbnailColorResId() {
protected int getExitingAppColor() {
return mTutorialFragment.mRootView.mColorOnSurfaceOverview;
}
@Override
protected int getMockPreviousAppTaskThumbnailColor() {
return ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()
? R.color.gesture_overview_tutorial_swipe_rect
: R.color.gesture_tutorial_fake_previous_task_view_color;
? mTutorialFragment.mRootView.mColorSurfaceContainer
: mContext.getResources().getColor(
R.color.gesture_tutorial_fake_previous_task_view_color);
}
@Override
@@ -213,7 +242,7 @@ final class OverviewGestureTutorialController extends SwipeUpGestureTutorialCont
}
private void onSuccessAnimationComplete() {
setLauncherViewColor(R.color.gesture_overview_tutorial_swipe_rect);
mFakeLauncherView.setBackgroundColor(getMockPreviousAppTaskThumbnailColor());
showSuccessFeedback();
}
}
@@ -18,6 +18,8 @@ package com.android.quickstep.interaction;
import static com.android.launcher3.config.FeatureFlags.ENABLE_NEW_GESTURE_NAV_TUTORIAL;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.Insets;
import android.graphics.Rect;
import android.util.AttributeSet;
@@ -26,7 +28,9 @@ import android.view.View;
import android.view.WindowInsets;
import android.widget.RelativeLayout;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentManager;
import com.android.launcher3.R;
@@ -39,21 +43,70 @@ public class RootSandboxLayout extends RelativeLayout {
private final Rect mTempInclusionBounds = new Rect();
private final Rect mTempExclusionBounds = new Rect();
@ColorInt final int mColorSurfaceContainer;
@ColorInt final int mColorOnSurfaceHome;
@ColorInt final int mColorSurfaceHome;
@ColorInt final int mColorSecondaryHome;
@ColorInt final int mColorOnSurfaceBack;
@ColorInt final int mColorSurfaceBack;
@ColorInt final int mColorSecondaryBack;
@ColorInt final int mColorOnSurfaceOverview;
@ColorInt final int mColorSurfaceOverview;
@ColorInt final int mColorSecondaryOverview;
private View mFeedbackView;
private View mTutorialStepView;
private View mSkipButton;
private View mDoneButton;
public RootSandboxLayout(Context context) {
super(context);
this(context, null);
}
public RootSandboxLayout(Context context, AttributeSet attrs) {
super(context, attrs);
this(context, attrs, 0);
}
public RootSandboxLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
this(context, attrs, defStyleAttr, 0);
}
public RootSandboxLayout(
@NonNull Context context,
@Nullable AttributeSet attrs,
int defStyleAttr,
int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
TypedArray ta = context.obtainStyledAttributes(
attrs,
R.styleable.RootSandboxLayout,
defStyleAttr,
defStyleRes);
boolean isDarkTheme = Utilities.isDarkTheme(context);
int colorSurface = isDarkTheme ? Color.BLACK : Color.WHITE;
int colorOnSurface = isDarkTheme ? Color.WHITE : Color.BLACK;
int colorSecondary = Color.GRAY;
mColorSurfaceContainer = ta.getColor(
R.styleable.RootSandboxLayout_surfaceContainer, colorSurface);
mColorOnSurfaceHome = ta.getColor(
R.styleable.RootSandboxLayout_onSurfaceHome, colorOnSurface);
mColorSurfaceHome = ta.getColor(R.styleable.RootSandboxLayout_surfaceHome, colorSurface);
mColorSecondaryHome = ta.getColor(
R.styleable.RootSandboxLayout_secondaryHome, colorSecondary);
mColorOnSurfaceBack = ta.getColor(
R.styleable.RootSandboxLayout_onSurfaceBack, colorOnSurface);
mColorSurfaceBack = ta.getColor(R.styleable.RootSandboxLayout_surfaceBack, colorSurface);
mColorSecondaryBack = ta.getColor(
R.styleable.RootSandboxLayout_secondaryBack, colorSecondary);
mColorOnSurfaceOverview = ta.getColor(
R.styleable.RootSandboxLayout_onSurfaceOverview, colorOnSurface);
mColorSurfaceOverview = ta.getColor(
R.styleable.RootSandboxLayout_surfaceOverview, colorSurface);
mColorSecondaryOverview = ta.getColor(
R.styleable.RootSandboxLayout_secondaryOverview, colorSecondary);
ta.recycle();
}
@Override
@@ -26,7 +26,6 @@ import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.annotation.ColorRes;
import android.annotation.RawRes;
import android.content.Context;
import android.content.pm.PackageManager;
@@ -47,11 +46,13 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.CallSuper;
import androidx.annotation.ColorInt;
import androidx.annotation.DrawableRes;
import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.annotation.StyleRes;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.content.res.AppCompatResources;
@@ -258,15 +259,17 @@ abstract class TutorialController implements BackGestureAttemptCallback,
return NO_ID;
}
@ColorRes
protected int getMockPreviousAppTaskThumbnailColorResId() {
return R.color.gesture_tutorial_fake_previous_task_view_color;
@ColorInt
protected int getMockPreviousAppTaskThumbnailColor() {
return mContext.getResources().getColor(
R.color.gesture_tutorial_fake_previous_task_view_color);
}
@ColorRes
protected int getSwipeActionColorResId() {
return NO_ID;
}
@ColorInt
protected abstract int getSwipeActionColor();
@ColorInt
protected abstract int getExitingAppColor();
@DrawableRes
public int getMockAppIconResId() {
@@ -304,6 +307,24 @@ abstract class TutorialController implements BackGestureAttemptCallback,
return NO_ID;
}
@StyleRes
public int getTitleTextAppearance() {
return NO_ID;
}
@StyleRes
public int getSuccessTitleTextAppearance() {
return NO_ID;
}
@StyleRes
public int getDoneButtonTextAppearance() {
return NO_ID;
}
@ColorInt
public abstract int getDoneButtonColor();
void showFeedback() {
if (mGestureCompleted) {
mFeedbackView.setTranslationY(0);
@@ -417,9 +438,7 @@ abstract class TutorialController implements BackGestureAttemptCallback,
private void showSuccessPage() {
mCheckmarkAnimation.setVisibility(View.VISIBLE);
mCheckmarkAnimation.playAnimation();
mFeedbackTitleView.setTextAppearance(R.style.TextAppearance_GestureTutorial_SuccessTitle);
mFeedbackSubtitleView.setTextAppearance(
R.style.TextAppearance_GestureTutorial_SuccessSubtitle);
mFeedbackTitleView.setTextAppearance(mContext, getSuccessTitleTextAppearance());
}
public boolean isGestureCompleted() {
@@ -536,6 +555,9 @@ abstract class TutorialController implements BackGestureAttemptCallback,
updateLayout();
if (ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()) {
mFeedbackTitleView.setTextAppearance(mContext, getTitleTextAppearance());
mDoneButton.setTextAppearance(mContext, getDoneButtonTextAppearance());
mDoneButton.getBackground().setTint(getDoneButtonColor());
mCheckmarkAnimation.setAnimation(mTutorialFragment.isAtFinalStep()
? R.raw.checkmark_animation_end
: R.raw.checkmark_animation_in_progress);
@@ -560,8 +582,7 @@ abstract class TutorialController implements BackGestureAttemptCallback,
protected void resetViewsForBackGesture() {
mFakeTaskView.setVisibility(View.VISIBLE);
mFakeTaskView.setBackgroundColor(
mContext.getColor(R.color.gesture_tutorial_workspace_background));
mFakeTaskView.setBackgroundColor(getSwipeActionColor());
mExitingAppView.setVisibility(View.VISIBLE);
// reset the exiting app's dimensions
@@ -649,26 +670,26 @@ abstract class TutorialController implements BackGestureAttemptCallback,
}
}
void setLauncherViewColor(@ColorRes int backgroundColorRes) {
mFakeLauncherView.setBackgroundColor(mContext.getColor(backgroundColorRes));
}
private void updateDrawables() {
if (mContext != null) {
mTutorialFragment.getRootView().setBackground(AppCompatResources.getDrawable(
mContext, getMockWallpaperResId()));
mTutorialFragment.updateFeedbackAnimation();
setLauncherViewColor(ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()
? getSwipeActionColorResId() : R.color.gesture_tutorial_fake_wallpaper_color);
mFakeLauncherView.setBackgroundColor(ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()
? getSwipeActionColor()
: mContext.getColor(R.color.gesture_tutorial_fake_wallpaper_color));
updateFakeViewLayout(mFakeHotseatView, getMockHotseatResId());
mHotseatIconView = mFakeHotseatView.findViewById(R.id.hotseat_icon_1);
updateFakeViewLayout(mFakeTaskView, getMockAppTaskLayoutResId());
mFakeTaskView.animate().alpha(1).setListener(
AnimatorListeners.forSuccessCallback(() -> mFakeTaskView.animate().cancel()));
mFakePreviousTaskView.setFakeTaskViewFillColor(mContext.getResources().getColor(
getMockPreviousAppTaskThumbnailColorResId()));
mFakePreviousTaskView.setFakeTaskViewFillColor(getMockPreviousAppTaskThumbnailColor());
mFakeIconView.setBackground(AppCompatResources.getDrawable(
mContext, getMockAppIconResId()));
if (ENABLE_NEW_GESTURE_NAV_TUTORIAL.get()) {
mExitingAppView.setBackgroundColor(getExitingAppColor());
}
}
}