Tips Gesture Navigation Tutorial [Part 1]

import various resources from tips gesture tutorial

Bug: 146173041
Test: build and verify it passes
Change-Id: Iacea7ba1f2d15452e7442f2976633da7012fab35
This commit is contained in:
Pinyao Ting 2019-12-26 09:40:12 -08:00
parent f10903e601
commit 993aef828a
12 changed files with 694 additions and 0 deletions

View File

@ -0,0 +1,20 @@
<!--
Copyright (C) 2020 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">
<corners android:radius="?android:attr/dialogCornerRadius"/>
<solid android:color="@color/back_gesture_tutorial_primary_color"/>
</shape>

View File

@ -0,0 +1,367 @@
<!--
Copyright (C) 2020 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.
-->
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt">
<aapt:attr name="android:drawable">
<vector
android:width="206dp"
android:height="435dp"
android:viewportWidth="206"
android:viewportHeight="435">
<group android:name="edgeGroup"
android:translateX="197"
android:translateY="0">
<path
android:name="edge"
android:fillAlpha="0"
android:fillType="nonZero"
android:fillColor="#1a73eb"
android:pathData=" M0,0 h9 v435 h-9 z " />
</group>
<group
android:name="trailGroup"
android:translateX="226"
android:translateY="200">
<path
android:name="trail"
android:fillAlpha="1"
android:fillType="nonZero"
android:pathData=" M0,0 h55 v36 h-55 z ">
<aapt:attr name="android:fillColor">
<gradient
android:startX="0"
android:endX="55"
android:type="linear">
<item
android:color="#991a73eb"
android:offset="0" />
<item
android:color="#401a73eb"
android:offset="0.5" />
<item
android:color="#001a73eb"
android:offset="1" />
</gradient>
</aapt:attr>
</path>
</group>
<group android:name="_R_G">
<group
android:name="_R_G_L_0_G_T_1"
android:rotation="11"
android:scaleX="0.9"
android:scaleY="0.9"
android:translateX="309"
android:translateY="422.5">
<group
android:name="_R_G_L_0_G"
android:translateX="-145"
android:translateY="-208">
<path
android:name="_R_G_L_0_G_D_0_P_0"
android:fillAlpha="1"
android:fillColor="#d2e3fc"
android:fillType="nonZero"
android:pathData=" M12.5 -47 C-7.93,-41.24 -3,-20.5 -1.5,-7 C0,6.5 2.5,22 9,39.5 C13.52,51.67 17.06,63.52 19,113 C21,164 53.5,243.5 53.5,243.5 C53.5,243.5 59,275.5 123.5,326 C188,376.5 283.5,236 290.5,199 C297.5,162 194.5,80 149,73 C103.5,66 90.5,57.5 77,50 C63.5,42.5 57,27 54.5,13.5 C52,0 43.5,-15 40,-25 C36.5,-35 32,-52.5 12.5,-47c " />
<path
android:name="_R_G_L_0_G_D_1_P_0"
android:pathData=" M4.45 -34.66 C4.45,-34.66 10.5,-12.66 10.5,-12.66 C11.24,-9.98 13.98,-8.38 16.67,-9.04 C16.67,-9.04 29.72,-12.27 29.72,-12.27 C32.39,-12.93 34.05,-15.59 33.47,-18.28 C33.47,-18.28 32.11,-24.57 32.11,-24.57 "
android:strokeWidth="4"
android:strokeAlpha="1"
android:strokeColor="#a0c2f9" />
<path
android:name="_R_G_L_0_G_D_2_P_0"
android:pathData=" M18.35 21.81 C21.41,17.24 36.97,10.77 44.63,13.55 "
android:strokeWidth="4"
android:strokeAlpha="1"
android:strokeColor="#a0c2f9" />
</group>
</group>
</group>
<group android:name="time_group" />
</vector>
</aapt:attr>
<target android:name="edge">
<aapt:attr name="android:animation">
<set android:ordering="together">
<objectAnimator
android:duration="333"
android:propertyName="fillAlpha"
android:startOffset="0"
android:valueFrom="0"
android:valueTo="0.2"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" />
</aapt:attr>
</objectAnimator>
<objectAnimator
android:duration="917"
android:propertyName="fillAlpha"
android:startOffset="333"
android:valueFrom="0.2"
android:valueTo="0.2"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" />
</aapt:attr>
</objectAnimator>
<objectAnimator
android:duration="583"
android:propertyName="fillAlpha"
android:startOffset="1250"
android:valueFrom="0.2"
android:valueTo="0"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" />
</aapt:attr>
</objectAnimator>
</set>
</aapt:attr>
</target>
<target android:name="trail">
<aapt:attr name="android:animation">
<set android:ordering="together">
<objectAnimator
android:duration="2000"
android:propertyName="fillAlpha"
android:startOffset="0"
android:valueFrom="1"
android:valueTo="1"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" />
</aapt:attr>
</objectAnimator>
<objectAnimator
android:duration="850"
android:propertyName="fillAlpha"
android:startOffset="2000"
android:valueFrom="1"
android:valueTo="0"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" />
</aapt:attr>
</objectAnimator>
</set>
</aapt:attr>
</target>
<target android:name="trailGroup">
<aapt:attr name="android:animation">
<set android:ordering="together">
<objectAnimator
android:duration="83"
android:propertyName="translateX"
android:startOffset="1250"
android:valueFrom="226"
android:valueTo="226"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.285,1 1.0,1.0" />
</aapt:attr>
</objectAnimator>
<objectAnimator
android:duration="1000"
android:propertyName="translateX"
android:startOffset="1333"
android:valueFrom="226"
android:valueTo="151"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.285,1 1.0,1.0" />
</aapt:attr>
</objectAnimator>
<objectAnimator
android:duration="517"
android:propertyName="translateX"
android:startOffset="2333"
android:valueFrom="151"
android:valueTo="151"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.285,1 1.0,1.0" />
</aapt:attr>
</objectAnimator>
<objectAnimator
android:duration="50"
android:propertyName="translateX"
android:startOffset="2850"
android:valueFrom="226"
android:valueTo="226"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.285,1 1.0,1.0" />
</aapt:attr>
</objectAnimator>
</set>
</aapt:attr>
</target>
<target android:name="_R_G_L_0_G_D_0_P_0">
<aapt:attr name="android:animation">
<set android:ordering="together">
<objectAnimator
android:duration="1833"
android:propertyName="fillAlpha"
android:startOffset="1250"
android:valueFrom="1"
android:valueTo="1"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" />
</aapt:attr>
</objectAnimator>
<objectAnimator
android:duration="167"
android:propertyName="fillAlpha"
android:startOffset="3083"
android:valueFrom="1"
android:valueTo="0"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" />
</aapt:attr>
</objectAnimator>
</set>
</aapt:attr>
</target>
<target android:name="_R_G_L_0_G_D_1_P_0">
<aapt:attr name="android:animation">
<set android:ordering="together">
<objectAnimator
android:duration="1833"
android:propertyName="strokeAlpha"
android:startOffset="1250"
android:valueFrom="1"
android:valueTo="1"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" />
</aapt:attr>
</objectAnimator>
<objectAnimator
android:duration="100"
android:propertyName="strokeAlpha"
android:startOffset="3083"
android:valueFrom="1"
android:valueTo="0"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" />
</aapt:attr>
</objectAnimator>
</set>
</aapt:attr>
</target>
<target android:name="_R_G_L_0_G_D_2_P_0">
<aapt:attr name="android:animation">
<set android:ordering="together">
<objectAnimator
android:duration="1833"
android:propertyName="strokeAlpha"
android:startOffset="1250"
android:valueFrom="1"
android:valueTo="1"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" />
</aapt:attr>
</objectAnimator>
<objectAnimator
android:duration="100"
android:propertyName="strokeAlpha"
android:startOffset="3083"
android:valueFrom="1"
android:valueTo="0"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" />
</aapt:attr>
</objectAnimator>
</set>
</aapt:attr>
</target>
<target android:name="_R_G_L_0_G_T_1">
<aapt:attr name="android:animation">
<set android:ordering="together">
<objectAnimator
android:duration="83"
android:propertyName="translateX"
android:startOffset="1250"
android:valueFrom="309"
android:valueTo="309"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.285,1 1.0,1.0" />
</aapt:attr>
</objectAnimator>
<objectAnimator
android:duration="1417"
android:propertyName="translateX"
android:startOffset="1333"
android:valueFrom="309"
android:valueTo="251"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.285,1 1.0,1.0" />
</aapt:attr>
</objectAnimator>
</set>
</aapt:attr>
</target>
<target android:name="_R_G_L_0_G_T_1">
<aapt:attr name="android:animation">
<set android:ordering="together">
<objectAnimator
android:duration="83"
android:propertyName="rotation"
android:startOffset="1250"
android:valueFrom="11"
android:valueTo="11"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.277,1 1.0,1.0" />
</aapt:attr>
</objectAnimator>
<objectAnimator
android:duration="1417"
android:propertyName="rotation"
android:startOffset="1333"
android:valueFrom="11"
android:valueTo="0"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.277,1 1.0,1.0" />
</aapt:attr>
</objectAnimator>
</set>
</aapt:attr>
</target>
<target android:name="time_group">
<aapt:attr name="android:animation">
<set android:ordering="together">
<objectAnimator
android:duration="2183"
android:propertyName="translateX"
android:startOffset="1250"
android:valueFrom="0"
android:valueTo="1"
android:valueType="floatType" />
</set>
</aapt:attr>
</target>
</animated-vector>

