aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-08-14 11:50:03 +0200
committerTobias Brunner <tobias@strongswan.org>2012-08-14 12:01:41 +0200
commitc8d0c3b03d3e97a8194882d2ca6f9ac1d57f57be (patch)
treecab2015908b101294c51f28be3cabc1002a9e371 /src
parent4db2d6336e2c5b54943fe1d9a2cdfa5e889e1775 (diff)
downloadstrongswan-c8d0c3b03d3e97a8194882d2ca6f9ac1d57f57be.tar.bz2
strongswan-c8d0c3b03d3e97a8194882d2ca6f9ac1d57f57be.tar.xz
Enable search for certificate lists (via SearchView in ActionBar)
Diffstat (limited to 'src')
-rw-r--r--src/frontends/android/res/values-de/strings.xml1
-rw-r--r--src/frontends/android/res/values/strings.xml1
-rw-r--r--src/frontends/android/src/org/strongswan/android/data/TrustedCertificateEntry.java14
-rw-r--r--src/frontends/android/src/org/strongswan/android/ui/TrustedCertificateListFragment.java35
4 files changed, 50 insertions, 1 deletions
diff --git a/src/frontends/android/res/values-de/strings.xml b/src/frontends/android/res/values-de/strings.xml
index 5207debcf..13a34b291 100644
--- a/src/frontends/android/res/values-de/strings.xml
+++ b/src/frontends/android/res/values-de/strings.xml
@@ -22,6 +22,7 @@
<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>
<!-- Log view -->
<string name="log_title">Log</string>
diff --git a/src/frontends/android/res/values/strings.xml b/src/frontends/android/res/values/strings.xml
index 8188db16e..07dd8c269 100644
--- a/src/frontends/android/res/values/strings.xml
+++ b/src/frontends/android/res/values/strings.xml
@@ -22,6 +22,7 @@
<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>
<!-- Log view -->
<string name="log_title">Log</string>
diff --git a/src/frontends/android/src/org/strongswan/android/data/TrustedCertificateEntry.java b/src/frontends/android/src/org/strongswan/android/data/TrustedCertificateEntry.java
index bedf06f74..de7ea32b4 100644
--- a/src/frontends/android/src/org/strongswan/android/data/TrustedCertificateEntry.java
+++ b/src/frontends/android/src/org/strongswan/android/data/TrustedCertificateEntry.java
@@ -107,6 +107,20 @@ public class TrustedCertificateEntry implements Comparable<TrustedCertificateEnt
}
@Override
+ public String toString()
+ { /* combination of both subject lines, used for filtering lists */
+ if (mString == null)
+ {
+ mString = mSubjectPrimary;
+ if (!mSubjectSecondary.isEmpty())
+ {
+ mString += ", " + mSubjectSecondary;
+ }
+ }
+ return mString;
+ }
+
+ @Override
public int compareTo(TrustedCertificateEntry another)
{
int diff = mSubjectPrimary.compareToIgnoreCase(another.mSubjectPrimary);
diff --git a/src/frontends/android/src/org/strongswan/android/ui/TrustedCertificateListFragment.java b/src/frontends/android/src/org/strongswan/android/ui/TrustedCertificateListFragment.java
index f5cc57ab5..4e8e0ddeb 100644
--- a/src/frontends/android/src/org/strongswan/android/ui/TrustedCertificateListFragment.java
+++ b/src/frontends/android/src/org/strongswan/android/ui/TrustedCertificateListFragment.java
@@ -34,10 +34,16 @@ import android.content.AsyncTaskLoader;
import android.content.Context;
import android.content.Loader;
import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
+import android.widget.SearchView;
+import android.widget.SearchView.OnQueryTextListener;
-public class TrustedCertificateListFragment extends ListFragment implements LoaderCallbacks<List<TrustedCertificateEntry>>
+public class TrustedCertificateListFragment extends ListFragment implements LoaderCallbacks<List<TrustedCertificateEntry>>, OnQueryTextListener
{
private OnTrustedCertificateSelectedListener mListener;
private TrustedCertificateAdapter mAdapter;
@@ -54,6 +60,7 @@ public class TrustedCertificateListFragment extends ListFragment implements Load
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
+ setHasOptionsMenu(true);
setEmptyText(getString(R.string.no_certificates));
@@ -86,6 +93,32 @@ public class TrustedCertificateListFragment extends ListFragment implements Load
}
@Override
+ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
+ {
+ MenuItem item = menu.add(R.string.search);
+ item.setIcon(android.R.drawable.ic_menu_search);
+ item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+
+ SearchView sv = new SearchView(getActivity());
+ sv.setOnQueryTextListener(this);
+ item.setActionView(sv);
+ }
+
+ @Override
+ public boolean onQueryTextSubmit(String query)
+ { /* already handled when the text changes */
+ return true;
+ }
+
+ @Override
+ public boolean onQueryTextChange(String newText)
+ {
+ String search = TextUtils.isEmpty(newText) ? null : newText;
+ mAdapter.getFilter().filter(search);
+ return true;
+ }
+
+ @Override
public Loader<List<TrustedCertificateEntry>> onCreateLoader(int id, Bundle args)
{ /* we don't need the id as we have only one loader */
return new CertificateListLoader(getActivity(), mUser);