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 @@
+
+
+
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 @@
strongSwan VPN Client
strongSwan
- CA-Zertifikate neu laden
Log anzeigen
Suchen
VPN nicht unterstützt
@@ -76,6 +75,7 @@
CA-Zertifikate
Keine Zertifikate
+ CA-Zertifikate neu laden
System
Benutzer
Importiert
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 @@
strongSwan klient VPN
strongSwan
- Przeładuj certyfikaty CA
Pokaż log
Szukaj
Nie obsługiwany VPN
@@ -76,6 +75,7 @@
Certyfikaty CA
Brak certyfikatów
+ Przeładuj certyfikaty CA
System
Użytkownik
Imported
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 @@
Клиент strongSwan VPN
strongSwan
- Обновить сертификат CA
Журнал
Поиск
VPN не поддерживается
@@ -73,6 +72,7 @@
Сертификаты CA
Нет доступных сертификатов
+ Обновить сертификат CA
Система
Пользователь
Imported
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 @@
strongSwan VPN клієнт
strongSwan
- Перезавантажити CA сертифікати
Перегляд журналу
Пошук
VPN не підтримуеться
@@ -74,6 +73,7 @@
Сертифікати CA
Немає сертифікатів
+ Перезавантажити CA сертифікати
Система
Користувач
Imported
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 @@
strongSwan VPN Client
strongSwan
- Reload CA certificates
View log
Search
VPN not supported
@@ -76,6 +75,7 @@
CA certificates
No certificates
+ Reload CA certificates
System
User
Imported
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();
@@ -71,6 +76,13 @@ public class TrustedCertificatesActivity extends Activity implements TrustedCert
outState.putInt("tab", getActionBar().getSelectedNavigationIndex());
}
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu)
+ {
+ getMenuInflater().inflate(R.menu.certificates, menu);
+ return true;
+ }
+
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
@@ -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
+ {
+ @Override
+ protected void onPreExecute()
+ {
+ setProgressBarIndeterminateVisibility(true);
+ }
+ @Override
+ protected TrustedCertificateManager doInBackground(Void... params)
+ {
+ return TrustedCertificateManager.getInstance().reload();
+ }
+ @Override
+ protected void onPostExecute(TrustedCertificateManager result)
+ {
+ setProgressBarIndeterminateVisibility(false);
+ }
+ }
}