@@ -400,6 +400,7 @@ public class PolicyManagementFragment extends BaseSearchablePolicyPreferenceFrag
400
400
private static final String SET_LOCATION_MODE_KEY = "set_location_mode" ;
401
401
private static final String SUSPEND_PERSONAL_APPS_KEY = "suspend_personal_apps" ;
402
402
private static final String PROFILE_MAX_TIME_OFF_KEY = "profile_max_time_off" ;
403
+ private static final String COMMON_CRITERIA_MODE_KEY = "common_criteria_mode" ;
403
404
404
405
private static final String BATTERY_PLUGGED_ANY = Integer .toString (
405
406
BatteryManager .BATTERY_PLUGGED_AC |
@@ -458,6 +459,7 @@ public class PolicyManagementFragment extends BaseSearchablePolicyPreferenceFrag
458
459
private DpcSwitchPreference mInstallNonMarketAppsPreference ;
459
460
460
461
private DpcSwitchPreference mEnableBackupServicePreference ;
462
+ private DpcSwitchPreference mCommonCriteriaModePreference ;
461
463
private SwitchPreference mEnableSecurityLoggingPreference ;
462
464
private SwitchPreference mEnableNetworkLoggingPreference ;
463
465
private DpcSwitchPreference mSetAutoTimeRequiredPreference ;
@@ -608,6 +610,8 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
608
610
ENABLE_BACKUP_SERVICE );
609
611
mEnableBackupServicePreference .setOnPreferenceChangeListener (this );
610
612
mEnableBackupServicePreference .setCustomConstraint (this ::validateDeviceOwnerBeforeQ );
613
+ mCommonCriteriaModePreference = (DpcSwitchPreference ) findPreference (
614
+ COMMON_CRITERIA_MODE_KEY );
611
615
findPreference (REQUEST_BUGREPORT_KEY ).setOnPreferenceClickListener (this );
612
616
mEnableSecurityLoggingPreference =
613
617
(SwitchPreference ) findPreference (ENABLE_SECURITY_LOGGING );
@@ -1431,6 +1435,9 @@ public boolean onPreferenceChange(Preference preference, Object newValue) {
1431
1435
setBackupServiceEnabled ((Boolean ) newValue );
1432
1436
reloadEnableBackupServiceUi ();
1433
1437
return true ;
1438
+ case COMMON_CRITERIA_MODE_KEY :
1439
+ setCommonCriteriaModeEnabled ((Boolean ) newValue );
1440
+ reloadCommonCriteriaModeUi ();
1434
1441
case ENABLE_SECURITY_LOGGING :
1435
1442
setSecurityLoggingEnabled ((Boolean ) newValue );
1436
1443
reloadEnableSecurityLoggingUi ();
@@ -1588,6 +1595,18 @@ private void setBackupServiceEnabled(boolean enabled) {
1588
1595
mDevicePolicyManager .setBackupServiceEnabled (mAdminComponentName , enabled );
1589
1596
}
1590
1597
1598
+ //@TargetApi(VERSION_CODES.R)
1599
+ private void setCommonCriteriaModeEnabled (boolean enabled ) {
1600
+ try {
1601
+ ReflectionUtil .invoke (mDevicePolicyManager ,
1602
+ "setCommonCriteriaModeEnabled" ,
1603
+ new Class <?>[]{ComponentName .class , boolean .class },
1604
+ mAdminComponentName , enabled );
1605
+ } catch (ReflectionIsTemporaryException e ) {
1606
+ Log .e (TAG , "Error invoking setCommonCriteriaModeEnabled" , e );
1607
+ }
1608
+ }
1609
+
1591
1610
@ TargetApi (VERSION_CODES .M )
1592
1611
private void setKeyGuardDisabled (boolean disabled ) {
1593
1612
if (!mDevicePolicyManager .setKeyguardDisabled (mAdminComponentName , disabled )) {
@@ -2549,7 +2568,22 @@ private void reloadEnableSecurityLoggingUi() {
2549
2568
private void reloadEnableBackupServiceUi () {
2550
2569
if (mEnableBackupServicePreference .isEnabled ()) {
2551
2570
mEnableBackupServicePreference .setChecked (mDevicePolicyManager .isBackupServiceEnabled (
2571
+ mAdminComponentName ));
2572
+ }
2573
+ }
2574
+
2575
+ //@TargetApi(VERSION_CODES.R)
2576
+ private void reloadCommonCriteriaModeUi () {
2577
+ if (mCommonCriteriaModePreference .isEnabled ()) {
2578
+ try {
2579
+ mCommonCriteriaModePreference .setChecked (
2580
+ (Boolean ) ReflectionUtil .invoke (mDevicePolicyManager ,
2581
+ "isCommonCriteriaModeEnabled" ,
2582
+ new Class <?>[]{ComponentName .class },
2552
2583
mAdminComponentName ));
2584
+ } catch (ReflectionIsTemporaryException e ) {
2585
+ Log .e (TAG , "Error invoking isCommonCriteriaModeEnabled" , e );
2586
+ }
2553
2587
}
2554
2588
}
2555
2589
0 commit comments