From c8b942a1e218d0984c02b266994a6ef6855f9fdb Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 7 Aug 2012 14:02:38 +0200 Subject: [PATCH] Menu option added to reload cached CA certificates This might be required if the user installs a new CA certificate. --- src/frontends/android/res/menu/main.xml | 23 +++++++++++ src/frontends/android/res/values/strings.xml | 1 + .../strongswan/android/ui/MainActivity.java | 41 ++++++++++++++++++- 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 src/frontends/android/res/menu/main.xml diff --git a/src/frontends/android/res/menu/main.xml b/src/frontends/android/res/menu/main.xml new file mode 100644 index 000000000..f5d1e31cf --- /dev/null +++ b/src/frontends/android/res/menu/main.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/src/frontends/android/res/values/strings.xml b/src/frontends/android/res/values/strings.xml index 53a94bb30..761b16a69 100644 --- a/src/frontends/android/res/values/strings.xml +++ b/src/frontends/android/res/values/strings.xml @@ -19,6 +19,7 @@ strongSwan VPN Client + Reload CA certificates No VPN profiles. diff --git a/src/frontends/android/src/org/strongswan/android/ui/MainActivity.java b/src/frontends/android/src/org/strongswan/android/ui/MainActivity.java index 063d7a961..6a2988904 100644 --- a/src/frontends/android/src/org/strongswan/android/ui/MainActivity.java +++ b/src/frontends/android/src/org/strongswan/android/ui/MainActivity.java @@ -17,6 +17,7 @@ package org.strongswan.android.ui; +import org.strongswan.android.R; import org.strongswan.android.logic.TrustedCertificateManager; import android.app.ActionBar; @@ -24,6 +25,9 @@ import android.app.Activity; import android.content.Intent; import android.net.VpnService; import android.os.Bundle; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.Window; public class MainActivity extends Activity @@ -57,7 +61,42 @@ public class MainActivity extends Activity }).start(); } - private void startVpnService() + @Override + public boolean onCreateOptionsMenu(Menu menu) + { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.main, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) + { + switch (item.getItemId()) + { + case R.id.menu_reload_certs: + setProgressBarIndeterminateVisibility(true); + new Thread(new Runnable() { + @Override + public void run() + { + TrustedCertificateManager.getInstance().reload(); + runOnUiThread(new Runnable() { + @Override + public void run() + { + setProgressBarIndeterminateVisibility(false); + } + }); + } + }).start(); + return true; + default: + return super.onOptionsItemSelected(item); + } + } + + protected void prepareVpnService() { Intent intent = VpnService.prepare(this); if (intent != null)