View File

@ -0,0 +1,20 @@
<!--
Copyright (C) 2020 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">
<corners android:radius="@dimen/default_dialog_corner_radius"/>
<solid android:color="@color/back_gesture_tutorial_primary_color"/>
</shape>

View File

@ -0,0 +1,25 @@
<!--
Copyright (C) 2020 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="13dp"
android:viewportHeight="14"
android:viewportWidth="14"
android:width="13dp">
<path
android:fillColor="#000000"
android:fillType="evenOdd"
android:pathData="M14,1.41L12.59,0L7,5.59L1.41,0L0,1.41L5.59,7L0,12.59L1.41,14L7,8.41L12.59,14L14,12.59L8.41,7L14,1.41Z"/>
</vector>

View File

@ -0,0 +1,29 @@
<!--
Copyright (C) 2020 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="192dp"
android:height="192dp"
android:viewportWidth="192"
android:viewportHeight="192">
<path
android:pathData="M96,90.01"
android:strokeWidth="2.4297"
android:fillColor="#00000000"
android:strokeColor="#FFC800"/>
<path
android:pathData="M153.24,48.09c-0.5,-1.51 -0.99,-2.86 -1.51,-4.12c-3.03,-7.1 -7.26,-13.45 -12.59,-18.88C127.68,13.42 112.4,7 96.1,7c-14,0 -27.66,4.93 -38.45,13.87C47,29.69 39.61,41.99 36.82,55.51c-0.76,3.9 -1.14,7.86 -1.14,11.78c0,16.39 6.36,31.77 17.9,43.3c2.65,2.65 5.59,5.08 8.74,7.23l0.09,24.14v22.03c0,5.33 4.82,10.01 10.32,10.01h0.41h3.85v0c0,6.23 4.53,10.93 10.53,10.93h16.94c6.01,0 10.54,-4.7 10.54,-10.93v0h4.31c5.56,0 10.26,-4.5 10.26,-9.83v-22.01c0.01,-0.06 0.01,-0.13 0.01,-0.2v-23.74c16.75,-11.15 26.73,-30.15 26.73,-50.94C156.31,60.76 155.28,54.3 153.24,48.09zM118.51,111.08l-0.46,0.29l-0.46,0.29v0.55v0.55v4.38v22.77l-14.12,0V95.9h14h2v-2v-8.5v-2h-2H74.53h-2v2v8.5v2h2h14v44.02l-14.13,0l-0.09,-23.21l-0.02,-4.3l0,-0.54l0,-0.54l-0.45,-0.29l-0.45,-0.29l-3.6,-2.36c-2.81,-1.84 -5.41,-3.95 -7.73,-6.28c-9.27,-9.26 -14.38,-21.63 -14.38,-34.82c0,-3.14 0.3,-6.31 0.9,-9.43C53.25,35.35 73.23,19 96.1,19c13.05,0 25.3,5.15 34.48,14.5c4.27,4.34 7.66,9.43 10.08,15.1c0.39,0.96 0.78,2.03 1.18,3.24c1.64,5 2.47,10.2 2.47,15.45c0,17.1 -8.27,32.58 -22.11,41.43L118.51,111.08z"
android:fillColor="#4285F4"/>
</vector>

