diff options
23 files changed, 180 insertions, 84 deletions
diff --git a/PermissionController/res/drawable-v33/safety_status_info_to_info_anim.xml b/PermissionController/res/drawable-v33/safety_status_info_to_info_anim.xml index b41e9c083..31b5982ba 100644 --- a/PermissionController/res/drawable-v33/safety_status_info_to_info_anim.xml +++ b/PermissionController/res/drawable-v33/safety_status_info_to_info_anim.xml @@ -26,10 +26,10 @@ </group> <group android:name="_R_G_L_0_G" android:pivotX="112" android:pivotY="112" android:scaleX="1" android:scaleY="1"> - <path android:name="_R_G_L_0_G_D_0_P_0" android:fillColor="?attr/colorSurface" + <path android:name="_R_G_L_0_G_D_0_P_0" android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M104.53 135.26 C104.53,135.26 80.27,110.06 80.27,110.06 C80.27,110.06 89.6,100.72 89.6,100.72 C89.6,100.72 104.53,114.72 104.53,114.72 C104.53,114.72 134.4,85.79 134.4,85.79 C134.4,85.79 143.73,95.12 143.73,95.12 C143.73,95.12 104.53,135.26 104.53,135.26c "/> - <path android:name="_R_G_L_0_G_D_1_P_0" android:fillColor="?attr/colorSurface" + <path android:name="_R_G_L_0_G_D_1_P_0" android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M104.53 135.26 C104.53,135.26 80.27,110.06 80.27,110.06 C80.27,110.06 89.6,100.72 89.6,100.72 C89.6,100.72 104.53,114.72 104.53,114.72 C104.53,114.72 134.4,85.79 134.4,85.79 C134.4,85.79 143.73,95.12 143.73,95.12 C143.73,95.12 104.53,135.26 104.53,135.26c "/> </group> diff --git a/PermissionController/res/drawable-v33/safety_status_recommend_to_info_anim.xml b/PermissionController/res/drawable-v33/safety_status_recommend_to_info_anim.xml index 39e2f640c..6e63c5097 100644 --- a/PermissionController/res/drawable-v33/safety_status_recommend_to_info_anim.xml +++ b/PermissionController/res/drawable-v33/safety_status_recommend_to_info_anim.xml @@ -30,11 +30,11 @@ android:translateY="-112" android:pivotX="112" android:pivotY="112" android:rotation="-49.449" android:scaleX="0.25" android:scaleY="0.25"> <path android:name="_R_G_L_2_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="0" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="0" android:fillType="nonZero" android:pathData=" M104.53 135.26 C104.53,135.26 80.27,110.06 80.27,110.06 C80.27,110.06 89.6,100.72 89.6,100.72 C89.6,100.72 104.53,114.72 104.53,114.72 C104.53,114.72 105.33,115.27 105.33,115.27 C105.33,115.27 114.67,124.6 114.67,124.6 C114.67,124.6 104.53,135.26 104.53,135.26c "/> <path android:name="_R_G_L_2_G_D_1_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="0" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="0" android:fillType="nonZero" android:pathData=" M104.53 135.26 C104.53,135.26 80.27,110.06 80.27,110.06 C80.27,110.06 89.6,100.72 89.6,100.72 C89.6,100.72 104.53,114.72 104.53,114.72 C104.53,114.72 105.33,115.27 105.33,115.27 C105.33,115.27 114.67,124.6 114.67,124.6 C114.67,124.6 104.53,135.26 104.53,135.26c "/> </group> @@ -51,7 +51,7 @@ <group android:name="_R_G_L_1_G" android:translateX="-112" android:translateY="-112"> <path android:name="_R_G_L_1_G_D_0_P_0" - android:fillColor="?attr/colorSurface" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M112 142.67 C117.15,142.67 121.33,138.49 121.33,133.33 C121.33,128.18 117.15,124 112,124 C106.84,124 102.66,128.18 102.66,133.33 C102.66,138.49 106.84,142.67 112,142.67c "/> </group> @@ -71,7 +71,7 @@ android:pivotX="0.055" android:pivotY="-18.901" android:scaleX="1" android:scaleY="1"> <path android:name="_R_G_L_0_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M9.33 -18.67 C9.33,-18.67 -9.33,-18.67 -9.33,-18.67 C-9.33,-18.67 -9.33,18.67 -9.33,18.67 C-9.33,18.67 9.33,18.67 9.33,18.67 C9.33,18.67 9.33,-18.67 9.33,-18.67c "/> </group> diff --git a/PermissionController/res/drawable-v33/safety_status_warn_to_info_anim.xml b/PermissionController/res/drawable-v33/safety_status_warn_to_info_anim.xml index 00b4ff886..36333360b 100644 --- a/PermissionController/res/drawable-v33/safety_status_warn_to_info_anim.xml +++ b/PermissionController/res/drawable-v33/safety_status_warn_to_info_anim.xml @@ -30,11 +30,11 @@ android:translateY="-112" android:pivotX="112" android:pivotY="112" android:rotation="-49.449" android:scaleX="0.25" android:scaleY="0.25"> <path android:name="_R_G_L_2_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="0" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="0" android:fillType="nonZero" android:pathData=" M104.53 135.26 C104.53,135.26 80.27,110.06 80.27,110.06 C80.27,110.06 89.6,100.72 89.6,100.72 C89.6,100.72 104.53,114.72 104.53,114.72 C104.53,114.72 105.33,115.27 105.33,115.27 C105.33,115.27 114.67,124.6 114.67,124.6 C114.67,124.6 104.53,135.26 104.53,135.26c "/> <path android:name="_R_G_L_2_G_D_1_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="0" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="0" android:fillType="nonZero" android:pathData=" M104.53 135.26 C104.53,135.26 80.27,110.06 80.27,110.06 C80.27,110.06 89.6,100.72 89.6,100.72 C89.6,100.72 104.53,114.72 104.53,114.72 C104.53,114.72 105.33,115.27 105.33,115.27 C105.33,115.27 114.67,124.6 114.67,124.6 C114.67,124.6 104.53,135.26 104.53,135.26c "/> </group> @@ -51,7 +51,7 @@ <group android:name="_R_G_L_1_G" android:translateX="-112" android:translateY="-112"> <path android:name="_R_G_L_1_G_D_0_P_0" - android:fillColor="?attr/colorSurface" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M112 142.67 C117.15,142.67 121.33,138.49 121.33,133.33 C121.33,128.18 117.15,124 112,124 C106.84,124 102.66,128.18 102.66,133.33 C102.66,138.49 106.84,142.67 112,142.67c "/> </group> @@ -71,7 +71,7 @@ android:pivotX="0.055" android:pivotY="-18.901" android:scaleX="1" android:scaleY="1"> <path android:name="_R_G_L_0_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M9.33 -18.67 C9.33,-18.67 -9.33,-18.67 -9.33,-18.67 C-9.33,-18.67 -9.33,18.67 -9.33,18.67 C-9.33,18.67 9.33,18.67 9.33,18.67 C9.33,18.67 9.33,-18.67 9.33,-18.67c "/> </group> diff --git a/PermissionController/res/drawable-v33/safety_status_warn_to_recommend_anim.xml b/PermissionController/res/drawable-v33/safety_status_warn_to_recommend_anim.xml index 871b529cb..f67521552 100644 --- a/PermissionController/res/drawable-v33/safety_status_warn_to_recommend_anim.xml +++ b/PermissionController/res/drawable-v33/safety_status_warn_to_recommend_anim.xml @@ -30,7 +30,7 @@ android:translateY="-112" android:pivotX="112" android:pivotY="112" android:scaleX="0.25" android:scaleY="0.25"> <path android:name="_R_G_L_1_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M112 142.67 C117.15,142.67 121.33,138.49 121.33,133.33 C121.33,128.18 117.15,124 112,124 C106.84,124 102.66,128.18 102.66,133.33 C102.66,138.49 106.84,142.67 112,142.67c "/> </group> @@ -41,7 +41,7 @@ android:translateY="-86.34700000000001" android:pivotX="111.999" android:pivotY="77.796" android:scaleX="0.25" android:scaleY="0.25"> <path android:name="_R_G_L_0_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M121.33 77.33 C121.33,77.33 102.66,77.33 102.66,77.33 C102.66,77.33 102.66,114.67 102.66,114.67 C102.66,114.67 121.33,114.67 121.33,114.67 C121.33,114.67 121.33,77.33 121.33,77.33c "/> </group> diff --git a/PermissionController/res/drawable-v33/status_recommend_to_scanning_anim.xml b/PermissionController/res/drawable-v33/status_recommend_to_scanning_anim.xml index f97632f72..873fe92c0 100644 --- a/PermissionController/res/drawable-v33/status_recommend_to_scanning_anim.xml +++ b/PermissionController/res/drawable-v33/status_recommend_to_scanning_anim.xml @@ -18,7 +18,7 @@ </group> <group android:name="_R_G_L_1_G" android:pivotX="112" android:pivotY="112" android:scaleX="1" android:scaleY="1"> - <path android:name="_R_G_L_1_G_D_0_P_0" android:fillColor="?attr/colorSurface" + <path android:name="_R_G_L_1_G_D_0_P_0" android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M112 142.67 C117.15,142.67 121.33,138.49 121.33,133.33 C121.33,128.18 117.15,124 112,124 C106.84,124 102.66,128.18 102.66,133.33 C102.66,138.49 106.84,142.67 112,142.67c "/> </group> @@ -27,7 +27,7 @@ android:translateY="96.002" android:pivotX="0.055" android:pivotY="-18.901" android:scaleX="1" android:scaleY="1"> <path android:name="_R_G_L_0_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M9.33 -18.67 C9.33,-18.67 -9.33,-18.67 -9.33,-18.67 C-9.33,-18.67 -9.33,18.67 -9.33,18.67 C-9.33,18.67 9.33,18.67 9.33,18.67 C9.33,18.67 9.33,-18.67 9.33,-18.67c "/> </group> diff --git a/PermissionController/res/drawable-v33/status_scanning_anim_info.xml b/PermissionController/res/drawable-v33/status_scanning_anim_info.xml index 7e5998c4b..c1671efc5 100644 --- a/PermissionController/res/drawable-v33/status_scanning_anim_info.xml +++ b/PermissionController/res/drawable-v33/status_scanning_anim_info.xml @@ -7,7 +7,7 @@ <group android:name="_R_G_L_2_G" android:translateX="-168" android:translateY="-168" android:pivotX="280" android:pivotY="280" android:scaleX="0.4" android:scaleY="0.4"> - <path android:name="_R_G_L_2_G_S" android:fillColor="?attr/colorSurface" + <path android:name="_R_G_L_2_G_S" android:fillColor="?attr/colorScShieldAccent" android:pathData="M0,0 L560,0 L560,560 L0,560z"/> </group> <group android:name="_R_G_L_1_G" android:pivotX="112" android:pivotY="112" diff --git a/PermissionController/res/drawable-v33/status_scanning_anim_recommend.xml b/PermissionController/res/drawable-v33/status_scanning_anim_recommend.xml index 335ee5307..4aa64e433 100644 --- a/PermissionController/res/drawable-v33/status_scanning_anim_recommend.xml +++ b/PermissionController/res/drawable-v33/status_scanning_anim_recommend.xml @@ -7,7 +7,7 @@ <group android:name="_R_G_L_2_G" android:translateX="-168" android:translateY="-168" android:pivotX="280" android:pivotY="280" android:scaleX="0.4" android:scaleY="0.4"> - <path android:name="_R_G_L_2_G_S" android:fillColor="?attr/colorSurface" + <path android:name="_R_G_L_2_G_S" android:fillColor="?attr/colorScShieldAccent" android:pathData="M0,0 L560,0 L560,560 L0,560z"/> </group> <group android:name="_R_G_L_1_G" android:pivotX="112" android:pivotY="112" diff --git a/PermissionController/res/drawable-v33/status_scanning_anim_warn.xml b/PermissionController/res/drawable-v33/status_scanning_anim_warn.xml index e35f1ebdd..0c0864f4a 100644 --- a/PermissionController/res/drawable-v33/status_scanning_anim_warn.xml +++ b/PermissionController/res/drawable-v33/status_scanning_anim_warn.xml @@ -7,7 +7,7 @@ <group android:name="_R_G_L_2_G" android:translateX="-168" android:translateY="-168" android:pivotX="280" android:pivotY="280" android:scaleX="0.4" android:scaleY="0.4"> - <path android:name="_R_G_L_2_G_S" android:fillColor="?attr/colorSurface" + <path android:name="_R_G_L_2_G_S" android:fillColor="?attr/colorScShieldAccent" android:pathData="M0,0 L560,0 L560,560 L0,560z"/> </group> <group android:name="_R_G_L_1_G" android:pivotX="112" android:pivotY="112" diff --git a/PermissionController/res/drawable-v33/status_scanning_end_anim_info_to_info.xml b/PermissionController/res/drawable-v33/status_scanning_end_anim_info_to_info.xml index 936bbcbd5..5032e7203 100644 --- a/PermissionController/res/drawable-v33/status_scanning_end_anim_info_to_info.xml +++ b/PermissionController/res/drawable-v33/status_scanning_end_anim_info_to_info.xml @@ -20,10 +20,10 @@ </group> <group android:name="_R_G_L_0_G" android:pivotX="112" android:pivotY="112" android:scaleX="1" android:scaleY="1"> - <path android:name="_R_G_L_0_G_D_0_P_0" android:fillColor="?attr/colorSurface" + <path android:name="_R_G_L_0_G_D_0_P_0" android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M80.31 109.98 C80.31,109.98 80.27,110.06 80.27,110.06 C80.27,110.06 89.6,100.72 89.6,100.72 C89.6,100.72 89.5,100.63 89.5,100.63 C89.5,100.63 89.86,100.7 89.86,100.7 C89.86,100.7 89.58,100.52 89.58,100.52 C89.58,100.52 80.31,109.98 80.31,109.98c "/> - <path android:name="_R_G_L_0_G_D_1_P_0" android:fillColor="?attr/colorSurface" + <path android:name="_R_G_L_0_G_D_1_P_0" android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M80.31 109.98 C80.31,109.98 80.27,110.06 80.27,110.06 C80.27,110.06 89.6,100.72 89.6,100.72 C89.6,100.72 89.5,100.63 89.5,100.63 C89.5,100.63 89.86,100.7 89.86,100.7 C89.86,100.7 89.58,100.52 89.58,100.52 C89.58,100.52 80.31,109.98 80.31,109.98c "/> </group> diff --git a/PermissionController/res/drawable-v33/status_scanning_end_anim_info_to_recommend.xml b/PermissionController/res/drawable-v33/status_scanning_end_anim_info_to_recommend.xml index 8df502847..6d60a7532 100644 --- a/PermissionController/res/drawable-v33/status_scanning_end_anim_info_to_recommend.xml +++ b/PermissionController/res/drawable-v33/status_scanning_end_anim_info_to_recommend.xml @@ -24,7 +24,7 @@ android:translateY="-112" android:pivotX="112" android:pivotY="112" android:scaleX="0" android:scaleY="0"> <path android:name="_R_G_L_1_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M112 142.67 C117.15,142.67 121.33,138.49 121.33,133.33 C121.33,128.18 117.15,124 112,124 C106.84,124 102.66,128.18 102.66,133.33 C102.66,138.49 106.84,142.67 112,142.67c "/> </group> @@ -39,7 +39,7 @@ android:pivotX="0.055" android:pivotY="-18.901" android:scaleX="1" android:scaleY="0"> <path android:name="_R_G_L_0_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M9.33 -18.67 C9.33,-18.67 -9.33,-18.67 -9.33,-18.67 C-9.33,-18.67 -9.33,18.67 -9.33,18.67 C-9.33,18.67 9.33,18.67 9.33,18.67 C9.33,18.67 9.33,-18.67 9.33,-18.67c "/> </group> diff --git a/PermissionController/res/drawable-v33/status_scanning_end_anim_info_to_warn.xml b/PermissionController/res/drawable-v33/status_scanning_end_anim_info_to_warn.xml index 2ae23e1ed..9ce7d18cc 100644 --- a/PermissionController/res/drawable-v33/status_scanning_end_anim_info_to_warn.xml +++ b/PermissionController/res/drawable-v33/status_scanning_end_anim_info_to_warn.xml @@ -24,7 +24,7 @@ android:translateY="-112" android:pivotX="112" android:pivotY="112" android:scaleX="0" android:scaleY="0"> <path android:name="_R_G_L_1_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M112 142.67 C117.15,142.67 121.33,138.49 121.33,133.33 C121.33,128.18 117.15,124 112,124 C106.84,124 102.66,128.18 102.66,133.33 C102.66,138.49 106.84,142.67 112,142.67c "/> </group> @@ -39,7 +39,7 @@ android:pivotX="0.055" android:pivotY="-18.901" android:scaleX="1" android:scaleY="0"> <path android:name="_R_G_L_0_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M9.33 -18.67 C9.33,-18.67 -9.33,-18.67 -9.33,-18.67 C-9.33,-18.67 -9.33,18.67 -9.33,18.67 C-9.33,18.67 9.33,18.67 9.33,18.67 C9.33,18.67 9.33,-18.67 9.33,-18.67c "/> </group> diff --git a/PermissionController/res/drawable-v33/status_scanning_end_anim_recommend_to_info.xml b/PermissionController/res/drawable-v33/status_scanning_end_anim_recommend_to_info.xml index 6fe13f3ba..f69fb1680 100644 --- a/PermissionController/res/drawable-v33/status_scanning_end_anim_recommend_to_info.xml +++ b/PermissionController/res/drawable-v33/status_scanning_end_anim_recommend_to_info.xml @@ -20,10 +20,10 @@ </group> <group android:name="_R_G_L_0_G" android:pivotX="112" android:pivotY="112" android:scaleX="1" android:scaleY="1"> - <path android:name="_R_G_L_0_G_D_0_P_0" android:fillColor="?attr/colorSurface" + <path android:name="_R_G_L_0_G_D_0_P_0" android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M80.31 109.98 C80.31,109.98 80.27,110.06 80.27,110.06 C80.27,110.06 89.6,100.72 89.6,100.72 C89.6,100.72 89.5,100.63 89.5,100.63 C89.5,100.63 89.86,100.7 89.86,100.7 C89.86,100.7 89.58,100.52 89.58,100.52 C89.58,100.52 80.31,109.98 80.31,109.98c "/> - <path android:name="_R_G_L_0_G_D_1_P_0" android:fillColor="?attr/colorSurface" + <path android:name="_R_G_L_0_G_D_1_P_0" android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M80.31 109.98 C80.31,109.98 80.27,110.06 80.27,110.06 C80.27,110.06 89.6,100.72 89.6,100.72 C89.6,100.72 89.5,100.63 89.5,100.63 C89.5,100.63 89.86,100.7 89.86,100.7 C89.86,100.7 89.58,100.52 89.58,100.52 C89.58,100.52 80.31,109.98 80.31,109.98c "/> </group> diff --git a/PermissionController/res/drawable-v33/status_scanning_end_anim_recommend_to_recommend.xml b/PermissionController/res/drawable-v33/status_scanning_end_anim_recommend_to_recommend.xml index f85e02eb0..8f8c9fb46 100644 --- a/PermissionController/res/drawable-v33/status_scanning_end_anim_recommend_to_recommend.xml +++ b/PermissionController/res/drawable-v33/status_scanning_end_anim_recommend_to_recommend.xml @@ -24,7 +24,7 @@ android:translateY="-112" android:pivotX="112" android:pivotY="112" android:scaleX="0" android:scaleY="0"> <path android:name="_R_G_L_1_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M112 142.67 C117.15,142.67 121.33,138.49 121.33,133.33 C121.33,128.18 117.15,124 112,124 C106.84,124 102.66,128.18 102.66,133.33 C102.66,138.49 106.84,142.67 112,142.67c "/> </group> @@ -39,7 +39,7 @@ android:pivotX="0.055" android:pivotY="-18.901" android:scaleX="1" android:scaleY="0"> <path android:name="_R_G_L_0_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M9.33 -18.67 C9.33,-18.67 -9.33,-18.67 -9.33,-18.67 C-9.33,-18.67 -9.33,18.67 -9.33,18.67 C-9.33,18.67 9.33,18.67 9.33,18.67 C9.33,18.67 9.33,-18.67 9.33,-18.67c "/> </group> diff --git a/PermissionController/res/drawable-v33/status_scanning_end_anim_recommend_to_warn.xml b/PermissionController/res/drawable-v33/status_scanning_end_anim_recommend_to_warn.xml index 2bc46bb2c..cbe900d10 100644 --- a/PermissionController/res/drawable-v33/status_scanning_end_anim_recommend_to_warn.xml +++ b/PermissionController/res/drawable-v33/status_scanning_end_anim_recommend_to_warn.xml @@ -24,7 +24,7 @@ android:translateY="-112" android:pivotX="112" android:pivotY="112" android:scaleX="0" android:scaleY="0"> <path android:name="_R_G_L_1_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M112 142.67 C117.15,142.67 121.33,138.49 121.33,133.33 C121.33,128.18 117.15,124 112,124 C106.84,124 102.66,128.18 102.66,133.33 C102.66,138.49 106.84,142.67 112,142.67c "/> </group> @@ -39,7 +39,7 @@ android:pivotX="0.055" android:pivotY="-18.901" android:scaleX="1" android:scaleY="0"> <path android:name="_R_G_L_0_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M9.33 -18.67 C9.33,-18.67 -9.33,-18.67 -9.33,-18.67 C-9.33,-18.67 -9.33,18.67 -9.33,18.67 C-9.33,18.67 9.33,18.67 9.33,18.67 C9.33,18.67 9.33,-18.67 9.33,-18.67c "/> </group> diff --git a/PermissionController/res/drawable-v33/status_scanning_end_anim_warn_to_info.xml b/PermissionController/res/drawable-v33/status_scanning_end_anim_warn_to_info.xml index 8d070d337..723675887 100644 --- a/PermissionController/res/drawable-v33/status_scanning_end_anim_warn_to_info.xml +++ b/PermissionController/res/drawable-v33/status_scanning_end_anim_warn_to_info.xml @@ -20,10 +20,10 @@ </group> <group android:name="_R_G_L_0_G" android:pivotX="112" android:pivotY="112" android:scaleX="1" android:scaleY="1"> - <path android:name="_R_G_L_0_G_D_0_P_0" android:fillColor="?attr/colorSurface" + <path android:name="_R_G_L_0_G_D_0_P_0" android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M80.31 109.98 C80.31,109.98 80.27,110.06 80.27,110.06 C80.27,110.06 89.6,100.72 89.6,100.72 C89.6,100.72 89.5,100.63 89.5,100.63 C89.5,100.63 89.86,100.7 89.86,100.7 C89.86,100.7 89.58,100.52 89.58,100.52 C89.58,100.52 80.31,109.98 80.31,109.98c "/> - <path android:name="_R_G_L_0_G_D_1_P_0" android:fillColor="?attr/colorSurface" + <path android:name="_R_G_L_0_G_D_1_P_0" android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M80.31 109.98 C80.31,109.98 80.27,110.06 80.27,110.06 C80.27,110.06 89.6,100.72 89.6,100.72 C89.6,100.72 89.5,100.63 89.5,100.63 C89.5,100.63 89.86,100.7 89.86,100.7 C89.86,100.7 89.58,100.52 89.58,100.52 C89.58,100.52 80.31,109.98 80.31,109.98c "/> </group> diff --git a/PermissionController/res/drawable-v33/status_scanning_end_anim_warn_to_recommend.xml b/PermissionController/res/drawable-v33/status_scanning_end_anim_warn_to_recommend.xml index fa5bc61f8..15300ce02 100644 --- a/PermissionController/res/drawable-v33/status_scanning_end_anim_warn_to_recommend.xml +++ b/PermissionController/res/drawable-v33/status_scanning_end_anim_warn_to_recommend.xml @@ -24,7 +24,7 @@ android:translateY="-112" android:pivotX="112" android:pivotY="112" android:scaleX="0" android:scaleY="0"> <path android:name="_R_G_L_1_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M112 142.67 C117.15,142.67 121.33,138.49 121.33,133.33 C121.33,128.18 117.15,124 112,124 C106.84,124 102.66,128.18 102.66,133.33 C102.66,138.49 106.84,142.67 112,142.67c "/> </group> @@ -39,7 +39,7 @@ android:pivotX="0.055" android:pivotY="-18.901" android:scaleX="1" android:scaleY="0"> <path android:name="_R_G_L_0_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M9.33 -18.67 C9.33,-18.67 -9.33,-18.67 -9.33,-18.67 C-9.33,-18.67 -9.33,18.67 -9.33,18.67 C-9.33,18.67 9.33,18.67 9.33,18.67 C9.33,18.67 9.33,-18.67 9.33,-18.67c "/> </group> diff --git a/PermissionController/res/drawable-v33/status_scanning_end_anim_warn_to_warn.xml b/PermissionController/res/drawable-v33/status_scanning_end_anim_warn_to_warn.xml index 219b0c427..86a053815 100644 --- a/PermissionController/res/drawable-v33/status_scanning_end_anim_warn_to_warn.xml +++ b/PermissionController/res/drawable-v33/status_scanning_end_anim_warn_to_warn.xml @@ -24,7 +24,7 @@ android:translateY="-112" android:pivotX="112" android:pivotY="112" android:scaleX="0" android:scaleY="0"> <path android:name="_R_G_L_1_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M112 142.67 C117.15,142.67 121.33,138.49 121.33,133.33 C121.33,128.18 117.15,124 112,124 C106.84,124 102.66,128.18 102.66,133.33 C102.66,138.49 106.84,142.67 112,142.67c "/> </group> @@ -39,7 +39,7 @@ android:pivotX="0.055" android:pivotY="-18.901" android:scaleX="1" android:scaleY="0"> <path android:name="_R_G_L_0_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M9.33 -18.67 C9.33,-18.67 -9.33,-18.67 -9.33,-18.67 C-9.33,-18.67 -9.33,18.67 -9.33,18.67 C-9.33,18.67 9.33,18.67 9.33,18.67 C9.33,18.67 9.33,-18.67 9.33,-18.67c "/> </group> diff --git a/PermissionController/res/drawable-v33/status_warn_to_scanning_anim.xml b/PermissionController/res/drawable-v33/status_warn_to_scanning_anim.xml index f97c374cd..c954c60c0 100644 --- a/PermissionController/res/drawable-v33/status_warn_to_scanning_anim.xml +++ b/PermissionController/res/drawable-v33/status_warn_to_scanning_anim.xml @@ -18,7 +18,7 @@ </group> <group android:name="_R_G_L_1_G" android:pivotX="112" android:pivotY="112" android:scaleX="1" android:scaleY="1"> - <path android:name="_R_G_L_1_G_D_0_P_0" android:fillColor="?attr/colorSurface" + <path android:name="_R_G_L_1_G_D_0_P_0" android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M112 142.67 C117.15,142.67 121.33,138.49 121.33,133.33 C121.33,128.18 117.15,124 112,124 C106.84,124 102.66,128.18 102.66,133.33 C102.66,138.49 106.84,142.67 112,142.67c "/> </group> @@ -27,7 +27,7 @@ android:translateY="96.002" android:pivotX="0.055" android:pivotY="-18.901" android:scaleX="1" android:scaleY="1"> <path android:name="_R_G_L_0_G_D_0_P_0" - android:fillColor="?attr/colorSurface" android:fillAlpha="1" + android:fillColor="?attr/colorScShieldAccent" android:fillAlpha="1" android:fillType="nonZero" android:pathData=" M9.33 -18.67 C9.33,-18.67 -9.33,-18.67 -9.33,-18.67 C-9.33,-18.67 -9.33,18.67 -9.33,18.67 C-9.33,18.67 9.33,18.67 9.33,18.67 C9.33,18.67 9.33,-18.67 9.33,-18.67c "/> </group> diff --git a/PermissionController/res/values-v33/dimens.xml b/PermissionController/res/values-v33/dimens.xml index 9bf2fd918..61328d7db 100644 --- a/PermissionController/res/values-v33/dimens.xml +++ b/PermissionController/res/values-v33/dimens.xml @@ -33,8 +33,8 @@ <dimen name="sc_entry_padding_end">@dimen/sc_spacing_xxxlarge</dimen> <dimen name="sc_entry_group_expanded_padding_top">@dimen/sc_spacing_xxxlarge</dimen> <dimen name="sc_entry_group_expanded_padding_bottom">@dimen/sc_spacing_xsmall</dimen> - <dimen name="sc_entry_group_collapsed_padding_top">@dimen/sc_spacing_xxlarge</dimen> - <dimen name="sc_entry_group_collapsed_padding_bottom">@dimen/sc_spacing_xxlarge</dimen> + <dimen name="sc_entry_group_collapsed_padding_top">@dimen/sc_spacing_large</dimen> + <dimen name="sc_entry_group_collapsed_padding_bottom">@dimen/sc_spacing_large</dimen> <dimen name="sc_card_margin_bottom">@dimen/sc_spacing_xxxlarge</dimen> <dimen name="sc_icon_button_touch_target_size">48dp</dimen> diff --git a/PermissionController/src/com/android/permissioncontroller/permission/service/LocationAccessCheck.java b/PermissionController/src/com/android/permissioncontroller/permission/service/LocationAccessCheck.java index 3cf79b951..e0e124f54 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/service/LocationAccessCheck.java +++ b/PermissionController/src/com/android/permissioncontroller/permission/service/LocationAccessCheck.java @@ -163,6 +163,7 @@ public class LocationAccessCheck { private static final boolean DEBUG = false; private static final long DEFAULT_RENOTIFY_DURATION_MILLIS = DAYS.toMillis(90); private static final String ISSUE_ID_PREFIX = "bg_location_"; + private static final String ISSUE_TYPE_ID = "bg_location_privacy_issue"; private static final String REVOKE_LOCATION_ACCESS_ID_PREFIX = "revoke_location_access_"; private static final String VIEW_LOCATION_ACCESS_ID = "view_location_access"; public static final String BG_LOCATION_SOURCE_ID = "AndroidBackgroundLocation"; @@ -1018,7 +1019,7 @@ public class LocationAccessCheck { mContext.getString( R.string.safety_center_background_location_access_reminder_summary), SafetySourceData.SEVERITY_LEVEL_INFORMATION, - id) + ISSUE_TYPE_ID) .setSubtitle(pkgLabel) .addAction(revokeAction) .addAction(viewLocationUsageAction) diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/AppPermissionViewModel.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/AppPermissionViewModel.kt index 51c18fe6b..ee9c637d1 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/AppPermissionViewModel.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/AppPermissionViewModel.kt @@ -401,14 +401,18 @@ class AppPermissionViewModel( val coarseLocation = group.permissions[ACCESS_COARSE_LOCATION]!! val fineLocation = group.permissions[ACCESS_FINE_LOCATION]!! // Steps to decide location accuracy toggle state - // 1. If none of the FINE and COARSE isSelectedLocationAccuracy flags is set, - // then use default precision from device config. - // 2. Otherwise return if FINE isSelectedLocationAccuracy is set to true. - return if ((!fineLocation.isSelectedLocationAccuracy && - !coarseLocation.isSelectedLocationAccuracy)) { - getDefaultPrecision() - } else { + // 1. If FINE or COARSE are granted, then return true if FINE is granted. + // 2. Else if FINE or COARSE have the isSelectedLocationAccuracy flag set, then return + // true if FINE isSelectedLocationAccuracy is set. + // 3. Else, return default precision from device config. + return if (fineLocation.isGrantedIncludingAppOp || + coarseLocation.isGrantedIncludingAppOp) { + fineLocation.isGrantedIncludingAppOp + } else if (fineLocation.isSelectedLocationAccuracy || + coarseLocation.isSelectedLocationAccuracy) { fineLocation.isSelectedLocationAccuracy + } else { + getDefaultPrecision() } } return false diff --git a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/view/SafetyEntryView.kt b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/view/SafetyEntryView.kt index 853d8f85c..302f9a753 100644 --- a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/view/SafetyEntryView.kt +++ b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/view/SafetyEntryView.kt @@ -113,6 +113,10 @@ internal class SafetyEntryView @JvmOverloads constructor( ex) } } + } else { + // Ensure that views without listeners can still be focused by accessibility services + // TODO b/243713158: Set the proper accessibility focus in style, rather than in code + isFocusable = true } } @@ -189,4 +193,4 @@ internal class SafetyEntryView @JvmOverloads constructor( } contentDescription = context.getString(resourceId, entry.title, entry.summary) } -}
\ No newline at end of file +} diff --git a/tests/cts/safetycenter/src/android/safetycenter/cts/SafetyCenterManagedDeviceTest.kt b/tests/cts/safetycenter/src/android/safetycenter/cts/SafetyCenterManagedDeviceTest.kt index 852ea3f11..55c2f28a8 100644 --- a/tests/cts/safetycenter/src/android/safetycenter/cts/SafetyCenterManagedDeviceTest.kt +++ b/tests/cts/safetycenter/src/android/safetycenter/cts/SafetyCenterManagedDeviceTest.kt @@ -18,18 +18,20 @@ package android.safetycenter.cts import android.Manifest.permission.INTERACT_ACROSS_USERS import android.Manifest.permission.INTERACT_ACROSS_USERS_FULL +import android.app.PendingIntent import android.content.Context import android.os.UserHandle import android.safetycenter.SafetyCenterData +import android.safetycenter.SafetyCenterEntry import android.safetycenter.SafetyCenterEntry.ENTRY_SEVERITY_LEVEL_CRITICAL_WARNING import android.safetycenter.SafetyCenterEntry.ENTRY_SEVERITY_LEVEL_UNKNOWN import android.safetycenter.SafetyCenterEntry.ENTRY_SEVERITY_LEVEL_UNSPECIFIED import android.safetycenter.SafetyCenterEntry.SEVERITY_UNSPECIFIED_ICON_TYPE_PRIVACY -import android.safetycenter.SafetyCenterEntryGroup -import android.safetycenter.SafetyCenterEntryOrGroup import android.safetycenter.SafetyCenterManager import android.safetycenter.SafetyCenterStaticEntry import android.safetycenter.SafetyCenterStaticEntryGroup +import android.safetycenter.SafetyCenterEntryGroup +import android.safetycenter.SafetyCenterEntryOrGroup import android.safetycenter.SafetySourceData import android.safetycenter.cts.testing.SafetyCenterActivityLauncher.launchSafetyCenterActivity import android.safetycenter.cts.testing.SafetyCenterApisWithShellPermissions.getSafetyCenterDataWithPermission @@ -181,7 +183,8 @@ class SafetyCenterManagedDeviceTest { STATIC_ALL_OPTIONAL_ID, userId = deviceState.workProfile().id(), title = "Paste") - .setPendingIntent(redirectPendingIntentForWork) + .setPendingIntent( + createRedirectPendingIntentForUser(deviceState.workProfile().userHandle())) private val staticAllOptionalForWork get() = staticAllOptionalForWorkBuilder.build() @@ -211,7 +214,8 @@ class SafetyCenterManagedDeviceTest { get() = SafetyCenterStaticEntry.Builder("Paste") .setSummary("OK") - .setPendingIntent(redirectPendingIntentForWork) + .setPendingIntent( + createRedirectPendingIntentForUser(deviceState.workProfile().userHandle())) private val rigidEntryForWork get() = rigidEntryForWorkBuilder.build() @@ -230,13 +234,6 @@ class SafetyCenterManagedDeviceTest { .setPendingIntent(safetySourceCtsData.redirectPendingIntent) .build() - private val redirectPendingIntentForWork - get() = - callWithShellPermissionIdentity(INTERACT_ACROSS_USERS) { - SafetySourceCtsData.createRedirectPendingIntent( - getContextForUser(deviceState.workProfile().userHandle())) - } - @Before fun assumeDeviceSupportsSafetyCenterToRunTests() { assumeTrue(shouldRunTests) @@ -289,18 +286,18 @@ class SafetyCenterManagedDeviceTest { @EnsureHasWorkProfile(installInstrumentedApp = TRUE) fun getSafetySourceData_withQuietModeEnabled_dataIsNotCleared() { safetyCenterCtsHelper.setConfig(SINGLE_SOURCE_ALL_PROFILE_CONFIG) - val setDataForWork = safetySourceCtsData.informationWithIssueForWork + val dataForWork = safetySourceCtsData.informationWithIssueForWork val managedSafetyCenterManager = getSafetyCenterManagerForUser(deviceState.workProfile().userHandle()) managedSafetyCenterManager.setSafetySourceDataWithInteractAcrossUsersPermission( - SINGLE_SOURCE_ALL_PROFILE_ID, setDataForWork) + SINGLE_SOURCE_ALL_PROFILE_ID, dataForWork) setQuietMode(true) val apiSafetySourceDataForWork = managedSafetyCenterManager.getSafetySourceDataWithInteractAcrossUsersPermission( SINGLE_SOURCE_ALL_PROFILE_ID) - assertThat(apiSafetySourceDataForWork).isEqualTo(setDataForWork) + assertThat(apiSafetySourceDataForWork).isEqualTo(dataForWork) } @Test @@ -532,11 +529,11 @@ class SafetyCenterManagedDeviceTest { val managedSafetyCenterManager = getSafetyCenterManagerForUser(deviceState.workProfile().userHandle()) - val setDataForWork = + val dataForWork = SafetySourceCtsData.issuesOnly(safetySourceCtsData.criticalResolvingGeneralIssue) assertFailsWith(IllegalArgumentException::class) { managedSafetyCenterManager.setSafetySourceDataWithInteractAcrossUsersPermission( - ISSUE_ONLY_ALL_OPTIONAL_ID, setDataForWork) + ISSUE_ONLY_ALL_OPTIONAL_ID, dataForWork) } } @@ -544,15 +541,15 @@ class SafetyCenterManagedDeviceTest { @EnsureHasWorkProfile(installInstrumentedApp = TRUE) fun setSafetySourceData_withoutInteractAcrossUserPermission_shouldThrowError() { safetyCenterCtsHelper.setConfig(SINGLE_SOURCE_ALL_PROFILE_CONFIG) - val setDataForWork = safetySourceCtsData.informationWithIssueForWork + val dataForWork = safetySourceCtsData.informationWithIssueForWork val managedSafetyCenterManager = getSafetyCenterManagerForUser(deviceState.workProfile().userHandle()) managedSafetyCenterManager.setSafetySourceDataWithInteractAcrossUsersPermission( - SINGLE_SOURCE_ALL_PROFILE_ID, setDataForWork) + SINGLE_SOURCE_ALL_PROFILE_ID, dataForWork) assertFailsWith(SecurityException::class) { managedSafetyCenterManager.setSafetySourceData( - SINGLE_SOURCE_ALL_PROFILE_ID, setDataForWork, EVENT_SOURCE_STATE_CHANGED) + SINGLE_SOURCE_ALL_PROFILE_ID, dataForWork, EVENT_SOURCE_STATE_CHANGED) } } @@ -561,22 +558,23 @@ class SafetyCenterManagedDeviceTest { fun setSafetySourceData_issuesOnlySourceWithWorkProfile_shouldBeAbleToSetData() { safetyCenterCtsHelper.setConfig(ISSUE_ONLY_SOURCE_ALL_PROFILE_CONFIG) - val setData = SafetySourceCtsData.issuesOnly(safetySourceCtsData.recommendationGeneralIssue) - safetyCenterCtsHelper.setData(ISSUE_ONLY_ALL_PROFILE_SOURCE_ID, setData) + val dataForPrimaryUser = + SafetySourceCtsData.issuesOnly(safetySourceCtsData.recommendationGeneralIssue) + safetyCenterCtsHelper.setData(ISSUE_ONLY_ALL_PROFILE_SOURCE_ID, dataForPrimaryUser) val managedSafetyCenterManager = getSafetyCenterManagerForUser(deviceState.workProfile().userHandle()) - val setDataForWork = + val dataForWorkProfile = SafetySourceCtsData.issuesOnly(safetySourceCtsData.criticalResolvingGeneralIssue) managedSafetyCenterManager.setSafetySourceDataWithInteractAcrossUsersPermission( - ISSUE_ONLY_ALL_PROFILE_SOURCE_ID, setDataForWork) + ISSUE_ONLY_ALL_PROFILE_SOURCE_ID, dataForWorkProfile) val apiSafetySourceData = safetyCenterManager.getSafetySourceDataWithPermission(ISSUE_ONLY_ALL_PROFILE_SOURCE_ID) val apiSafetySourceDataForWork = managedSafetyCenterManager.getSafetySourceDataWithInteractAcrossUsersPermission( ISSUE_ONLY_ALL_PROFILE_SOURCE_ID) - assertThat(apiSafetySourceData).isEqualTo(setData) - assertThat(apiSafetySourceDataForWork).isEqualTo(setDataForWork) + assertThat(apiSafetySourceData).isEqualTo(dataForPrimaryUser) + assertThat(apiSafetySourceDataForWork).isEqualTo(dataForWorkProfile) } @Test @@ -586,10 +584,10 @@ class SafetyCenterManagedDeviceTest { val managedSafetyCenterManager = getSafetyCenterManagerForUser(deviceState.workProfile().userHandle()) - val setDataForWork = safetySourceCtsData.informationWithIssueForWork + val dataForWork = safetySourceCtsData.informationWithIssueForWork assertFailsWith(IllegalArgumentException::class) { managedSafetyCenterManager.setSafetySourceDataWithInteractAcrossUsersPermission( - SINGLE_SOURCE_ID, setDataForWork) + SINGLE_SOURCE_ID, dataForWork) } } @@ -598,21 +596,21 @@ class SafetyCenterManagedDeviceTest { fun setSafetySourceData_sourceWithWorkProfile_shouldBeAbleToSetData() { safetyCenterCtsHelper.setConfig(SINGLE_SOURCE_ALL_PROFILE_CONFIG) - val setData = safetySourceCtsData.information - safetyCenterCtsHelper.setData(SINGLE_SOURCE_ALL_PROFILE_ID, setData) - val setDataForWork = safetySourceCtsData.informationWithIssueForWork + val dataForPrimaryUser = safetySourceCtsData.information + safetyCenterCtsHelper.setData(SINGLE_SOURCE_ALL_PROFILE_ID, dataForPrimaryUser) + val dataForWork = safetySourceCtsData.informationWithIssueForWork val managedSafetyCenterManager = getSafetyCenterManagerForUser(deviceState.workProfile().userHandle()) managedSafetyCenterManager.setSafetySourceDataWithInteractAcrossUsersPermission( - SINGLE_SOURCE_ALL_PROFILE_ID, setDataForWork) + SINGLE_SOURCE_ALL_PROFILE_ID, dataForWork) val apiSafetySourceData = safetyCenterManager.getSafetySourceDataWithPermission(SINGLE_SOURCE_ALL_PROFILE_ID) val apiSafetySourceDataForWork = managedSafetyCenterManager.getSafetySourceDataWithInteractAcrossUsersPermission( SINGLE_SOURCE_ALL_PROFILE_ID) - assertThat(apiSafetySourceData).isEqualTo(setData) - assertThat(apiSafetySourceDataForWork).isEqualTo(setDataForWork) + assertThat(apiSafetySourceData).isEqualTo(dataForPrimaryUser) + assertThat(apiSafetySourceDataForWork).isEqualTo(dataForWork) } @Test @@ -621,16 +619,93 @@ class SafetyCenterManagedDeviceTest { safetyCenterCtsHelper.setConfig(SINGLE_SOURCE_CONFIG) deviceState.secondaryUser().stop() - val setData = safetySourceCtsData.unspecified + val dataForPrimaryUser = safetySourceCtsData.unspecified val secondaryUserSafetyCenterManager = getSafetyCenterManagerForUser(deviceState.secondaryUser().userHandle()) secondaryUserSafetyCenterManager.setSafetySourceDataWithInteractAcrossUsersPermission( - SINGLE_SOURCE_ID, setData) + SINGLE_SOURCE_ID, dataForPrimaryUser) val apiSafetySourceData = secondaryUserSafetyCenterManager.getSafetySourceDataWithInteractAcrossUsersPermission( SINGLE_SOURCE_ID) - assertThat(apiSafetySourceData).isEqualTo(setData) + assertThat(apiSafetySourceData).isEqualTo(dataForPrimaryUser) + } + + @Test + @EnsureHasSecondaryUser(installInstrumentedApp = TRUE) + fun setSafetySourceData_forBothPrimarySecondaryUser_shouldSetData() { + safetyCenterCtsHelper.setConfig(SINGLE_SOURCE_CONFIG) + + val dataForPrimaryUser = safetySourceCtsData.information + safetyCenterCtsHelper.setData(SINGLE_SOURCE_ID, dataForPrimaryUser) + val dataForSecondaryUser = safetySourceCtsData.unspecified + val secondaryUserSafetyCenterManager = + getSafetyCenterManagerForUser(deviceState.secondaryUser().userHandle()) + secondaryUserSafetyCenterManager.setSafetySourceDataWithInteractAcrossUsersPermission( + SINGLE_SOURCE_ID, dataForSecondaryUser) + + val apiSafetySourceDataForPrimaryUser = + safetyCenterManager.getSafetySourceDataWithPermission(SINGLE_SOURCE_ID) + val apiSafetySourceDataForSecondaryUser = + secondaryUserSafetyCenterManager.getSafetySourceDataWithInteractAcrossUsersPermission( + SINGLE_SOURCE_ID) + assertThat(apiSafetySourceDataForPrimaryUser).isEqualTo(dataForPrimaryUser) + assertThat(apiSafetySourceDataForSecondaryUser).isEqualTo(dataForSecondaryUser) + } + + @Test + @EnsureHasSecondaryUser(installInstrumentedApp = TRUE) + fun setSafetySourceData_forSecondaryUser_shouldNotAffectDataForPrimaryUser() { + safetyCenterCtsHelper.setConfig(SINGLE_SOURCE_CONFIG) + + val dataForSecondaryUser = safetySourceCtsData.unspecified + val secondaryUserSafetyCenterManager = + getSafetyCenterManagerForUser(deviceState.secondaryUser().userHandle()) + secondaryUserSafetyCenterManager.setSafetySourceDataWithInteractAcrossUsersPermission( + SINGLE_SOURCE_ID, dataForSecondaryUser) + + val apiSafetySourceDataForPrimaryUser = + safetyCenterManager.getSafetySourceDataWithPermission(SINGLE_SOURCE_ID) + assertThat(apiSafetySourceDataForPrimaryUser).isEqualTo(null) + } + + @Test + @EnsureHasSecondaryUser(installInstrumentedApp = TRUE) + @EnsureHasWorkProfile(installInstrumentedApp = TRUE) + fun getSafetyCenterData_withDataForDifferentUserProfileGroup_shouldBeUnaffected() { + safetyCenterCtsHelper.setConfig(SINGLE_SOURCE_ALL_PROFILE_CONFIG) + val dataForPrimaryUser = safetySourceCtsData.information + safetyCenterCtsHelper.setData(SINGLE_SOURCE_ALL_PROFILE_ID, dataForPrimaryUser) + val dataForPrimaryUserWorkProfile = safetySourceCtsData.informationWithIssueForWork + val managedSafetyCenterManager = + getSafetyCenterManagerForUser(deviceState.workProfile().userHandle()) + managedSafetyCenterManager.setSafetySourceDataWithInteractAcrossUsersPermission( + SINGLE_SOURCE_ALL_PROFILE_ID, dataForPrimaryUserWorkProfile) + + val secondaryUserSafetyCenterManager = + getSafetyCenterManagerForUser(deviceState.secondaryUser().userHandle()) + val apiSafetyCenterDataForSecondaryUser = + secondaryUserSafetyCenterManager.getSafetyCenterDataWithInteractAcrossUsersPermission() + + val entry = + SafetyCenterEntry.Builder( + SafetyCenterCtsData.entryId( + SINGLE_SOURCE_ALL_PROFILE_ID, deviceState.secondaryUser().id()), + "OK") + .setSeverityLevel(ENTRY_SEVERITY_LEVEL_UNKNOWN) + .setSummary("OK") + .setPendingIntent( + createRedirectPendingIntentForUser(deviceState.secondaryUser().userHandle())) + .setSeverityUnspecifiedIconType( + SafetyCenterEntry.SEVERITY_UNSPECIFIED_ICON_TYPE_NO_RECOMMENDATION) + .build() + val safetyCenterDataForSecondaryUser = + SafetyCenterData( + safetyCenterCtsData.safetyCenterStatusUnknown, + emptyList(), + listOf(SafetyCenterEntryOrGroup(entry)), + emptyList()) + assertThat(apiSafetyCenterDataForSecondaryUser).isEqualTo(safetyCenterDataForSecondaryUser) } private fun findWorkPolicyInfo() { @@ -652,6 +727,12 @@ class SafetyCenterManagedDeviceTest { } } + private fun createRedirectPendingIntentForUser(user: UserHandle): PendingIntent { + return callWithShellPermissionIdentity(INTERACT_ACROSS_USERS) { + SafetySourceCtsData.createRedirectPendingIntent(getContextForUser(user)) + } + } + private fun SafetyCenterManager.getSafetySourceDataWithInteractAcrossUsersPermission( id: String ): SafetySourceData? = @@ -667,6 +748,12 @@ class SafetyCenterManagedDeviceTest { setSafetySourceDataWithPermission(id, dataToSet, EVENT_SOURCE_STATE_CHANGED) } + private fun SafetyCenterManager.getSafetyCenterDataWithInteractAcrossUsersPermission(): + SafetyCenterData = + callWithShellPermissionIdentity(INTERACT_ACROSS_USERS_FULL) { + getSafetyCenterDataWithPermission() + } + private fun setQuietMode(value: Boolean) { deviceState.workProfile().setQuietMode(value) inQuietMode = value |