diff options
author | Tobias Brunner <tobias@strongswan.org> | 2012-08-14 11:50:03 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2012-08-14 12:01:41 +0200 |
commit | c8d0c3b03d3e97a8194882d2ca6f9ac1d57f57be (patch) | |
tree | cab2015908b101294c51f28be3cabc1002a9e371 /src | |
parent | 4db2d6336e2c5b54943fe1d9a2cdfa5e889e1775 (diff) | |
download | strongswan-c8d0c3b03d3e97a8194882d2ca6f9ac1d57f57be.tar.bz2 strongswan-c8d0c3b03d3e97a8194882d2ca6f9ac1d57f57be.tar.xz |
Enable search for certificate lists (via SearchView in ActionBar)
Diffstat (limited to 'src')
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); |