Remote authenticator enrollment finish layout.
This flow will be included in Device Unlock settings with the
Fingerprint and Face Unlock.
Bug: b/293905106
Test: atest RemoteAuthEnrollFinishTest
Change-Id: I5d24e23948e508dcff5216cd63eba8d9fc9ec97f
diff --git a/res/layout/remote_auth_enroll_finish.xml b/res/layout/remote_auth_enroll_finish.xml
new file mode 100644
index 0000000..ccd42d4
--- /dev/null
+++ b/res/layout/remote_auth_enroll_finish.xml
@@ -0,0 +1,48 @@
+<?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.
+-->
+
+<com.google.android.setupdesign.GlifLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/setup_wizard_layout"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:icon="@drawable/ic_lock"
+ app:sucHeaderText="@string/security_settings_remoteauth_enroll_finish_title"
+ app:sudDescriptionText="@string/security_settings_remoteauth_enroll_finish_description">
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ style="@style/SudContentFrame"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingHorizontal="@dimen/remoteauth_fragment_padding_horizontal">
+
+ <com.airbnb.lottie.LottieAnimationView
+ android:id="@+id/enroll_finish_animation"
+ android:importantForAccessibility="no"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:lottie_rawRes="@raw/remoteauth_enroll_finish_animation"
+ app:lottie_loop="true"
+ app:lottie_autoPlay="true" />
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+</com.google.android.setupdesign.GlifLayout>
\ No newline at end of file
diff --git a/res/raw/remoteauth_enroll_finish_animation.json b/res/raw/remoteauth_enroll_finish_animation.json
new file mode 100644
index 0000000..a06ae37
--- /dev/null
+++ b/res/raw/remoteauth_enroll_finish_animation.json
@@ -0,0 +1 @@
+{"v":"5.9.0","fr":60,"ip":0,"op":248,"w":412,"h":300,"nm":"Active_Unlock_PT2_V05","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".blue400","cl":"blue400","parent":24,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":62,"s":[0]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":92,"s":[360]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":187,"s":[360]},{"t":237,"s":[0]}],"ix":10},"p":{"a":0,"k":[85.699,151.401,0],"ix":2,"l":2},"a":{"a":0,"k":[84.949,150.651,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":62,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-9.6,-20.75],[-9.6,4.35],[9.6,20.75]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":92,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-23.725,4.75],[-11.85,14.35],[7.725,-9.125]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-23.725,4.75],[-11.85,14.35],[7.725,-9.125]],"c":false}]},{"t":237,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-9.6,-20.75],[-9.6,4.35],[9.6,20.75]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":62,"s":[2.768]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":92,"s":[4.568]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":187,"s":[4.568]},{"t":237,"s":[2.768]}],"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[94.549,146.301],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":0,"s":[171.326,149.999,0],"to":[2.5,0,0],"ti":[-2.5,0,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.7,"y":0.7},"t":50,"s":[186.326,149.999,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[186.326,149.999,0],"to":[-2.5,0,0],"ti":[2.5,0,0]},{"t":237,"s":[171.326,149.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[211.701,150.999,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":20,"s":[130,130,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":40,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":83,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":103,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":123,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":125,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":145,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":165,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":208,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":228,"s":[130,130,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":248,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":263,"s":[100,100,100]},{"t":283,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.1,0],[0,-2.2],[-2.2,0],[0,2.2]],"o":[[-2.101,0],[0,2.2],[2.1,0],[0,-2.2]],"v":[[0.001,-3.9],[-3.899,0],[0.001,3.9],[3.9,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[211.701,150.999],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":0,"s":[191.201,149.999,0],"to":[2.5,0,0],"ti":[-2.5,0,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.7,"y":0.7},"t":50,"s":[206.201,149.999,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[206.201,149.999,0],"to":[-2.5,0,0],"ti":[2.5,0,0]},{"t":237,"s":[191.201,149.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[211.701,150.999,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":7,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":27,"s":[130,130,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":47,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":76,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":96,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":116,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":132,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":152,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":172,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":201,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":221,"s":[130,130,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":241,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":263,"s":[100,100,100]},{"t":283,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.1,0],[0,-2.2],[-2.2,0],[0,2.2]],"o":[[-2.101,0],[0,2.2],[2.1,0],[0,-2.2]],"v":[[0.001,-3.9],[-3.899,0],[0.001,3.9],[3.9,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[211.701,150.999],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":0,"s":[210.701,149.999,0],"to":[2.5,0,0],"ti":[-2.5,0,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.7,"y":0.7},"t":50,"s":[225.701,149.999,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[225.701,149.999,0],"to":[-2.5,0,0],"ti":[2.5,0,0]},{"t":237,"s":[210.701,149.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[211.701,150.999,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":14,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":34,"s":[130,130,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":54,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":69,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":89,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":109,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":139,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":159,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":179,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":194,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":214,"s":[130,130,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":234,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":263,"s":[100,100,100]},{"t":283,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.1,0],[0,-2.2],[-2.2,0],[0,2.2]],"o":[[-2.101,0],[0,2.2],[2.1,0],[0,-2.2]],"v":[[0.001,-3.9],[-3.899,0],[0.001,3.9],[3.9,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[211.701,150.999],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":0,"s":[230.076,149.999,0],"to":[2.5,0,0],"ti":[-2.5,0,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.7,"y":0.7},"t":50,"s":[245.076,149.999,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[245.076,149.999,0],"to":[-2.5,0,0],"ti":[2.5,0,0]},{"t":237,"s":[230.076,149.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[211.701,150.999,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":21,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":41,"s":[130,130,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":61,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":62,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":82,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":102,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":146,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":166,"s":[130,130,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":186,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":187,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":207,"s":[130,130,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":227,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":263,"s":[100,100,100]},{"t":283,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.1,0],[0,-2.2],[-2.2,0],[0,2.2]],"o":[[-2.101,0],[0,2.2],[2.1,0],[0,-2.2]],"v":[[0.001,-3.9],[-3.899,0],[0.001,3.9],[3.9,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[211.701,150.999],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".blue400","cl":"blue400","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[9.431,10.775,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[0,0],[0,3.938],[-0.938,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[0.938,0],[0,4.188],[0,0]],"v":[[-4.562,-0.031],[-4.562,-4.719],[0.25,-9.656],[5.375,-4.781],[5.375,-0.281]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":88,"s":[{"i":[[0,0],[0,3.938],[0.896,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[-0.896,0],[0,4.188],[0,0]],"v":[[14.875,-2.531],[14.875,-7.219],[10.274,-12.156],[5.375,-7.281],[5.375,-0.281]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":207,"s":[{"i":[[0,0],[0,3.938],[0.896,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[-0.896,0],[0,4.188],[0,0]],"v":[[14.875,-2.531],[14.875,-7.219],[10.274,-12.156],[5.375,-7.281],[5.375,-0.281]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":217,"s":[{"i":[[0,0],[0,3.938],[-0.932,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[0.932,0],[0,4.188],[0,0]],"v":[[-4.5,-2.531],[-4.5,-7.219],[0.282,-12.156],[5.375,-7.281],[5.375,-0.281]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":227,"s":[{"i":[[0,0],[0,3.938],[-0.932,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[0.932,0],[0,4.188],[0,0]],"v":[[-4.5,-2.531],[-4.5,-7.219],[0.282,-12.156],[5.375,-7.281],[5.375,-0.281]],"c":false}]},{"t":247,"s":[{"i":[[0,0],[0,3.938],[-0.938,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[0.938,0],[0,4.188],[0,0]],"v":[[-4.562,-0.031],[-4.562,-4.719],[0.25,-9.656],[5.375,-4.781],[5.375,-0.281]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[315.859,148.919,0],"ix":2,"l":2},"a":{"a":0,"k":[9.912,13.777,0],"ix":1,"l":2},"s":{"a":0,"k":[147,147,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.067,0],[0,1.067],[1.067,0],[0,-1.068]],"o":[[1.067,0],[0,-1.068],[-1.067,0],[0,1.067]],"v":[[0,6.764],[1.932,4.831],[0,2.898],[-1.932,4.831]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,-0.533],[0,0],[-0.534,0],[0,0],[0,0.533],[0,0],[0.534,0]],"o":[[-0.534,0],[0,0],[0,0.533],[0,0],[0.534,0],[0,0],[0,-0.533],[0,0]],"v":[[-6.763,-1.932],[-7.73,-0.966],[-7.73,10.629],[-6.763,11.594],[6.763,11.594],[7.73,10.629],[7.73,-0.966],[6.763,-1.932]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,-1.601],[0,0],[1.601,0],[0,0],[0,1.601],[0,0],[-1.601,0]],"o":[[0,0],[0,0],[1.601,0],[0,0],[0,1.601],[0,0],[-1.601,0],[0,0],[0,-1.601],[0,0]],"v":[[-5.797,-3.865],[5.797,-3.865],[6.763,-3.865],[9.662,-0.966],[9.662,10.629],[6.763,13.527],[-6.763,13.527],[-9.662,10.629],[-9.662,-0.966],[-6.763,-3.865]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 2","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.912,13.777],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"MATTE","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[316.981,150,0],"ix":2,"l":2},"a":{"a":0,"k":[56.29,104.464,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.337,0],[0,0],[0,4.337],[0,0],[-4.337,0],[0,0],[0,-4.337]],"o":[[0,4.337],[0,0],[-4.337,0],[0,0],[0,-4.337],[0,0],[4.337,0],[0,0]],"v":[[52.107,94.382],[44.242,102.248],[-46.208,102.248],[-54.074,94.382],[-54.074,-94.382],[-46.208,-102.248],[44.242,-102.248],[52.107,-94.382]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 2","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.498039245605,0.525490196078,0.545098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[56.29,104.464],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":".blue400","cl":"blue400","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[316.981,152.207,0],"ix":2,"l":2},"a":{"a":0,"k":[74.06,74.06,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.72,-30.74],[30.74,3.72],[-3.719,30.741],[-30.74,-3.719]],"o":[[-3.72,30.74],[-30.74,-3.719],[3.72,-30.74],[30.74,3.72]],"v":[[55.66,6.735],[-6.735,55.66],[-55.66,-6.735],[6.735,-55.66]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":73,"s":[33]},{"t":120,"s":[0]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[74.06,74.06],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":60,"s":[0,0]},{"t":120,"s":[610,610]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":".blue300matte","cl":"blue300matte","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[316.85,150.9,0],"ix":2,"l":2},"a":{"a":0,"k":[317.85,151.9,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.4,0],[0,0],[0,4.399],[0,0],[-4.4,0],[0,0],[0,-4.4]],"o":[[0,4.3],[0,0],[-4.3,0],[0,0],[0,-4.3],[0,0],[4.3,0],[0,0]],"v":[[52.15,94.3],[44.25,102.199],[-46.25,102.199],[-54.15,94.3],[-54.15,-94.4],[-46.25,-102.3],[44.25,-102.3],[52.15,-94.4]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,1.1],[0,0],[1.1,0],[0,0],[5.4,0],[0,0],[0,-5.4],[0,0],[-5.4,0],[0,0],[0,5.4],[0,0],[0,1.1],[0,0],[1.1,0],[0,0]],"o":[[0,0],[0,-1.1],[0,0],[0,-5.4],[0,0],[-5.4,0],[0,0],[0,5.4],[0,0],[5.4,0],[0,0],[1.1,0],[0,0],[0,-1.1],[0,0],[1.1,0]],"v":[[56.05,-43.3],[56.05,-51.2],[54.05,-53.2],[54.05,-94.4],[44.25,-104.2],[-46.25,-104.2],[-56.05,-94.4],[-56.05,94.4],[-46.25,104.199],[44.25,104.199],[54.05,94.4],[54.05,-1.9],[56.05,-3.9],[56.05,-23.6],[54.05,-25.6],[54.05,-41.3]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541176470588,0.705882352941,0.972549019608,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[317.85,151.9],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":".blue600","cl":"blue600","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[314.647,152.796,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,3.941],[0,0],[3.941,0],[0,0],[0,-3.941],[0,0],[-3.941,0]],"o":[[3.941,0],[0,0],[0,-3.941],[0,0],[-3.941,0],[0,0],[0,3.941],[0,0]],"v":[[48.189,101.203],[55.325,94.067],[55.283,-97.818],[48.147,-104.954],[-45.468,-104.954],[-52.605,-97.818],[-52.563,94.067],[-45.426,101.203]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":25,"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[225]},{"t":248,"s":[585]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.101960784314,0.450980392157,0.909803921569,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,3.941],[0,0],[3.941,0],[0,0],[0,-3.941],[0,0],[-3.941,0]],"o":[[3.941,0],[0,0],[0,-3.941],[0,0],[-3.941,0],[0,0],[0,3.941],[0,0]],"v":[[48.189,101.203],[55.325,94.067],[55.283,-97.818],[48.147,-104.954],[-45.468,-104.954],[-52.605,-97.818],[-52.563,94.067],[-45.426,101.203]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":25,"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[45]},{"t":248,"s":[405]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.101960784314,0.450980392157,0.909803921569,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":".blue300","cl":"blue300","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[316.85,150.9,0],"ix":2,"l":2},"a":{"a":0,"k":[317.85,151.9,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.4,0],[0,0],[0,4.399],[0,0],[-4.4,0],[0,0],[0,-4.4]],"o":[[0,4.3],[0,0],[-4.3,0],[0,0],[0,-4.3],[0,0],[4.3,0],[0,0]],"v":[[52.15,94.3],[44.25,102.199],[-46.25,102.199],[-54.15,94.3],[-54.15,-94.4],[-46.25,-102.3],[44.25,-102.3],[52.15,-94.4]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,1.1],[0,0],[1.1,0],[0,0],[5.4,0],[0,0],[0,-5.4],[0,0],[-5.4,0],[0,0],[0,5.4],[0,0],[0,1.1],[0,0],[1.1,0],[0,0]],"o":[[0,0],[0,-1.1],[0,0],[0,-5.4],[0,0],[-5.4,0],[0,0],[0,5.4],[0,0],[5.4,0],[0,0],[1.1,0],[0,0],[0,-1.1],[0,0],[1.1,0]],"v":[[56.05,-43.3],[56.05,-51.2],[54.05,-53.2],[54.05,-94.4],[44.25,-104.2],[-46.25,-104.2],[-56.05,-94.4],[-56.05,94.4],[-46.25,104.199],[44.25,104.199],[54.05,94.4],[54.05,-1.9],[56.05,-3.9],[56.05,-23.6],[54.05,-25.6],[54.05,-41.3]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541176470588,0.705882352941,0.972549019608,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[317.85,151.9],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":".blue400","cl":"blue400","parent":24,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[88.803,150.5,0],"ix":2,"l":2},"a":{"a":0,"k":[88.803,150.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[24.601,0],[0,24.6],[-24.6,0],[0,-24.6]],"o":[[-24.6,0],[0,-24.6],[24.601,0],[0,24.6]],"v":[[-1.45,44.6],[-46.05,-0.001],[-1.45,-44.6],[43.151,-0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.5,0],[0,0],[24.101,0],[0,-26.1],[-26.1,0],[-3.8,22.401],[0,0],[0,1.5],[0,0]],"o":[[0,0],[-2.9,-23.299],[-26.1,0],[0,26.1],[23.4,0],[0,0],[1.5,0],[0,0],[0.099,-1.5]],"v":[[46.051,-5.9],[45.551,-5.9],[-1.45,-47.299],[-48.75,-0.001],[-1.45,47.299],[45.25,7.799],[45.95,7.799],[48.651,5.1],[48.651,-3.199]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[88.849,150.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"ClockFace_Mask","parent":24,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[87.399,150.5,0],"ix":2,"l":2},"a":{"a":0,"k":[87.399,150.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-25.405,0],[0,25.405],[25.404,0],[0,-25.405]],"o":[[25.404,0],[0,-25.405],[-25.405,0],[0,25.405]],"v":[[0,46],[46,0],[0,-46],[-46,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[87.399,150.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":".grey300","cl":"grey300","tt":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":50,"s":[6]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":187,"s":[6]},{"t":237,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":0,"s":[86.4,150.05,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":0.2},"o":{"x":0.7,"y":0.7},"t":50,"s":[121.4,150.05,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":187,"s":[121.4,150.05,0],"to":[0,0,0],"ti":[0,0,0]},{"t":237,"s":[86.4,150.05,0]}],"ix":2,"l":2},"a":{"a":0,"k":[87.4,151.05,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[5.1,0],[0,0],[0.5,-4.3],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-5.1,0],[0,0],[-0.5,4.3],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[-0.5,-4.3],[0,0],[-5.1,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.5,4.301],[0,0],[5.1,0],[0,0],[0,0],[0,0]],"v":[[29.3,-7.85],[29.4,-9.35],[29.1,-9.35],[22.699,-68.05],[12.8,-75.65],[-12,-75.65],[-21.9,-68.15],[-29,-9.35],[-29.4,-9.35],[-29.301,-7.65],[-29.4,-6.45],[-29.2,-6.45],[-22.801,68.049],[-12.9,75.65],[11.9,75.65],[21.8,68.15],[29,-6.45],[29.3,-6.45]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960784314,0.525490196078,0.545098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[87.4,151.05],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0}],"markers":[]}
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index e272c15..9b7934c 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -169,6 +169,9 @@
<item name="face_preview_scale" format="float" type="dimen">1.0</item>
<dimen name="face_enroll_intro_illustration_margin_bottom">0dp</dimen>
+ <!-- RemoteAuth-->
+ <dimen name="remoteauth_fragment_padding_horizontal">40dp</dimen>
+
<!-- Lock pattern view size, align sysui biometric_auth_pattern_view_size -->
<dimen name="biometric_auth_pattern_view_size">348dp</dimen>
<dimen name="biometric_auth_pattern_view_max_size">@dimen/biometric_auth_pattern_view_size</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 948709b..0d4ec40 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -884,6 +884,20 @@
<!-- Message showing that multiple fingerprints, face, and the current watch is set up. Shown for a menu item that launches fingerprint, face, and active unlock settings or enrollment. [CHAR LIMIT=80]-->
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary">Face, fingerprints, and <xliff:g id="watch" example="Dani's Watch">%s</xliff:g> added</string>
+ <!-- RemoteAuth unlock enrollment and settings --><skip />
+ <!-- Strings for RemoteAuth enroll finish page -->
+ <!-- Title of the dialog that shows when a paired watch has been set up successfully and can be used to unlock the phone [CHAR_LIMIT=45] -->
+ <string name="security_settings_remoteauth_enroll_finish_title">
+ You\'re all set!
+ </string>
+ <!-- Explains when a paired watch can be used to unlock the phone after it has been set up successfully [CHAR_LIMIT=NONE] -->
+ <string name="security_settings_remoteauth_enroll_finish_description">
+ You can now use your watch to unlock this phone when you swipe up on the lock screen or tap a notification
+ </string>
+ <!-- Button text to finish enrollment [CHAR LIMIT=30] -->
+ <string name="security_settings_remoteauth_enroll_finish_btn_next">Done</string>
+
+
<!-- Biometric settings --><skip />
<!-- Title shown for menu item that launches biometric settings. [CHAR LIMIT=66] -->
<string name="security_settings_biometric_preference_title">Fingerprint & Face Unlock</string>
diff --git a/src/com/android/settings/remoteauth/RemoteAuthEnrollBase.kt b/src/com/android/settings/remoteauth/RemoteAuthEnrollBase.kt
new file mode 100644
index 0000000..e00faec
--- /dev/null
+++ b/src/com/android/settings/remoteauth/RemoteAuthEnrollBase.kt
@@ -0,0 +1,83 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.remoteauth
+
+import android.R
+import android.graphics.Color
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.annotation.ColorInt
+import androidx.annotation.IdRes
+import androidx.annotation.LayoutRes
+import androidx.fragment.app.Fragment
+
+import com.android.settings.Utils
+import com.google.android.setupcompat.template.FooterBarMixin
+import com.google.android.setupcompat.template.FooterButton
+import com.google.android.setupdesign.GlifLayout
+
+/**
+ * Displays a content view with a sticky footer in the SetupDesign style. Implementations
+ * must define a primary button, and an optional secondary button.
+ *
+ * A layout with a [GlifLayout] must be provided, along with the id of the [GlifLayout].
+ */
+abstract class RemoteAuthEnrollBase(
+ @LayoutRes val layoutResId: Int,
+ @IdRes private val glifLayoutId: Int
+) : Fragment(layoutResId) {
+ protected val primaryFooterButton by lazy { initializePrimaryFooterButton() }
+ protected val secondaryFooterButton by lazy { initializeSecondaryFooterButton() }
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ viewGroup: ViewGroup?,
+ savedInstanceArgs: Bundle?
+ ) =
+ super.onCreateView(inflater, viewGroup, savedInstanceArgs)!!.also { view ->
+ initializeFooterbarMixin(view)
+ }
+
+ protected fun getGlifLayout(view: View) = view.findViewById<GlifLayout>(glifLayoutId)
+
+ /**
+ * Return a button will be used as the primary footer button.
+ */
+ abstract fun initializePrimaryFooterButton(): FooterButton
+
+ /** If non-null, returned button will be used as the secondary footer button. */
+ abstract fun initializeSecondaryFooterButton(): FooterButton?
+
+ private fun initializeFooterbarMixin(view: View) {
+ val footerBarMixin = getGlifLayout(view).getMixin(FooterBarMixin::class.java)
+ primaryFooterButton.also { footerBarMixin.primaryButton = it }
+ secondaryFooterButton?.also { footerBarMixin.secondaryButton = it }
+ footerBarMixin.getButtonContainer().setBackgroundColor(getBackgroundColor())
+ }
+
+ @ColorInt
+ private fun getBackgroundColor(): Int {
+ val stateList = Utils.getColorAttr(context, R.attr.windowBackground)
+ return stateList?.defaultColor ?: Color.TRANSPARENT
+ }
+
+ private companion object{
+ const val TAG = "RemoteAuthEnrollBase"
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/remoteauth/finish/RemoteAuthEnrollFinish.kt b/src/com/android/settings/remoteauth/finish/RemoteAuthEnrollFinish.kt
new file mode 100644
index 0000000..c55b4ed
--- /dev/null
+++ b/src/com/android/settings/remoteauth/finish/RemoteAuthEnrollFinish.kt
@@ -0,0 +1,61 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.remoteauth.finish
+
+import android.os.Bundle
+import android.view.View
+
+import com.android.settings.R
+import com.android.settings.remoteauth.RemoteAuthEnrollBase
+import com.android.settingslib.widget.LottieColorUtils
+
+import com.airbnb.lottie.LottieAnimationView
+import com.google.android.setupcompat.template.FooterButton
+
+/**
+ * Displays the enrollment finish view.
+ */
+class RemoteAuthEnrollFinish :
+ RemoteAuthEnrollBase(
+ layoutResId = R.layout.remote_auth_enroll_finish,
+ glifLayoutId = R.id.setup_wizard_layout,
+ ) {
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ LottieColorUtils.applyDynamicColors(requireContext(), view.findViewById<LottieAnimationView>(R.id.enroll_finish_animation))
+ }
+
+ override fun initializePrimaryFooterButton(): FooterButton {
+ return FooterButton.Builder(requireContext())
+ .setText(R.string.security_settings_remoteauth_enroll_finish_btn_next)
+ .setListener(this::onPrimaryFooterButtonClick)
+ .setButtonType(FooterButton.ButtonType.NEXT)
+ .setTheme(R.style.SudGlifButton_Primary)
+ .build()
+ }
+
+ override fun initializeSecondaryFooterButton(): FooterButton? = null
+
+ fun onPrimaryFooterButtonClick(view: View) {
+ // TODO(b/293906345): Wire up navigation
+ }
+
+ private companion object{
+ const val TAG = "RemoteAuthEnrollFinish"
+ }
+}
\ No newline at end of file
diff --git a/tests/robotests/Android.bp b/tests/robotests/Android.bp
index 94febff..c2b7c6a 100644
--- a/tests/robotests/Android.bp
+++ b/tests/robotests/Android.bp
@@ -32,6 +32,7 @@
"androidx.core_core",
"androidx.appcompat_appcompat",
"androidx.cardview_cardview",
+ "androidx.fragment_fragment-testing",
"androidx.preference_preference",
"androidx.recyclerview_recyclerview",
"androidx.window_window",
@@ -47,7 +48,7 @@
"jsr305",
"settings-contextual-card-protos-lite",
"settings-log-bridge-protos-lite",
- "settings-telephony-protos-lite",
+ "settings-telephony-protos-lite",
"contextualcards",
"settings-logtags",
"zxing-core-1.7",
diff --git a/tests/robotests/src/com/android/settings/remoteauth/finish/RemoteAuthEnrollFinishTest.kt b/tests/robotests/src/com/android/settings/remoteauth/finish/RemoteAuthEnrollFinishTest.kt
new file mode 100644
index 0000000..7bb5c45
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/remoteauth/finish/RemoteAuthEnrollFinishTest.kt
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.remoteauth.finish
+
+
+import android.content.Context
+import android.os.Bundle
+import androidx.fragment.app.testing.launchFragmentInContainer
+import androidx.test.core.app.ApplicationProvider
+import com.android.settings.R
+import com.google.android.setupdesign.GlifLayout
+import com.google.common.truth.Truth.assertThat
+
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class RemoteAuthEnrollFinishTest {
+ private var mContext: Context = ApplicationProvider.getApplicationContext()
+
+ @Test
+ fun testRemoteAuthenticatorEnrollFinish_hasHeader() {
+ launchFragmentInContainer<RemoteAuthEnrollFinish>(Bundle(), R.style.SudThemeGlif)
+ .onFragment {
+ assertThat((it.view as GlifLayout).headerText)
+ .isEqualTo(mContext.getString(
+ R.string.security_settings_remoteauth_enroll_finish_title))
+ }
+ }
+
+ @Test
+ fun testRemoteAuthenticatorEnrollFinish_hasDescription() {
+ launchFragmentInContainer<RemoteAuthEnrollFinish>(Bundle(), R.style.SudThemeGlif)
+ .onFragment {
+ assertThat((it.view as GlifLayout).descriptionText)
+ .isEqualTo(mContext.getString(
+ R.string.security_settings_remoteauth_enroll_finish_description))
+ }
+ }
+}
\ No newline at end of file