diff options
40 files changed, 6986 insertions, 114 deletions
diff --git a/PermissionController/res/drawable-v34/safety_status_info.xml b/PermissionController/res/drawable-v34/safety_status_info.xml new file mode 100644 index 000000000..c12c19144 --- /dev/null +++ b/PermissionController/res/drawable-v34/safety_status_info.xml @@ -0,0 +1,20 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="56dp" + android:height="56dp" + android:viewportWidth="56" + android:viewportHeight="56"> + <group> + <clip-path + android:pathData="M28,0L28,0A28,28 0,0 1,56 28L56,28A28,28 0,0 1,28 56L28,56A28,28 0,0 1,0 28L0,28A28,28 0,0 1,28 0z"/> + <path + android:pathData="M28,28m-28,0a28,28 0,1 1,56 0a28,28 0,1 1,-56 0" + android:fillColor="?attr/colorScStatusBackgroundInfo"/> + <path + android:pathData="M14.5,25.14C14.525,26.402 14.623,27.66 14.792,28.91C15.592,34.319 18.623,40.446 26.932,44.74C27.262,44.91 27.628,44.999 28,44.999C28.372,44.999 28.738,44.91 29.068,44.74C37.377,40.446 40.408,34.319 41.208,28.91C41.377,27.66 41.475,26.401 41.5,25.14V17.67C41.5,17.099 41.324,16.541 40.997,16.073C40.669,15.605 40.205,15.249 39.669,15.055L28.946,11.166C28.335,10.944 27.665,10.944 27.054,11.166L16.331,15.055C15.795,15.249 15.331,15.605 15.003,16.073C14.676,16.541 14.5,17.099 14.5,17.67V25.14Z" + android:fillColor="?attr/colorScStatusInfo"/> + <path + android:pathData="M36.172,23.255L25.503,33.814L19.829,28.198L22.172,25.831L25.503,29.129L33.829,20.888L36.172,23.255Z" + android:fillColor="?attr/colorScShieldAccent" + android:fillType="evenOdd"/> + </group> +</vector> diff --git a/PermissionController/res/drawable-v34/safety_status_info_to_info_anim.xml b/PermissionController/res/drawable-v34/safety_status_info_to_info_anim.xml new file mode 100644 index 000000000..91d07a50d --- /dev/null +++ b/PermissionController/res/drawable-v34/safety_status_info_to_info_anim.xml @@ -0,0 +1,245 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <aapt:attr name="android:drawable"> + <vector + android:height="224dp" + android:width="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group android:name="_R_G_L_3_G"> + <path + android:name="_R_G_L_3_G_D_0_P_0" + android:fillColor="?attr/colorScStatusBackgroundInfo" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_2_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0" + android:scaleY="0"> + <path + android:name="_R_G_L_2_G_D_0_P_0" + android:fillColor="?attr/colorScStatusBackgroundInfo" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_1_G" + android:translateX="84" + android:translateY="84" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillColor="?attr/colorScStatusInfo" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + <group + android:name="_R_G_L_0_G" + android:translateX="84" + android:translateY="84" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillColor="?attr/colorScShieldAccent" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M36.17 23.26 C36.17,23.26 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 33.83,20.89 33.83,20.89 C33.83,20.89 36.17,23.26 36.17,23.26c " /> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> + <target android:name="_R_G_L_3_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="fillAlpha" + android:duration="150" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="250" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="250" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="517" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="517" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="translateX" + android:duration="783" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/safety_status_recommend_to_info_anim.xml b/PermissionController/res/drawable-v34/safety_status_recommend_to_info_anim.xml new file mode 100644 index 000000000..c618ff308 --- /dev/null +++ b/PermissionController/res/drawable-v34/safety_status_recommend_to_info_anim.xml @@ -0,0 +1,722 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <target android:name="_R_G_L_5_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_4_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="250" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="250" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="517" + android:propertyName="scaleX" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="517" + android:propertyName="scaleY" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_3_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="fillColor" + android:startOffset="0" + android:valueFrom="?attr/colorScStatusRecommend" + android:valueTo="?attr/colorScStatusRecommend" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="fillColor" + android:startOffset="150" + android:valueFrom="?attr/colorScStatusRecommend" + android:valueTo="?attr/colorScStatusInfo" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_3_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="150" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M22.2 25.82 C22.2,25.82 19.84,28.17 19.84,28.17 C19.84,28.17 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 22.15,25.8 22.15,25.8 C22.15,25.8 22.22,25.82 22.22,25.82 C22.22,25.82 22.2,25.82 22.2,25.82c " + android:valueTo="M22.2 25.82 C22.2,25.82 19.84,28.17 19.84,28.17 C19.84,28.17 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 22.15,25.8 22.15,25.8 C22.15,25.8 22.22,25.82 22.22,25.82 C22.22,25.82 22.2,25.82 22.2,25.82c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="50" + android:propertyName="pathData" + android:startOffset="150" + android:valueFrom="M22.2 25.82 C22.2,25.82 19.84,28.17 19.84,28.17 C19.84,28.17 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 22.15,25.8 22.15,25.8 C22.15,25.8 22.22,25.82 22.22,25.82 C22.22,25.82 22.2,25.82 22.2,25.82c " + android:valueTo="M27.89 31.53 C27.89,31.53 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 25.54,29.17 25.54,29.17 C25.54,29.17 27.89,31.53 27.89,31.53c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="pathData" + android:startOffset="200" + android:valueFrom="M27.89 31.53 C27.89,31.53 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 25.54,29.17 25.54,29.17 C25.54,29.17 27.89,31.53 27.89,31.53c " + android:valueTo="M36.17 23.26 C36.17,23.26 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 33.83,20.89 33.83,20.89 C33.83,20.89 36.17,23.26 36.17,23.26c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.29,0 0.739,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G_N_4_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleX" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleY" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G_N_4_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="0" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="0" + android:valueTo="4" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="150" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="167" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M25.92 28.4 C25.92,28.4 25.92,18.4 25.92,18.4 C25.92,18.4 30.09,18.4 30.09,18.4 C30.09,18.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueTo="M25.92 28.4 C25.92,28.4 25.89,28.4 25.89,28.4 C25.89,28.4 30.06,28.4 30.06,28.4 C30.06,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.18,0 0.043,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_T_1"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="117" + android:pathData="M 0,0C 0,1.298 0,6.49 0,7.788" + android:propertyName="translateXY" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:startOffset="0"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_N_4_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleX" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleY" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_N_4_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="0" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="4" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_N_4_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="0" + android:propertyName="scaleY" + android:startOffset="350" + android:valueFrom="4" + android:valueTo="0" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="133" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="133" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="133" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M25.92 36.4 C25.92,36.4 25.92,31.89 25.92,31.89 C25.92,31.89 30.09,31.89 30.09,31.89 C30.09,31.89 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " + android:valueTo="M25.92 36.4 C25.92,36.4 25.94,36.39 25.94,36.39 C25.94,36.39 30.11,36.39 30.11,36.39 C30.11,36.39 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.989,0 0.789,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_N_4_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleX" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleY" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_N_4_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="0" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="4" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_N_4_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="0" + android:propertyName="scaleY" + android:startOffset="350" + android:valueFrom="4" + android:valueTo="0" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="767" + android:propertyName="translateX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <aapt:attr name="android:drawable"> + <vector + android:width="224dp" + android:height="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group android:name="_R_G_L_5_G"> + <path + android:name="_R_G_L_5_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusBackgroundRecommend" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_4_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0" + android:scaleY="0"> + <path + android:name="_R_G_L_4_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusBackgroundInfo" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_3_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_3_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusRecommend" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + <group + android:name="_R_G_L_2_G_N_4_T_0" + android:scaleX="4" + android:scaleY="0" + android:translateX="112" + android:translateY="112"> + <group + android:name="_R_G_L_2_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_2_G_D_0_P_0" + android:fillAlpha="0" + android:fillColor="?attr/colorScShieldAccent" + android:fillType="nonZero" + android:pathData=" M22.2 25.82 C22.2,25.82 19.84,28.17 19.84,28.17 C19.84,28.17 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 22.15,25.8 22.15,25.8 C22.15,25.8 22.22,25.82 22.22,25.82 C22.22,25.82 22.2,25.82 22.2,25.82c " /> + </group> + </group> + <group + android:name="_R_G_L_1_G_N_4_T_0" + android:scaleX="4" + android:scaleY="4" + android:translateX="112" + android:translateY="112"> + <group + android:name="_R_G_L_1_G_T_1" + android:translateX="0" + android:translateY="0"> + <group + android:name="_R_G_L_1_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="@color/sc_shield_accent_fixed_variant" + android:fillType="nonZero" + android:pathData=" M25.92 28.4 C25.92,28.4 25.92,18.4 25.92,18.4 C25.92,18.4 30.09,18.4 30.09,18.4 C30.09,18.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " /> + </group> + </group> + </group> + <group + android:name="_R_G_L_0_G_N_4_T_0" + android:scaleX="4" + android:scaleY="4" + android:translateX="112" + android:translateY="112"> + <group + android:name="_R_G_L_0_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="@color/sc_shield_accent_fixed_variant" + android:fillType="nonZero" + android:pathData=" M25.92 36.4 C25.92,36.4 25.92,31.89 25.92,31.89 C25.92,31.89 30.09,31.89 30.09,31.89 C30.09,31.89 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " /> + </group> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/safety_status_recommendation.xml b/PermissionController/res/drawable-v34/safety_status_recommendation.xml new file mode 100644 index 000000000..4dcab9f9d --- /dev/null +++ b/PermissionController/res/drawable-v34/safety_status_recommendation.xml @@ -0,0 +1,24 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="56dp" + android:height="56dp" + android:viewportWidth="56" + android:viewportHeight="56"> + <group> + <clip-path + android:pathData="M28,0L28,0A28,28 0,0 1,56 28L56,28A28,28 0,0 1,28 56L28,56A28,28 0,0 1,0 28L0,28A28,28 0,0 1,28 0z"/> + <path + android:pathData="M28,28m-28,0a28,28 0,1 1,56 0a28,28 0,1 1,-56 0" + android:fillColor="?attr/colorScStatusBackgroundRecommend"/> + <path + android:pathData="M14.5,25.14C14.525,26.402 14.623,27.66 14.792,28.91C15.592,34.319 18.623,40.446 26.932,44.74C27.262,44.91 27.628,44.999 28,44.999C28.372,44.999 28.738,44.91 29.068,44.74C37.377,40.446 40.408,34.319 41.208,28.91C41.377,27.66 41.475,26.401 41.5,25.14V17.67C41.5,17.099 41.324,16.541 40.997,16.073C40.669,15.605 40.205,15.249 39.669,15.055L28.946,11.166C28.335,10.944 27.665,10.944 27.054,11.166L16.331,15.055C15.795,15.249 15.331,15.605 15.003,16.073C14.676,16.541 14.5,17.099 14.5,17.67V25.14Z" + android:fillColor="?attr/colorScStatusRecommend"/> + <path + android:pathData="M25.916,28.397V18.4H30.086V28.397H25.916Z" + android:fillColor="@color/sc_shield_accent_fixed_variant" + android:fillType="evenOdd"/> + <path + android:pathData="M25.916,36.4V31.894H30.086V36.4H25.916Z" + android:fillColor="@color/sc_shield_accent_fixed_variant" + android:fillType="evenOdd"/> + </group> +</vector> diff --git a/PermissionController/res/drawable-v34/safety_status_warn.xml b/PermissionController/res/drawable-v34/safety_status_warn.xml new file mode 100644 index 000000000..6b3304992 --- /dev/null +++ b/PermissionController/res/drawable-v34/safety_status_warn.xml @@ -0,0 +1,24 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="56dp" + android:height="56dp" + android:viewportWidth="56" + android:viewportHeight="56"> + <group> + <clip-path + android:pathData="M28,0L28,0A28,28 0,0 1,56 28L56,28A28,28 0,0 1,28 56L28,56A28,28 0,0 1,0 28L0,28A28,28 0,0 1,28 0z"/> + <path + android:pathData="M28,28m-28,0a28,28 0,1 1,56 0a28,28 0,1 1,-56 0" + android:fillColor="?attr/colorScStatusBackgroundWarn"/> + <path + android:pathData="M14.5,25.14C14.525,26.402 14.623,27.66 14.792,28.91C15.592,34.319 18.623,40.446 26.932,44.74C27.262,44.91 27.628,44.999 28,44.999C28.372,44.999 28.738,44.91 29.068,44.74C37.377,40.446 40.408,34.319 41.208,28.91C41.377,27.66 41.475,26.401 41.5,25.14V17.67C41.5,17.099 41.324,16.541 40.997,16.073C40.669,15.605 40.205,15.249 39.669,15.055L28.946,11.166C28.335,10.944 27.665,10.944 27.054,11.166L16.331,15.055C15.795,15.249 15.331,15.605 15.003,16.073C14.676,16.541 14.5,17.099 14.5,17.67V25.14Z" + android:fillColor="?attr/colorScStatusWarn"/> + <path + android:pathData="M25.916,28.397V18.4H30.086V28.397H25.916Z" + android:fillColor="?attr/colorScShieldAccent" + android:fillType="evenOdd"/> + <path + android:pathData="M25.916,36.4V31.894H30.086V36.4H25.916Z" + android:fillColor="?attr/colorScShieldAccent" + android:fillType="evenOdd"/> + </group> +</vector> diff --git a/PermissionController/res/drawable-v34/safety_status_warn_to_info_anim.xml b/PermissionController/res/drawable-v34/safety_status_warn_to_info_anim.xml new file mode 100644 index 000000000..eba9107fe --- /dev/null +++ b/PermissionController/res/drawable-v34/safety_status_warn_to_info_anim.xml @@ -0,0 +1,722 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <target android:name="_R_G_L_5_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_4_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="250" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="250" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="517" + android:propertyName="scaleX" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="517" + android:propertyName="scaleY" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_3_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="fillColor" + android:startOffset="0" + android:valueFrom="?attr/colorScStatusWarn" + android:valueTo="?attr/colorScStatusWarn" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="fillColor" + android:startOffset="150" + android:valueFrom="?attr/colorScStatusWarn" + android:valueTo="?attr/colorScStatusInfo" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_3_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="150" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M22.2 25.82 C22.2,25.82 19.84,28.17 19.84,28.17 C19.84,28.17 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 22.15,25.8 22.15,25.8 C22.15,25.8 22.22,25.82 22.22,25.82 C22.22,25.82 22.2,25.82 22.2,25.82c " + android:valueTo="M22.2 25.82 C22.2,25.82 19.84,28.17 19.84,28.17 C19.84,28.17 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 22.15,25.8 22.15,25.8 C22.15,25.8 22.22,25.82 22.22,25.82 C22.22,25.82 22.2,25.82 22.2,25.82c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="50" + android:propertyName="pathData" + android:startOffset="150" + android:valueFrom="M22.2 25.82 C22.2,25.82 19.84,28.17 19.84,28.17 C19.84,28.17 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 22.15,25.8 22.15,25.8 C22.15,25.8 22.22,25.82 22.22,25.82 C22.22,25.82 22.2,25.82 22.2,25.82c " + android:valueTo="M27.89 31.53 C27.89,31.53 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 25.54,29.17 25.54,29.17 C25.54,29.17 27.89,31.53 27.89,31.53c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="pathData" + android:startOffset="200" + android:valueFrom="M27.89 31.53 C27.89,31.53 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 25.54,29.17 25.54,29.17 C25.54,29.17 27.89,31.53 27.89,31.53c " + android:valueTo="M36.17 23.26 C36.17,23.26 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 33.83,20.89 33.83,20.89 C33.83,20.89 36.17,23.26 36.17,23.26c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.29,0 0.739,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G_N_4_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleX" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleY" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G_N_4_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="0" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="0" + android:valueTo="4" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="150" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="167" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M25.92 28.4 C25.92,28.4 25.92,18.4 25.92,18.4 C25.92,18.4 30.09,18.4 30.09,18.4 C30.09,18.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueTo="M25.92 28.4 C25.92,28.4 25.89,28.4 25.89,28.4 C25.89,28.4 30.06,28.4 30.06,28.4 C30.06,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.18,0 0.043,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_T_1"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="117" + android:pathData="M 0,0C 0,1.298 0,6.49 0,7.788" + android:propertyName="translateXY" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:startOffset="0"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_N_4_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleX" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleY" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_N_4_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="0" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="4" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_N_4_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="0" + android:propertyName="scaleY" + android:startOffset="183" + android:valueFrom="4" + android:valueTo="0" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="133" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="133" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="133" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M25.92 36.4 C25.92,36.4 25.92,31.89 25.92,31.89 C25.92,31.89 30.09,31.89 30.09,31.89 C30.09,31.89 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " + android:valueTo="M25.92 36.4 C25.92,36.4 25.94,36.39 25.94,36.39 C25.94,36.39 30.11,36.39 30.11,36.39 C30.11,36.39 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.989,0 0.789,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_N_4_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleX" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleY" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_N_4_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="0" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="4" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_N_4_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="0" + android:propertyName="scaleY" + android:startOffset="183" + android:valueFrom="4" + android:valueTo="0" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="783" + android:propertyName="translateX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <aapt:attr name="android:drawable"> + <vector + android:width="224dp" + android:height="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group android:name="_R_G_L_5_G"> + <path + android:name="_R_G_L_5_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusBackgroundWarn" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_4_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0" + android:scaleY="0"> + <path + android:name="_R_G_L_4_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusBackgroundInfo" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_3_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_3_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusWarn" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + <group + android:name="_R_G_L_2_G_N_4_T_0" + android:scaleX="4" + android:scaleY="0" + android:translateX="112" + android:translateY="112"> + <group + android:name="_R_G_L_2_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_2_G_D_0_P_0" + android:fillAlpha="0" + android:fillColor="?attr/colorScShieldAccent" + android:fillType="nonZero" + android:pathData=" M22.2 25.82 C22.2,25.82 19.84,28.17 19.84,28.17 C19.84,28.17 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 22.15,25.8 22.15,25.8 C22.15,25.8 22.22,25.82 22.22,25.82 C22.22,25.82 22.2,25.82 22.2,25.82c " /> + </group> + </group> + <group + android:name="_R_G_L_1_G_N_4_T_0" + android:scaleX="4" + android:scaleY="4" + android:translateX="112" + android:translateY="112"> + <group + android:name="_R_G_L_1_G_T_1" + android:translateX="0" + android:translateY="0"> + <group + android:name="_R_G_L_1_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" + android:fillType="nonZero" + android:pathData=" M25.92 28.4 C25.92,28.4 25.92,18.4 25.92,18.4 C25.92,18.4 30.09,18.4 30.09,18.4 C30.09,18.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " /> + </group> + </group> + </group> + <group + android:name="_R_G_L_0_G_N_4_T_0" + android:scaleX="4" + android:scaleY="4" + android:translateX="112" + android:translateY="112"> + <group + android:name="_R_G_L_0_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" + android:fillType="nonZero" + android:pathData=" M25.92 36.4 C25.92,36.4 25.92,31.89 25.92,31.89 C25.92,31.89 30.09,31.89 30.09,31.89 C30.09,31.89 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " /> + </group> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/safety_status_warn_to_recommend_anim.xml b/PermissionController/res/drawable-v34/safety_status_warn_to_recommend_anim.xml new file mode 100644 index 000000000..8b97e4871 --- /dev/null +++ b/PermissionController/res/drawable-v34/safety_status_warn_to_recommend_anim.xml @@ -0,0 +1,346 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <aapt:attr name="android:drawable"> + <vector + android:height="224dp" + android:width="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group android:name="_R_G_L_3_G"> + <path + android:name="_R_G_L_3_G_D_0_P_0" + android:fillColor="?attr/colorScStatusBackgroundWarn" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_2_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0" + android:scaleY="0"> + <path + android:name="_R_G_L_2_G_D_0_P_0" + android:fillColor="?attr/colorScStatusBackgroundRecommend" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_1_G" + android:translateX="84" + android:translateY="84" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillColor="?attr/colorScStatusWarn" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + <group + android:name="_R_G_L_0_G" + android:translateX="84" + android:translateY="84" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillColor="?attr/colorScShieldAccent" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M25.92 28.4 C25.92,28.4 25.92,18.4 25.92,18.4 C25.92,18.4 30.09,18.4 30.09,18.4 C30.09,18.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " /> + <path + android:name="_R_G_L_0_G_D_1_P_0" + android:fillColor="?attr/colorScShieldAccent" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M25.92 36.4 C25.92,36.4 25.92,31.89 25.92,31.89 C25.92,31.89 30.09,31.89 30.09,31.89 C30.09,31.89 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " /> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> + <target android:name="_R_G_L_3_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="fillAlpha" + android:duration="150" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="250" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="250" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="517" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="517" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="fillColor" + android:duration="183" + android:startOffset="0" + android:valueFrom="?attr/colorScStatusWarn" + android:valueTo="?attr/colorScStatusWarn" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="fillColor" + android:duration="333" + android:startOffset="183" + android:valueFrom="?attr/colorScStatusWarn" + android:valueTo="?attr/colorScStatusRecommend" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="fillColor" + android:duration="250" + android:startOffset="517" + android:valueFrom="?attr/colorScStatusRecommend" + android:valueTo="?attr/colorScStatusRecommend" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="fillColor" + android:duration="183" + android:startOffset="0" + android:valueFrom="?attr/colorScShieldAccent" + android:valueTo="?attr/colorScShieldAccent" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="fillColor" + android:duration="333" + android:startOffset="183" + android:valueFrom="?attr/colorScShieldAccent" + android:valueTo="@color/sc_shield_accent_fixed_variant" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_1_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="fillColor" + android:duration="183" + android:startOffset="0" + android:valueFrom="?attr/colorScShieldAccent" + android:valueTo="?attr/colorScShieldAccent" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="fillColor" + android:duration="333" + android:startOffset="183" + android:valueFrom="?attr/colorScShieldAccent" + android:valueTo="@color/sc_shield_accent_fixed_variant" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="translateX" + android:duration="783" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/status_info_to_scanning_anim.xml b/PermissionController/res/drawable-v34/status_info_to_scanning_anim.xml new file mode 100644 index 000000000..7a1737b62 --- /dev/null +++ b/PermissionController/res/drawable-v34/status_info_to_scanning_anim.xml @@ -0,0 +1,149 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <target android:name="_R_G_L_2_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="333" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="333" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="317" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="317" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="50" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M36.17 23.26 C36.17,23.26 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 33.83,20.89 33.83,20.89 C33.83,20.89 36.17,23.26 36.17,23.26c " + android:valueTo="M36.17 23.26 C36.17,23.26 25.5,33.81 25.5,33.81 C25.5,33.81 23.14,31.52 23.14,31.52 C23.14,31.52 25.48,29.15 25.48,29.15 C25.48,29.15 25.5,29.13 25.5,29.13 C25.5,29.13 33.83,20.89 33.83,20.89 C33.83,20.89 36.17,23.26 36.17,23.26c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.928,0.337 0.985,0.984 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="283" + android:propertyName="pathData" + android:startOffset="50" + android:valueFrom="M36.17 23.26 C36.17,23.26 25.5,33.81 25.5,33.81 C25.5,33.81 23.14,31.52 23.14,31.52 C23.14,31.52 25.48,29.15 25.48,29.15 C25.48,29.15 25.5,29.13 25.5,29.13 C25.5,29.13 33.83,20.89 33.83,20.89 C33.83,20.89 36.17,23.26 36.17,23.26c " + android:valueTo="M36.17 23.26 C36.17,23.26 36.1,23.19 36.1,23.19 C36.1,23.19 33.74,20.89 33.74,20.89 C33.74,20.89 33.83,20.82 33.83,20.82 C33.83,20.82 33.82,20.84 33.82,20.84 C33.82,20.84 33.83,20.89 33.83,20.89 C33.83,20.89 36.17,23.26 36.17,23.26c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.007,0.007 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="350" + android:propertyName="translateX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <aapt:attr name="android:drawable"> + <vector + android:width="224dp" + android:height="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group android:name="_R_G_L_2_G"> + <path + android:name="_R_G_L_2_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusBackgroundInfo" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_1_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusInfo" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + <group + android:name="_R_G_L_0_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" + android:fillType="nonZero" + android:pathData=" M36.17 23.26 C36.17,23.26 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 33.83,20.89 33.83,20.89 C33.83,20.89 36.17,23.26 36.17,23.26c " /> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/status_recommend_to_scanning_anim.xml b/PermissionController/res/drawable-v34/status_recommend_to_scanning_anim.xml new file mode 100644 index 000000000..1b71689a9 --- /dev/null +++ b/PermissionController/res/drawable-v34/status_recommend_to_scanning_anim.xml @@ -0,0 +1,225 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <target android:name="_R_G_L_3_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="333" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="333" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="150" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="167" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M25.92 28.4 C25.92,28.4 25.92,18.4 25.92,18.4 C25.92,18.4 30.09,18.4 30.09,18.4 C30.09,18.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueTo="M25.92 28.4 C25.92,28.4 25.89,28.4 25.89,28.4 C25.89,28.4 30.06,28.4 30.06,28.4 C30.06,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.18,0 0.043,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_T_1"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="117" + android:pathData="M 112,112C 112,117.19200000000001 112,137.958 112,143.15" + android:propertyName="translateXY" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:startOffset="0"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="133" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="133" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="133" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M25.92 36.4 C25.92,36.4 25.92,31.89 25.92,31.89 C25.92,31.89 30.09,31.89 30.09,31.89 C30.09,31.89 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " + android:valueTo="M25.92 36.4 C25.92,36.4 25.94,36.39 25.94,36.39 C25.94,36.39 30.11,36.39 30.11,36.39 C30.11,36.39 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.989,0 0.789,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="350" + android:propertyName="translateX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <aapt:attr name="android:drawable"> + <vector + android:width="224dp" + android:height="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group + android:name="_R_G_L_3_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_3_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusBackgroundRecommend" + android:fillType="nonZero" + android:pathData=" M28 0 C28,0 28,0 28,0 C43.46,0 56,12.54 56,28 C56,28 56,28 56,28 C56,43.46 43.46,56 28,56 C28,56 28,56 28,56 C12.54,56 0,43.46 0,28 C0,28 0,28 0,28 C0,12.54 12.54,0 28,0c " /> + </group> + <group + android:name="_R_G_L_2_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_2_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusRecommend" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + <group + android:name="_R_G_L_1_G_T_1" + android:scaleX="4" + android:scaleY="4" + android:translateX="112" + android:translateY="112"> + <group + android:name="_R_G_L_1_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="@color/sc_shield_accent_fixed_variant" + android:fillType="nonZero" + android:pathData=" M25.92 28.4 C25.92,28.4 25.92,18.4 25.92,18.4 C25.92,18.4 30.09,18.4 30.09,18.4 C30.09,18.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " /> + </group> + </group> + <group + android:name="_R_G_L_0_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="@color/sc_shield_accent_fixed_variant" + android:fillType="nonZero" + android:pathData=" M25.92 36.4 C25.92,36.4 25.92,31.89 25.92,31.89 C25.92,31.89 30.09,31.89 30.09,31.89 C30.09,31.89 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " /> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/status_scanning_anim_info.xml b/PermissionController/res/drawable-v34/status_scanning_anim_info.xml new file mode 100644 index 000000000..e0e952755 --- /dev/null +++ b/PermissionController/res/drawable-v34/status_scanning_anim_info.xml @@ -0,0 +1,111 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="583" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.667,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="417" + android:propertyName="fillAlpha" + android:startOffset="583" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.667,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="1000" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="0.1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="1000" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="0.1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="1000" + android:propertyName="translateX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <aapt:attr name="android:drawable"> + <vector + android:width="224dp" + android:height="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group + android:name="_R_G_L_1_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0.1" + android:scaleY="0.1"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusBackgroundInfo" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_0_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusInfo" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/status_scanning_anim_recommend.xml b/PermissionController/res/drawable-v34/status_scanning_anim_recommend.xml new file mode 100644 index 000000000..50ec7edf2 --- /dev/null +++ b/PermissionController/res/drawable-v34/status_scanning_anim_recommend.xml @@ -0,0 +1,111 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="583" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.667,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="417" + android:propertyName="fillAlpha" + android:startOffset="583" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.667,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="1000" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="0.1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="1000" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="0.1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="1000" + android:propertyName="translateX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <aapt:attr name="android:drawable"> + <vector + android:width="224dp" + android:height="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group + android:name="_R_G_L_1_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0.1" + android:scaleY="0.1"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusBackgroundRecommend" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_0_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusRecommend" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/status_scanning_anim_warn.xml b/PermissionController/res/drawable-v34/status_scanning_anim_warn.xml new file mode 100644 index 000000000..d6c319ef0 --- /dev/null +++ b/PermissionController/res/drawable-v34/status_scanning_anim_warn.xml @@ -0,0 +1,111 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="583" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.667,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="417" + android:propertyName="fillAlpha" + android:startOffset="583" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.667,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="1000" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="0.1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="1000" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="0.1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="1000" + android:propertyName="translateX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <aapt:attr name="android:drawable"> + <vector + android:width="224dp" + android:height="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group + android:name="_R_G_L_1_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0.1" + android:scaleY="0.1"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusBackgroundWarn" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_0_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusWarn" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/status_scanning_end_anim_info_to_info.xml b/PermissionController/res/drawable-v34/status_scanning_end_anim_info_to_info.xml new file mode 100644 index 000000000..9336ddfa8 --- /dev/null +++ b/PermissionController/res/drawable-v34/status_scanning_end_anim_info_to_info.xml @@ -0,0 +1,265 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <target android:name="_R_G_L_2_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="250" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="250" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="517" + android:propertyName="scaleX" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="517" + android:propertyName="scaleY" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="50" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M22.2 25.82 C22.2,25.82 19.84,28.17 19.84,28.17 C19.84,28.17 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 22.15,25.8 22.15,25.8 C22.15,25.8 22.22,25.82 22.22,25.82 C22.22,25.82 22.2,25.82 22.2,25.82c " + android:valueTo="M27.89 31.53 C27.89,31.53 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 25.54,29.17 25.54,29.17 C25.54,29.17 27.89,31.53 27.89,31.53c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="pathData" + android:startOffset="50" + android:valueFrom="M27.89 31.53 C27.89,31.53 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 25.54,29.17 25.54,29.17 C25.54,29.17 27.89,31.53 27.89,31.53c " + android:valueTo="M36.17 23.26 C36.17,23.26 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 33.83,20.89 33.83,20.89 C33.83,20.89 36.17,23.26 36.17,23.26c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.29,0 0.739,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="767" + android:propertyName="translateX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <aapt:attr name="android:drawable"> + <vector + android:width="224dp" + android:height="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group + android:name="_R_G_L_2_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0" + android:scaleY="0"> + <path + android:name="_R_G_L_2_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusBackgroundInfo" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_1_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusInfo" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + <group + android:name="_R_G_L_0_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillAlpha="0" + android:fillColor="?attr/colorScShieldAccent" + android:fillType="nonZero" + android:pathData=" M22.2 25.82 C22.2,25.82 19.84,28.17 19.84,28.17 C19.84,28.17 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 22.15,25.8 22.15,25.8 C22.15,25.8 22.22,25.82 22.22,25.82 C22.22,25.82 22.2,25.82 22.2,25.82c " /> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/status_scanning_end_anim_info_to_recommend.xml b/PermissionController/res/drawable-v34/status_scanning_end_anim_info_to_recommend.xml new file mode 100644 index 000000000..3a55c83ec --- /dev/null +++ b/PermissionController/res/drawable-v34/status_scanning_end_anim_info_to_recommend.xml @@ -0,0 +1,469 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <target android:name="_R_G_L_3_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="250" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="250" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="517" + android:propertyName="scaleX" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="517" + android:propertyName="scaleY" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="fillColor" + android:startOffset="0" + android:valueFrom="?attr/colorScStatusInfo" + android:valueTo="?attr/colorScStatusInfo" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="fillColor" + android:startOffset="150" + android:valueFrom="?attr/colorScStatusInfo" + android:valueTo="?attr/colorScStatusRecommend" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="283" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M28.04 33.99 C28.04,33.99 28,33.98 28,33.98 C28,33.98 28.01,33.97 28.01,33.97 C28.01,33.97 28.02,33.98 28.02,33.98 C28.02,33.98 28.04,33.99 28.04,33.99c " + android:valueTo="M25.92 36.4 C25.92,36.4 25.92,31.89 25.92,31.89 C25.92,31.89 30.09,31.89 30.09,31.89 C30.09,31.89 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_N_3_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleX" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleY" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="167" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="167" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="167" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueTo="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.3,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="250" + android:propertyName="pathData" + android:startOffset="167" + android:valueFrom="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueTo="M25.92 28.4 C25.92,28.4 25.92,18.4 25.92,18.4 C25.92,18.4 30.09,18.4 30.09,18.4 C30.09,18.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.3,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_T_1"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="100" + android:pathData="M 0,0C 0,1.553 0,9.32 0,9.32" + android:propertyName="translateXY" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:startOffset="0"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="317" + android:pathData="M 0,9.32C 0,9.32 0,1.553 0,0" + android:propertyName="translateXY" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:startOffset="100"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.001,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_N_3_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleX" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleY" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="783" + android:propertyName="translateX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <aapt:attr name="android:drawable"> + <vector + android:width="224dp" + android:height="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group + android:name="_R_G_L_3_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0" + android:scaleY="0"> + <path + android:name="_R_G_L_3_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusBackgroundRecommend" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_2_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_2_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusInfo" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + <group + android:name="_R_G_L_1_G_N_3_T_0" + android:scaleX="4" + android:scaleY="4" + android:translateX="112" + android:translateY="112"> + <group + android:name="_R_G_L_1_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="@color/sc_shield_accent_fixed_variant" + android:fillType="nonZero" + android:pathData=" M28.04 33.99 C28.04,33.99 28,33.98 28,33.98 C28,33.98 28.01,33.97 28.01,33.97 C28.01,33.97 28.02,33.98 28.02,33.98 C28.02,33.98 28.04,33.99 28.04,33.99c " /> + </group> + </group> + <group + android:name="_R_G_L_0_G_N_3_T_0" + android:scaleX="4" + android:scaleY="4" + android:translateX="112" + android:translateY="112"> + <group + android:name="_R_G_L_0_G_T_1" + android:translateX="0" + android:translateY="0"> + <group + android:name="_R_G_L_0_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillAlpha="0" + android:fillColor="@color/sc_shield_accent_fixed_variant" + android:fillType="nonZero" + android:pathData=" M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " /> + </group> + </group> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/status_scanning_end_anim_info_to_warn.xml b/PermissionController/res/drawable-v34/status_scanning_end_anim_info_to_warn.xml new file mode 100644 index 000000000..8c42eed50 --- /dev/null +++ b/PermissionController/res/drawable-v34/status_scanning_end_anim_info_to_warn.xml @@ -0,0 +1,469 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <target android:name="_R_G_L_3_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="250" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="250" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="517" + android:propertyName="scaleX" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="517" + android:propertyName="scaleY" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="fillColor" + android:startOffset="0" + android:valueFrom="?attr/colorScStatusInfo" + android:valueTo="?attr/colorScStatusInfo" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="fillColor" + android:startOffset="150" + android:valueFrom="?attr/colorScStatusInfo" + android:valueTo="?attr/colorScStatusWarn" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="283" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M28.04 33.99 C28.04,33.99 28,33.98 28,33.98 C28,33.98 28.01,33.97 28.01,33.97 C28.01,33.97 28.02,33.98 28.02,33.98 C28.02,33.98 28.04,33.99 28.04,33.99c " + android:valueTo="M25.92 36.4 C25.92,36.4 25.92,31.89 25.92,31.89 C25.92,31.89 30.09,31.89 30.09,31.89 C30.09,31.89 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_N_3_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleX" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleY" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="167" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="167" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="167" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueTo="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.3,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="250" + android:propertyName="pathData" + android:startOffset="167" + android:valueFrom="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueTo="M25.92 28.4 C25.92,28.4 25.92,18.4 25.92,18.4 C25.92,18.4 30.09,18.4 30.09,18.4 C30.09,18.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.3,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_T_1"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="100" + android:pathData="M 0,0C 0,1.553 0,9.32 0,9.32" + android:propertyName="translateXY" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:startOffset="0"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="317" + android:pathData="M 0,9.32C 0,9.32 0,1.553 0,0" + android:propertyName="translateXY" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:startOffset="100"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.001,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_N_3_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleX" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleY" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="783" + android:propertyName="translateX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <aapt:attr name="android:drawable"> + <vector + android:width="224dp" + android:height="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group + android:name="_R_G_L_3_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0" + android:scaleY="0"> + <path + android:name="_R_G_L_3_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusBackgroundWarn" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_2_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_2_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusInfo" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + <group + android:name="_R_G_L_1_G_N_3_T_0" + android:scaleX="4" + android:scaleY="4" + android:translateX="112" + android:translateY="112"> + <group + android:name="_R_G_L_1_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" + android:fillType="nonZero" + android:pathData=" M28.04 33.99 C28.04,33.99 28,33.98 28,33.98 C28,33.98 28.01,33.97 28.01,33.97 C28.01,33.97 28.02,33.98 28.02,33.98 C28.02,33.98 28.04,33.99 28.04,33.99c " /> + </group> + </group> + <group + android:name="_R_G_L_0_G_N_3_T_0" + android:scaleX="4" + android:scaleY="4" + android:translateX="112" + android:translateY="112"> + <group + android:name="_R_G_L_0_G_T_1" + android:translateX="0" + android:translateY="0"> + <group + android:name="_R_G_L_0_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillAlpha="0" + android:fillColor="?attr/colorScShieldAccent" + android:fillType="nonZero" + android:pathData=" M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " /> + </group> + </group> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/status_scanning_end_anim_recommend_to_info.xml b/PermissionController/res/drawable-v34/status_scanning_end_anim_recommend_to_info.xml new file mode 100644 index 000000000..859c51995 --- /dev/null +++ b/PermissionController/res/drawable-v34/status_scanning_end_anim_recommend_to_info.xml @@ -0,0 +1,293 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <target android:name="_R_G_L_2_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="250" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="250" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="517" + android:propertyName="scaleX" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="517" + android:propertyName="scaleY" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="fillColor" + android:startOffset="0" + android:valueFrom="?attr/colorScStatusRecommend" + android:valueTo="?attr/colorScStatusRecommend" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="fillColor" + android:startOffset="150" + android:valueFrom="?attr/colorScStatusRecommend" + android:valueTo="?attr/colorScStatusInfo" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="50" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M22.2 25.82 C22.2,25.82 19.84,28.17 19.84,28.17 C19.84,28.17 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 22.15,25.8 22.15,25.8 C22.15,25.8 22.22,25.82 22.22,25.82 C22.22,25.82 22.2,25.82 22.2,25.82c " + android:valueTo="M27.89 31.53 C27.89,31.53 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 25.54,29.17 25.54,29.17 C25.54,29.17 27.89,31.53 27.89,31.53c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="pathData" + android:startOffset="50" + android:valueFrom="M27.89 31.53 C27.89,31.53 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 25.54,29.17 25.54,29.17 C25.54,29.17 27.89,31.53 27.89,31.53c " + android:valueTo="M36.17 23.26 C36.17,23.26 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 33.83,20.89 33.83,20.89 C33.83,20.89 36.17,23.26 36.17,23.26c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.29,0 0.739,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="767" + android:propertyName="translateX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <aapt:attr name="android:drawable"> + <vector + android:width="224dp" + android:height="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group + android:name="_R_G_L_2_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0" + android:scaleY="0"> + <path + android:name="_R_G_L_2_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusBackgroundInfo" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_1_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusRecommend" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + <group + android:name="_R_G_L_0_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillAlpha="0" + android:fillColor="?attr/colorScShieldAccent" + android:fillType="nonZero" + android:pathData=" M22.2 25.82 C22.2,25.82 19.84,28.17 19.84,28.17 C19.84,28.17 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 22.15,25.8 22.15,25.8 C22.15,25.8 22.22,25.82 22.22,25.82 C22.22,25.82 22.2,25.82 22.2,25.82c " /> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/status_scanning_end_anim_recommend_to_recommend.xml b/PermissionController/res/drawable-v34/status_scanning_end_anim_recommend_to_recommend.xml new file mode 100644 index 000000000..f6a8583c1 --- /dev/null +++ b/PermissionController/res/drawable-v34/status_scanning_end_anim_recommend_to_recommend.xml @@ -0,0 +1,458 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <target android:name="_R_G_L_3_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="250" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="250" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="517" + android:propertyName="scaleX" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="517" + android:propertyName="scaleY" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="317" + android:propertyName="fillColor" + android:startOffset="0" + android:valueFrom="?attr/colorScStatusRecommend" + android:valueTo="?attr/colorScStatusRecommend" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="167" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="167" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="167" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueTo="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.3,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="250" + android:propertyName="pathData" + android:startOffset="167" + android:valueFrom="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueTo="M25.92 28.4 C25.92,28.4 25.92,18.4 25.92,18.4 C25.92,18.4 30.09,18.4 30.09,18.4 C30.09,18.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.3,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_T_1"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="100" + android:pathData="M 0,0C 0,1.553 0,9.32 0,9.32" + android:propertyName="translateXY" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:startOffset="0"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="317" + android:pathData="M 0,9.32C 0,9.32 0,1.553 0,0" + android:propertyName="translateXY" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:startOffset="100"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.001,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_N_6_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleX" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleY" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="283" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M28.04 33.99 C28.04,33.99 28,33.98 28,33.98 C28,33.98 28.01,33.97 28.01,33.97 C28.01,33.97 28.02,33.98 28.02,33.98 C28.02,33.98 28.04,33.99 28.04,33.99c " + android:valueTo="M25.92 36.4 C25.92,36.4 25.92,31.89 25.92,31.89 C25.92,31.89 30.09,31.89 30.09,31.89 C30.09,31.89 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_N_3_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleX" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleY" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="767" + android:propertyName="translateX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <aapt:attr name="android:drawable"> + <vector + android:width="224dp" + android:height="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group + android:name="_R_G_L_3_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0" + android:scaleY="0"> + <path + android:name="_R_G_L_3_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusBackgroundRecommend" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_2_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_2_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusRecommend" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + <group + android:name="_R_G_L_1_G_N_6_T_0" + android:scaleX="4" + android:scaleY="4" + android:translateX="112" + android:translateY="112"> + <group + android:name="_R_G_L_1_G_T_1" + android:translateX="0" + android:translateY="0"> + <group + android:name="_R_G_L_1_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillAlpha="0" + android:fillColor="@color/sc_shield_accent_fixed_variant" + android:fillType="nonZero" + android:pathData=" M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " /> + </group> + </group> + </group> + <group + android:name="_R_G_L_0_G_N_3_T_0" + android:scaleX="4" + android:scaleY="4" + android:translateX="112" + android:translateY="112"> + <group + android:name="_R_G_L_0_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="@color/sc_shield_accent_fixed_variant" + android:fillType="nonZero" + android:pathData=" M28.04 33.99 C28.04,33.99 28,33.98 28,33.98 C28,33.98 28.01,33.97 28.01,33.97 C28.01,33.97 28.02,33.98 28.02,33.98 C28.02,33.98 28.04,33.99 28.04,33.99c " /> + </group> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/status_scanning_end_anim_recommend_to_warn.xml b/PermissionController/res/drawable-v34/status_scanning_end_anim_recommend_to_warn.xml new file mode 100644 index 000000000..59ef6b3c9 --- /dev/null +++ b/PermissionController/res/drawable-v34/status_scanning_end_anim_recommend_to_warn.xml @@ -0,0 +1,532 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <aapt:attr name="android:drawable"> + <vector + android:height="224dp" + android:width="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group + android:name="_R_G_L_4_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0" + android:scaleY="0"> + <path + android:name="_R_G_L_4_G_D_0_P_0" + android:fillColor="?attr/colorScStatusBackgroundWarn" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_3_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0" + android:scaleY="0"> + <path + android:name="_R_G_L_3_G_D_0_P_0" + android:fillColor="?attr/colorScStatusBackgroundWarn" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_2_G" + android:translateX="84" + android:translateY="84" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4"> + <path + android:name="_R_G_L_2_G_D_0_P_0" + android:fillColor="?attr/colorScStatusRecommend" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + <group + android:name="_R_G_L_1_G_N_3_T_0" + android:translateX="112" + android:translateY="112" + android:scaleX="4" + android:scaleY="4"> + <group + android:name="_R_G_L_1_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillColor="?attr/colorScShieldAccent" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M28.04 33.99 C28.04,33.99 28,33.98 28,33.98 C28,33.98 28.01,33.97 28.01,33.97 C28.01,33.97 28.02,33.98 28.02,33.98 C28.02,33.98 28.04,33.99 28.04,33.99c " /> + </group> + </group> + <group + android:name="_R_G_L_0_G_N_3_T_0" + android:translateX="112" + android:translateY="112" + android:scaleX="4" + android:scaleY="4"> + <group + android:name="_R_G_L_0_G_T_1" + android:translateX="0" + android:translateY="0"> + <group + android:name="_R_G_L_0_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillColor="?attr/colorScShieldAccent" + android:fillAlpha="0" + android:fillType="nonZero" + android:pathData=" M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " /> + </group> + </group> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> + <target android:name="_R_G_L_4_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="250" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="250" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="517" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="517" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_3_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="250" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="250" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="517" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="517" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="fillColor" + android:duration="150" + android:startOffset="0" + android:valueFrom="?attr/colorScStatusRecommend" + android:valueTo="?attr/colorScStatusRecommend" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="fillColor" + android:duration="167" + android:startOffset="150" + android:valueFrom="?attr/colorScStatusRecommend" + android:valueTo="?attr/colorScStatusWarn" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="pathData" + android:duration="283" + android:startOffset="0" + android:valueFrom="M28.04 33.99 C28.04,33.99 28,33.98 28,33.98 C28,33.98 28.01,33.97 28.01,33.97 C28.01,33.97 28.02,33.98 28.02,33.98 C28.02,33.98 28.04,33.99 28.04,33.99c " + android:valueTo="M25.92 36.4 C25.92,36.4 25.92,31.89 25.92,31.89 C25.92,31.89 30.09,31.89 30.09,31.89 C30.09,31.89 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_N_3_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="167" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="167" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="fillAlpha" + android:duration="167" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="fillAlpha" + android:duration="17" + android:startOffset="167" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="pathData" + android:duration="167" + android:startOffset="0" + android:valueFrom="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueTo="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.3,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="pathData" + android:duration="250" + android:startOffset="167" + android:valueFrom="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueTo="M25.92 28.4 C25.92,28.4 25.92,18.4 25.92,18.4 C25.92,18.4 30.09,18.4 30.09,18.4 C30.09,18.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.3,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_T_1"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="translateXY" + android:duration="100" + android:startOffset="0" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:pathData="M 0,0C 0,1.553 0,9.32 0,9.32"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="translateXY" + android:duration="317" + android:startOffset="100" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:pathData="M 0,9.32C 0,9.32 0,1.553 0,0"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.001,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_N_3_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="167" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="167" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="translateX" + android:duration="783" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/status_scanning_end_anim_warn_to_info.xml b/PermissionController/res/drawable-v34/status_scanning_end_anim_warn_to_info.xml new file mode 100644 index 000000000..07a38ea51 --- /dev/null +++ b/PermissionController/res/drawable-v34/status_scanning_end_anim_warn_to_info.xml @@ -0,0 +1,293 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <aapt:attr name="android:drawable"> + <vector + android:height="224dp" + android:width="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group + android:name="_R_G_L_2_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0" + android:scaleY="0"> + <path + android:name="_R_G_L_2_G_D_0_P_0" + android:fillColor="?attr/colorScStatusBackgroundInfo" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_1_G" + android:translateX="84" + android:translateY="84" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillColor="?attr/colorScStatusWarn" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + <group + android:name="_R_G_L_0_G" + android:translateX="84" + android:translateY="84" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillColor="?attr/colorScShieldAccent" + android:fillAlpha="0" + android:fillType="nonZero" + android:pathData=" M22.2 25.82 C22.2,25.82 19.84,28.17 19.84,28.17 C19.84,28.17 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 22.15,25.8 22.15,25.8 C22.15,25.8 22.22,25.82 22.22,25.82 C22.22,25.82 22.2,25.82 22.2,25.82c " /> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> + <target android:name="_R_G_L_2_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="250" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="250" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="517" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="517" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="fillColor" + android:duration="150" + android:startOffset="0" + android:valueFrom="?attr/colorScStatusWarn" + android:valueTo="?attr/colorScStatusWarn" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="fillColor" + android:duration="167" + android:startOffset="150" + android:valueFrom="?attr/colorScStatusWarn" + android:valueTo="?attr/colorScStatusInfo" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="fillAlpha" + android:duration="17" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="pathData" + android:duration="50" + android:startOffset="0" + android:valueFrom="M22.2 25.82 C22.2,25.82 19.84,28.17 19.84,28.17 C19.84,28.17 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 22.15,25.8 22.15,25.8 C22.15,25.8 22.22,25.82 22.22,25.82 C22.22,25.82 22.2,25.82 22.2,25.82c " + android:valueTo="M27.89 31.53 C27.89,31.53 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 25.54,29.17 25.54,29.17 C25.54,29.17 27.89,31.53 27.89,31.53c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="pathData" + android:duration="167" + android:startOffset="50" + android:valueFrom="M27.89 31.53 C27.89,31.53 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 25.54,29.17 25.54,29.17 C25.54,29.17 27.89,31.53 27.89,31.53c " + android:valueTo="M36.17 23.26 C36.17,23.26 25.5,33.81 25.5,33.81 C25.5,33.81 19.83,28.2 19.83,28.2 C19.83,28.2 22.17,25.83 22.17,25.83 C22.17,25.83 25.5,29.13 25.5,29.13 C25.5,29.13 33.83,20.89 33.83,20.89 C33.83,20.89 36.17,23.26 36.17,23.26c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.29,0 0.739,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="translateX" + android:duration="767" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/status_scanning_end_anim_warn_to_recommend.xml b/PermissionController/res/drawable-v34/status_scanning_end_anim_warn_to_recommend.xml new file mode 100644 index 000000000..3f06af41e --- /dev/null +++ b/PermissionController/res/drawable-v34/status_scanning_end_anim_warn_to_recommend.xml @@ -0,0 +1,469 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <aapt:attr name="android:drawable"> + <vector + android:height="224dp" + android:width="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group + android:name="_R_G_L_3_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0" + android:scaleY="0"> + <path + android:name="_R_G_L_3_G_D_0_P_0" + android:fillColor="?attr/colorScStatusBackgroundRecommend" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_2_G" + android:translateX="84" + android:translateY="84" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4"> + <path + android:name="_R_G_L_2_G_D_0_P_0" + android:fillColor="?attr/colorScStatusWarn" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + <group + android:name="_R_G_L_1_G_N_3_T_0" + android:translateX="112" + android:translateY="112" + android:scaleX="4" + android:scaleY="4"> + <group + android:name="_R_G_L_1_G_T_1" + android:translateX="0" + android:translateY="0"> + <group + android:name="_R_G_L_1_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillColor="@color/sc_shield_accent_fixed_variant" + android:fillAlpha="0" + android:fillType="nonZero" + android:pathData=" M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " /> + </group> + </group> + </group> + <group + android:name="_R_G_L_0_G_N_3_T_0" + android:translateX="112" + android:translateY="112" + android:scaleX="4" + android:scaleY="4"> + <group + android:name="_R_G_L_0_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillColor="@color/sc_shield_accent_fixed_variant" + android:fillAlpha="1" + android:fillType="nonZero" + android:pathData=" M28.04 33.99 C28.04,33.99 28,33.98 28,33.98 C28,33.98 28.01,33.97 28.01,33.97 C28.01,33.97 28.02,33.98 28.02,33.98 C28.02,33.98 28.04,33.99 28.04,33.99c " /> + </group> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> + <target android:name="_R_G_L_3_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="250" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="250" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="517" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="517" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="fillColor" + android:duration="150" + android:startOffset="0" + android:valueFrom="?attr/colorScStatusWarn" + android:valueTo="?attr/colorScStatusWarn" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="fillColor" + android:duration="167" + android:startOffset="150" + android:valueFrom="?attr/colorScStatusWarn" + android:valueTo="?attr/colorScStatusRecommend" + android:valueType="colorType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="fillAlpha" + android:duration="167" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="fillAlpha" + android:duration="17" + android:startOffset="167" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="pathData" + android:duration="167" + android:startOffset="0" + android:valueFrom="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueTo="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.3,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="pathData" + android:duration="250" + android:startOffset="167" + android:valueFrom="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueTo="M25.92 28.4 C25.92,28.4 25.92,18.4 25.92,18.4 C25.92,18.4 30.09,18.4 30.09,18.4 C30.09,18.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.3,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_T_1"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="translateXY" + android:duration="100" + android:startOffset="0" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:pathData="M 0,0C 0,1.553 0,9.32 0,9.32"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="translateXY" + android:duration="317" + android:startOffset="100" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:pathData="M 0,9.32C 0,9.32 0,1.553 0,0"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.001,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_N_3_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="167" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="167" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="pathData" + android:duration="283" + android:startOffset="0" + android:valueFrom="M28.04 33.99 C28.04,33.99 28,33.98 28,33.98 C28,33.98 28.01,33.97 28.01,33.97 C28.01,33.97 28.02,33.98 28.02,33.98 C28.02,33.98 28.04,33.99 28.04,33.99c " + android:valueTo="M25.92 36.4 C25.92,36.4 25.92,31.89 25.92,31.89 C25.92,31.89 30.09,31.89 30.09,31.89 C30.09,31.89 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_N_3_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="scaleX" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="150" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="450" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleX" + android:duration="167" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:propertyName="scaleY" + android:duration="167" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:propertyName="translateX" + android:duration="783" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/status_scanning_end_anim_warn_to_warn.xml b/PermissionController/res/drawable-v34/status_scanning_end_anim_warn_to_warn.xml new file mode 100644 index 000000000..452e7f051 --- /dev/null +++ b/PermissionController/res/drawable-v34/status_scanning_end_anim_warn_to_warn.xml @@ -0,0 +1,441 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <target android:name="_R_G_L_3_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="250" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="250" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="517" + android:propertyName="scaleX" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="517" + android:propertyName="scaleY" + android:startOffset="250" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.049,0.562 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_2_G"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.01,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="283" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M28.04 33.99 C28.04,33.99 28,33.98 28,33.98 C28,33.98 28.01,33.97 28.01,33.97 C28.01,33.97 28.02,33.98 28.02,33.98 C28.02,33.98 28.04,33.99 28.04,33.99c " + android:valueTo="M25.92 36.4 C25.92,36.4 25.92,31.89 25.92,31.89 C25.92,31.89 30.09,31.89 30.09,31.89 C30.09,31.89 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_N_3_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleX" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleY" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="167" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="167" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="167" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueTo="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.3,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="250" + android:propertyName="pathData" + android:startOffset="167" + android:valueFrom="M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueTo="M25.92 28.4 C25.92,28.4 25.92,18.4 25.92,18.4 C25.92,18.4 30.09,18.4 30.09,18.4 C30.09,18.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.3,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_T_1"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="100" + android:pathData="M 0,0C 0,1.553 0,9.32 0,9.32" + android:propertyName="translateXY" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:startOffset="0"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="317" + android:pathData="M 0,9.32C 0,9.32 0,1.553 0,0" + android:propertyName="translateXY" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:startOffset="100"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.001,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_N_3_T_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="scaleX" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="150" + android:propertyName="scaleY" + android:startOffset="0" + android:valueFrom="4" + android:valueTo="3.6" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.8,0 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleX" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="450" + android:propertyName="scaleY" + android:startOffset="150" + android:valueFrom="3.6" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleX" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="167" + android:propertyName="scaleY" + android:startOffset="600" + android:valueFrom="4" + android:valueTo="4" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0 0.833,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="783" + android:propertyName="translateX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <aapt:attr name="android:drawable"> + <vector + android:width="224dp" + android:height="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group + android:name="_R_G_L_3_G" + android:pivotX="112" + android:pivotY="112" + android:scaleX="0" + android:scaleY="0"> + <path + android:name="_R_G_L_3_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusBackgroundWarn" + android:fillType="nonZero" + android:pathData=" M112 0 C112,0 112,0 112,0 C173.86,0 224,50.14 224,112 C224,112 224,112 224,112 C224,173.86 173.86,224 112,224 C112,224 112,224 112,224 C50.14,224 0,173.86 0,112 C0,112 0,112 0,112 C0,50.14 50.14,0 112,0c " /> + </group> + <group + android:name="_R_G_L_2_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_2_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusWarn" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + <group + android:name="_R_G_L_1_G_N_3_T_0" + android:scaleX="4" + android:scaleY="4" + android:translateX="112" + android:translateY="112"> + <group + android:name="_R_G_L_1_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" + android:fillType="nonZero" + android:pathData=" M28.04 33.99 C28.04,33.99 28,33.98 28,33.98 C28,33.98 28.01,33.97 28.01,33.97 C28.01,33.97 28.02,33.98 28.02,33.98 C28.02,33.98 28.04,33.99 28.04,33.99c " /> + </group> + </group> + <group + android:name="_R_G_L_0_G_N_3_T_0" + android:scaleX="4" + android:scaleY="4" + android:translateX="112" + android:translateY="112"> + <group + android:name="_R_G_L_0_G_T_1" + android:translateX="0" + android:translateY="0"> + <group + android:name="_R_G_L_0_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillAlpha="0" + android:fillColor="?attr/colorScShieldAccent" + android:fillType="nonZero" + android:pathData=" M25.92 28.4 C25.92,28.4 25.92,28.4 25.92,28.4 C25.92,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " /> + </group> + </group> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/drawable-v34/status_warn_to_scanning_anim.xml b/PermissionController/res/drawable-v34/status_warn_to_scanning_anim.xml new file mode 100644 index 000000000..e45618632 --- /dev/null +++ b/PermissionController/res/drawable-v34/status_warn_to_scanning_anim.xml @@ -0,0 +1,225 @@ +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <target android:name="_R_G_L_3_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="333" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="333" + android:valueFrom="0" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="150" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="150" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="167" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M25.92 28.4 C25.92,28.4 25.92,18.4 25.92,18.4 C25.92,18.4 30.09,18.4 30.09,18.4 C30.09,18.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueTo="M25.92 28.4 C25.92,28.4 25.89,28.4 25.89,28.4 C25.89,28.4 30.06,28.4 30.06,28.4 C30.06,28.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.18,0 0.043,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_1_G_T_1"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="117" + android:pathData="M 112,112C 112,117.19200000000001 112,137.958 112,143.15" + android:propertyName="translateXY" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:startOffset="0"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="133" + android:propertyName="fillAlpha" + android:startOffset="0" + android:valueFrom="1" + android:valueTo="1" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + <objectAnimator + android:duration="17" + android:propertyName="fillAlpha" + android:startOffset="133" + android:valueFrom="1" + android:valueTo="0" + android:valueType="floatType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="_R_G_L_0_G_D_0_P_0"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="133" + android:propertyName="pathData" + android:startOffset="0" + android:valueFrom="M25.92 36.4 C25.92,36.4 25.92,31.89 25.92,31.89 C25.92,31.89 30.09,31.89 30.09,31.89 C30.09,31.89 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " + android:valueTo="M25.92 36.4 C25.92,36.4 25.94,36.39 25.94,36.39 C25.94,36.39 30.11,36.39 30.11,36.39 C30.11,36.39 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " + android:valueType="pathType"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.989,0 0.789,1 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </set> + </aapt:attr> + </target> + <target android:name="time_group"> + <aapt:attr name="android:animation"> + <set android:ordering="together"> + <objectAnimator + android:duration="350" + android:propertyName="translateX" + android:startOffset="0" + android:valueFrom="0" + android:valueTo="1" + android:valueType="floatType" /> + </set> + </aapt:attr> + </target> + <aapt:attr name="android:drawable"> + <vector + android:width="224dp" + android:height="224dp" + android:viewportHeight="224" + android:viewportWidth="224"> + <group android:name="_R_G"> + <group + android:name="_R_G_L_3_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_3_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusBackgroundWarn" + android:fillType="nonZero" + android:pathData=" M28 0 C28,0 28,0 28,0 C43.46,0 56,12.54 56,28 C56,28 56,28 56,28 C56,43.46 43.46,56 28,56 C28,56 28,56 28,56 C12.54,56 0,43.46 0,28 C0,28 0,28 0,28 C0,12.54 12.54,0 28,0c " /> + </group> + <group + android:name="_R_G_L_2_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_2_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScStatusWarn" + android:fillType="nonZero" + android:pathData=" M14.5 25.14 C14.53,26.4 14.62,27.66 14.79,28.91 C15.59,34.32 18.62,40.45 26.93,44.74 C27.26,44.91 27.63,45 28,45 C28.37,45 28.74,44.91 29.07,44.74 C37.38,40.45 40.41,34.32 41.21,28.91 C41.38,27.66 41.48,26.4 41.5,25.14 C41.5,25.14 41.5,17.67 41.5,17.67 C41.5,17.1 41.33,16.54 41,16.07 C40.67,15.61 40.21,15.25 39.67,15.06 C39.67,15.06 28.95,11.17 28.95,11.17 C28.34,10.94 27.67,10.94 27.05,11.17 C27.05,11.17 16.33,15.06 16.33,15.06 C15.79,15.25 15.33,15.61 15,16.07 C14.68,16.54 14.5,17.1 14.5,17.67 C14.5,17.67 14.5,25.14 14.5,25.14c " /> + </group> + <group + android:name="_R_G_L_1_G_T_1" + android:scaleX="4" + android:scaleY="4" + android:translateX="112" + android:translateY="112"> + <group + android:name="_R_G_L_1_G" + android:translateX="-28" + android:translateY="-28"> + <path + android:name="_R_G_L_1_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" + android:fillType="nonZero" + android:pathData=" M25.92 28.4 C25.92,28.4 25.92,18.4 25.92,18.4 C25.92,18.4 30.09,18.4 30.09,18.4 C30.09,18.4 30.09,28.4 30.09,28.4 C30.09,28.4 25.92,28.4 25.92,28.4c " /> + </group> + </group> + <group + android:name="_R_G_L_0_G" + android:pivotX="28" + android:pivotY="28" + android:scaleX="4" + android:scaleY="4" + android:translateX="84" + android:translateY="84"> + <path + android:name="_R_G_L_0_G_D_0_P_0" + android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" + android:fillType="nonZero" + android:pathData=" M25.92 36.4 C25.92,36.4 25.92,31.89 25.92,31.89 C25.92,31.89 30.09,31.89 30.09,31.89 C30.09,31.89 30.09,36.4 30.09,36.4 C30.09,36.4 25.92,36.4 25.92,36.4c " /> + </group> + </group> + <group android:name="time_group" /> + </vector> + </aapt:attr> +</animated-vector>
\ No newline at end of file diff --git a/PermissionController/res/values-night-v33/themes.xml b/PermissionController/res/values-night-v33/themes.xml index 315788465..7a82145c6 100644 --- a/PermissionController/res/values-night-v33/themes.xml +++ b/PermissionController/res/values-night-v33/themes.xml @@ -16,38 +16,8 @@ --> <resources> - <style name="Theme.SafetyCenterQs" parent="@android:style/Theme.DeviceDefault.NoActionBar"> - <item name="android:filterTouchesWhenObscured">true</item> - <!-- Safety Center Quick Settings uses dark mode resources --> - <item name="colorSurface">@color/sc_surface_dark</item> - <item name="colorSurfaceVariant">@color/sc_surface_variant_dark</item> - <item name="colorAccentPrimary">@color/sc_accent_primary_dark</item> - - <item name="colorScStatusInfo">@color/gm_green_500</item> - <item name="colorScStatusRecommend">@color/gm_yellow_500</item> - <item name="colorScStatusWarn">@color/gm_red_500</item> - - <item name="colorScStatusBackgroundInfo">?attr/colorSurfaceVariant</item> - <item name="colorScStatusBackgroundRecommend">?attr/colorSurfaceVariant</item> - <item name="colorScStatusBackgroundWarn">?attr/colorSurfaceVariant</item> - - <item name="textColorScActionButton">@android:color/black</item> - <item name="textColorScSecondaryActionButton">?android:attr/textColorPrimary</item> - - <item name="colorScIconInfo">@color/gm_green_500</item> - <item name="colorScIconRecommend">@color/gm_yellow_500</item> - <item name="colorScIconWarn">@color/gm_red_500</item> - <item name="colorScIconNull">@color/gm_grey_600</item> - - <!-- Buttons --> - <item name="scActionButtonStyle">@style/SafetyCenterActionButton</item> - <item name="scSecondaryActionButtonStyle">@style/SafetyCenterActionButton.Secondary</item> - - <item name="colorScShieldAccent">@color/sc_shield_accent</item> - </style> - - <style name="Theme.SafetyCenter" parent="Theme.PermissionController.Settings.FilterTouches"> + <style name="Theme.SafetyCenterBase" parent="Theme.PermissionController.Settings.FilterTouches"> <item name="colorSurface">@color/sc_surface_dark</item> <item name="colorSurfaceVariant">@color/sc_surface_variant_dark</item> <item name="colorAccentPrimary">@color/sc_accent_primary_dark</item> diff --git a/PermissionController/res/values-night-v34/themes.xml b/PermissionController/res/values-night-v34/themes.xml index 4d387b43d..b6328d782 100644 --- a/PermissionController/res/values-night-v34/themes.xml +++ b/PermissionController/res/values-night-v34/themes.xml @@ -20,4 +20,8 @@ parent="@android:style/Theme.DeviceDefault.Dialog"> <item name="android:colorBackground">@color/google_grey_800</item> </style> + + <style name="Theme.SafetyCenter" parent="Theme.SafetyCenterBase"> + <item name="colorScShieldAccent">@color/sc_shield_accent_dark</item> + </style> </resources>
\ No newline at end of file diff --git a/PermissionController/res/values-v33/colors.xml b/PermissionController/res/values-v33/colors.xml index 79367eac2..ae20045f6 100644 --- a/PermissionController/res/values-v33/colors.xml +++ b/PermissionController/res/values-v33/colors.xml @@ -54,4 +54,4 @@ <color name="safety_center_recommend">@color/gm_yellow_500</color> <color name="safety_center_warn">@color/gm_red_500</color> -</resources>
\ No newline at end of file +</resources> diff --git a/PermissionController/res/values-v33/themes.xml b/PermissionController/res/values-v33/themes.xml index eae3bdd54..4cd9e81e2 100644 --- a/PermissionController/res/values-v33/themes.xml +++ b/PermissionController/res/values-v33/themes.xml @@ -16,7 +16,7 @@ --> <resources> - <style name="Theme.SafetyCenterQs" parent="@android:style/Theme.DeviceDefault.NoActionBar"> + <style name="Theme.SafetyCenterQsBase" parent="@android:style/Theme.DeviceDefault.NoActionBar"> <item name="android:filterTouchesWhenObscured">true</item> <!-- Safety Center Quick Settings uses dark mode resources --> @@ -48,7 +48,9 @@ <item name="colorScShieldAccent">@color/sc_shield_accent</item> </style> - <style name="Theme.SafetyCenter" parent="Theme.PermissionController.Settings.FilterTouches"> + <style name="Theme.SafetyCenterQs" parent="Theme.SafetyCenterQsBase" /> + + <style name="Theme.SafetyCenterBase" parent="Theme.PermissionController.Settings.FilterTouches"> <item name="colorSurface">@color/sc_surface_light</item> <item name="colorSurfaceVariant">@color/sc_surface_variant_light</item> <item name="colorAccentPrimary">@color/sc_accent_primary_light</item> @@ -75,4 +77,6 @@ <item name="colorScShieldAccent">@color/sc_shield_accent</item> </style> + + <style name="Theme.SafetyCenter" parent="Theme.SafetyCenterBase" /> </resources>
\ No newline at end of file diff --git a/PermissionController/res/values-v34/colors.xml b/PermissionController/res/values-v34/colors.xml index 351d73f2a..8f7603ce0 100644 --- a/PermissionController/res/values-v34/colors.xml +++ b/PermissionController/res/values-v34/colors.xml @@ -29,4 +29,8 @@ <color name="sc_accent_primary_dark">@android:color/system_primary_dark</color> <color name="sc_qs_background_color">@android:color/system_surface_container_dark</color> + + <color name="sc_shield_accent_dark">@color/gm_grey_900</color> + <color name="sc_shield_accent_fixed_variant">@color/sc_shield_accent_dark</color> + <color name="gm_grey_900">#202124</color> </resources> diff --git a/PermissionController/res/values-v34/themes.xml b/PermissionController/res/values-v34/themes.xml index 6b813a28e..9ada38ed3 100644 --- a/PermissionController/res/values-v34/themes.xml +++ b/PermissionController/res/values-v34/themes.xml @@ -19,4 +19,12 @@ <style name="Theme.PermissionRationaleDialog" parent="@android:style/Theme.DeviceDefault.Light.Dialog"> </style> + + <style name="Theme.SafetyCenter" parent="Theme.SafetyCenterBase"> + <item name="colorScShieldAccent">@color/sc_shield_accent</item> + </style> + + <style name="Theme.SafetyCenterQs" parent="Theme.SafetyCenterQsBase"> + <item name="colorScShieldAccent">@color/sc_shield_accent_dark</item> + </style> </resources>
\ No newline at end of file diff --git a/PermissionController/res/values/overlayable.xml b/PermissionController/res/values/overlayable.xml index bf145883c..79b7b92a6 100644 --- a/PermissionController/res/values/overlayable.xml +++ b/PermissionController/res/values/overlayable.xml @@ -414,6 +414,8 @@ <item type="color" name="sc_accent_primary_light" /> <item type="color" name="sc_accent_primary_dark" /> <item type="color" name="sc_shield_accent" /> + <item type="color" name="sc_shield_accent_dark" /> + <item type="color" name="sc_shield_accent_fixed_variant" /> <item type="color" name="safety_center_info" /> <item type="color" name="safety_center_recommend" /> <item type="color" name="safety_center_warn" /> diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionFragment.java index 946484626..cab0de15e 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionFragment.java +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionFragment.java @@ -196,9 +196,6 @@ public class AppPermissionFragment extends SettingsWithLargeHeader getActivity().getApplication(), mPackageName, mPermGroupName, mUser, mSessionId); mViewModel = new ViewModelProvider(this, factory).get(AppPermissionViewModel.class); Handler delayHandler = new Handler(Looper.getMainLooper()); - mViewModel.getShowPermissionRationaleLiveData().observe(this, show -> { - showPermissionRationaleDialog(Optional.ofNullable(show).orElse(false)); - }); mViewModel.getButtonStateLiveData().observe(this, buttonState -> { if (mIsInitialLoad) { setRadioButtonsState(buttonState); @@ -295,6 +292,9 @@ public class AppPermissionFragment extends SettingsWithLargeHeader root.requireViewById(R.id.app_permission_rationale_container); mAppPermissionRationaleContent = root.requireViewById(R.id.app_permission_rationale_content); + mViewModel.getShowPermissionRationaleLiveData().observe(this, show -> { + showPermissionRationaleDialog(Optional.ofNullable(show).orElse(false)); + }); getActivity().setTitle( getPreferenceManager().getContext().getString(R.string.app_permission_title, diff --git a/PermissionController/src/com/android/permissioncontroller/safetylabel/AppsSafetyLabelHistoryPersistence.kt b/PermissionController/src/com/android/permissioncontroller/safetylabel/AppsSafetyLabelHistoryPersistence.kt index 24fb90cbb..9bb7e819f 100644 --- a/PermissionController/src/com/android/permissioncontroller/safetylabel/AppsSafetyLabelHistoryPersistence.kt +++ b/PermissionController/src/com/android/permissioncontroller/safetylabel/AppsSafetyLabelHistoryPersistence.kt @@ -67,12 +67,12 @@ object AppsSafetyLabelHistoryPersistence { /** Adds a listener to listen for changes to persisted safety labels. */ fun addListener(listener: ChangeListener) { - listeners.add(listener) + synchronized(readWriteLock) { listeners.add(listener) } } /** Removes a listener from listening for changes to persisted safety labels. */ fun removeListener(listener: ChangeListener) { - listeners.remove(listener) + synchronized(readWriteLock) { listeners.remove(listener) } } /** @@ -101,18 +101,20 @@ object AppsSafetyLabelHistoryPersistence { /** Returns the last updated time for each stored [AppSafetyLabelHistory]. */ fun getSafetyLabelsLastUpdatedTimes(file: File): Map<AppInfo, Instant> { - val appHistories = - read(file).appsSafetyLabelHistory?.appSafetyLabelHistories ?: return emptyMap() - - val lastUpdatedTimes = mutableMapOf<AppInfo, Instant>() - for (appHistory in appHistories) { - val lastSafetyLabelReceiptTime: Instant? = appHistory.getLastReceiptTime() - if (lastSafetyLabelReceiptTime != null) { - lastUpdatedTimes[appHistory.appInfo] = lastSafetyLabelReceiptTime + synchronized(readWriteLock) { + val appHistories = + read(file).appsSafetyLabelHistory?.appSafetyLabelHistories ?: return emptyMap() + + val lastUpdatedTimes = mutableMapOf<AppInfo, Instant>() + for (appHistory in appHistories) { + val lastSafetyLabelReceiptTime: Instant? = appHistory.getLastReceiptTime() + if (lastSafetyLabelReceiptTime != null) { + lastUpdatedTimes[appHistory.appInfo] = lastSafetyLabelReceiptTime + } } - } - return lastUpdatedTimes + return lastUpdatedTimes + } } /** @@ -149,6 +151,8 @@ object AppsSafetyLabelHistoryPersistence { * from the last recorded (when considered in order of [SafetyLabel.receivedAt]). */ fun recordSafetyLabels(safetyLabelsToAdd: Set<SafetyLabel>, file: File) { + if (safetyLabelsToAdd.isEmpty()) return + synchronized(readWriteLock) { val currentAppsSafetyLabelHistory = read(file).appsSafetyLabelHistory ?: AppsSafetyLabelHistory(listOf()) @@ -190,6 +194,8 @@ object AppsSafetyLabelHistoryPersistence { /** Deletes stored safety labels for all apps in [appInfosToRemove]. */ fun deleteSafetyLabelsForApps(appInfosToRemove: Set<AppInfo>, file: File) { + if (appInfosToRemove.isEmpty()) return + synchronized(readWriteLock) { val currentAppsSafetyLabelHistory = read(file).appsSafetyLabelHistory ?: AppsSafetyLabelHistory(listOf()) diff --git a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetylabel/AppsSafetyLabelHistoryPersistenceTest.kt b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetylabel/AppsSafetyLabelHistoryPersistenceTest.kt index f853560fd..10221f6fa 100644 --- a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetylabel/AppsSafetyLabelHistoryPersistenceTest.kt +++ b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetylabel/AppsSafetyLabelHistoryPersistenceTest.kt @@ -27,15 +27,26 @@ import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory.AppInfo import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory.AppSafetyLabelDiff import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory.AppSafetyLabelHistory -import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory.DataCategory -import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory.DataLabel -import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory.SafetyLabel import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistoryPersistence import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistoryPersistence.AppsSafetyLabelHistoryFileContent import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistoryPersistence.ChangeListener +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.DATE_2022_10_10 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.DATE_2022_10_12 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.DATE_2022_10_14 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.DATE_2022_12_10 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.DATE_2022_12_30 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.PACKAGE_NAME_1 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.PACKAGE_NAME_2 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.PACKAGE_NAME_3 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.SAFETY_LABEL_PKG_1_V1 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.SAFETY_LABEL_PKG_1_V2 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.SAFETY_LABEL_PKG_1_V3 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.SAFETY_LABEL_PKG_2_V1 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.SAFETY_LABEL_PKG_2_V2 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.SAFETY_LABEL_PKG_2_V3 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.SAFETY_LABEL_PKG_3_V1 import com.google.common.truth.Truth.assertThat import java.io.File -import java.time.ZonedDateTime import org.junit.After import org.junit.Before import org.junit.Test @@ -323,6 +334,23 @@ class AppsSafetyLabelHistoryPersistenceTest { } @Test + fun getAppSafetyLabelDiffs_whenNoSafetyLabelsBeforeStartTime_returnsMoreRecentDiffs() { + val appsSafetyLabelHistory = + AppsSafetyLabelHistory( + listOf( + AppSafetyLabelHistory( + AppInfo(PACKAGE_NAME_2), + listOf(SAFETY_LABEL_PKG_2_V2, SAFETY_LABEL_PKG_2_V3)))) + AppsSafetyLabelHistoryPersistence.write(dataFile, appsSafetyLabelHistory) + + val safetyLabelDiffs: List<AppSafetyLabelDiff> = + AppsSafetyLabelHistoryPersistence.getAppSafetyLabelDiffs(DATE_2022_10_10, dataFile) + + assertThat(safetyLabelDiffs) + .isEqualTo(listOf(AppSafetyLabelDiff(SAFETY_LABEL_PKG_2_V2, SAFETY_LABEL_PKG_2_V3))) + } + + @Test fun getAppSafetyLabelDiffs_returnsAvailableDiffs() { val appsSafetyLabelHistory = AppsSafetyLabelHistory( @@ -347,7 +375,7 @@ class AppsSafetyLabelHistoryPersistenceTest { } @Test - fun givenNoAppsPersisted_getSafetyLabelsLastUpdatedTimes_returnsEmptyMap() { + fun getSafetyLabelsLastUpdatedTimes_noAppsPersisted_returnsEmptyMap() { val lastUpdatedTimes = AppsSafetyLabelHistoryPersistence.getSafetyLabelsLastUpdatedTimes(dataFile) @@ -355,7 +383,7 @@ class AppsSafetyLabelHistoryPersistenceTest { } @Test - fun givenSomeAppsPersisted_getSafetyLabelsLastUpdatedTimes_returnsLastUpdatedTimes() { + fun getSafetyLabelsLastUpdatedTimes_appsPersisted_returnsLastUpdatedTimes() { val appsSafetyLabelHistory = AppsSafetyLabelHistory( listOf( @@ -494,60 +522,6 @@ class AppsSafetyLabelHistoryPersistenceTest { companion object { private const val TEST_FILE_NAME = "test_safety_label_history_file" - private const val PACKAGE_NAME_1 = "package_name_1" - private const val PACKAGE_NAME_2 = "package_name_2" - private const val PACKAGE_NAME_3 = "package_name_3" - private const val LOCATION_CATEGORY = "location" - private const val FINANCIAL_CATEGORY = "financial" - private val DATE_2022_09_01 = ZonedDateTime.parse("2022-09-01T00:00:00.000Z").toInstant() - private val DATE_2022_10_10 = ZonedDateTime.parse("2022-10-10T00:00:00.000Z").toInstant() - private val DATE_2022_10_12 = ZonedDateTime.parse("2022-10-12T00:00:00.000Z").toInstant() - private val DATE_2022_10_14 = ZonedDateTime.parse("2022-10-14T00:00:00.000Z").toInstant() - private val DATE_2022_12_10 = ZonedDateTime.parse("2022-12-10T00:00:00.000Z").toInstant() - private val DATE_2022_12_30 = ZonedDateTime.parse("2022-12-30T00:00:00.000Z").toInstant() - - private val SAFETY_LABEL_PKG_1_V1 = - SafetyLabel( - AppInfo(PACKAGE_NAME_1), - DATE_2022_09_01, - DataLabel(mapOf(LOCATION_CATEGORY to DataCategory(true)))) - - private val SAFETY_LABEL_PKG_1_V2 = - SafetyLabel( - AppInfo(PACKAGE_NAME_1), - DATE_2022_10_14, - DataLabel(mapOf(LOCATION_CATEGORY to DataCategory(false)))) - - private val SAFETY_LABEL_PKG_1_V3 = - SafetyLabel( - AppInfo(PACKAGE_NAME_1), - DATE_2022_12_10, - DataLabel(mapOf(LOCATION_CATEGORY to DataCategory(false)))) - - private val SAFETY_LABEL_PKG_2_V1 = - SafetyLabel( - AppInfo(PACKAGE_NAME_2), - DATE_2022_10_10, - DataLabel( - mapOf( - LOCATION_CATEGORY to DataCategory(true), - FINANCIAL_CATEGORY to DataCategory(false)))) - - private val SAFETY_LABEL_PKG_2_V2 = - SafetyLabel(AppInfo(PACKAGE_NAME_2), DATE_2022_12_10, DataLabel(mapOf())) - - private val SAFETY_LABEL_PKG_2_V3 = - SafetyLabel( - AppInfo(PACKAGE_NAME_2), - DATE_2022_12_30, - DataLabel(mapOf(FINANCIAL_CATEGORY to DataCategory(true)))) - - private val SAFETY_LABEL_PKG_3_V1 = - SafetyLabel( - AppInfo(PACKAGE_NAME_3), - DATE_2022_10_10, - DataLabel(mapOf(LOCATION_CATEGORY to DataCategory(true)))) - private const val PROPERTY_MAX_SAFETY_LABELS_PERSISTED_PER_APP = "max_safety_labels_persisted_per_app" diff --git a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetylabel/AppsSafetyLabelHistoryTest.kt b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetylabel/AppsSafetyLabelHistoryTest.kt index 48891e9c7..dedb0b1cd 100644 --- a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetylabel/AppsSafetyLabelHistoryTest.kt +++ b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetylabel/AppsSafetyLabelHistoryTest.kt @@ -23,16 +23,80 @@ import com.android.permission.safetylabel.SafetyLabel as AppMetadataSafetyLabel import com.android.permission.safetylabel.SafetyLabel.KEY_VERSION import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory.AppInfo +import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory.AppSafetyLabelHistory import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory.DataCategory import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory.DataLabel import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory.SafetyLabel +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.DATE_2022_09_01 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.DATE_2022_10_10 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.LOCATION_CATEGORY +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.PACKAGE_NAME_1 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.PACKAGE_NAME_2 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.SAFETY_LABEL_PKG_1_V1 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.SAFETY_LABEL_PKG_1_V2 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.SAFETY_LABEL_PKG_1_V3 +import com.android.permissioncontroller.tests.mocking.safetylabel.TestSafetyLabels.SAFETY_LABEL_PKG_2_V1 import com.google.common.truth.Truth.assertThat import java.time.ZonedDateTime +import org.junit.Assert import org.junit.Test /** Tests for [AppsSafetyLabelHistory]. */ @SdkSuppress(minSdkVersion = Build.VERSION_CODES.UPSIDE_DOWN_CAKE, codeName = "UpsideDownCake") class AppsSafetyLabelHistoryTest { + + @Test + fun createAppSafetyLabelHistory_requiresAllSafetyLabelsHaveSameApp() { + Assert.assertThrows(IllegalArgumentException::class.java) { + AppSafetyLabelHistory( + AppInfo(PACKAGE_NAME_1), listOf(SAFETY_LABEL_PKG_1_V1, SAFETY_LABEL_PKG_2_V1)) + } + } + + @Test + fun createAppSafetyLabelHistory_requiresOrderedByReceivedAt() { + Assert.assertThrows(IllegalArgumentException::class.java) { + AppSafetyLabelHistory( + AppInfo(PACKAGE_NAME_1), listOf(SAFETY_LABEL_PKG_1_V2, SAFETY_LABEL_PKG_1_V1)) + } + } + + @Test + fun withSafetyLabel_forDifferentApp_throwsIllegalArgumentException() { + val appSafetyLabelHistory = + AppSafetyLabelHistory( + AppInfo(PACKAGE_NAME_1), listOf(SAFETY_LABEL_PKG_1_V1, SAFETY_LABEL_PKG_1_V3)) + + Assert.assertThrows(IllegalArgumentException::class.java) { + appSafetyLabelHistory.withSafetyLabel(SAFETY_LABEL_PKG_2_V1, 20) + } + } + + @Test + fun withSafetyLabel_returnsOrderdSafetyLabels() { + val appSafetyLabelHistory = + AppSafetyLabelHistory( + AppInfo(PACKAGE_NAME_1), listOf(SAFETY_LABEL_PKG_1_V1, SAFETY_LABEL_PKG_1_V3)) + + assertThat(appSafetyLabelHistory.withSafetyLabel(SAFETY_LABEL_PKG_1_V2, 20)) + .isEqualTo( + AppSafetyLabelHistory( + AppInfo(PACKAGE_NAME_1), + listOf(SAFETY_LABEL_PKG_1_V1, SAFETY_LABEL_PKG_1_V2, SAFETY_LABEL_PKG_1_V3))) + } + + @Test + fun withSafetyLabel_dropsOldLabelsWhenMaxPersisted() { + val appSafetyLabelHistory = + AppSafetyLabelHistory( + AppInfo(PACKAGE_NAME_1), listOf(SAFETY_LABEL_PKG_1_V1, SAFETY_LABEL_PKG_1_V3)) + + assertThat(appSafetyLabelHistory.withSafetyLabel(SAFETY_LABEL_PKG_1_V2, 2)) + .isEqualTo( + AppSafetyLabelHistory( + AppInfo(PACKAGE_NAME_1), listOf(SAFETY_LABEL_PKG_1_V2, SAFETY_LABEL_PKG_1_V3))) + } + @Test fun extractLocationSharingSafetyLabel_noSharing_returnsSafetyLabelForPersistence() { val metadataBundle = createMetadataWithDataShared(createDataSharedNoSharing()) diff --git a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetylabel/TestSafetyLabels.kt b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetylabel/TestSafetyLabels.kt new file mode 100644 index 000000000..19c5adddd --- /dev/null +++ b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetylabel/TestSafetyLabels.kt @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.permissioncontroller.tests.mocking.safetylabel + +import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory.AppInfo +import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory.DataCategory +import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory.DataLabel +import com.android.permissioncontroller.safetylabel.AppsSafetyLabelHistory.SafetyLabel +import java.time.Instant +import java.time.ZonedDateTime + +/** Safety labels to be used in tests. */ +object TestSafetyLabels { + const val PACKAGE_NAME_1 = "package_name_1" + const val PACKAGE_NAME_2 = "package_name_2" + const val PACKAGE_NAME_3 = "package_name_3" + const val LOCATION_CATEGORY = "location" + const val FINANCIAL_CATEGORY = "financial" + val DATE_2022_09_01: Instant = ZonedDateTime.parse("2022-09-01T00:00:00.000Z").toInstant() + val DATE_2022_10_10: Instant = ZonedDateTime.parse("2022-10-10T00:00:00.000Z").toInstant() + val DATE_2022_10_12: Instant = ZonedDateTime.parse("2022-10-12T00:00:00.000Z").toInstant() + val DATE_2022_10_14: Instant = ZonedDateTime.parse("2022-10-14T00:00:00.000Z").toInstant() + val DATE_2022_12_10: Instant = ZonedDateTime.parse("2022-12-10T00:00:00.000Z").toInstant() + val DATE_2022_12_30: Instant = ZonedDateTime.parse("2022-12-30T00:00:00.000Z").toInstant() + + /** A Safety label for [PACKAGE_NAME_1]. */ + val SAFETY_LABEL_PKG_1_V1: SafetyLabel = + SafetyLabel( + AppInfo(PACKAGE_NAME_1), + DATE_2022_09_01, + DataLabel(mapOf(LOCATION_CATEGORY to DataCategory(true)))) + + /** A Safety label for [PACKAGE_NAME_1]. */ + val SAFETY_LABEL_PKG_1_V2: SafetyLabel = + SafetyLabel( + AppInfo(PACKAGE_NAME_1), + DATE_2022_10_14, + DataLabel(mapOf(LOCATION_CATEGORY to DataCategory(false)))) + + /** A Safety label for [PACKAGE_NAME_1]. */ + val SAFETY_LABEL_PKG_1_V3: SafetyLabel = + SafetyLabel( + AppInfo(PACKAGE_NAME_1), + DATE_2022_12_10, + DataLabel(mapOf(LOCATION_CATEGORY to DataCategory(false)))) + + /** A Safety label for [PACKAGE_NAME_2]. */ + val SAFETY_LABEL_PKG_2_V1: SafetyLabel = + SafetyLabel( + AppInfo(PACKAGE_NAME_2), + DATE_2022_10_10, + DataLabel( + mapOf( + LOCATION_CATEGORY to DataCategory(true), + FINANCIAL_CATEGORY to DataCategory(false)))) + + /** A Safety label for [PACKAGE_NAME_2]. */ + val SAFETY_LABEL_PKG_2_V2: SafetyLabel = + SafetyLabel(AppInfo(PACKAGE_NAME_2), DATE_2022_12_10, DataLabel(mapOf())) + + /** A Safety label for [PACKAGE_NAME_2]. */ + val SAFETY_LABEL_PKG_2_V3: SafetyLabel = + SafetyLabel( + AppInfo(PACKAGE_NAME_2), + DATE_2022_12_30, + DataLabel(mapOf(FINANCIAL_CATEGORY to DataCategory(true)))) + + /** A Safety label for [PACKAGE_NAME_3]. */ + val SAFETY_LABEL_PKG_3_V1: SafetyLabel = + SafetyLabel( + AppInfo(PACKAGE_NAME_3), + DATE_2022_10_10, + DataLabel(mapOf(LOCATION_CATEGORY to DataCategory(true)))) +} diff --git a/PermissionController/tests/permissionui/src/com/android/permissioncontroller/permissionui/ui/AllAppPermissionsFragmentTest.kt b/PermissionController/tests/permissionui/src/com/android/permissioncontroller/permissionui/ui/AllAppPermissionsFragmentTest.kt index aa9a14a08..d5f574327 100644 --- a/PermissionController/tests/permissionui/src/com/android/permissioncontroller/permissionui/ui/AllAppPermissionsFragmentTest.kt +++ b/PermissionController/tests/permissionui/src/com/android/permissioncontroller/permissionui/ui/AllAppPermissionsFragmentTest.kt @@ -60,6 +60,8 @@ class AllAppPermissionsFragmentTest : BasePermissionUiTest() { private val PERM_LABEL = "Permission B" private val SECOND_PERM_LABEL = "Permission C" + private val TIMEOUT_SHORT = 500L + @Before fun assumeNotTelevision() = assumeFalse(isTelevision) @@ -77,6 +79,7 @@ class AllAppPermissionsFragmentTest : BasePermissionUiTest() { instrumentationContext.startActivity(Intent(Intent.ACTION_MANAGE_APP_PERMISSIONS) .apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK) putExtra(Intent.EXTRA_PACKAGE_NAME, USER_PKG) }) } @@ -109,7 +112,7 @@ class AllAppPermissionsFragmentTest : BasePermissionUiTest() { install(PERMISSION_USER_APK) eventually { - assertNull(waitFindObjectOrNull(By.text(SECOND_PERM_LABEL))) + assertNull(waitFindObjectOrNull(By.text(SECOND_PERM_LABEL), TIMEOUT_SHORT)) } } @@ -117,7 +120,7 @@ class AllAppPermissionsFragmentTest : BasePermissionUiTest() { fun activityIsClosedWhenUserIsUninstalled() { uninstallApp(USER_PKG) eventually { - assertNull(waitFindObjectOrNull(By.text(ALL_PERMISSIONS))) + assertNull(waitFindObjectOrNull(By.text(ALL_PERMISSIONS), TIMEOUT_SHORT)) } } diff --git a/SafetyCenter/Config/tests/java/com/android/safetycenter/config/ParserConfigOverlayTest.kt b/SafetyCenter/Config/tests/java/com/android/safetycenter/config/ParserConfigOverlayTest.kt index 00239ee5b..3c709f041 100644 --- a/SafetyCenter/Config/tests/java/com/android/safetycenter/config/ParserConfigOverlayTest.kt +++ b/SafetyCenter/Config/tests/java/com/android/safetycenter/config/ParserConfigOverlayTest.kt @@ -125,7 +125,8 @@ class ParserConfigOverlayTest { private const val STATE_ENABLED = "STATE_ENABLED" private fun getStateForOverlay(overlayPackage: String): String? { - val result: String = runShellCommand("cmd overlay dump --user 0 state $overlayPackage") + val result: String = + runShellCommand("cmd overlay dump --user 0 state $overlayPackage | head -n 1") if (!result.startsWith("STATE_")) { return null } diff --git a/service/java/com/android/safetycenter/SafetyCenterDataFactory.java b/service/java/com/android/safetycenter/SafetyCenterDataFactory.java index 5b18c4e79..d165d86c3 100644 --- a/service/java/com/android/safetycenter/SafetyCenterDataFactory.java +++ b/service/java/com/android/safetycenter/SafetyCenterDataFactory.java @@ -23,6 +23,7 @@ import static java.util.Collections.emptyList; import android.annotation.Nullable; import android.annotation.UserIdInt; import android.app.PendingIntent; +import android.content.Context; import android.icu.text.ListFormatter; import android.icu.text.MessageFormat; import android.icu.util.ULocale; @@ -49,6 +50,7 @@ import android.util.Log; import androidx.annotation.RequiresApi; import com.android.modules.utils.build.SdkLevel; +import com.android.permission.util.UserUtils; import com.android.safetycenter.data.SafetyCenterDataManager; import com.android.safetycenter.internaldata.SafetyCenterEntryId; import com.android.safetycenter.internaldata.SafetyCenterIds; @@ -81,6 +83,7 @@ public final class SafetyCenterDataFactory { private static final String ANDROID_LOCK_SCREEN_SOURCES_GROUP_ID = "AndroidLockScreenSources"; private static final String ISSUES_TO_GROUPS_BUNDLE_KEY = "IssuesToGroupsKey"; + private final Context mContext; private final SafetyCenterResourcesContext mSafetyCenterResourcesContext; private final SafetyCenterConfigReader mSafetyCenterConfigReader; private final SafetyCenterRefreshTracker mSafetyCenterRefreshTracker; @@ -89,11 +92,13 @@ public final class SafetyCenterDataFactory { private final SafetyCenterDataManager mSafetyCenterDataManager; SafetyCenterDataFactory( + Context context, SafetyCenterResourcesContext safetyCenterResourcesContext, SafetyCenterConfigReader safetyCenterConfigReader, SafetyCenterRefreshTracker safetyCenterRefreshTracker, PendingIntentFactory pendingIntentFactory, SafetyCenterDataManager safetyCenterDataManager) { + mContext = context; mSafetyCenterResourcesContext = safetyCenterResourcesContext; mSafetyCenterConfigReader = safetyCenterConfigReader; mSafetyCenterRefreshTracker = safetyCenterRefreshTracker; @@ -524,7 +529,14 @@ public final class SafetyCenterDataFactory { && TextUtils.isEmpty(groupSummary)) { List<CharSequence> titles = new ArrayList<>(); for (int i = 0; i < entries.size(); i++) { - titles.add(entries.get(i).getTitle()); + SafetyCenterEntry entry = entries.get(i); + SafetyCenterEntryId entryId = SafetyCenterIds.entryIdFromString(entry.getId()); + + if (UserUtils.isManagedProfile(entryId.getUserId(), mContext)) { + continue; + } + + titles.add(entry.getTitle()); } groupSummary = ListFormatter.getInstance( diff --git a/service/java/com/android/safetycenter/SafetyCenterService.java b/service/java/com/android/safetycenter/SafetyCenterService.java index ee54aa081..3c9e2ed2d 100644 --- a/service/java/com/android/safetycenter/SafetyCenterService.java +++ b/service/java/com/android/safetycenter/SafetyCenterService.java @@ -156,6 +156,7 @@ public final class SafetyCenterService extends SystemService { context, mSafetyCenterConfigReader, mSafetyCenterRefreshTracker, mApiLock); mSafetyCenterDataFactory = new SafetyCenterDataFactory( + context, mSafetyCenterResourcesContext, mSafetyCenterConfigReader, mSafetyCenterRefreshTracker, diff --git a/tests/hostside/safetycenter/src/android/safetycenter/hostside/SafetySourceStateCollectedLoggingHostTest.kt b/tests/hostside/safetycenter/src/android/safetycenter/hostside/SafetySourceStateCollectedLoggingHostTest.kt index a0a38c14c..8c00ef35c 100644 --- a/tests/hostside/safetycenter/src/android/safetycenter/hostside/SafetySourceStateCollectedLoggingHostTest.kt +++ b/tests/hostside/safetycenter/src/android/safetycenter/hostside/SafetySourceStateCollectedLoggingHostTest.kt @@ -110,13 +110,17 @@ class SafetySourceStateCollectedLoggingHostTest : BaseHostJUnit4Test() { .filterNot { // Installing/uninstalling the helper app can cause Play Protect to run a scan and // push new data to Safety Center which interferes with the test results so we - // specifically filter the resultant atoms out using the real encoded source ID + // specifically filter the resultant atoms out using the real encoded source ID. + // Similar failures are also observed on Android Test Hub due to the background + // location source (b/278782808) it.encodedSafetySourceId == PLAY_PROTECT_ENCODED_SOURCE_ID + || it.encodedSafetySourceId == BACKGROUND_LOCATION_ENCODED_SOURCE_ID } private companion object { const val TEST_CLASS_NAME = ".SafetySourceStateCollectedLoggingHelperTests" const val PLAY_PROTECT_ENCODED_SOURCE_ID = 7711894340233229936L + const val BACKGROUND_LOCATION_ENCODED_SOURCE_ID = 7355693215512427559L const val SOURCE_1_ENCODED_SOURCE_ID = 6446219357586936066L const val SOURCE_2_ENCODED_SOURCE_ID = -5887429047684886602L const val SOURCE_3_ENCODED_SOURCE_ID = -619470868366498469L diff --git a/tests/utils/safetycenter/java/com/android/safetycenter/testing/SafetyCenterTestListener.kt b/tests/utils/safetycenter/java/com/android/safetycenter/testing/SafetyCenterTestListener.kt index 727305070..d62214843 100644 --- a/tests/utils/safetycenter/java/com/android/safetycenter/testing/SafetyCenterTestListener.kt +++ b/tests/utils/safetycenter/java/com/android/safetycenter/testing/SafetyCenterTestListener.kt @@ -40,6 +40,9 @@ class SafetyCenterTestListener : OnSafetyCenterDataChangedListener { } override fun onError(errorDetails: SafetyCenterErrorDetails) { + // This call to super is needed for code coverage purposes, see b/272351657 for more + // details. The default impl of the interface is a no-op so the call to super is a no-op. + super.onError(errorDetails) runBlockingWithTimeout { errorChannel.send(errorDetails) } } |