@@ -338,6 +338,7 @@ public class PolicyManagementFragment extends BaseSearchablePolicyPreferenceFrag
338
338
private static final String RELAUNCH_IN_LOCK_TASK = "relaunch_in_lock_task" ;
339
339
private static final String REMOVE_ALL_CERTIFICATES_KEY = "remove_all_ca_certificates" ;
340
340
private static final String REMOVE_DEVICE_OWNER_KEY = "remove_device_owner" ;
341
+ private static final String REMOVE_PROFILE_OWNER_KEY = "remove_profile_owner" ;
341
342
private static final String REMOVE_KEY_CERTIFICATE_KEY = "remove_key_certificate" ;
342
343
private static final String REMOVE_USER_KEY = "remove_user" ;
343
344
private static final String SWITCH_USER_KEY = "switch_user" ;
@@ -685,6 +686,7 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
685
686
findPreference (REMOVE_MANAGED_PROFILE_KEY ).setOnPreferenceClickListener (this );
686
687
findPreference (FACTORY_RESET_DEVICE_KEY ).setOnPreferenceClickListener (this );
687
688
findPreference (REMOVE_DEVICE_OWNER_KEY ).setOnPreferenceClickListener (this );
689
+ findPreference (REMOVE_PROFILE_OWNER_KEY ).setOnPreferenceClickListener (this );
688
690
mEnableBackupServicePreference = (DpcSwitchPreference ) findPreference (ENABLE_BACKUP_SERVICE );
689
691
mEnableBackupServicePreference .setOnPreferenceChangeListener (this );
690
692
mEnableBackupServicePreference .setCustomConstraint (this ::validateDeviceOwnerBeforeQ );
@@ -1069,6 +1071,9 @@ public boolean onPreferenceClick(Preference preference) {
1069
1071
} else if (REMOVE_DEVICE_OWNER_KEY .equals (key )) {
1070
1072
showRemoveDeviceOwnerPrompt ();
1071
1073
return true ;
1074
+ } else if (REMOVE_PROFILE_OWNER_KEY .equals (key )) {
1075
+ showRemoveProfileOwnerPrompt ();
1076
+ return true ;
1072
1077
} else if (REQUEST_BUGREPORT_KEY .equals (key )) {
1073
1078
requestBugReport ();
1074
1079
return true ;
@@ -2149,6 +2154,26 @@ private void showRemoveDeviceOwnerPrompt() {
2149
2154
.show ();
2150
2155
}
2151
2156
2157
+ /** Shows a prompt to ask for confirmation on removing profile owner. */
2158
+ private void showRemoveProfileOwnerPrompt () {
2159
+ new AlertDialog .Builder (getActivity ())
2160
+ .setTitle (R .string .remove_profile_owner_title )
2161
+ .setMessage (R .string .remove_device_owner_confirmation )
2162
+ .setPositiveButton (
2163
+ android .R .string .ok ,
2164
+ (d , i ) ->
2165
+ mDevicePolicyManagerGateway .clearProfileOwner (
2166
+ (v ) -> {
2167
+ if (getActivity () != null && !getActivity ().isFinishing ()) {
2168
+ showToast (R .string .profile_owner_removed );
2169
+ getActivity ().finish ();
2170
+ }
2171
+ },
2172
+ (e ) -> onErrorLog ("clearProfileOwner" , e )))
2173
+ .setNegativeButton (android .R .string .cancel , null )
2174
+ .show ();
2175
+ }
2176
+
2152
2177
/** Shows a message box with the device wifi mac address. */
2153
2178
@ TargetApi (VERSION_CODES .N )
2154
2179
private void showWifiMacAddress () {
0 commit comments