From cdcf754f6406b2179544c0a899588c01256e6758 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Sat, 30 Apr 2016 16:59:00 +0200 Subject: [PATCH] android: Add adapter for user ID selection --- .../adapter/CertificateIdentitiesAdapter.java | 65 +++++++++++++++++++ .../app/src/main/res/values-de/strings.xml | 3 + .../app/src/main/res/values-pl/strings.xml | 3 + .../app/src/main/res/values-ru/strings.xml | 3 + .../app/src/main/res/values-ua/strings.xml | 3 + .../app/src/main/res/values/strings.xml | 3 + 6 files changed, 80 insertions(+) create mode 100644 src/frontends/android/app/src/main/java/org/strongswan/android/ui/adapter/CertificateIdentitiesAdapter.java diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/adapter/CertificateIdentitiesAdapter.java b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/adapter/CertificateIdentitiesAdapter.java new file mode 100644 index 000000000..c8e3df38b --- /dev/null +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/adapter/CertificateIdentitiesAdapter.java @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2016 Tobias Brunner + * HSR Hochschule fuer Technik Rapperswil + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. See . + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +package org.strongswan.android.ui.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.TextView; + +import org.strongswan.android.R; +import org.strongswan.android.security.TrustedCertificateEntry; + +import java.util.List; + +public class CertificateIdentitiesAdapter extends ArrayAdapter +{ + TrustedCertificateEntry mCertificate; + + public CertificateIdentitiesAdapter(Context context) + { + super(context, android.R.layout.simple_dropdown_item_1line); + extractIdentities(); + } + + /** + * Set a new certificate for this adapter. + * + * @param certificate the certificate to extract identities from (null to clear) + */ + public void setCertificate(TrustedCertificateEntry certificate) + { + mCertificate = certificate; + clear(); + extractIdentities(); + } + + private void extractIdentities() + { + if (mCertificate == null) + { + add(getContext().getString(R.string.profile_user_select_id_init)); + } + else + { + add(String.format(getContext().getString(R.string.profile_user_select_id_default), + mCertificate.getCertificate().getSubjectDN().getName())); + addAll(mCertificate.getSubjectAltNames()); + } + } +} diff --git a/src/frontends/android/app/src/main/res/values-de/strings.xml b/src/frontends/android/app/src/main/res/values-de/strings.xml index b5def060a..15ccf24fd 100644 --- a/src/frontends/android/app/src/main/res/values-de/strings.xml +++ b/src/frontends/android/app/src/main/res/values-de/strings.xml @@ -61,6 +61,9 @@ Benutzer-Zertifikat Benutzer-Zertifikat auswählen Wählen Sie ein bestimmtes Benutzer-Zertifikat + Benutzer-Identität + Wählen Sie zuerst ein Benutzer-Zertifikat + Standardwert (%1$s) CA-Zertifikat Automatisch wählen CA-Zertifikat auswählen diff --git a/src/frontends/android/app/src/main/res/values-pl/strings.xml b/src/frontends/android/app/src/main/res/values-pl/strings.xml index cfd877f50..c7aadb994 100644 --- a/src/frontends/android/app/src/main/res/values-pl/strings.xml +++ b/src/frontends/android/app/src/main/res/values-pl/strings.xml @@ -61,6 +61,9 @@ Certyfikat użytkownika Wybierz certyfikat użytkownika >Wybierz określony certyfikat użytkownika + User identity + Select a certificate first + Default (%1$s) Certyfikat CA Wybierz automatycznie Wybierz certyfikat CA diff --git a/src/frontends/android/app/src/main/res/values-ru/strings.xml b/src/frontends/android/app/src/main/res/values-ru/strings.xml index cfd8129bd..c0a6484f8 100644 --- a/src/frontends/android/app/src/main/res/values-ru/strings.xml +++ b/src/frontends/android/app/src/main/res/values-ru/strings.xml @@ -58,6 +58,9 @@ Сертификат пользователя Выбрать сертификат пользователя Выбрать сертификат пользователя + User identity + Select a certificate first + Default (%1$s) Сертификат CA Выбрать автоматически Выбрать сертификат CA diff --git a/src/frontends/android/app/src/main/res/values-ua/strings.xml b/src/frontends/android/app/src/main/res/values-ua/strings.xml index 85969898f..a852dfdba 100644 --- a/src/frontends/android/app/src/main/res/values-ua/strings.xml +++ b/src/frontends/android/app/src/main/res/values-ua/strings.xml @@ -59,6 +59,9 @@ Сертифікат користувача Виберіть сертифікат користувача Вибрати спеціальний сертифікат користувача + User identity + Select a certificate first + Default (%1$s) Сертифікат CA Вибрати автоматично Вибрати сертифікат CA diff --git a/src/frontends/android/app/src/main/res/values/strings.xml b/src/frontends/android/app/src/main/res/values/strings.xml index d704da062..d70712181 100644 --- a/src/frontends/android/app/src/main/res/values/strings.xml +++ b/src/frontends/android/app/src/main/res/values/strings.xml @@ -61,6 +61,9 @@ User certificate Select user certificate Select a specific user certificate + User identity + Select a certificate first + Default (%1$s) CA certificate Select automatically Select CA certificate