summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--PermissionController/res/drawable-v33/safety_status_info_to_info_anim.xml4
-rw-r--r--PermissionController/res/drawable-v33/safety_status_recommend_to_info_anim.xml8
-rw-r--r--PermissionController/res/drawable-v33/safety_status_warn_to_info_anim.xml8
-rw-r--r--PermissionController/res/drawable-v33/safety_status_warn_to_recommend_anim.xml4
-rw-r--r--PermissionController/res/drawable-v33/status_recommend_to_scanning_anim.xml4
-rw-r--r--PermissionController/res/drawable-v33/status_scanning_anim_info.xml2
-rw-r--r--PermissionController/res/drawable-v33/status_scanning_anim_recommend.xml2
-rw-r--r--PermissionController/res/drawable-v33/status_scanning_anim_warn.xml2
-rw-r--r--PermissionController/res/drawable-v33/status_scanning_end_anim_info_to_info.xml4
-rw-r--r--PermissionController/res/drawable-v33/status_scanning_end_anim_info_to_recommend.xml4
-rw-r--r--PermissionController/res/drawable-v33/status_scanning_end_anim_info_to_warn.xml4
-rw-r--r--PermissionController/res/drawable-v33/status_scanning_end_anim_recommend_to_info.xml4
-rw-r--r--PermissionController/res/drawable-v33/status_scanning_end_anim_recommend_to_recommend.xml4
-rw-r--r--PermissionController/res/drawable-v33/status_scanning_end_anim_recommend_to_warn.xml4
-rw-r--r--PermissionController/res/drawable-v33/status_scanning_end_anim_warn_to_info.xml4
-rw-r--r--PermissionController/res/drawable-v33/status_scanning_end_anim_warn_to_recommend.xml4
-rw-r--r--PermissionController/res/drawable-v33/status_scanning_end_anim_warn_to_warn.xml4
-rw-r--r--PermissionController/res/drawable-v33/status_warn_to_scanning_anim.xml4
-rw-r--r--PermissionController/res/values-v33/dimens.xml4
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/service/LocationAccessCheck.java3
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/model/AppPermissionViewModel.kt18
-rw-r--r--PermissionController/src/com/android/permissioncontroller/safetycenter/ui/view/SafetyEntryView.kt6
-rw-r--r--tests/cts/safetycenter/src/android/safetycenter/cts/SafetyCenterManagedDeviceTest.kt159
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