Loading src/com/android/settings/TrustedCredentialsSettings.java +86 −76 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ import android.widget.Switch; import android.widget.TabHost; import android.widget.TextView; import com.android.internal.annotations.GuardedBy; import com.android.internal.app.UnlaunchableAppActivity; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.widget.LockPatternUtils; Loading Loading @@ -152,6 +153,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment private int mConfirmingCredentialUser; private IntConsumer mConfirmingCredentialListener; private Set<AdapterData.AliasLoader> mAliasLoaders = new ArraySet<AdapterData.AliasLoader>(2); @GuardedBy("mKeyChainConnectionByProfileId") private final SparseArray<KeyChainConnection> mKeyChainConnectionByProfileId = new SparseArray<KeyChainConnection>(); Loading Loading @@ -256,12 +258,14 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment } private void closeKeyChainConnections() { synchronized (mKeyChainConnectionByProfileId) { final int n = mKeyChainConnectionByProfileId.size(); for (int i = 0; i < n; ++i) { mKeyChainConnectionByProfileId.valueAt(i).close(); } mKeyChainConnectionByProfileId.clear(); } } private void addTab(Tab tab) { TabHost.TabSpec systemSpec = mTabHost.newTabSpec(tab.mTag) Loading Loading @@ -684,6 +688,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment SparseArray<List<CertHolder>> certHoldersByProfile = new SparseArray<List<CertHolder>>(); try { synchronized(mKeyChainConnectionByProfileId) { List<UserHandle> profiles = mUserManager.getUserProfiles(); final int n = profiles.size(); // First we get all aliases for all profiles in order to show progress Loading Loading @@ -740,6 +745,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment certHoldersByProfile.put(profileId, certHolders); } return certHoldersByProfile; } } catch (RemoteException e) { Log.e(TAG, "Remote exception while loading aliases.", e); return new SparseArray<List<CertHolder>>(); Loading Loading @@ -936,6 +942,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment public List<X509Certificate> getX509CertsFromCertHolder(CertHolder certHolder) { List<X509Certificate> certificates = null; try { synchronized (mKeyChainConnectionByProfileId) { KeyChainConnection keyChainConnection = mKeyChainConnectionByProfileId.get( certHolder.mProfileId); IKeyChainService service = keyChainConnection.getService(); Loading @@ -947,6 +954,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment X509Certificate certificate = KeyChain.toCertificate(encodedCertificate); certificates.add(certificate); } } } catch (RemoteException ex) { Log.e(TAG, "RemoteException while retrieving certificate chain for root " + certHolder.mAlias, ex); Loading Loading @@ -985,6 +993,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment @Override protected Boolean doInBackground(Void... params) { try { synchronized (mKeyChainConnectionByProfileId) { KeyChainConnection keyChainConnection = mKeyChainConnectionByProfileId.get( mCertHolder.mProfileId); IKeyChainService service = keyChainConnection.getService(); Loading @@ -995,6 +1004,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment } else { return service.deleteCaCertificate(mCertHolder.mAlias); } } } catch (CertificateEncodingException | SecurityException | IllegalStateException | RemoteException e) { Log.w(TAG, "Error while toggling alias " + mCertHolder.mAlias, e); Loading Loading
src/com/android/settings/TrustedCredentialsSettings.java +86 −76 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ import android.widget.Switch; import android.widget.TabHost; import android.widget.TextView; import com.android.internal.annotations.GuardedBy; import com.android.internal.app.UnlaunchableAppActivity; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.widget.LockPatternUtils; Loading Loading @@ -152,6 +153,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment private int mConfirmingCredentialUser; private IntConsumer mConfirmingCredentialListener; private Set<AdapterData.AliasLoader> mAliasLoaders = new ArraySet<AdapterData.AliasLoader>(2); @GuardedBy("mKeyChainConnectionByProfileId") private final SparseArray<KeyChainConnection> mKeyChainConnectionByProfileId = new SparseArray<KeyChainConnection>(); Loading Loading @@ -256,12 +258,14 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment } private void closeKeyChainConnections() { synchronized (mKeyChainConnectionByProfileId) { final int n = mKeyChainConnectionByProfileId.size(); for (int i = 0; i < n; ++i) { mKeyChainConnectionByProfileId.valueAt(i).close(); } mKeyChainConnectionByProfileId.clear(); } } private void addTab(Tab tab) { TabHost.TabSpec systemSpec = mTabHost.newTabSpec(tab.mTag) Loading Loading @@ -684,6 +688,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment SparseArray<List<CertHolder>> certHoldersByProfile = new SparseArray<List<CertHolder>>(); try { synchronized(mKeyChainConnectionByProfileId) { List<UserHandle> profiles = mUserManager.getUserProfiles(); final int n = profiles.size(); // First we get all aliases for all profiles in order to show progress Loading Loading @@ -740,6 +745,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment certHoldersByProfile.put(profileId, certHolders); } return certHoldersByProfile; } } catch (RemoteException e) { Log.e(TAG, "Remote exception while loading aliases.", e); return new SparseArray<List<CertHolder>>(); Loading Loading @@ -936,6 +942,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment public List<X509Certificate> getX509CertsFromCertHolder(CertHolder certHolder) { List<X509Certificate> certificates = null; try { synchronized (mKeyChainConnectionByProfileId) { KeyChainConnection keyChainConnection = mKeyChainConnectionByProfileId.get( certHolder.mProfileId); IKeyChainService service = keyChainConnection.getService(); Loading @@ -947,6 +954,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment X509Certificate certificate = KeyChain.toCertificate(encodedCertificate); certificates.add(certificate); } } } catch (RemoteException ex) { Log.e(TAG, "RemoteException while retrieving certificate chain for root " + certHolder.mAlias, ex); Loading Loading @@ -985,6 +993,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment @Override protected Boolean doInBackground(Void... params) { try { synchronized (mKeyChainConnectionByProfileId) { KeyChainConnection keyChainConnection = mKeyChainConnectionByProfileId.get( mCertHolder.mProfileId); IKeyChainService service = keyChainConnection.getService(); Loading @@ -995,6 +1004,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment } else { return service.deleteCaCertificate(mCertHolder.mAlias); } } } catch (CertificateEncodingException | SecurityException | IllegalStateException | RemoteException e) { Log.w(TAG, "Error while toggling alias " + mCertHolder.mAlias, e); Loading