diff options
7 files changed, 65 insertions, 5 deletions
diff --git a/src/frontends/android/res/menu/certificates.xml b/src/frontends/android/res/menu/certificates.xml new file mode 100644 index 000000000..c735e0c70 --- /dev/null +++ b/src/frontends/android/res/menu/certificates.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2014 Tobias Brunner + 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 <http://www.fsf.org/copyleft/gpl.txt>. + + 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. +--> +<menu xmlns:android="http://schemas.android.com/apk/res/android" > + + <item + android:id="@+id/menu_reload_certs" + android:title="@string/reload_trusted_certs" + android:showAsAction="withText" /> + +</menu> diff --git a/src/frontends/android/res/values-de/strings.xml b/src/frontends/android/res/values-de/strings.xml index 1f283bbf5..269ac67ab 100644 --- a/src/frontends/android/res/values-de/strings.xml +++ b/src/frontends/android/res/values-de/strings.xml @@ -20,7 +20,6 @@ <!-- Application --> <string name="app_name">strongSwan VPN Client</string> <string name="main_activity_name">strongSwan</string> - <string name="reload_trusted_certs">CA-Zertifikate neu laden</string> <string name="show_log">Log anzeigen</string> <string name="search">Suchen</string> <string name="vpn_not_supported_title">VPN nicht unterstützt</string> @@ -76,6 +75,7 @@ <!-- Trusted certificate selection --> <string name="trusted_certs_title">CA-Zertifikate</string> <string name="no_certificates">Keine Zertifikate</string> + <string name="reload_trusted_certs">CA-Zertifikate neu laden</string> <string name="system_tab">System</string> <string name="user_tab">Benutzer</string> <string name="local_tab">Importiert</string> diff --git a/src/frontends/android/res/values-pl/strings.xml b/src/frontends/android/res/values-pl/strings.xml index 8b13d4abe..1e05a66a5 100644 --- a/src/frontends/android/res/values-pl/strings.xml +++ b/src/frontends/android/res/values-pl/strings.xml @@ -20,7 +20,6 @@ <!-- Application --> <string name="app_name">strongSwan klient VPN</string> <string name="main_activity_name">strongSwan</string> - <string name="reload_trusted_certs">Przeładuj certyfikaty CA</string> <string name="show_log">Pokaż log</string> <string name="search">Szukaj</string> <string name="vpn_not_supported_title">Nie obsługiwany VPN</string> @@ -76,6 +75,7 @@ <!-- Trusted certificate selection --> <string name="trusted_certs_title">Certyfikaty CA</string> <string name="no_certificates">Brak certyfikatów</string> + <string name="reload_trusted_certs">Przeładuj certyfikaty CA</string> <string name="system_tab">System</string> <string name="user_tab">Użytkownik</string> <string name="local_tab">Imported</string> diff --git a/src/frontends/android/res/values-ru/strings.xml b/src/frontends/android/res/values-ru/strings.xml index 4a20a9b86..d90c28f9c 100644 --- a/src/frontends/android/res/values-ru/strings.xml +++ b/src/frontends/android/res/values-ru/strings.xml @@ -17,7 +17,6 @@ <!-- Application --> <string name="app_name">Клиент strongSwan VPN</string> <string name="main_activity_name">strongSwan</string> - <string name="reload_trusted_certs">Обновить сертификат CA</string> <string name="show_log">Журнал</string> <string name="search">Поиск</string> <string name="vpn_not_supported_title">VPN не поддерживается</string> @@ -73,6 +72,7 @@ <!-- Trusted certificate selection --> <string name="trusted_certs_title">Сертификаты CA</string> <string name="no_certificates">Нет доступных сертификатов</string> + <string name="reload_trusted_certs">Обновить сертификат CA</string> <string name="system_tab">Система</string> <string name="user_tab">Пользователь</string> <string name="local_tab">Imported</string> diff --git a/src/frontends/android/res/values-ua/strings.xml b/src/frontends/android/res/values-ua/strings.xml index 18759f3ea..fe1e619ba 100644 --- a/src/frontends/android/res/values-ua/strings.xml +++ b/src/frontends/android/res/values-ua/strings.xml @@ -18,7 +18,6 @@ <!-- Application --> <string name="app_name">strongSwan VPN клієнт</string> <string name="main_activity_name">strongSwan</string> - <string name="reload_trusted_certs">Перезавантажити CA сертифікати</string> <string name="show_log">Перегляд журналу</string> <string name="search">Пошук</string> <string name="vpn_not_supported_title">VPN не підтримуеться</string> @@ -74,6 +73,7 @@ <!-- Trusted certificate selection --> <string name="trusted_certs_title">Сертифікати CA</string> <string name="no_certificates">Немає сертифікатів</string> + <string name="reload_trusted_certs">Перезавантажити CA сертифікати</string> <string name="system_tab">Система</string> <string name="user_tab">Користувач</string> <string name="local_tab">Imported</string> diff --git a/src/frontends/android/res/values/strings.xml b/src/frontends/android/res/values/strings.xml index e5f47fc6c..7a8008888 100644 --- a/src/frontends/android/res/values/strings.xml +++ b/src/frontends/android/res/values/strings.xml @@ -20,7 +20,6 @@ <!-- Application --> <string name="app_name">strongSwan VPN Client</string> <string name="main_activity_name">strongSwan</string> - <string name="reload_trusted_certs">Reload CA certificates</string> <string name="show_log">View log</string> <string name="search">Search</string> <string name="vpn_not_supported_title">VPN not supported</string> @@ -76,6 +75,7 @@ <!-- Trusted certificate selection --> <string name="trusted_certs_title">CA certificates</string> <string name="no_certificates">No certificates</string> + <string name="reload_trusted_certs">Reload CA certificates</string> <string name="system_tab">System</string> <string name="user_tab">User</string> <string name="local_tab">Imported</string> diff --git a/src/frontends/android/src/org/strongswan/android/ui/TrustedCertificatesActivity.java b/src/frontends/android/src/org/strongswan/android/ui/TrustedCertificatesActivity.java index 34f3d062a..03cf84375 100644 --- a/src/frontends/android/src/org/strongswan/android/ui/TrustedCertificatesActivity.java +++ b/src/frontends/android/src/org/strongswan/android/ui/TrustedCertificatesActivity.java @@ -17,6 +17,7 @@ package org.strongswan.android.ui; import org.strongswan.android.R; import org.strongswan.android.data.VpnProfileDataSource; +import org.strongswan.android.logic.TrustedCertificateManager; import org.strongswan.android.logic.TrustedCertificateManager.TrustedCertificateSource; import org.strongswan.android.security.TrustedCertificateEntry; @@ -26,8 +27,11 @@ import android.app.Activity; import android.app.Fragment; import android.app.FragmentTransaction; import android.content.Intent; +import android.os.AsyncTask; import android.os.Bundle; +import android.view.Menu; import android.view.MenuItem; +import android.view.Window; public class TrustedCertificatesActivity extends Activity implements TrustedCertificateListFragment.OnTrustedCertificateSelectedListener { @@ -38,6 +42,7 @@ public class TrustedCertificatesActivity extends Activity implements TrustedCert public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); setContentView(R.layout.trusted_certificates_activity); ActionBar actionBar = getActionBar(); @@ -72,6 +77,13 @@ public class TrustedCertificatesActivity extends Activity implements TrustedCert } @Override + public boolean onCreateOptionsMenu(Menu menu) + { + getMenuInflater().inflate(R.menu.certificates, menu); + return true; + } + + @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) @@ -79,6 +91,9 @@ public class TrustedCertificatesActivity extends Activity implements TrustedCert case android.R.id.home: finish(); return true; + case R.id.menu_reload_certs: + new ReloadCertificatesTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + return true; } return super.onOptionsItemSelected(item); } @@ -150,4 +165,26 @@ public class TrustedCertificatesActivity extends Activity implements TrustedCert /* nothing to be done */ } } + + /** + * Class that reloads the cached CA certificates. + */ + private class ReloadCertificatesTask extends AsyncTask<Void, Void, TrustedCertificateManager> + { + @Override + protected void onPreExecute() + { + setProgressBarIndeterminateVisibility(true); + } + @Override + protected TrustedCertificateManager doInBackground(Void... params) + { + return TrustedCertificateManager.getInstance().reload(); + } + @Override + protected void onPostExecute(TrustedCertificateManager result) + { + setProgressBarIndeterminateVisibility(false); + } + } } |