Merge "Check DISALLOW_CONFIG_CREDENTIALS on Settings > Trusted Credentials" into lmp-mr1-dev
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;
             }
         }