Check DISALLOW_CONFIG_CREDENTIALS on Settings > Trusted Credentials
Remove the enable/disable button in certificate setting dialog if restriction
has been put on the respective profile. Also catch security exception just in
case.
Bug: 18899182
Change-Id: Ia247ab264c1b2d08b58456519bf471ba8c727745
diff --git a/src/com/android/settings/TrustedCredentialsSettings.java b/src/com/android/settings/TrustedCredentialsSettings.java
index 31ce975..e2b49d6 100644
--- a/src/com/android/settings/TrustedCredentialsSettings.java
+++ b/src/com/android/settings/TrustedCredentialsSettings.java
@@ -620,6 +620,9 @@
holder.mSubjectSecondaryView.setText(certHolder.mSubjectSecondary);
if (mTab.mSwitch) {
holder.mSwitch.setChecked(!certHolder.mDeleted);
+ holder.mSwitch.setEnabled(!mUserManager.hasUserRestriction(
+ UserManager.DISALLOW_CONFIG_CREDENTIALS,
+ new UserHandle(certHolder.mProfileId)));
holder.mSwitch.setVisibility(View.VISIBLE);
}
return convertView;
@@ -680,7 +683,8 @@
Button removeButton = (Button) inflater.inflate(R.layout.trusted_credential_details,
body,
false);
- if (!mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_CREDENTIALS)) {
+ if (!mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_CREDENTIALS,
+ new UserHandle(certHolder.mProfileId))) {
body.addView(removeButton);
}
removeButton.setText(certHolder.mTab.getButtonLabel(certHolder));
@@ -764,17 +768,11 @@
} else {
return service.deleteCaCertificate(mCertHolder.mAlias);
}
- } catch (CertificateEncodingException e) {
+ } catch (CertificateEncodingException | SecurityException | IllegalStateException
+ | RemoteException e) {
Log.w(TAG, "Error while toggling alias " + mCertHolder.mAlias,
e);
return false;
- } catch (IllegalStateException e) {
- // used by installCaCertificate to report errors
- Log.w(TAG, "Error while toggling alias " + mCertHolder.mAlias, e);
- return false;
- } catch (RemoteException e) {
- Log.w(TAG, "Error while toggling alias " + mCertHolder.mAlias, e);
- return false;
}
}