View File

@ -0,0 +1,19 @@
<!--
Copyright (C) 2020 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.
-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/back_gesture_tutorial_fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

View File

@ -0,0 +1,121 @@
<!--
Copyright (C) 2020 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.
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layerType="software"
android:background="@color/back_gesture_tutorial_background_color">
<!--The layout is rendered on the software layer to avoid b/136158117-->
<ImageView
android:id="@+id/back_gesture_tutorial_fragment_hand_coaching"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"/>
<ImageButton
android:id="@+id/back_gesture_tutorial_fragment_close_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="18dp"
android:layout_marginTop="30dp"
android:layout_marginStart="4dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="@android:color/transparent"
android:accessibilityTraversalAfter="@id/back_gesture_tutorial_fragment_titles_container"
android:contentDescription="@string/back_gesture_tutorial_close_button_content_description"
android:src="@drawable/back_gesture_tutorial_close_button"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="70dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/back_gesture_tutorial_fragment_titles_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:focusable="true">
<TextView
android:id="@+id/back_gesture_tutorial_fragment_title_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginStart="@dimen/back_gesture_tutorial_title_margin_start_end"
android:layout_marginEnd="@dimen/back_gesture_tutorial_title_margin_start_end"
style="@style/TextAppearance.BackGestureTutorial.Title"/>
<TextView
android:id="@+id/back_gesture_tutorial_fragment_subtitle_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginStart="@dimen/back_gesture_tutorial_subtitle_margin_start_end"
android:layout_marginEnd="@dimen/back_gesture_tutorial_subtitle_margin_start_end"
style="@style/TextAppearance.BackGestureTutorial.Subtitle"/>
</LinearLayout>
<Space
android:layout_width="wrap_content"
android:layout_weight="1"
android:layout_height="0dp"
android:layout_marginTop="48dp"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:orientation="vertical"/>
<!-- android:stateListAnimator="@null" removes shadow and normal on click behavior (increase
of elevation and shadow) which is replaced by ripple effect in android:foreground -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="46dp"
android:layout_marginBottom="48dp"
android:layout_gravity="center_horizontal">
<Button
android:id="@+id/back_gesture_tutorial_fragment_action_button"
android:layout_width="142dp"
android:layout_height="49dp"
android:layout_marginEnd="@dimen/back_gesture_tutorial_button_margin_start_end"
android:layout_alignParentEnd="true"
android:stateListAnimator="@null"
android:background="@drawable/back_gesture_tutorial_action_button_background"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
style="@style/TextAppearance.BackGestureTutorial.ButtonLabel"/>
<Button
android:id="@+id/back_gesture_tutorial_fragment_action_text_button"
android:layout_width="142dp"
android:layout_height="49dp"
android:layout_marginStart="@dimen/back_gesture_tutorial_button_margin_start_end"
android:layout_alignParentStart="true"
android:stateListAnimator="@null"
android:background="@null"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
style="@style/TextAppearance.BackGestureTutorial.TextButtonLabel"/>
</RelativeLayout>
</LinearLayout>
</RelativeLayout>

