* commit 'dde73641fd3f29d777f531d3ea2b839b9e9b0b40': QS: New rotation-lock tile icon, using AVDs.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="567"
|
||||
android:propertyName="fillAlpha"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="1"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="33"
|
||||
android:propertyName="fillAlpha"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="0"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="567"
|
||||
android:propertyName="fillAlpha"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="1"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="33"
|
||||
android:propertyName="fillAlpha"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="0"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="317"
|
||||
android:propertyName="scaleX"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="1"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="333"
|
||||
android:propertyName="scaleX"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="0.9"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
</set>
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="317"
|
||||
android:propertyName="scaleY"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="1"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="333"
|
||||
android:propertyName="scaleY"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="0.9"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
</set>
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="200"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="0"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="450"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="-135"
|
||||
android:interpolator="@interpolator/ic_landscape_from_auto_rotate_arrows_rotation_interpolator" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="267"
|
||||
android:propertyName="pathData"
|
||||
android:valueFrom="M -3.5,-20.5 c -1.19999694824,-1.19999694824 -3.10000610352,-1.19999694824 -4.19999694824,0.0 c 0.0,0.0 -12.8000030518,12.6999969482 -12.8000030518,12.6999969482 c -1.19999694824,1.19999694824 -1.19999694824,3.10000610352 0.0,4.19999694824 c 0.0,0.0 24.0,24.0000152588 24.0,24.0000152588 c 1.19999694824,1.19999694824 3.10000610352,1.19999694824 4.19999694824,0.0 c 0.0,0.0 12.6999969482,-12.700012207 12.6999969482,-12.700012207 c 1.20001220703,-1.19999694824 1.20001220703,-3.09999084473 0.0,-4.19999694824 c 0.0,0.0 -23.8999938965,-24.0 -23.8999938965,-24.0 Z M 2.84999084473,15.5500183105 c 0.0,0.0 -18.6000061035,-18.5000457764 -18.6000061035,-18.5000457764 c 0.0,0.0 12.5999908447,-12.8000030518 12.5999908447,-12.8000030518 c 0.0,0.0 18.6000213623,18.5000457764 18.6000213623,18.5000457764 c 0.0,0.0 -12.6000061035,12.8000030518 -12.6000061035,12.8000030518 Z"
|
||||
android:valueTo="M -3.5,-20.5 c -1.19999694824,-1.19999694824 -3.10000610352,-1.19999694824 -4.19999694824,0.0 c 0.0,0.0 -12.8000030518,12.6999969482 -12.8000030518,12.6999969482 c -1.19999694824,1.19999694824 -1.19999694824,3.10000610352 0.0,4.19999694824 c 0.0,0.0 24.0,24.0000152588 24.0,24.0000152588 c 1.19999694824,1.19999694824 3.10000610352,1.19999694824 4.19999694824,0.0 c 0.0,0.0 12.6999969482,-12.700012207 12.6999969482,-12.700012207 c 1.20001220703,-1.19999694824 1.20001220703,-3.09999084473 0.0,-4.19999694824 c 0.0,0.0 -23.8999938965,-24.0 -23.8999938965,-24.0 Z M 2.84999084473,15.5500183105 c 0.0,0.0 -18.6000061035,-18.5000457764 -18.6000061035,-18.5000457764 c 0.0,0.0 12.5999908447,-12.8000030518 12.5999908447,-12.8000030518 c 0.0,0.0 18.6000213623,18.5000457764 18.6000213623,18.5000457764 c 0.0,0.0 -12.6000061035,12.8000030518 -12.6000061035,12.8000030518 Z"
|
||||
android:valueType="pathType"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
<objectAnimator
|
||||
android:duration="217"
|
||||
android:propertyName="pathData"
|
||||
android:valueFrom="M -3.5,-20.5 c -1.19999694824,-1.19999694824 -3.10000610352,-1.19999694824 -4.19999694824,0.0 c 0.0,0.0 -12.8000030518,12.6999969482 -12.8000030518,12.6999969482 c -1.19999694824,1.19999694824 -1.19999694824,3.10000610352 0.0,4.19999694824 c 0.0,0.0 24.0,24.0000152588 24.0,24.0000152588 c 1.19999694824,1.19999694824 3.10000610352,1.19999694824 4.19999694824,0.0 c 0.0,0.0 12.6999969482,-12.700012207 12.6999969482,-12.700012207 c 1.20001220703,-1.19999694824 1.20001220703,-3.09999084473 0.0,-4.19999694824 c 0.0,0.0 -23.8999938965,-24.0 -23.8999938965,-24.0 Z M 2.84999084473,15.5500183105 c 0.0,0.0 -18.6000061035,-18.5000457764 -18.6000061035,-18.5000457764 c 0.0,0.0 12.5999908447,-12.8000030518 12.5999908447,-12.8000030518 c 0.0,0.0 18.6000213623,18.5000457764 18.6000213623,18.5000457764 c 0.0,0.0 -12.6000061035,12.8000030518 -12.6000061035,12.8000030518 Z"
|
||||
android:valueTo="M -3.34053039551,-22.9980926514 c -1.3207244873,-1.3207244873 -3.46876525879,-1.26383972168 -4.74829101563,0.125762939453 c 0.0,0.0 -14.8512420654,14.7411804199 -14.8512420654,14.7411804199 c -1.39259338379,1.392578125 -1.44947814941,3.54061889648 -0.125762939453,4.74827575684 c 0.0,0.0 26.4143981934,26.4144134521 26.4143981934,26.4144134521 c 1.3207244873,1.3207244873 3.46876525879,1.26382446289 4.74829101562,-0.125762939453 c 0.0,0.0 14.7381896973,-14.7381896973 14.7381896973,-14.7381896973 c 1.392578125,-1.39259338379 1.44947814941,-3.54061889648 0.125762939453,-4.74829101562 c 0.0,0.0 -26.3013458252,-26.417388916 -26.3013458252,-26.417388916 Z M 2.87156677246,16.9857940674 c 0.0,0.0 -19.7573547363,-19.7573699951 -19.7573547363,-19.7573699951 c 0.0,0.0 14.0142059326,-14.2142181396 14.0142059326,-14.2142181396 c 0.0,0.0 19.7573699951,19.7573699951 19.7573699951,19.7573699951 c 0.0,0.0 -14.0142211914,14.2142181396 -14.0142211914,14.2142181396 Z"
|
||||
android:valueType="pathType"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="200"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="0"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
<objectAnimator
|
||||
android:duration="400"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="-45"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="250"
|
||||
android:propertyName="fillAlpha"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="0"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="33"
|
||||
android:propertyName="fillAlpha"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="1"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="250"
|
||||
android:propertyName="fillAlpha"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="0"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="33"
|
||||
android:propertyName="fillAlpha"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="1"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="200"
|
||||
android:propertyName="scaleX"
|
||||
android:valueFrom="0.9"
|
||||
android:valueTo="0.9"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="333"
|
||||
android:propertyName="scaleX"
|
||||
android:valueFrom="0.9"
|
||||
android:valueTo="1"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
</set>
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="200"
|
||||
android:propertyName="scaleY"
|
||||
android:valueFrom="0.9"
|
||||
android:valueTo="0.9"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="333"
|
||||
android:propertyName="scaleY"
|
||||
android:valueFrom="0.9"
|
||||
android:valueTo="1"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
</set>
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="200"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="-135"
|
||||
android:valueTo="-135"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="450"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="-135"
|
||||
android:valueTo="0"
|
||||
android:interpolator="@interpolator/ic_landscape_to_auto_rotate_arrows_rotation_interpolator" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="267"
|
||||
android:propertyName="pathData"
|
||||
android:valueFrom="M -3.34053039551,-22.9980926514 c -1.3207244873,-1.3207244873 -3.46876525879,-1.26383972168 -4.74829101563,0.125762939453 c 0.0,0.0 -14.8512420654,14.7411804199 -14.8512420654,14.7411804199 c -1.39259338379,1.392578125 -1.44947814941,3.54061889648 -0.125762939453,4.74827575684 c 0.0,0.0 26.4143981934,26.4144134521 26.4143981934,26.4144134521 c 1.3207244873,1.3207244873 3.46876525879,1.26382446289 4.74829101562,-0.125762939453 c 0.0,0.0 14.7381896973,-14.7381896973 14.7381896973,-14.7381896973 c 1.392578125,-1.39259338379 1.44947814941,-3.54061889648 0.125762939453,-4.74829101562 c 0.0,0.0 -26.3013458252,-26.417388916 -26.3013458252,-26.417388916 Z M 2.87156677246,16.9857940674 c 0.0,0.0 -19.7573547363,-19.7573699951 -19.7573547363,-19.7573699951 c 0.0,0.0 14.0142059326,-14.2142181396 14.0142059326,-14.2142181396 c 0.0,0.0 19.7573699951,19.7573699951 19.7573699951,19.7573699951 c 0.0,0.0 -14.0142211914,14.2142181396 -14.0142211914,14.2142181396 Z"
|
||||
android:valueTo="M -3.34053039551,-22.9980926514 c -1.3207244873,-1.3207244873 -3.46876525879,-1.26383972168 -4.74829101563,0.125762939453 c 0.0,0.0 -14.8512420654,14.7411804199 -14.8512420654,14.7411804199 c -1.39259338379,1.392578125 -1.44947814941,3.54061889648 -0.125762939453,4.74827575684 c 0.0,0.0 26.4143981934,26.4144134521 26.4143981934,26.4144134521 c 1.3207244873,1.3207244873 3.46876525879,1.26382446289 4.74829101562,-0.125762939453 c 0.0,0.0 14.7381896973,-14.7381896973 14.7381896973,-14.7381896973 c 1.392578125,-1.39259338379 1.44947814941,-3.54061889648 0.125762939453,-4.74829101562 c 0.0,0.0 -26.3013458252,-26.417388916 -26.3013458252,-26.417388916 Z M 2.87156677246,16.9857940674 c 0.0,0.0 -19.7573547363,-19.7573699951 -19.7573547363,-19.7573699951 c 0.0,0.0 14.0142059326,-14.2142181396 14.0142059326,-14.2142181396 c 0.0,0.0 19.7573699951,19.7573699951 19.7573699951,19.7573699951 c 0.0,0.0 -14.0142211914,14.2142181396 -14.0142211914,14.2142181396 Z"
|
||||
android:valueType="pathType"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
<objectAnimator
|
||||
android:duration="217"
|
||||
android:propertyName="pathData"
|
||||
android:valueFrom="M -3.34053039551,-22.9980926514 c -1.3207244873,-1.3207244873 -3.46876525879,-1.26383972168 -4.74829101563,0.125762939453 c 0.0,0.0 -14.8512420654,14.7411804199 -14.8512420654,14.7411804199 c -1.39259338379,1.392578125 -1.44947814941,3.54061889648 -0.125762939453,4.74827575684 c 0.0,0.0 26.4143981934,26.4144134521 26.4143981934,26.4144134521 c 1.3207244873,1.3207244873 3.46876525879,1.26382446289 4.74829101562,-0.125762939453 c 0.0,0.0 14.7381896973,-14.7381896973 14.7381896973,-14.7381896973 c 1.392578125,-1.39259338379 1.44947814941,-3.54061889648 0.125762939453,-4.74829101562 c 0.0,0.0 -26.3013458252,-26.417388916 -26.3013458252,-26.417388916 Z M 2.87156677246,16.9857940674 c 0.0,0.0 -19.7573547363,-19.7573699951 -19.7573547363,-19.7573699951 c 0.0,0.0 14.0142059326,-14.2142181396 14.0142059326,-14.2142181396 c 0.0,0.0 19.7573699951,19.7573699951 19.7573699951,19.7573699951 c 0.0,0.0 -14.0142211914,14.2142181396 -14.0142211914,14.2142181396 Z"
|
||||
android:valueTo="M -3.5,-20.5 c -1.19999694824,-1.19999694824 -3.10000610352,-1.19999694824 -4.19999694824,0.0 c 0.0,0.0 -12.8000030518,12.6999969482 -12.8000030518,12.6999969482 c -1.19999694824,1.19999694824 -1.19999694824,3.10000610352 0.0,4.19999694824 c 0.0,0.0 24.0,24.0000152588 24.0,24.0000152588 c 1.19999694824,1.19999694824 3.10000610352,1.19999694824 4.19999694824,0.0 c 0.0,0.0 12.6999969482,-12.700012207 12.6999969482,-12.700012207 c 1.20001220703,-1.19999694824 1.20001220703,-3.09999084473 0.0,-4.19999694824 c 0.0,0.0 -23.8999938965,-24.0 -23.8999938965,-24.0 Z M 2.84999084473,15.5500183105 c 0.0,0.0 -18.6000061035,-18.5000457764 -18.6000061035,-18.5000457764 c 0.0,0.0 12.5999908447,-12.8000030518 12.5999908447,-12.8000030518 c 0.0,0.0 18.6000213623,18.5000457764 18.6000213623,18.5000457764 c 0.0,0.0 -12.6000061035,12.8000030518 -12.6000061035,12.8000030518 Z"
|
||||
android:valueType="pathType"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="200"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="-45"
|
||||
android:valueTo="-45"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
<objectAnimator
|
||||
android:duration="400"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="-45"
|
||||
android:valueTo="0"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="600"
|
||||
android:propertyName="fillAlpha"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="1"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="83"
|
||||
android:propertyName="fillAlpha"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="0"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="600"
|
||||
android:propertyName="fillAlpha"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="1"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="83"
|
||||
android:propertyName="fillAlpha"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="0"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="317"
|
||||
android:propertyName="scaleX"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="1"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="333"
|
||||
android:propertyName="scaleX"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="0.9"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
</set>
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="317"
|
||||
android:propertyName="scaleY"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="1"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="333"
|
||||
android:propertyName="scaleY"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="0.9"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
</set>
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="200"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="0"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
<objectAnimator
|
||||
android:duration="617"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="-221"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="200"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="0"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
<objectAnimator
|
||||
android:duration="400"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="-135"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="267"
|
||||
android:propertyName="pathData"
|
||||
android:valueFrom="M -3.5,-20.5 c -1.19999694824,-1.19999694824 -3.10000610352,-1.19999694824 -4.19999694824,0.0 c 0.0,0.0 -12.8000030518,12.6999969482 -12.8000030518,12.6999969482 c -1.19999694824,1.19999694824 -1.19999694824,3.10000610352 0.0,4.19999694824 c 0.0,0.0 24.0,24.0000152588 24.0,24.0000152588 c 1.19999694824,1.19999694824 3.10000610352,1.19999694824 4.19999694824,0.0 c 0.0,0.0 12.6999969482,-12.700012207 12.6999969482,-12.700012207 c 1.20001220703,-1.19999694824 1.20001220703,-3.09999084473 0.0,-4.19999694824 c 0.0,0.0 -23.8999938965,-24.0 -23.8999938965,-24.0 Z M 2.84999084473,15.5500183105 c 0.0,0.0 -18.6000061035,-18.5000457764 -18.6000061035,-18.5000457764 c 0.0,0.0 12.5999908447,-12.8000030518 12.5999908447,-12.8000030518 c 0.0,0.0 18.6000213623,18.5000457764 18.6000213623,18.5000457764 c 0.0,0.0 -12.6000061035,12.8000030518 -12.6000061035,12.8000030518 Z"
|
||||
android:valueTo="M -3.5,-20.5 c -1.19999694824,-1.19999694824 -3.10000610352,-1.19999694824 -4.19999694824,0.0 c 0.0,0.0 -12.8000030518,12.6999969482 -12.8000030518,12.6999969482 c -1.19999694824,1.19999694824 -1.19999694824,3.10000610352 0.0,4.19999694824 c 0.0,0.0 24.0,24.0000152588 24.0,24.0000152588 c 1.19999694824,1.19999694824 3.10000610352,1.19999694824 4.19999694824,0.0 c 0.0,0.0 12.6999969482,-12.700012207 12.6999969482,-12.700012207 c 1.20001220703,-1.19999694824 1.20001220703,-3.09999084473 0.0,-4.19999694824 c 0.0,0.0 -23.8999938965,-24.0 -23.8999938965,-24.0 Z M 2.84999084473,15.5500183105 c 0.0,0.0 -18.6000061035,-18.5000457764 -18.6000061035,-18.5000457764 c 0.0,0.0 12.5999908447,-12.8000030518 12.5999908447,-12.8000030518 c 0.0,0.0 18.6000213623,18.5000457764 18.6000213623,18.5000457764 c 0.0,0.0 -12.6000061035,12.8000030518 -12.6000061035,12.8000030518 Z"
|
||||
android:valueType="pathType"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
<objectAnimator
|
||||
android:duration="217"
|
||||
android:propertyName="pathData"
|
||||
android:valueFrom="M -3.5,-20.5 c -1.19999694824,-1.19999694824 -3.10000610352,-1.19999694824 -4.19999694824,0.0 c 0.0,0.0 -12.8000030518,12.6999969482 -12.8000030518,12.6999969482 c -1.19999694824,1.19999694824 -1.19999694824,3.10000610352 0.0,4.19999694824 c 0.0,0.0 24.0,24.0000152588 24.0,24.0000152588 c 1.19999694824,1.19999694824 3.10000610352,1.19999694824 4.19999694824,0.0 c 0.0,0.0 12.6999969482,-12.700012207 12.6999969482,-12.700012207 c 1.20001220703,-1.19999694824 1.20001220703,-3.09999084473 0.0,-4.19999694824 c 0.0,0.0 -23.8999938965,-24.0 -23.8999938965,-24.0 Z M 2.84999084473,15.5500183105 c 0.0,0.0 -18.6000061035,-18.5000457764 -18.6000061035,-18.5000457764 c 0.0,0.0 12.5999908447,-12.8000030518 12.5999908447,-12.8000030518 c 0.0,0.0 18.6000213623,18.5000457764 18.6000213623,18.5000457764 c 0.0,0.0 -12.6000061035,12.8000030518 -12.6000061035,12.8000030518 Z"
|
||||
android:valueTo="M -3.34053039551,-22.9980926514 c -1.3207244873,-1.3207244873 -3.46876525879,-1.26383972168 -4.74829101563,0.125762939453 c 0.0,0.0 -14.8512420654,14.7411804199 -14.8512420654,14.7411804199 c -1.39259338379,1.392578125 -1.44947814941,3.54061889648 -0.125762939453,4.74827575684 c 0.0,0.0 26.4143981934,26.4144134521 26.4143981934,26.4144134521 c 1.3207244873,1.3207244873 3.46876525879,1.26382446289 4.74829101562,-0.125762939453 c 0.0,0.0 14.7381896973,-14.7381896973 14.7381896973,-14.7381896973 c 1.392578125,-1.39259338379 1.44947814941,-3.54061889648 0.125762939453,-4.74829101562 c 0.0,0.0 -26.3013458252,-26.417388916 -26.3013458252,-26.417388916 Z M 2.87156677246,16.9857940674 c 0.0,0.0 -19.7573547363,-19.7573699951 -19.7573547363,-19.7573699951 c 0.0,0.0 14.0142059326,-14.2142181396 14.0142059326,-14.2142181396 c 0.0,0.0 19.7573699951,19.7573699951 19.7573699951,19.7573699951 c 0.0,0.0 -14.0142211914,14.2142181396 -14.0142211914,14.2142181396 Z"
|
||||
android:valueType="pathType"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="250"
|
||||
android:propertyName="fillAlpha"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="0"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="83"
|
||||
android:propertyName="fillAlpha"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="1"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="250"
|
||||
android:propertyName="fillAlpha"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="0"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="83"
|
||||
android:propertyName="fillAlpha"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="1"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="333"
|
||||
android:propertyName="scaleX"
|
||||
android:valueFrom="0.9"
|
||||
android:valueTo="0.9"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="333"
|
||||
android:propertyName="scaleX"
|
||||
android:valueFrom="0.9"
|
||||
android:valueTo="1"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
</set>
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="333"
|
||||
android:propertyName="scaleY"
|
||||
android:valueFrom="0.9"
|
||||
android:valueTo="0.9"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
<objectAnimator
|
||||
android:duration="333"
|
||||
android:propertyName="scaleY"
|
||||
android:valueFrom="0.9"
|
||||
android:valueTo="1"
|
||||
android:interpolator="@android:interpolator/linear" />
|
||||
</set>
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="200"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="-221"
|
||||
android:valueTo="-221"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
<objectAnimator
|
||||
android:duration="617"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="-221"
|
||||
android:valueTo="0"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="250"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="-135"
|
||||
android:valueTo="-135"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
<objectAnimator
|
||||
android:duration="400"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="-135"
|
||||
android:valueTo="0"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<set
|
||||
android:ordering="sequentially" >
|
||||
<objectAnimator
|
||||
android:duration="250"
|
||||
android:propertyName="pathData"
|
||||
android:valueFrom="M -3.34053039551,-22.9980926514 c -1.3207244873,-1.3207244873 -3.46876525879,-1.26383972168 -4.74829101563,0.125762939453 c 0.0,0.0 -14.8512420654,14.7411804199 -14.8512420654,14.7411804199 c -1.39259338379,1.392578125 -1.44947814941,3.54061889648 -0.125762939453,4.74827575684 c 0.0,0.0 26.4143981934,26.4144134521 26.4143981934,26.4144134521 c 1.3207244873,1.3207244873 3.46876525879,1.26382446289 4.74829101562,-0.125762939453 c 0.0,0.0 14.7381896973,-14.7381896973 14.7381896973,-14.7381896973 c 1.392578125,-1.39259338379 1.44947814941,-3.54061889648 0.125762939453,-4.74829101562 c 0.0,0.0 -26.3013458252,-26.417388916 -26.3013458252,-26.417388916 Z M 2.87156677246,16.9857940674 c 0.0,0.0 -19.7573547363,-19.7573699951 -19.7573547363,-19.7573699951 c 0.0,0.0 14.0142059326,-14.2142181396 14.0142059326,-14.2142181396 c 0.0,0.0 19.7573699951,19.7573699951 19.7573699951,19.7573699951 c 0.0,0.0 -14.0142211914,14.2142181396 -14.0142211914,14.2142181396 Z"
|
||||
android:valueTo="M -3.34053039551,-22.9980926514 c -1.3207244873,-1.3207244873 -3.46876525879,-1.26383972168 -4.74829101563,0.125762939453 c 0.0,0.0 -14.8512420654,14.7411804199 -14.8512420654,14.7411804199 c -1.39259338379,1.392578125 -1.44947814941,3.54061889648 -0.125762939453,4.74827575684 c 0.0,0.0 26.4143981934,26.4144134521 26.4143981934,26.4144134521 c 1.3207244873,1.3207244873 3.46876525879,1.26382446289 4.74829101562,-0.125762939453 c 0.0,0.0 14.7381896973,-14.7381896973 14.7381896973,-14.7381896973 c 1.392578125,-1.39259338379 1.44947814941,-3.54061889648 0.125762939453,-4.74829101562 c 0.0,0.0 -26.3013458252,-26.417388916 -26.3013458252,-26.417388916 Z M 2.87156677246,16.9857940674 c 0.0,0.0 -19.7573547363,-19.7573699951 -19.7573547363,-19.7573699951 c 0.0,0.0 14.0142059326,-14.2142181396 14.0142059326,-14.2142181396 c 0.0,0.0 19.7573699951,19.7573699951 19.7573699951,19.7573699951 c 0.0,0.0 -14.0142211914,14.2142181396 -14.0142211914,14.2142181396 Z"
|
||||
android:valueType="pathType"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
<objectAnimator
|
||||
android:duration="500"
|
||||
android:propertyName="pathData"
|
||||
android:valueFrom="M -3.34053039551,-22.9980926514 c -1.3207244873,-1.3207244873 -3.46876525879,-1.26383972168 -4.74829101563,0.125762939453 c 0.0,0.0 -14.8512420654,14.7411804199 -14.8512420654,14.7411804199 c -1.39259338379,1.392578125 -1.44947814941,3.54061889648 -0.125762939453,4.74827575684 c 0.0,0.0 26.4143981934,26.4144134521 26.4143981934,26.4144134521 c 1.3207244873,1.3207244873 3.46876525879,1.26382446289 4.74829101562,-0.125762939453 c 0.0,0.0 14.7381896973,-14.7381896973 14.7381896973,-14.7381896973 c 1.392578125,-1.39259338379 1.44947814941,-3.54061889648 0.125762939453,-4.74829101562 c 0.0,0.0 -26.3013458252,-26.417388916 -26.3013458252,-26.417388916 Z M 2.87156677246,16.9857940674 c 0.0,0.0 -19.7573547363,-19.7573699951 -19.7573547363,-19.7573699951 c 0.0,0.0 14.0142059326,-14.2142181396 14.0142059326,-14.2142181396 c 0.0,0.0 19.7573699951,19.7573699951 19.7573699951,19.7573699951 c 0.0,0.0 -14.0142211914,14.2142181396 -14.0142211914,14.2142181396 Z"
|
||||
android:valueTo="M -3.5,-20.5 c -1.19999694824,-1.19999694824 -3.10000610352,-1.19999694824 -4.19999694824,0.0 c 0.0,0.0 -12.8000030518,12.6999969482 -12.8000030518,12.6999969482 c -1.19999694824,1.19999694824 -1.19999694824,3.10000610352 0.0,4.19999694824 c 0.0,0.0 24.0,24.0000152588 24.0,24.0000152588 c 1.19999694824,1.19999694824 3.10000610352,1.19999694824 4.19999694824,0.0 c 0.0,0.0 12.6999969482,-12.700012207 12.6999969482,-12.700012207 c 1.20001220703,-1.19999694824 1.20001220703,-3.09999084473 0.0,-4.19999694824 c 0.0,0.0 -23.8999938965,-24.0 -23.8999938965,-24.0 Z M 2.84999084473,15.5500183105 c 0.0,0.0 -18.6000061035,-18.5000457764 -18.6000061035,-18.5000457764 c 0.0,0.0 12.5999908447,-12.8000030518 12.5999908447,-12.8000030518 c 0.0,0.0 18.6000213623,18.5000457764 18.6000213623,18.5000457764 c 0.0,0.0 -12.6000061035,12.8000030518 -12.6000061035,12.8000030518 Z"
|
||||
android:valueType="pathType"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
</set>
|
||||
</set>
|
||||
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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="48dp"
|
||||
android:width="48dp"
|
||||
android:viewportHeight="48"
|
||||
android:viewportWidth="48" >
|
||||
<group
|
||||
android:name="ic_screen_rotation_48px_outlines"
|
||||
android:translateX="24"
|
||||
android:translateY="24" >
|
||||
<group
|
||||
android:name="ic_screen_rotation_48px_outlines_pivot"
|
||||
android:translateX="-24.15"
|
||||
android:translateY="-24.25" >
|
||||
<group
|
||||
android:name="arrows"
|
||||
android:translateX="24.1"
|
||||
android:translateY="24.1" >
|
||||
<group
|
||||
android:name="arrows_pivot"
|
||||
android:translateX="-24.1"
|
||||
android:translateY="-24.1" >
|
||||
<path
|
||||
android:name="arrow_top"
|
||||
android:pathData="M 33.1499938965,5.25 c 6.5,3.10000610352 11.1999969482,9.40000915527 11.8999938965,17.0 c 0.0,0.0 3.00001525879,0.0 3.00001525879,0.0 c -1.00001525879,-12.3000030518 -11.3000030518,-22.0 -23.9000091553,-22.0 c -0.399993896484,0.0 -0.899993896484,0.0 -1.30000305176,0.100006103516 c 0.0,0.0 7.60000610352,7.59999084473 7.60000610352,7.59999084473 c 0.0,0.0 2.69999694824,-2.69999694824 2.69999694824,-2.69999694824 Z"
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:fillAlpha="1" />
|
||||
<path
|
||||
android:name="arrow_bottom"
|
||||
android:pathData="M 15.1499938965,43.25 c -6.5,-3.09999084473 -11.1999969482,-9.5 -11.8999938965,-17.0 c 0.0,0.0 -3.0,0.0 -3.0,0.0 c 1.0,12.3000030518 11.299987793,22.0 23.8999938965,22.0 c 0.399993896484,0.0 0.899993896484,0.0 1.30000305176,-0.0999908447266 c 0.0,0.0 -7.60000610352,-7.60000610352 -7.60000610352,-7.60000610352 c 0.0,0.0 -2.69999694824,2.69999694824 -2.69999694824,2.69999694824 Z"
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:fillAlpha="1" />
|
||||
</group>
|
||||
</group>
|
||||
<group
|
||||
android:name="device"
|
||||
android:translateX="24.14999"
|
||||
android:translateY="24.25" >
|
||||
<path
|
||||
android:name="body"
|
||||
android:pathData="M -3.5,-20.5 c -1.19999694824,-1.19999694824 -3.10000610352,-1.19999694824 -4.19999694824,0.0 c 0.0,0.0 -12.8000030518,12.6999969482 -12.8000030518,12.6999969482 c -1.19999694824,1.19999694824 -1.19999694824,3.10000610352 0.0,4.19999694824 c 0.0,0.0 24.0,24.0000152588 24.0,24.0000152588 c 1.19999694824,1.19999694824 3.10000610352,1.19999694824 4.19999694824,0.0 c 0.0,0.0 12.6999969482,-12.700012207 12.6999969482,-12.700012207 c 1.20001220703,-1.19999694824 1.20001220703,-3.09999084473 0.0,-4.19999694824 c 0.0,0.0 -23.8999938965,-24.0 -23.8999938965,-24.0 Z M 2.84999084473,15.5500183105 c 0.0,0.0 -18.6000061035,-18.5000457764 -18.6000061035,-18.5000457764 c 0.0,0.0 12.5999908447,-12.8000030518 12.5999908447,-12.8000030518 c 0.0,0.0 18.6000213623,18.5000457764 18.6000213623,18.5000457764 c 0.0,0.0 -12.6000061035,12.8000030518 -12.6000061035,12.8000030518 Z"
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:fillAlpha="1" />
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
</vector>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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"
|
||||
android:drawable="@drawable/ic_landscape_from_auto_rotate" >
|
||||
<target
|
||||
android:name="arrows"
|
||||
android:animation="@anim/ic_landscape_from_auto_rotate_animation_arrows" />
|
||||
<target
|
||||
android:name="arrow_top"
|
||||
android:animation="@anim/ic_landscape_from_auto_rotate_animation_arrow_top" />
|
||||
<target
|
||||
android:name="arrow_bottom"
|
||||
android:animation="@anim/ic_landscape_from_auto_rotate_animation_arrow_bottom" />
|
||||
<target
|
||||
android:name="device"
|
||||
android:animation="@anim/ic_landscape_from_auto_rotate_animation_device" />
|
||||
<target
|
||||
android:name="body"
|
||||
android:animation="@anim/ic_landscape_from_auto_rotate_animation_body" />
|
||||
</animated-vector>
|
||||
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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="48dp"
|
||||
android:width="48dp"
|
||||
android:viewportHeight="48"
|
||||
android:viewportWidth="48" >
|
||||
<group
|
||||
android:name="ic_screen_rotation_48px_outlines"
|
||||
android:translateX="24"
|
||||
android:translateY="24" >
|
||||
<group
|
||||
android:name="ic_screen_rotation_48px_outlines_pivot"
|
||||
android:translateX="-24.15"
|
||||
android:translateY="-24.25" >
|
||||
<group
|
||||
android:name="arrows"
|
||||
android:translateX="24.1"
|
||||
android:translateY="24.1"
|
||||
android:scaleX="0.9"
|
||||
android:scaleY="0.9"
|
||||
android:rotation="-135" >
|
||||
<group
|
||||
android:name="arrows_pivot"
|
||||
android:translateX="-24.1"
|
||||
android:translateY="-24.1" >
|
||||
<path
|
||||
android:name="arrow_top"
|
||||
android:pathData="M 33.1499938965,5.25 c 6.5,3.10000610352 11.1999969482,9.40000915527 11.8999938965,17.0 c 0.0,0.0 3.00001525879,0.0 3.00001525879,0.0 c -1.00001525879,-12.3000030518 -11.3000030518,-22.0 -23.9000091553,-22.0 c -0.399993896484,0.0 -0.899993896484,0.0 -1.30000305176,0.100006103516 c 0.0,0.0 7.60000610352,7.59999084473 7.60000610352,7.59999084473 c 0.0,0.0 2.69999694824,-2.69999694824 2.69999694824,-2.69999694824 Z"
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:fillAlpha="0" />
|
||||
<path
|
||||
android:name="arrow_bottom"
|
||||
android:pathData="M 15.1499938965,43.25 c -6.5,-3.09999084473 -11.1999969482,-9.5 -11.8999938965,-17.0 c 0.0,0.0 -3.0,0.0 -3.0,0.0 c 1.0,12.3000030518 11.299987793,22.0 23.8999938965,22.0 c 0.399993896484,0.0 0.899993896484,0.0 1.30000305176,-0.0999908447266 c 0.0,0.0 -7.60000610352,-7.60000610352 -7.60000610352,-7.60000610352 c 0.0,0.0 -2.69999694824,2.69999694824 -2.69999694824,2.69999694824 Z"
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:fillAlpha="0" />
|
||||
</group>
|
||||
</group>
|
||||
<group
|
||||
android:name="device"
|
||||
android:translateX="24.14999"
|
||||
android:translateY="24.25"
|
||||
android:rotation="-45" >
|
||||
<path
|
||||
android:name="body"
|
||||
android:pathData="M -3.34053039551,-22.9980926514 c -1.3207244873,-1.3207244873 -3.46876525879,-1.26383972168 -4.74829101563,0.125762939453 c 0.0,0.0 -14.8512420654,14.7411804199 -14.8512420654,14.7411804199 c -1.39259338379,1.392578125 -1.44947814941,3.54061889648 -0.125762939453,4.74827575684 c 0.0,0.0 26.4143981934,26.4144134521 26.4143981934,26.4144134521 c 1.3207244873,1.3207244873 3.46876525879,1.26382446289 4.74829101562,-0.125762939453 c 0.0,0.0 14.7381896973,-14.7381896973 14.7381896973,-14.7381896973 c 1.392578125,-1.39259338379 1.44947814941,-3.54061889648 0.125762939453,-4.74829101562 c 0.0,0.0 -26.3013458252,-26.417388916 -26.3013458252,-26.417388916 Z M 2.87156677246,16.9857940674 c 0.0,0.0 -19.7573547363,-19.7573699951 -19.7573547363,-19.7573699951 c 0.0,0.0 14.0142059326,-14.2142181396 14.0142059326,-14.2142181396 c 0.0,0.0 19.7573699951,19.7573699951 19.7573699951,19.7573699951 c 0.0,0.0 -14.0142211914,14.2142181396 -14.0142211914,14.2142181396 Z"
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:fillAlpha="1" />
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
</vector>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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"
|
||||
android:drawable="@drawable/ic_landscape_to_auto_rotate" >
|
||||
<target
|
||||
android:name="arrows"
|
||||
android:animation="@anim/ic_landscape_to_auto_rotate_animation_arrows" />
|
||||
<target
|
||||
android:name="arrow_top"
|
||||
android:animation="@anim/ic_landscape_to_auto_rotate_animation_arrow_top" />
|
||||
<target
|
||||
android:name="arrow_bottom"
|
||||
android:animation="@anim/ic_landscape_to_auto_rotate_animation_arrow_bottom" />
|
||||
<target
|
||||
android:name="device"
|
||||
android:animation="@anim/ic_landscape_to_auto_rotate_animation_device" />
|
||||
<target
|
||||
android:name="body"
|
||||
android:animation="@anim/ic_landscape_to_auto_rotate_animation_body" />
|
||||
</animated-vector>
|
||||
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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="48dp"
|
||||
android:width="48dp"
|
||||
android:viewportHeight="48"
|
||||
android:viewportWidth="48" >
|
||||
<group
|
||||
android:name="ic_screen_rotation_48px_outlines"
|
||||
android:translateX="24"
|
||||
android:translateY="24" >
|
||||
<group
|
||||
android:name="ic_screen_rotation_48px_outlines_pivot"
|
||||
android:translateX="-24.15"
|
||||
android:translateY="-24.25" >
|
||||
<group
|
||||
android:name="arrows"
|
||||
android:translateX="24.1"
|
||||
android:translateY="24.1" >
|
||||
<group
|
||||
android:name="arrows_pivot"
|
||||
android:translateX="-24.1"
|
||||
android:translateY="-24.1" >
|
||||
<path
|
||||
android:name="arrow_top"
|
||||
android:pathData="M 33.1499938965,5.25 c 6.5,3.10000610352 11.1999969482,9.40000915527 11.8999938965,17.0 c 0.0,0.0 3.00001525879,0.0 3.00001525879,0.0 c -1.00001525879,-12.3000030518 -11.3000030518,-22.0 -23.9000091553,-22.0 c -0.399993896484,0.0 -0.899993896484,0.0 -1.30000305176,0.100006103516 c 0.0,0.0 7.60000610352,7.59999084473 7.60000610352,7.59999084473 c 0.0,0.0 2.69999694824,-2.69999694824 2.69999694824,-2.69999694824 Z"
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:fillAlpha="1" />
|
||||
<path
|
||||
android:name="arrow_bottom"
|
||||
android:pathData="M 15.1499938965,43.25 c -6.5,-3.09999084473 -11.1999969482,-9.5 -11.8999938965,-17.0 c 0.0,0.0 -3.0,0.0 -3.0,0.0 c 1.0,12.3000030518 11.299987793,22.0 23.8999938965,22.0 c 0.399993896484,0.0 0.899993896484,0.0 1.30000305176,-0.0999908447266 c 0.0,0.0 -7.60000610352,-7.60000610352 -7.60000610352,-7.60000610352 c 0.0,0.0 -2.69999694824,2.69999694824 -2.69999694824,2.69999694824 Z"
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:fillAlpha="1" />
|
||||
</group>
|
||||
</group>
|
||||
<group
|
||||
android:name="device"
|
||||
android:translateX="24.14999"
|
||||
android:translateY="24.25" >
|
||||
<path
|
||||
android:name="device_1"
|
||||
android:pathData="M -3.5,-20.5 c -1.19999694824,-1.19999694824 -3.10000610352,-1.19999694824 -4.19999694824,0.0 c 0.0,0.0 -12.8000030518,12.6999969482 -12.8000030518,12.6999969482 c -1.19999694824,1.19999694824 -1.19999694824,3.10000610352 0.0,4.19999694824 c 0.0,0.0 24.0,24.0000152588 24.0,24.0000152588 c 1.19999694824,1.19999694824 3.10000610352,1.19999694824 4.19999694824,0.0 c 0.0,0.0 12.6999969482,-12.700012207 12.6999969482,-12.700012207 c 1.20001220703,-1.19999694824 1.20001220703,-3.09999084473 0.0,-4.19999694824 c 0.0,0.0 -23.8999938965,-24.0 -23.8999938965,-24.0 Z M 2.84999084473,15.5500183105 c 0.0,0.0 -18.6000061035,-18.5000457764 -18.6000061035,-18.5000457764 c 0.0,0.0 12.5999908447,-12.8000030518 12.5999908447,-12.8000030518 c 0.0,0.0 18.6000213623,18.5000457764 18.6000213623,18.5000457764 c 0.0,0.0 -12.6000061035,12.8000030518 -12.6000061035,12.8000030518 Z"
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:fillAlpha="1" />
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
</vector>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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"
|
||||
android:drawable="@drawable/ic_portrait_from_auto_rotate" >
|
||||
<target
|
||||
android:name="arrows"
|
||||
android:animation="@anim/ic_portrait_from_auto_rotate_animation_arrows" />
|
||||
<target
|
||||
android:name="arrow_top"
|
||||
android:animation="@anim/ic_portrait_from_auto_rotate_animation_arrow_top" />
|
||||
<target
|
||||
android:name="arrow_bottom"
|
||||
android:animation="@anim/ic_portrait_from_auto_rotate_animation_arrow_bottom" />
|
||||
<target
|
||||
android:name="device"
|
||||
android:animation="@anim/ic_portrait_from_auto_rotate_animation_device" />
|
||||
<target
|
||||
android:name="device_1"
|
||||
android:animation="@anim/ic_portrait_from_auto_rotate_animation_device_1" />
|
||||
</animated-vector>
|
||||
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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="48dp"
|
||||
android:width="48dp"
|
||||
android:viewportHeight="48"
|
||||
android:viewportWidth="48" >
|
||||
<group
|
||||
android:name="ic_screen_rotation_48px_outlines"
|
||||
android:translateX="24"
|
||||
android:translateY="24" >
|
||||
<group
|
||||
android:name="ic_screen_rotation_48px_outlines_pivot"
|
||||
android:translateX="-24.15"
|
||||
android:translateY="-24.25" >
|
||||
<group
|
||||
android:name="arrows"
|
||||
android:translateX="24.1"
|
||||
android:translateY="24.1"
|
||||
android:scaleX="0.9"
|
||||
android:scaleY="0.9"
|
||||
android:rotation="-221" >
|
||||
<group
|
||||
android:name="arrows_pivot"
|
||||
android:translateX="-24.1"
|
||||
android:translateY="-24.1" >
|
||||
<path
|
||||
android:name="arrow_top"
|
||||
android:pathData="M 33.1499938965,5.25 c 6.5,3.10000610352 11.1999969482,9.40000915527 11.8999938965,17.0 c 0.0,0.0 3.00001525879,0.0 3.00001525879,0.0 c -1.00001525879,-12.3000030518 -11.3000030518,-22.0 -23.9000091553,-22.0 c -0.399993896484,0.0 -0.899993896484,0.0 -1.30000305176,0.100006103516 c 0.0,0.0 7.60000610352,7.59999084473 7.60000610352,7.59999084473 c 0.0,0.0 2.69999694824,-2.69999694824 2.69999694824,-2.69999694824 Z"
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:fillAlpha="0" />
|
||||
<path
|
||||
android:name="arrow_bottom"
|
||||
android:pathData="M 15.1499938965,43.25 c -6.5,-3.09999084473 -11.1999969482,-9.5 -11.8999938965,-17.0 c 0.0,0.0 -3.0,0.0 -3.0,0.0 c 1.0,12.3000030518 11.299987793,22.0 23.8999938965,22.0 c 0.399993896484,0.0 0.899993896484,0.0 1.30000305176,-0.0999908447266 c 0.0,0.0 -7.60000610352,-7.60000610352 -7.60000610352,-7.60000610352 c 0.0,0.0 -2.69999694824,2.69999694824 -2.69999694824,2.69999694824 Z"
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:fillAlpha="0" />
|
||||
</group>
|
||||
</group>
|
||||
<group
|
||||
android:name="device"
|
||||
android:translateX="24.14999"
|
||||
android:translateY="24.25"
|
||||
android:rotation="-135" >
|
||||
<path
|
||||
android:name="device_1"
|
||||
android:pathData="M -3.34053039551,-22.9980926514 c -1.3207244873,-1.3207244873 -3.46876525879,-1.26383972168 -4.74829101563,0.125762939453 c 0.0,0.0 -14.8512420654,14.7411804199 -14.8512420654,14.7411804199 c -1.39259338379,1.392578125 -1.44947814941,3.54061889648 -0.125762939453,4.74827575684 c 0.0,0.0 26.4143981934,26.4144134521 26.4143981934,26.4144134521 c 1.3207244873,1.3207244873 3.46876525879,1.26382446289 4.74829101562,-0.125762939453 c 0.0,0.0 14.7381896973,-14.7381896973 14.7381896973,-14.7381896973 c 1.392578125,-1.39259338379 1.44947814941,-3.54061889648 0.125762939453,-4.74829101562 c 0.0,0.0 -26.3013458252,-26.417388916 -26.3013458252,-26.417388916 Z M 2.87156677246,16.9857940674 c 0.0,0.0 -19.7573547363,-19.7573699951 -19.7573547363,-19.7573699951 c 0.0,0.0 14.0142059326,-14.2142181396 14.0142059326,-14.2142181396 c 0.0,0.0 19.7573699951,19.7573699951 19.7573699951,19.7573699951 c 0.0,0.0 -14.0142211914,14.2142181396 -14.0142211914,14.2142181396 Z"
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:fillAlpha="1" />
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
</vector>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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"
|
||||
android:drawable="@drawable/ic_portrait_to_auto_rotate" >
|
||||
<target
|
||||
android:name="arrows"
|
||||
android:animation="@anim/ic_portrait_to_auto_rotate_animation_arrows" />
|
||||
<target
|
||||
android:name="arrow_top"
|
||||
android:animation="@anim/ic_portrait_to_auto_rotate_animation_arrow_top" />
|
||||
<target
|
||||
android:name="arrow_bottom"
|
||||
android:animation="@anim/ic_portrait_to_auto_rotate_animation_arrow_bottom" />
|
||||
<target
|
||||
android:name="device"
|
||||
android:animation="@anim/ic_portrait_to_auto_rotate_animation_device" />
|
||||
<target
|
||||
android:name="device_1"
|
||||
android:animation="@anim/ic_portrait_to_auto_rotate_animation_device_1" />
|
||||
</animated-vector>
|
||||
@@ -1,25 +0,0 @@
|
||||
<!--
|
||||
Copyright (C) 2014 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="64dp"
|
||||
android:height="64dp"
|
||||
android:viewportWidth="48.0"
|
||||
android:viewportHeight="48.0">
|
||||
|
||||
<path
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:pathData="M2.0,14.0l0.0,20.0c0.0,2.2 1.8,4.0 4.0,4.0l36.0,0.0c2.2,0.0 4.0,-1.8 4.0,-4.0L46.0,14.0c0.0,-2.2 -1.8,-4.0 -4.0,-4.0L6.0,10.0C3.8,10.0 2.0,11.8 2.0,14.0zM38.0,14.0l0.0,20.0L10.0,34.0L10.0,14.0L38.0,14.0z"/>
|
||||
</vector>
|
||||
@@ -1,25 +0,0 @@
|
||||
<!--
|
||||
Copyright (C) 2014 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="64dp"
|
||||
android:height="64dp"
|
||||
android:viewportWidth="48.0"
|
||||
android:viewportHeight="48.0">
|
||||
|
||||
<path
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:pathData="M34.0,2.0L14.0,2.0c-2.2,0.0 -4.0,1.8 -4.0,4.0l0.0,36.0c0.0,2.2 1.8,4.0 4.0,4.0l20.0,0.0c2.2,0.0 4.0,-1.8 4.0,-4.0L38.0,6.0C38.0,3.8 36.2,2.0 34.0,2.0zM34.0,38.0L14.0,38.0L14.0,10.0l20.0,0.0L34.0,38.0z"/>
|
||||
</vector>
|
||||
@@ -1,24 +0,0 @@
|
||||
<!--
|
||||
Copyright (C) 2014 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="64dp"
|
||||
android:height="64dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:pathData="M16.600000,2.500000c3.300000,1.500000 5.600000,4.700000 6.000000,8.500000l1.500000,0.000000c-0.600000,-6.200000 -5.700000,-11.000000 -12.000000,-11.000000c-0.200000,0.000000 -0.400000,0.000000 -0.700000,0.000000l3.800000,3.800000L16.600000,2.500000zM10.300000,1.700000c-0.600000,-0.600000 -1.500000,-0.600000 -2.100000,0.000000L1.800000,8.100000c-0.600000,0.600000 -0.600000,1.500000 0.000000,2.100000l12.000000,12.000000c0.600000,0.600000 1.500000,0.600000 2.100000,0.000000l6.400000,-6.400000c0.600000,-0.600000 0.600000,-1.500000 0.000000,-2.100000L10.300000,1.700000zM13.400000,19.700001l-9.200000,-9.200000l6.400000,-6.400000l9.200000,9.200000L13.400000,19.700001zM7.600000,21.500000C4.300000,20.000000 2.000000,16.799999 1.600000,13.000000L0.200000,13.000000c0.500000,6.200000 5.600000,11.000000 11.900000,11.000000c0.200000,0.000000 0.400000,0.000000 0.700000,0.000000L9.000000,20.200001L7.600000,21.500000z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:pathData="M 0,0 c 0.458031162,0 0.299442342,0.748308635 1,1" />
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 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.
|
||||
-->
|
||||
<pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:pathData="M 0,0 c 0.4,0.143709151 0.2,1 1,1" />
|
||||
@@ -35,5 +35,6 @@
|
||||
<item type="id" name="top_inset_animator_start_value_tag"/>
|
||||
<item type="id" name="height_animator_start_value_tag"/>
|
||||
<item type="id" name="doze_saved_filter_tag"/>
|
||||
<item type="id" name="qs_icon_tag"/>
|
||||
</resources>
|
||||
|
||||
|
||||
@@ -18,11 +18,13 @@ package com.android.systemui.qs;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.drawable.AnimatedVectorDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.util.Log;
|
||||
import android.util.SparseArray;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
@@ -299,10 +301,91 @@ public abstract class QSTile<TState extends State> implements Listenable {
|
||||
}
|
||||
}
|
||||
|
||||
public static abstract class Icon {
|
||||
abstract public Drawable getDrawable(Context context);
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Icon.class.hashCode();
|
||||
}
|
||||
}
|
||||
|
||||
public static class ResourceIcon extends Icon {
|
||||
private static final SparseArray<Icon> ICONS = new SparseArray<Icon>();
|
||||
|
||||
private final int mResId;
|
||||
|
||||
private ResourceIcon(int resId) {
|
||||
mResId = resId;
|
||||
}
|
||||
|
||||
public static Icon get(int resId) {
|
||||
Icon icon = ICONS.get(resId);
|
||||
if (icon == null) {
|
||||
icon = new ResourceIcon(resId);
|
||||
ICONS.put(resId, icon);
|
||||
}
|
||||
return icon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Drawable getDrawable(Context context) {
|
||||
return context.getDrawable(mResId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
return o instanceof ResourceIcon && ((ResourceIcon) o).mResId == mResId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("ResourceIcon[resId=0x%08x]", mResId);
|
||||
}
|
||||
}
|
||||
|
||||
protected class AnimationIcon extends ResourceIcon {
|
||||
private boolean mAllowAnimation;
|
||||
|
||||
public AnimationIcon(int resId) {
|
||||
super(resId);
|
||||
}
|
||||
|
||||
public void setAllowAnimation(boolean allowAnimation) {
|
||||
mAllowAnimation = allowAnimation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Drawable getDrawable(Context context) {
|
||||
// workaround: get a clean state for every new AVD
|
||||
final AnimatedVectorDrawable d = (AnimatedVectorDrawable) super.getDrawable(context)
|
||||
.getConstantState().newDrawable();
|
||||
d.start();
|
||||
if (mAllowAnimation) {
|
||||
mAllowAnimation = false;
|
||||
} else {
|
||||
d.stop(); // skip directly to end state
|
||||
}
|
||||
return d;
|
||||
}
|
||||
}
|
||||
|
||||
protected enum UserBoolean {
|
||||
USER_TRUE(true, true),
|
||||
USER_FALSE(true, false),
|
||||
BACKGROUND_TRUE(false, true),
|
||||
BACKGROUND_FALSE(false, false);
|
||||
public final boolean value;
|
||||
public final boolean userInitiated;
|
||||
private UserBoolean(boolean userInitiated, boolean value) {
|
||||
this.value = value;
|
||||
this.userInitiated = userInitiated;
|
||||
}
|
||||
}
|
||||
|
||||
public static class State {
|
||||
public boolean visible;
|
||||
public int iconId;
|
||||
public Drawable icon;
|
||||
public Icon icon;
|
||||
public String label;
|
||||
public String contentDescription;
|
||||
public String dualLabelContentDescription;
|
||||
@@ -312,7 +395,6 @@ public abstract class QSTile<TState extends State> implements Listenable {
|
||||
if (other == null) throw new IllegalArgumentException();
|
||||
if (!other.getClass().equals(getClass())) throw new IllegalArgumentException();
|
||||
final boolean changed = other.visible != visible
|
||||
|| other.iconId != iconId
|
||||
|| !Objects.equals(other.icon, icon)
|
||||
|| !Objects.equals(other.label, label)
|
||||
|| !Objects.equals(other.contentDescription, contentDescription)
|
||||
@@ -320,7 +402,6 @@ public abstract class QSTile<TState extends State> implements Listenable {
|
||||
|| !Objects.equals(other.dualLabelContentDescription,
|
||||
dualLabelContentDescription);
|
||||
other.visible = visible;
|
||||
other.iconId = iconId;
|
||||
other.icon = icon;
|
||||
other.label = label;
|
||||
other.contentDescription = contentDescription;
|
||||
@@ -335,9 +416,8 @@ public abstract class QSTile<TState extends State> implements Listenable {
|
||||
}
|
||||
|
||||
protected StringBuilder toStringBuilder() {
|
||||
final StringBuilder sb = new StringBuilder( getClass().getSimpleName()).append('[');
|
||||
final StringBuilder sb = new StringBuilder(getClass().getSimpleName()).append('[');
|
||||
sb.append("visible=").append(visible);
|
||||
sb.append(",iconId=").append(iconId);
|
||||
sb.append(",icon=").append(icon);
|
||||
sb.append(",label=").append(label);
|
||||
sb.append(",contentDescription=").append(contentDescription);
|
||||
|
||||
@@ -21,6 +21,7 @@ import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.Animatable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.RippleDrawable;
|
||||
import android.os.Handler;
|
||||
@@ -39,6 +40,8 @@ import com.android.systemui.FontSizeUtils;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.qs.QSTile.State;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
/** View that represents a standard quick settings tile. **/
|
||||
public class QSTileView extends ViewGroup {
|
||||
private static final Typeface CONDENSED = Typeface.create("sans-serif-condensed",
|
||||
@@ -285,16 +288,7 @@ public class QSTileView extends ViewGroup {
|
||||
|
||||
protected void handleStateChanged(QSTile.State state) {
|
||||
if (mIcon instanceof ImageView) {
|
||||
ImageView iv = (ImageView) mIcon;
|
||||
if (state.icon != null) {
|
||||
iv.setImageDrawable(state.icon);
|
||||
} else if (state.iconId > 0) {
|
||||
iv.setImageResource(state.iconId);
|
||||
}
|
||||
Drawable drawable = iv.getDrawable();
|
||||
if (state.autoMirrorDrawable && drawable != null) {
|
||||
drawable.setAutoMirrored(true);
|
||||
}
|
||||
setIcon((ImageView) mIcon, state);
|
||||
}
|
||||
if (mDual) {
|
||||
mDualLabel.setText(state.label);
|
||||
@@ -306,6 +300,22 @@ public class QSTileView extends ViewGroup {
|
||||
}
|
||||
}
|
||||
|
||||
protected void setIcon(ImageView iv, QSTile.State state) {
|
||||
if (!Objects.equals(state.icon, iv.getTag(R.id.qs_icon_tag))) {
|
||||
Drawable d = state.icon != null ? state.icon.getDrawable(mContext) : null;
|
||||
if (d != null && state.autoMirrorDrawable) {
|
||||
d.setAutoMirrored(true);
|
||||
}
|
||||
iv.setImageDrawable(d);
|
||||
iv.setTag(R.id.qs_icon_tag, state.icon);
|
||||
if (d instanceof Animatable) {
|
||||
if (!iv.isShown()) {
|
||||
((Animatable) d).stop(); // skip directly to end state
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onStateChanged(QSTile.State state) {
|
||||
mHandler.obtainMessage(H.STATE_CHANGED, state).sendToTarget();
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ public final class SignalTileView extends QSTileView {
|
||||
protected void handleStateChanged(QSTile.State state) {
|
||||
super.handleStateChanged(state);
|
||||
final SignalState s = (SignalState) state;
|
||||
mSignal.setImageResource(s.iconId);
|
||||
setIcon(mSignal, s);
|
||||
if (s.overlayIconId > 0) {
|
||||
mOverlay.setVisibility(VISIBLE);
|
||||
mOverlay.setImageResource(s.overlayIconId);
|
||||
|
||||
@@ -68,11 +68,11 @@ public class AirplaneModeTile extends QSTile<QSTile.BooleanState> {
|
||||
state.visible = true;
|
||||
state.label = mContext.getString(R.string.quick_settings_airplane_mode_label);
|
||||
if (airplaneMode) {
|
||||
state.iconId = R.drawable.ic_qs_airplane_on;
|
||||
state.icon = ResourceIcon.get(R.drawable.ic_qs_airplane_on);
|
||||
state.contentDescription = mContext.getString(
|
||||
R.string.accessibility_quick_settings_airplane_on);
|
||||
} else {
|
||||
state.iconId = R.drawable.ic_qs_airplane_off;
|
||||
state.icon = ResourceIcon.get(R.drawable.ic_qs_airplane_off);
|
||||
state.contentDescription = mContext.getString(
|
||||
R.string.accessibility_quick_settings_airplane_off);
|
||||
}
|
||||
|
||||
@@ -92,17 +92,17 @@ public class BluetoothTile extends QSTile<QSTile.BooleanState> {
|
||||
if (enabled) {
|
||||
state.label = null;
|
||||
if (connected) {
|
||||
state.iconId = R.drawable.ic_qs_bluetooth_connected;
|
||||
state.icon = ResourceIcon.get(R.drawable.ic_qs_bluetooth_connected);
|
||||
state.contentDescription = mContext.getString(
|
||||
R.string.accessibility_quick_settings_bluetooth_connected);
|
||||
state.label = mController.getLastDeviceName();
|
||||
} else if (connecting) {
|
||||
state.iconId = R.drawable.ic_qs_bluetooth_connecting;
|
||||
state.icon = ResourceIcon.get(R.drawable.ic_qs_bluetooth_connecting);
|
||||
state.contentDescription = mContext.getString(
|
||||
R.string.accessibility_quick_settings_bluetooth_connecting);
|
||||
state.label = mContext.getString(R.string.quick_settings_bluetooth_label);
|
||||
} else {
|
||||
state.iconId = R.drawable.ic_qs_bluetooth_on;
|
||||
state.icon = ResourceIcon.get(R.drawable.ic_qs_bluetooth_on);
|
||||
state.contentDescription = mContext.getString(
|
||||
R.string.accessibility_quick_settings_bluetooth_on);
|
||||
}
|
||||
@@ -110,7 +110,7 @@ public class BluetoothTile extends QSTile<QSTile.BooleanState> {
|
||||
state.label = mContext.getString(R.string.quick_settings_bluetooth_label);
|
||||
}
|
||||
} else {
|
||||
state.iconId = R.drawable.ic_qs_bluetooth_off;
|
||||
state.icon = ResourceIcon.get(R.drawable.ic_qs_bluetooth_off);
|
||||
state.label = mContext.getString(R.string.quick_settings_bluetooth_label);
|
||||
state.contentDescription = mContext.getString(
|
||||
R.string.accessibility_quick_settings_bluetooth_off);
|
||||
|
||||
@@ -107,7 +107,8 @@ public class CastTile extends QSTile<QSTile.BooleanState> {
|
||||
if (!state.value && connecting) {
|
||||
state.label = mContext.getString(R.string.quick_settings_connecting);
|
||||
}
|
||||
state.iconId = state.value ? R.drawable.ic_qs_cast_on : R.drawable.ic_qs_cast_off;
|
||||
state.icon = ResourceIcon.get(state.value ? R.drawable.ic_qs_cast_on
|
||||
: R.drawable.ic_qs_cast_off);
|
||||
mDetailAdapter.updateItems(devices);
|
||||
}
|
||||
|
||||
|
||||
@@ -87,16 +87,17 @@ public class CellularTile extends QSTile<QSTile.SignalState> {
|
||||
if (cb == null) return;
|
||||
|
||||
final Resources r = mContext.getResources();
|
||||
state.iconId = cb.noSim ? R.drawable.ic_qs_no_sim
|
||||
final int iconId = cb.noSim ? R.drawable.ic_qs_no_sim
|
||||
: !cb.enabled || cb.airplaneModeEnabled ? R.drawable.ic_qs_signal_disabled
|
||||
: cb.mobileSignalIconId > 0 ? cb.mobileSignalIconId
|
||||
: R.drawable.ic_qs_signal_no_signal;
|
||||
state.icon = ResourceIcon.get(iconId);
|
||||
state.isOverlayIconWide = cb.isDataTypeIconWide;
|
||||
state.autoMirrorDrawable = !cb.noSim;
|
||||
state.overlayIconId = cb.enabled && (cb.dataTypeIconId > 0) && !cb.wifiConnected
|
||||
? cb.dataTypeIconId
|
||||
: 0;
|
||||
state.filter = state.iconId != R.drawable.ic_qs_no_sim;
|
||||
state.filter = iconId != R.drawable.ic_qs_no_sim;
|
||||
state.activityIn = cb.enabled && cb.activityIn;
|
||||
state.activityOut = cb.enabled && cb.activityOut;
|
||||
|
||||
|
||||
@@ -88,7 +88,8 @@ public class ColorInversionTile extends QSTile<QSTile.BooleanState> {
|
||||
state.visible = enabled || mUsageTracker.isRecentlyUsed();
|
||||
state.value = enabled;
|
||||
state.label = mContext.getString(R.string.quick_settings_inversion_label);
|
||||
state.iconId = enabled ? R.drawable.ic_qs_inversion_on : R.drawable.ic_qs_inversion_off;
|
||||
state.icon = ResourceIcon.get(enabled ? R.drawable.ic_qs_inversion_on
|
||||
: R.drawable.ic_qs_inversion_off);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -92,8 +92,8 @@ public class FlashlightTile extends QSTile<QSTile.BooleanState> implements
|
||||
// the camera is not available while it is being used for the flashlight.
|
||||
state.visible = mWasLastOn != 0 || mFlashlightController.isAvailable();
|
||||
state.label = mHost.getContext().getString(R.string.quick_settings_flashlight_label);
|
||||
state.iconId = state.value
|
||||
? R.drawable.ic_qs_flashlight_on : R.drawable.ic_qs_flashlight_off;
|
||||
state.icon = ResourceIcon.get(state.value ? R.drawable.ic_qs_flashlight_on
|
||||
: R.drawable.ic_qs_flashlight_off);
|
||||
int onOrOffId = state.value
|
||||
? R.string.accessibility_quick_settings_flashlight_on
|
||||
: R.string.accessibility_quick_settings_flashlight_off;
|
||||
|
||||
@@ -71,8 +71,8 @@ public class HotspotTile extends QSTile<QSTile.BooleanState> {
|
||||
state.label = mContext.getString(R.string.quick_settings_hotspot_label);
|
||||
|
||||
state.value = mController.isHotspotEnabled();
|
||||
state.iconId = state.visible && state.value ? R.drawable.ic_qs_hotspot_on
|
||||
: R.drawable.ic_qs_hotspot_off;
|
||||
state.icon = ResourceIcon.get(state.visible && state.value ? R.drawable.ic_qs_hotspot_on
|
||||
: R.drawable.ic_qs_hotspot_off);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -31,6 +31,9 @@ import android.util.Log;
|
||||
|
||||
import com.android.systemui.qs.QSTile;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
public class IntentTile extends QSTile<QSTile.State> {
|
||||
public static final String PREFIX = "intent(";
|
||||
|
||||
@@ -96,13 +99,11 @@ public class IntentTile extends QSTile<QSTile.State> {
|
||||
state.visible = intent.getBooleanExtra("visible", true);
|
||||
state.contentDescription = intent.getStringExtra("contentDescription");
|
||||
state.label = intent.getStringExtra("label");
|
||||
state.iconId = 0;
|
||||
state.icon = null;
|
||||
final byte[] iconBitmap = intent.getByteArrayExtra("iconBitmap");
|
||||
if (iconBitmap != null) {
|
||||
try {
|
||||
final Bitmap b = BitmapFactory.decodeByteArray(iconBitmap, 0, iconBitmap.length);
|
||||
state.icon = new BitmapDrawable(mContext.getResources(), b);
|
||||
state.icon = new BytesIcon(iconBitmap);
|
||||
} catch (Throwable t) {
|
||||
Log.w(TAG, "Error loading icon bitmap, length " + iconBitmap.length, t);
|
||||
}
|
||||
@@ -111,9 +112,9 @@ public class IntentTile extends QSTile<QSTile.State> {
|
||||
if (iconId != 0) {
|
||||
final String iconPackage = intent.getStringExtra("iconPackage");
|
||||
if (!TextUtils.isEmpty(iconPackage)) {
|
||||
state.icon = getPackageDrawable(iconPackage, iconId);
|
||||
state.icon = new PackageDrawableIcon(iconPackage, iconId);
|
||||
} else {
|
||||
state.iconId = iconId;
|
||||
state.icon = ResourceIcon.get(iconId);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -121,19 +122,66 @@ public class IntentTile extends QSTile<QSTile.State> {
|
||||
mOnClickUri = intent.getStringExtra("onClickUri");
|
||||
}
|
||||
|
||||
private Drawable getPackageDrawable(String pkg, int id) {
|
||||
try {
|
||||
return mContext.createPackageContext(pkg, 0).getDrawable(id);
|
||||
} catch (Throwable t) {
|
||||
Log.w(TAG, "Error loading package drawable pkg=" + pkg + " id=" + id, t);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
refreshState(intent);
|
||||
}
|
||||
};
|
||||
|
||||
private static class BytesIcon extends Icon {
|
||||
private final byte[] mBytes;
|
||||
|
||||
public BytesIcon(byte[] bytes) {
|
||||
mBytes = bytes;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Drawable getDrawable(Context context) {
|
||||
final Bitmap b = BitmapFactory.decodeByteArray(mBytes, 0, mBytes.length);
|
||||
return new BitmapDrawable(context.getResources(), b);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
return o instanceof BytesIcon && Arrays.equals(((BytesIcon) o).mBytes, mBytes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("BytesIcon[len=%s]", mBytes.length);
|
||||
}
|
||||
}
|
||||
|
||||
private class PackageDrawableIcon extends Icon {
|
||||
private final String mPackage;
|
||||
private final int mResId;
|
||||
|
||||
public PackageDrawableIcon(String pkg, int resId) {
|
||||
mPackage = pkg;
|
||||
mResId = resId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (!(o instanceof PackageDrawableIcon)) return false;
|
||||
final PackageDrawableIcon other = (PackageDrawableIcon) o;
|
||||
return Objects.equals(other.mPackage, mPackage) && other.mResId == mResId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Drawable getDrawable(Context context) {
|
||||
try {
|
||||
return context.createPackageContext(mPackage, 0).getDrawable(mResId);
|
||||
} catch (Throwable t) {
|
||||
Log.w(TAG, "Error loading package drawable pkg=" + mPackage + " id=" + mResId, t);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("PackageDrawableIcon[pkg=%s,id=0x%08x]", mPackage, mResId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,12 +67,12 @@ public class LocationTile extends QSTile<QSTile.BooleanState> {
|
||||
state.visible = !mKeyguard.isShowing();
|
||||
state.value = locationEnabled;
|
||||
if (locationEnabled) {
|
||||
state.iconId = R.drawable.ic_qs_location_on;
|
||||
state.icon = ResourceIcon.get(R.drawable.ic_qs_location_on);
|
||||
state.label = mContext.getString(R.string.quick_settings_location_label);
|
||||
state.contentDescription = mContext.getString(
|
||||
R.string.accessibility_quick_settings_location_on);
|
||||
} else {
|
||||
state.iconId = R.drawable.ic_qs_location_off;
|
||||
state.icon = ResourceIcon.get(R.drawable.ic_qs_location_off);
|
||||
state.label = mContext.getString(R.string.quick_settings_location_label);
|
||||
state.contentDescription = mContext.getString(
|
||||
R.string.accessibility_quick_settings_location_off);
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package com.android.systemui.qs.tiles;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.qs.QSTile;
|
||||
@@ -26,6 +25,15 @@ import com.android.systemui.statusbar.policy.RotationLockController.RotationLock
|
||||
|
||||
/** Quick settings tile: Rotation **/
|
||||
public class RotationLockTile extends QSTile<QSTile.BooleanState> {
|
||||
private final AnimationIcon PORTRAIT_TO_AUTO
|
||||
= new AnimationIcon(R.drawable.ic_portrait_to_auto_rotate_animation);
|
||||
private final AnimationIcon AUTO_TO_PORTRAIT
|
||||
= new AnimationIcon(R.drawable.ic_portrait_from_auto_rotate_animation);
|
||||
|
||||
private final AnimationIcon LANDSCAPE_TO_AUTO
|
||||
= new AnimationIcon(R.drawable.ic_landscape_to_auto_rotate_animation);
|
||||
private final AnimationIcon AUTO_TO_LANDSCAPE
|
||||
= new AnimationIcon(R.drawable.ic_landscape_from_auto_rotate_animation);
|
||||
|
||||
private final RotationLockController mController;
|
||||
|
||||
@@ -51,30 +59,34 @@ public class RotationLockTile extends QSTile<QSTile.BooleanState> {
|
||||
@Override
|
||||
protected void handleClick() {
|
||||
if (mController == null) return;
|
||||
mController.setRotationLocked(!mState.value);
|
||||
final boolean newState = !mState.value;
|
||||
mController.setRotationLocked(newState);
|
||||
refreshState(newState ? UserBoolean.USER_TRUE : UserBoolean.USER_FALSE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handleUpdateState(BooleanState state, Object arg) {
|
||||
if (mController == null) return;
|
||||
final boolean rotationLocked = mController.isRotationLocked();
|
||||
final boolean rotationLocked = arg != null ? ((UserBoolean) arg).value
|
||||
: mController.isRotationLocked();
|
||||
final boolean userInitiated = arg != null ? ((UserBoolean) arg).userInitiated : false;
|
||||
state.visible = mController.isRotationLockAffordanceVisible();
|
||||
final Resources res = mContext.getResources();
|
||||
state.value = rotationLocked;
|
||||
final boolean portrait = mContext.getResources().getConfiguration().orientation
|
||||
!= Configuration.ORIENTATION_LANDSCAPE;
|
||||
final AnimationIcon icon;
|
||||
if (rotationLocked) {
|
||||
final boolean portrait = res.getConfiguration().orientation
|
||||
!= Configuration.ORIENTATION_LANDSCAPE;
|
||||
final int label = portrait ? R.string.quick_settings_rotation_locked_portrait_label
|
||||
: R.string.quick_settings_rotation_locked_landscape_label;
|
||||
final int icon = portrait ? R.drawable.ic_qs_rotation_portrait
|
||||
: R.drawable.ic_qs_rotation_landscape;
|
||||
state.label = mContext.getString(label);
|
||||
state.icon = mContext.getDrawable(icon);
|
||||
icon = portrait ? AUTO_TO_PORTRAIT : AUTO_TO_LANDSCAPE;
|
||||
} else {
|
||||
state.label = mContext.getString(R.string.quick_settings_rotation_unlocked_label);
|
||||
state.icon = res.getDrawable(R.drawable.ic_qs_rotation_unlocked);
|
||||
icon = portrait ? PORTRAIT_TO_AUTO : LANDSCAPE_TO_AUTO;
|
||||
}
|
||||
state.contentDescription = getAccessibilityString(
|
||||
icon.setAllowAnimation(userInitiated);
|
||||
state.icon = icon;
|
||||
state.contentDescription = getAccessibilityString(rotationLocked,
|
||||
R.string.accessibility_rotation_lock_on_portrait,
|
||||
R.string.accessibility_rotation_lock_on_landscape,
|
||||
R.string.accessibility_rotation_lock_off);
|
||||
@@ -83,14 +95,16 @@ public class RotationLockTile extends QSTile<QSTile.BooleanState> {
|
||||
/**
|
||||
* Get the correct accessibility string based on the state
|
||||
*
|
||||
* @param locked Whether or not rotation is locked.
|
||||
* @param idWhenPortrait The id which should be used when locked in portrait.
|
||||
* @param idWhenLandscape The id which should be used when locked in landscape.
|
||||
* @param idWhenOff The id which should be used when the rotation lock is off.
|
||||
* @return
|
||||
*/
|
||||
private String getAccessibilityString(int idWhenPortrait, int idWhenLandscape, int idWhenOff) {
|
||||
private String getAccessibilityString(boolean locked, int idWhenPortrait, int idWhenLandscape,
|
||||
int idWhenOff) {
|
||||
int stringID;
|
||||
if (mState.value) {
|
||||
if (locked) {
|
||||
final boolean portrait = mContext.getResources().getConfiguration().orientation
|
||||
!= Configuration.ORIENTATION_LANDSCAPE;
|
||||
stringID = portrait ? idWhenPortrait: idWhenLandscape;
|
||||
@@ -102,7 +116,7 @@ public class RotationLockTile extends QSTile<QSTile.BooleanState> {
|
||||
|
||||
@Override
|
||||
protected String composeChangeAnnouncement() {
|
||||
return getAccessibilityString(
|
||||
return getAccessibilityString(mState.value,
|
||||
R.string.accessibility_rotation_lock_on_portrait_changed,
|
||||
R.string.accessibility_rotation_lock_on_landscape_changed,
|
||||
R.string.accessibility_rotation_lock_off_changed);
|
||||
@@ -111,7 +125,8 @@ public class RotationLockTile extends QSTile<QSTile.BooleanState> {
|
||||
private final RotationLockControllerCallback mCallback = new RotationLockControllerCallback() {
|
||||
@Override
|
||||
public void onRotationLockStateChanged(boolean rotationLocked, boolean affordanceVisible) {
|
||||
refreshState();
|
||||
refreshState(rotationLocked ? UserBoolean.BACKGROUND_TRUE
|
||||
: UserBoolean.BACKGROUND_FALSE);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -120,19 +120,19 @@ public class WifiTile extends QSTile<QSTile.SignalState> {
|
||||
final String signalContentDescription;
|
||||
final Resources r = mContext.getResources();
|
||||
if (!state.enabled) {
|
||||
state.iconId = R.drawable.ic_qs_wifi_disabled;
|
||||
state.icon = ResourceIcon.get(R.drawable.ic_qs_wifi_disabled);
|
||||
state.label = r.getString(R.string.quick_settings_wifi_label);
|
||||
signalContentDescription = r.getString(R.string.accessibility_wifi_off);
|
||||
} else if (wifiConnected) {
|
||||
state.iconId = cb.wifiSignalIconId;
|
||||
state.icon = ResourceIcon.get(cb.wifiSignalIconId);
|
||||
state.label = removeDoubleQuotes(cb.enabledDesc);
|
||||
signalContentDescription = cb.wifiSignalContentDescription;
|
||||
} else if (wifiNotConnected) {
|
||||
state.iconId = R.drawable.ic_qs_wifi_0;
|
||||
state.icon = ResourceIcon.get(R.drawable.ic_qs_wifi_0);
|
||||
state.label = r.getString(R.string.quick_settings_wifi_label);
|
||||
signalContentDescription = r.getString(R.string.accessibility_no_wifi);
|
||||
} else {
|
||||
state.iconId = R.drawable.ic_qs_wifi_no_network;
|
||||
state.icon = ResourceIcon.get(R.drawable.ic_qs_wifi_no_network);
|
||||
state.label = r.getString(R.string.quick_settings_wifi_label);
|
||||
signalContentDescription = r.getString(R.string.accessibility_wifi_off);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user