From: Tobias Brunner Date: Tue, 14 Aug 2012 08:10:52 +0000 (+0200) Subject: Added an activity that shows lists of CA certificates in two tabs X-Git-Tag: 5.0.1~198 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b0b0eac6eb0701ae38b769e0283ad26d1299e46b;p=thirdparty%2Fstrongswan.git Added an activity that shows lists of CA certificates in two tabs --- diff --git a/src/frontends/android/AndroidManifest.xml b/src/frontends/android/AndroidManifest.xml index 747fe1df30..59e867956e 100644 --- a/src/frontends/android/AndroidManifest.xml +++ b/src/frontends/android/AndroidManifest.xml @@ -41,6 +41,10 @@ + + diff --git a/src/frontends/android/res/layout/trusted_certificates_activity.xml b/src/frontends/android/res/layout/trusted_certificates_activity.xml new file mode 100644 index 0000000000..966ecf25e1 --- /dev/null +++ b/src/frontends/android/res/layout/trusted_certificates_activity.xml @@ -0,0 +1,20 @@ + + + + + diff --git a/src/frontends/android/res/values-de/strings.xml b/src/frontends/android/res/values-de/strings.xml index ce5cb6adbc..bbbea55e3a 100644 --- a/src/frontends/android/res/values-de/strings.xml +++ b/src/frontends/android/res/values-de/strings.xml @@ -58,7 +58,10 @@ Bitte wählen Sie eines aus oder aktivieren Sie Automatisch wählen + CA-Zertifikate Keine Zertifikate + System + Benutzer Status: diff --git a/src/frontends/android/res/values/strings.xml b/src/frontends/android/res/values/strings.xml index 591bfff5ef..823399ae87 100644 --- a/src/frontends/android/res/values/strings.xml +++ b/src/frontends/android/res/values/strings.xml @@ -58,7 +58,10 @@ Please select one or activate Select automatically + CA certificates No certificates + System + User Status: diff --git a/src/frontends/android/src/org/strongswan/android/ui/TrustedCertificatesActivity.java b/src/frontends/android/src/org/strongswan/android/ui/TrustedCertificatesActivity.java new file mode 100644 index 0000000000..e4a9f33042 --- /dev/null +++ b/src/frontends/android/src/org/strongswan/android/ui/TrustedCertificatesActivity.java @@ -0,0 +1,129 @@ +/* + * Copyright (C) 2012 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 . + * + * 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; + +import org.strongswan.android.R; + +import android.app.ActionBar; +import android.app.ActionBar.Tab; +import android.app.Activity; +import android.app.Fragment; +import android.app.FragmentTransaction; +import android.os.Bundle; +import android.view.MenuItem; + +public class TrustedCertificatesActivity extends Activity +{ + @Override + public void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + setContentView(R.layout.trusted_certificates_activity); + + ActionBar actionBar = getActionBar(); + actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); + + actionBar.addTab(actionBar + .newTab() + .setText(R.string.system_tab) + .setTabListener(new TrustedCertificatesTabListener(this, "system", false))); + actionBar.addTab(actionBar + .newTab() + .setText(R.string.user_tab) + .setTabListener(new TrustedCertificatesTabListener(this, "user", true))); + + if (savedInstanceState != null) + { + actionBar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0)); + } + } + + @Override + protected void onSaveInstanceState(Bundle outState) + { + super.onSaveInstanceState(outState); + outState.putInt("tab", getActionBar().getSelectedNavigationIndex()); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) + { + switch (item.getItemId()) + { + case android.R.id.home: + finish(); + return true; + } + return super.onOptionsItemSelected(item); + } + + public static class TrustedCertificatesTabListener implements ActionBar.TabListener + { + private final String mTag; + private final boolean mUser; + private Fragment mFragment; + + public TrustedCertificatesTabListener(Activity activity, String tag, boolean user) + { + mTag = tag; + mUser = user; + /* check to see if we already have a fragment for this tab, probably + * from a previously saved state. if so, deactivate it, because the + * initial state is that no tab is shown */ + mFragment = activity.getFragmentManager().findFragmentByTag(mTag); + if (mFragment != null && !mFragment.isDetached()) + { + FragmentTransaction ft = activity.getFragmentManager().beginTransaction(); + ft.detach(mFragment); + ft.commit(); + } + } + + @Override + public void onTabSelected(Tab tab, FragmentTransaction ft) + { + if (mFragment == null) + { + mFragment = new TrustedCertificateListFragment(); + if (mUser) + { /* use non empty arguments to indicate this */ + mFragment.setArguments(new Bundle()); + } + ft.add(android.R.id.content, mFragment, mTag); + } + else + { + ft.attach(mFragment); + } + } + + @Override + public void onTabUnselected(Tab tab, FragmentTransaction ft) + { + if (mFragment != null) + { + ft.detach(mFragment); + } + } + + @Override + public void onTabReselected(Tab tab, FragmentTransaction ft) + { + /* nothing to be done */ + } + } +}