blob: 2cd78830327905e52afa63d4c418a0b4ac25c14f [file] [log] [blame]
Mike Digman7d092772018-01-11 12:10:32 -08001<?xml version="1.0" encoding="utf-8"?>
2<!--
3 Copyright (C) 2017 The Android Open Source Project
4
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8
9 http://www.apache.org/licenses/LICENSE-2.0
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16-->
Mike Digman1e28a5a2018-02-14 10:49:19 -080017<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt">
Mike Digman7d092772018-01-11 12:10:32 -080018 <aapt:attr name="android:drawable">
Mike Digman1e28a5a2018-02-14 10:49:19 -080019 <vector android:name="root"
Mike Digmanf77fb912018-05-21 11:21:30 -070020 android:width="21dp"
21 android:height="21dp"
Mike Digman1e28a5a2018-02-14 10:49:19 -080022 android:viewportWidth="24.0"
23 android:viewportHeight="24.0">
Mike Digmanc038c322018-05-24 11:06:05 -070024 <!-- Use scaleX to flip icon so arrows always point in the direction of motion -->
25 <group android:name="icon" android:pivotX="12" android:pivotY="12"
26 android:scaleX="?attr/rotateButtonScaleX">
Mike Digman1e28a5a2018-02-14 10:49:19 -080027 <!-- Tint color to be set directly -->
28 <path android:fillColor="#FFFFFFFF"
Mike Digmanc038c322018-05-24 11:06:05 -070029 android:pathData="M19,12c0,1.72 -0.63,3.3 -1.66,4.52l-1.44,-1.44C16.58,14.23 17,13.17 17,12c0,-2.76 -2.24,-5 -5,-5c-0.06,0 -0.11,0.01 -0.17,0.01l1.08,1.08L11.5,9.5L8,6l3.5,-3.5l1.41,1.42l-1.09,1.09C11.88,5.01 11.94,5 12,5C15.87,5 19,8.13 19,12zM12.5,14.51l-1.41,1.41l1.06,1.06C12.1,16.99 12.05,17 12,17c-2.76,0 -5,-2.24 -5,-5c0,-1.17 0.42,-2.23 1.09,-3.08L6.66,7.48C5.62,8.7 5,10.28 5,12c0,3.87 3.13,7 7,7c0.06,0 0.13,-0.01 0.19,-0.01v0l-1.1,1.1l1.41,1.41L16,18L12.5,14.51z"/>
Mike Digman7d092772018-01-11 12:10:32 -080030 </group>
Mike Digman7d092772018-01-11 12:10:32 -080031 </vector>
32 </aapt:attr>
33
Mike Digmand13e43b2018-05-21 11:23:56 -070034 <!-- Repeat all animations 5 times but don't fade out at the end -->
Mike Digman1e28a5a2018-02-14 10:49:19 -080035 <target android:name="root">
Mike Digman7d092772018-01-11 12:10:32 -080036 <aapt:attr name="android:animation">
Mike Digman1e28a5a2018-02-14 10:49:19 -080037 <set android:ordering="sequentially">
38 <!-- Linear fade in-->
39 <objectAnimator android:propertyName="alpha"
40 android:duration="100"
41 android:valueFrom="0"
42 android:valueTo="1"
43 android:interpolator="@android:anim/linear_interpolator" />
44 <!-- Linear fade out -->
45 <objectAnimator android:propertyName="alpha"
46 android:duration="100"
47 android:startOffset="1700"
48 android:valueFrom="1"
49 android:valueTo="0"
50 android:interpolator="@android:anim/linear_interpolator"/>
51 <!-- Linear fade in-->
52 <objectAnimator android:propertyName="alpha"
53 android:duration="100"
54 android:startOffset="100"
55 android:valueFrom="0"
56 android:valueTo="1"
57 android:interpolator="@android:anim/linear_interpolator" />
58 <!-- Linear fade out -->
59 <objectAnimator android:propertyName="alpha"
60 android:duration="100"
61 android:startOffset="1700"
62 android:valueFrom="1"
63 android:valueTo="0"
64 android:interpolator="@android:anim/linear_interpolator"/>
65 <!-- Linear fade in-->
66 <objectAnimator android:propertyName="alpha"
67 android:duration="100"
68 android:startOffset="100"
69 android:valueFrom="0"
70 android:valueTo="1"
71 android:interpolator="@android:anim/linear_interpolator" />
Mike Digmand13e43b2018-05-21 11:23:56 -070072 <!-- Linear fade out -->
73 <objectAnimator android:propertyName="alpha"
74 android:duration="100"
75 android:startOffset="1700"
76 android:valueFrom="1"
77 android:valueTo="0"
78 android:interpolator="@android:anim/linear_interpolator"/>
79 <!-- Linear fade in-->
80 <objectAnimator android:propertyName="alpha"
81 android:duration="100"
82 android:startOffset="100"
83 android:valueFrom="0"
84 android:valueTo="1"
85 android:interpolator="@android:anim/linear_interpolator" />
86 <!-- Linear fade out -->
87 <objectAnimator android:propertyName="alpha"
88 android:duration="100"
89 android:startOffset="1700"
90 android:valueFrom="1"
91 android:valueTo="0"
92 android:interpolator="@android:anim/linear_interpolator"/>
93 <!-- Linear fade in-->
94 <objectAnimator android:propertyName="alpha"
95 android:duration="100"
96 android:startOffset="100"
97 android:valueFrom="0"
98 android:valueTo="1"
99 android:interpolator="@android:anim/linear_interpolator" />
Mike Digman7d092772018-01-11 12:10:32 -0800100 </set>
101 </aapt:attr>
102 </target>
Mike Digman1e28a5a2018-02-14 10:49:19 -0800103 <target android:name="icon">
Mike Digman7d092772018-01-11 12:10:32 -0800104 <aapt:attr name="android:animation">
Mike Digman1e28a5a2018-02-14 10:49:19 -0800105 <set android:ordering="sequentially">
106 <!-- Icon rotation with start timing offset after fade in -->
107 <objectAnimator android:propertyName="rotation"
108 android:startOffset="100"
109 android:duration="600"
110 android:valueFrom="?attr/rotateButtonStartAngle"
111 android:valueTo="?attr/rotateButtonEndAngle">
Mike Digman7d092772018-01-11 12:10:32 -0800112 <aapt:attr name="android:interpolator">
Mike Digman1e28a5a2018-02-14 10:49:19 -0800113 <pathInterpolator android:pathData="M 0.0,0.0 c0.408,1.181 0.674,1.08 1.0,1.0"/>
Mike Digman7d092772018-01-11 12:10:32 -0800114 </aapt:attr>
115 </objectAnimator>
Mike Digman7d092772018-01-11 12:10:32 -0800116
Mike Digman1e28a5a2018-02-14 10:49:19 -0800117 <!-- Reset rotation position for fade in -->
118 <objectAnimator android:propertyName="rotation"
119 android:startOffset="1300"
120 android:duration="100"
121 android:valueFrom="?attr/rotateButtonStartAngle"
122 android:valueTo="?attr/rotateButtonStartAngle"/>
Mike Digman7d092772018-01-11 12:10:32 -0800123
Mike Digman1e28a5a2018-02-14 10:49:19 -0800124 <!-- Icon rotation with start timing offset after fade in -->
125 <objectAnimator android:propertyName="rotation"
126 android:duration="600"
127 android:valueFrom="?attr/rotateButtonStartAngle"
128 android:valueTo="?attr/rotateButtonEndAngle">
Mike Digman7d092772018-01-11 12:10:32 -0800129 <aapt:attr name="android:interpolator">
Mike Digman1e28a5a2018-02-14 10:49:19 -0800130 <pathInterpolator android:pathData="M 0.0,0.0 c0.408,1.181 0.674,1.08 1.0,1.0"/>
Mike Digman7d092772018-01-11 12:10:32 -0800131 </aapt:attr>
132 </objectAnimator>
Mike Digman7d092772018-01-11 12:10:32 -0800133
Mike Digman1e28a5a2018-02-14 10:49:19 -0800134 <!-- Reset rotation position for fade in -->
135 <objectAnimator android:propertyName="rotation"
136 android:startOffset="1300"
137 android:duration="100"
138 android:valueFrom="?attr/rotateButtonStartAngle"
139 android:valueTo="?attr/rotateButtonStartAngle"/>
140
141 <!-- Icon rotation with start timing offset after fade in -->
142 <objectAnimator android:propertyName="rotation"
143 android:duration="600"
144 android:valueFrom="?attr/rotateButtonStartAngle"
145 android:valueTo="?attr/rotateButtonEndAngle">
Mike Digman7d092772018-01-11 12:10:32 -0800146 <aapt:attr name="android:interpolator">
Mike Digman1e28a5a2018-02-14 10:49:19 -0800147 <pathInterpolator android:pathData="M 0.0,0.0 c0.408,1.181 0.674,1.08 1.0,1.0"/>
Mike Digman7d092772018-01-11 12:10:32 -0800148 </aapt:attr>
149 </objectAnimator>
Mike Digmand13e43b2018-05-21 11:23:56 -0700150
151 <!-- Reset rotation position for fade in -->
152 <objectAnimator android:propertyName="rotation"
153 android:startOffset="1300"
154 android:duration="100"
155 android:valueFrom="?attr/rotateButtonStartAngle"
156 android:valueTo="?attr/rotateButtonStartAngle"/>
157
158 <!-- Icon rotation with start timing offset after fade in -->
159 <objectAnimator android:propertyName="rotation"
160 android:duration="600"
161 android:valueFrom="?attr/rotateButtonStartAngle"
162 android:valueTo="?attr/rotateButtonEndAngle">
163 <aapt:attr name="android:interpolator">
164 <pathInterpolator android:pathData="M 0.0,0.0 c0.408,1.181 0.674,1.08 1.0,1.0"/>
165 </aapt:attr>
166 </objectAnimator>
167
168 <!-- Reset rotation position for fade in -->
169 <objectAnimator android:propertyName="rotation"
170 android:startOffset="1300"
171 android:duration="100"
172 android:valueFrom="?attr/rotateButtonStartAngle"
173 android:valueTo="?attr/rotateButtonStartAngle"/>
174
175 <!-- Icon rotation with start timing offset after fade in -->
176 <objectAnimator android:propertyName="rotation"
177 android:duration="600"
178 android:valueFrom="?attr/rotateButtonStartAngle"
179 android:valueTo="?attr/rotateButtonEndAngle">
180 <aapt:attr name="android:interpolator">
181 <pathInterpolator android:pathData="M 0.0,0.0 c0.408,1.181 0.674,1.08 1.0,1.0"/>
182 </aapt:attr>
183 </objectAnimator>
Mike Digman7d092772018-01-11 12:10:32 -0800184 </set>
185 </aapt:attr>
186 </target>
Mike Digman7d092772018-01-11 12:10:32 -0800187</animated-vector>