summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/TrustedCredentialsSettings.java
diff options
context:
space:
mode:
authorBrian Carlstrom <bdc@google.com>2011-07-05 23:51:39 -0700
committerBrian Carlstrom <bdc@google.com>2011-07-06 10:43:07 -0700
commit10cc989346e1beda02a0dc5e0ca257734bbd21fc (patch)
tree218600e471d84e6456c6b05fa157d936f0e156b6 /src/com/android/settings/TrustedCredentialsSettings.java
parentfce1543ae90c613ee0e3bfd76ad43ca5e332b4bf (diff)
downloadpackages_apps_Settings-10cc989346e1beda02a0dc5e0ca257734bbd21fc.tar.gz
packages_apps_Settings-10cc989346e1beda02a0dc5e0ca257734bbd21fc.tar.bz2
packages_apps_Settings-10cc989346e1beda02a0dc5e0ca257734bbd21fc.zip
Improved presentation of CA list
Change-Id: Ibc6dd9d553c3f7f53453fb43e9842afe789d8b50
Diffstat (limited to 'src/com/android/settings/TrustedCredentialsSettings.java')
-rw-r--r--src/com/android/settings/TrustedCredentialsSettings.java54
1 files changed, 31 insertions, 23 deletions
diff --git a/src/com/android/settings/TrustedCredentialsSettings.java b/src/com/android/settings/TrustedCredentialsSettings.java
index 3e50440ce..133940908 100644
--- a/src/com/android/settings/TrustedCredentialsSettings.java
+++ b/src/com/android/settings/TrustedCredentialsSettings.java
@@ -191,14 +191,18 @@ public class TrustedCredentialsSettings extends Fragment {
LayoutInflater inflater = LayoutInflater.from(getActivity());
view = inflater.inflate(R.layout.trusted_credential, parent, false);
holder = new ViewHolder();
- holder.mSubjectView = (TextView)view.findViewById(R.id.trusted_credential_subject);
+ holder.mSubjectPrimaryView = (TextView)
+ view.findViewById(R.id.trusted_credential_subject_primary);
+ holder.mSubjectSecondaryView = (TextView)
+ view.findViewById(R.id.trusted_credential_subject_secondary);
holder.mCheckBox = (CheckBox) view.findViewById(R.id.trusted_credential_status);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
CertHolder certHolder = mCertHolders.get(position);
- holder.mSubjectView.setText(certHolder.mSubject);
+ holder.mSubjectPrimaryView.setText(certHolder.mSubjectPrimary);
+ holder.mSubjectSecondaryView.setText(certHolder.mSubjectSecondary);
if (mTab.mCheckbox) {
holder.mCheckBox.setChecked(!certHolder.mDeleted);
holder.mCheckBox.setVisibility(View.VISIBLE);
@@ -245,7 +249,8 @@ public class TrustedCredentialsSettings extends Fragment {
private final X509Certificate mX509Cert;
private final SslCertificate mSslCert;
- private final String mSubject;
+ private final String mSubjectPrimary;
+ private final String mSubjectSecondary;
private boolean mDeleted;
private CertHolder(TrustedCertificateStore store,
@@ -264,32 +269,34 @@ public class TrustedCredentialsSettings extends Fragment {
String cn = mSslCert.getIssuedTo().getCName();
String o = mSslCert.getIssuedTo().getOName();
String ou = mSslCert.getIssuedTo().getUName();
- StringBuilder sb = new StringBuilder();
- if (!cn.isEmpty()) {
- sb.append("CN=" + cn);
- }
+ // if we have a O, use O as primary subject, secondary prefer CN over OU
+ // if we don't have an O, use CN as primary, empty secondary
+ // if we don't have O or CN, use DName as primary, empty secondary
if (!o.isEmpty()) {
- if (sb.length() != 0) {
- sb.append(", ");
- }
- sb.append("O=" + o);
- }
- if (!ou.isEmpty()) {
- if (sb.length() != 0) {
- sb.append(", ");
+ if (!cn.isEmpty()) {
+ mSubjectPrimary = o;
+ mSubjectSecondary = cn;
+ } else {
+ mSubjectPrimary = o;
+ mSubjectSecondary = ou;
}
- sb.append("OU=" + ou);
- }
- if (sb.length() != 0) {
- mSubject = sb.toString();
} else {
- mSubject = mSslCert.getIssuedTo().getDName();
+ if (!cn.isEmpty()) {
+ mSubjectPrimary = cn;
+ mSubjectSecondary = "";
+ } else {
+ mSubjectPrimary = mSslCert.getIssuedTo().getDName();
+ mSubjectSecondary = "";
+ }
}
-
mDeleted = mTab.deleted(mStore, mAlias);
}
@Override public int compareTo(CertHolder o) {
- return this.mSubject.compareTo(o.mSubject);
+ int primary = this.mSubjectPrimary.compareToIgnoreCase(o.mSubjectPrimary);
+ if (primary != 0) {
+ return primary;
+ }
+ return this.mSubjectSecondary.compareToIgnoreCase(o.mSubjectSecondary);
}
@Override public boolean equals(Object o) {
if (!(o instanceof CertHolder)) {
@@ -304,7 +311,8 @@ public class TrustedCredentialsSettings extends Fragment {
}
private static class ViewHolder {
- private TextView mSubjectView;
+ private TextView mSubjectPrimaryView;
+ private TextView mSubjectSecondaryView;
private CheckBox mCheckBox;
}