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)