View File

@ -80,4 +80,9 @@
<!-- Overscroll Gesture -->
<dimen name="gestures_overscroll_fling_threshold">40dp</dimen>
<!-- Tips Gesture Tutorial -->
<dimen name="back_gesture_tutorial_title_margin_start_end">40dp</dimen>
<dimen name="back_gesture_tutorial_subtitle_margin_start_end">16dp</dimen>
<dimen name="back_gesture_tutorial_button_margin_start_end">18dp</dimen>
</resources>

View File

@ -66,5 +66,33 @@
<!-- Text of the tip when user lands in all apps view for the first time, indicating where the tip toast points to is the predicted apps section. [CHAR_LIMIT=50] -->
<string name="all_apps_prediction_tip">Your predicted apps</string>
<!-- Content description for a close button. [CHAR LIMIT=NONE] -->
<string name="back_gesture_tutorial_close_button_content_description" translatable="false">Close</string>
<!-- Title shown on the notification of Back gesture tutorial. [CHAR LIMIT=30] -->
<string name="back_gesture_tutorial_notification_title" translatable="false">Try the new back gesture</string>
<!-- Subtitle shown on the notification of Back gesture tutorial. [CHAR LIMIT=60] -->
<string name="back_gesture_tutorial_notification_subtitle" translatable="false">Learn how to go back while using your apps</string>
<!-- Action text shown on the notification of Back gesture tutorial. [CHAR LIMIT=14] -->
<string name="back_gesture_tutorial_notification_action_label" translatable="false">Try it</string>
<!-- Title shown during interactive part of Back gesture tutorial for right edge. [CHAR LIMIT=30] -->
<string name="back_gesture_tutorial_playground_title_swipe_inward_right_edge" translatable="false">Try the back gesture</string>
<!-- Subtitle shown during interactive parts of Back gesture tutorial for right edge. [CHAR LIMIT=60] -->
<string name="back_gesture_tutorial_engaged_subtitle_swipe_inward_right_edge" translatable="false">Start at the right edge and swipe toward the middle</string>
<!-- Title shown during interactive part of Back gesture tutorial for left edge. [CHAR LIMIT=30] -->
<string name="back_gesture_tutorial_playground_title_swipe_inward_left_edge" translatable="false">Try the other side</string>
<!-- Subtitle shown during interactive parts of Back gesture tutorial for left edge. [CHAR LIMIT=60] -->
<string name="back_gesture_tutorial_engaged_subtitle_swipe_inward_left_edge" translatable="false">That\'s it! Now try swiping from the left edge.</string>
<!-- Title shown on the confirmation screen after successful gesture. [CHAR LIMIT=30] -->
<string name="back_gesture_tutorial_confirm_title" translatable="false">All set</string>
<!-- Subtitle shown on the confirmation screen after successful gesture. [CHAR LIMIT=60] -->
<string name="back_gesture_tutorial_confirm_subtitle" translatable="false">To change the sensitivity of the back gesture, go to Settings</string>
<!-- Button text shown on a button on the confirm screen. [CHAR LIMIT=14] -->
<string name="back_gesture_tutorial_action_button_label" translatable="false">Done</string>
<!-- Button text shown on a text button on the confirm screen. [CHAR LIMIT=14] -->
<string name="back_gesture_tutorial_action_text_button_label" translatable="false">Settings</string>
</resources>

