diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-10-08 14:42:56 +0200 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-10-08 14:42:56 +0200 |
commit | adcc07ca653db0c8a392a8dd7d75d254bd4cdbc1 (patch) | |
tree | 4a19e1cc7560ae84a074fb716a81240bacf956c4 /OpenKeychain/src | |
parent | 678265483a9ec7457dd75bfdaba02bf8e981b6a5 (diff) | |
download | open-keychain-adcc07ca653db0c8a392a8dd7d75d254bd4cdbc1.tar.gz open-keychain-adcc07ca653db0c8a392a8dd7d75d254bd4cdbc1.tar.bz2 open-keychain-adcc07ca653db0c8a392a8dd7d75d254bd4cdbc1.zip |
Filter key list by certified keys
Diffstat (limited to 'OpenKeychain/src')
4 files changed, 81 insertions, 4 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index 8c4278835..4024ee7fe 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -49,9 +49,11 @@ import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AbsListView.MultiChoiceModeListener; import android.widget.AdapterView; +import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.ListView; +import android.widget.Spinner; import android.widget.TextView; import org.sufficientlysecure.keychain.Constants; @@ -68,8 +70,10 @@ import org.sufficientlysecure.keychain.ui.util.Highlighter; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.ui.util.Notify; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.List; import se.emilsjolander.stickylistheaders.StickyListHeadersAdapter; import se.emilsjolander.stickylistheaders.StickyListHeadersListView; @@ -85,10 +89,13 @@ public class KeyListFragment extends LoaderFragment private KeyListAdapter mAdapter; private StickyListHeadersListView mStickyList; private ListAwareSwipeRefreshLayout mSwipeRefreshLayout; + private Spinner mFilterSpinner; // saves the mode object for multiselect, needed for reset at some point private ActionMode mActionMode = null; + private boolean mShowAllKeys = false; + private String mQuery; private SearchView mSearchView; // empty list layout @@ -213,6 +220,42 @@ public class KeyListFragment extends LoaderFragment public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); + mFilterSpinner = (Spinner) getActivity().findViewById(R.id.key_list_filter_spinner); + List<String> list = new ArrayList<String>(); + list.add(getString(R.string.key_list_filter_show_certified)); + list.add(getString(R.string.key_list_filter_show_all)); + + ArrayAdapter<String> dataAdapter = new ArrayAdapter<String> + (getActivity(), android.R.layout.simple_spinner_item, list); + + dataAdapter.setDropDownViewResource + (android.R.layout.simple_spinner_dropdown_item); + + mFilterSpinner.setAdapter(dataAdapter); + + mFilterSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { + switch (position) { + case 0: { + mShowAllKeys = false; + getLoaderManager().restartLoader(0, null, KeyListFragment.this); + break; + } + case 1: { + mShowAllKeys = true; + getLoaderManager().restartLoader(0, null, KeyListFragment.this); + break; + } + } + } + + @Override + public void onNothingSelected(AdapterView<?> parent) { + + } + }); + mStickyList.setOnItemClickListener(this); mStickyList.setAreHeadersSticky(true); mStickyList.setDrawingListUnderStickyHeader(false); @@ -355,6 +398,14 @@ public class KeyListFragment extends LoaderFragment whereArgs[i] = "%" + words[i] + "%"; } } + if (!mShowAllKeys) { + if (where == null) { + where = ""; + } else { + where += " AND "; + } + where += KeyRings.VERIFIED + " != 0"; + } // Now create and return a CursorLoader that will take care of // creating a Cursor for the data being displayed. diff --git a/OpenKeychain/src/main/res/layout/key_list_content.xml b/OpenKeychain/src/main/res/layout/key_list_content.xml index 66b009c78..8ab63610f 100644 --- a/OpenKeychain/src/main/res/layout/key_list_content.xml +++ b/OpenKeychain/src/main/res/layout/key_list_content.xml @@ -6,17 +6,42 @@ <include layout="@layout/notify_area" /> - <FrameLayout + <LinearLayout android:id="@+id/content_frame" android:layout_marginLeft="@dimen/drawer_content_padding" + android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> + <LinearLayout + android:orientation="vertical" + android:background="@color/holo_gray_bright" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <Spinner + android:id="@+id/key_list_filter_spinner" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="12dp" + android:layout_marginRight="12dp" + android:layout_marginTop="4dp" + android:layout_marginBottom="4dp" /> + + <View + android:layout_width="match_parent" + android:layout_height="1dip" + android:background="?android:attr/listDivider" /> + + </LinearLayout> + <fragment android:id="@+id/key_list_fragment" android:name="org.sufficientlysecure.keychain.ui.KeyListFragment" android:layout_width="match_parent" - android:layout_height="match_parent" /> - </FrameLayout> + android:layout_height="0dp" + android:layout_weight="1" /> + + </LinearLayout> </LinearLayout>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/view_key_main_fragment.xml b/OpenKeychain/src/main/res/layout/view_key_main_fragment.xml index 6bcb216d7..691ee357d 100644 --- a/OpenKeychain/src/main/res/layout/view_key_main_fragment.xml +++ b/OpenKeychain/src/main/res/layout/view_key_main_fragment.xml @@ -147,7 +147,6 @@ android:id="@+id/view_key_action_update" android:paddingLeft="8dp" android:paddingRight="8dp" - android:layout_marginBottom="8dp" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="match_parent" android:layout_height="wrap_content" diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index afcd19f25..7fdc1b419 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -489,6 +489,8 @@ <string name="key_list_empty_text3">"or"</string> <string name="key_list_empty_button_create">"creating your own key"</string> <string name="key_list_empty_button_import">"importing an existing key."</string> + <string name="key_list_filter_show_all">"Show all keys"</string> + <string name="key_list_filter_show_certified">"Show certified keys only"</string> <!-- Key view --> <string name="key_view_action_edit">"Edit key"</string> |