View File

@ -25,4 +25,39 @@
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
</style>
<style name="TextAppearance.BackGestureTutorial"
parent="android:TextAppearance.Material.Body1" />
<style name="TextAppearance.BackGestureTutorial.CallToAction"
parent="android:TextAppearance.Material.Body2" />
<style name="TextAppearance.BackGestureTutorial.Title"
parent="TextAppearance.BackGestureTutorial">
<item name="android:gravity">center</item>
<item name="android:textColor">@color/back_gesture_tutorial_title_color</item>
<item name="android:textSize">28sp</item>
</style>
<style name="TextAppearance.BackGestureTutorial.Subtitle"
parent="TextAppearance.BackGestureTutorial">
<item name="android:gravity">center</item>
<item name="android:textColor">@color/back_gesture_tutorial_subtitle_color</item>
<item name="android:letterSpacing">0.03</item>
<item name="android:textSize">21sp</item>
</style>
<style name="TextAppearance.BackGestureTutorial.ButtonLabel"
parent="TextAppearance.BackGestureTutorial.CallToAction">
<item name="android:gravity">center</item>
<item name="android:textColor">@color/back_gesture_tutorial_action_button_label_color</item>
<item name="android:letterSpacing">0.02</item>
<item name="android:textSize">16sp</item>
<item name="android:textAllCaps">false</item>
</style>
<style name="TextAppearance.BackGestureTutorial.TextButtonLabel"
parent="TextAppearance.BackGestureTutorial.ButtonLabel">
<item name="android:textColor">@color/back_gesture_tutorial_primary_color</item>
</style>
</resources>

View File

@ -0,0 +1,19 @@
<!--
Copyright (C) 2020 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.
-->
<alias xmlns:android="http://schemas.android.com/apk/res/android">
<intent
android:action="com.android.quickstep.action.BACK_GESTURE_TUTORIAL" />
</alias>

View File

@ -37,4 +37,10 @@
<color name="all_apps_bg_hand_fill">#E5E5E5</color>
<color name="all_apps_bg_hand_fill_dark">#9AA0A6</color>
<color name="back_gesture_tutorial_background_color">#FFFFFFFF</color>
<color name="back_gesture_tutorial_subtitle_color">#99000000</color> <!-- 60% black -->
<color name="back_gesture_tutorial_title_color">#FF000000</color>
<color name="back_gesture_tutorial_action_button_label_color">#FFFFFFFF</color>
<color name="back_gesture_tutorial_primary_color">#1A73E8</color> <!-- Blue -->
</resources>