aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain
diff options
context:
space:
mode:
Diffstat (limited to 'OpenPGP-Keychain')
-rw-r--r--OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java13
-rw-r--r--OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyCertsFragment.java34
-rw-r--r--OpenPGP-Keychain/src/main/res/layout/view_key_certs_fragment.xml29
-rw-r--r--OpenPGP-Keychain/src/main/res/values/strings.xml1
4 files changed, 56 insertions, 21 deletions
diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java
index e582ec559..765bd1c44 100644
--- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java
+++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java
@@ -88,7 +88,8 @@ public class KeychainProvider extends ContentProvider {
private static final int CERTS_BY_KEY_ID = 402;
private static final int CERTS_BY_ROW_ID = 403;
private static final int CERTS_BY_KEY_ROW_ID = 404;
- private static final int CERTS_BY_CERTIFIER_ID = 405;
+ private static final int CERTS_BY_KEY_ROW_ID_ALL = 405;
+ private static final int CERTS_BY_CERTIFIER_ID = 406;
// private static final int DATA_STREAM = 401;
@@ -257,6 +258,8 @@ public class KeychainProvider extends ContentProvider {
matcher.addURI(authority, KeychainContract.BASE_CERTS + "/"
+ KeychainContract.PATH_BY_KEY_ROW_ID + "/#", CERTS_BY_KEY_ROW_ID);
matcher.addURI(authority, KeychainContract.BASE_CERTS + "/"
+ + KeychainContract.PATH_BY_KEY_ROW_ID + "/#/all", CERTS_BY_KEY_ROW_ID_ALL);
+ matcher.addURI(authority, KeychainContract.BASE_CERTS + "/"
+ KeychainContract.PATH_BY_KEY_ID + "/#", CERTS_BY_KEY_ID);
matcher.addURI(authority, KeychainContract.BASE_CERTS + "/"
+ KeychainContract.PATH_BY_CERTIFIER_ID + "/#", CERTS_BY_CERTIFIER_ID);
@@ -717,6 +720,7 @@ public class KeychainProvider extends ContentProvider {
break;
case CERTS_BY_KEY_ROW_ID:
+ case CERTS_BY_KEY_ROW_ID_ALL:
qb.setTables(Tables.CERTS
+ " JOIN " + Tables.USER_IDS + " ON ("
+ Tables.CERTS + "." + Certs.KEY_RING_ROW_ID + " = "
@@ -725,9 +729,10 @@ public class KeychainProvider extends ContentProvider {
+ Tables.CERTS + "." + Certs.RANK + " = "
+ Tables.USER_IDS + "." + UserIds.RANK
// noooooooot sure about this~ database design
- + ") LEFT JOIN " + Tables.KEYS + " ON ("
- + Tables.CERTS + "." + Certs.KEY_ID_CERTIFIER + " = "
- + Tables.KEYS + "." + Keys.KEY_ID
+ + ")" + (match == CERTS_BY_KEY_ROW_ID_ALL ? " LEFT" : "")
+ + " JOIN " + Tables.KEYS + " ON ("
+ + Tables.CERTS + "." + Certs.KEY_ID_CERTIFIER + " = "
+ + Tables.KEYS + "." + Keys.KEY_ID
+ ") LEFT JOIN " + Tables.USER_IDS + " AS signer ON ("
+ Tables.KEYS + "." + Keys.KEY_RING_ROW_ID + " = "
+ "signer." + UserIds.KEY_RING_ROW_ID
diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyCertsFragment.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyCertsFragment.java
index abed097c1..3158ca713 100644
--- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyCertsFragment.java
+++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyCertsFragment.java
@@ -19,9 +19,7 @@ package org.sufficientlysecure.keychain.ui;
import android.annotation.SuppressLint;
import android.content.Context;
-import android.content.Intent;
import android.database.Cursor;
-import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
@@ -32,22 +30,17 @@ import android.support.v4.widget.CursorAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
import android.widget.TextView;
-import com.beardedhen.androidbootstrap.BootstrapButton;
-
import org.sufficientlysecure.keychain.Constants;
-import org.sufficientlysecure.keychain.Id;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.pgp.PgpKeyHelper;
import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.provider.KeychainDatabase;
import org.sufficientlysecure.keychain.util.Log;
-import java.nio.ByteBuffer;
-import java.util.HashMap;
-
import se.emilsjolander.stickylistheaders.ApiLevelTooLowException;
import se.emilsjolander.stickylistheaders.StickyListHeadersAdapter;
import se.emilsjolander.stickylistheaders.StickyListHeadersListView;
@@ -75,10 +68,12 @@ public class ViewKeyCertsFragment extends Fragment
public static final String ARG_KEYRING_ROW_ID = "row_id";
private StickyListHeadersListView mStickyList;
+ private CheckBox mShowUnknown;
private CertListAdapter mAdapter;
+ private boolean mUnknownShown = false;
- private Uri mDataUri;
+ private Uri mBaseUri, mDataUri;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@@ -87,10 +82,26 @@ public class ViewKeyCertsFragment extends Fragment
return view;
}
+ private void toggleShowUnknown(boolean shown) {
+ if(shown)
+ mDataUri = mBaseUri.buildUpon().appendPath("all").build();
+ else
+ mDataUri = mBaseUri;
+ getLoaderManager().restartLoader(0, null, this);
+ }
+
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
+ mShowUnknown = (CheckBox) getActivity().findViewById(R.id.showUnknown);
+ mShowUnknown.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
+ toggleShowUnknown(b);
+ }
+ });
+
mStickyList = (StickyListHeadersListView) getActivity().findViewById(R.id.list);
if (!getArguments().containsKey(ARG_KEYRING_ROW_ID)) {
@@ -100,7 +111,7 @@ public class ViewKeyCertsFragment extends Fragment
}
long rowId = getArguments().getLong(ARG_KEYRING_ROW_ID);
- mDataUri = KeychainContract.Certs.buildCertsByKeyRowIdUri(Long.toString(rowId));
+ mBaseUri = KeychainContract.Certs.buildCertsByKeyRowIdUri(Long.toString(rowId));
mStickyList.setAreHeadersSticky(true);
mStickyList.setDrawingListUnderStickyHeader(false);
@@ -121,6 +132,7 @@ public class ViewKeyCertsFragment extends Fragment
// Prepare the loader. Either re-connect with an existing one,
// or start a new one.
+ mDataUri = mBaseUri;
getLoaderManager().initLoader(0, null, this);
}
diff --git a/OpenPGP-Keychain/src/main/res/layout/view_key_certs_fragment.xml b/OpenPGP-Keychain/src/main/res/layout/view_key_certs_fragment.xml
index faa26b525..40db5e766 100644
--- a/OpenPGP-Keychain/src/main/res/layout/view_key_certs_fragment.xml
+++ b/OpenPGP-Keychain/src/main/res/layout/view_key_certs_fragment.xml
@@ -4,18 +4,35 @@
android:layout_height="match_parent"
android:fillViewport="true">
- <LinearLayout
+ <RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:orientation="vertical"
- android:paddingLeft="16dp"
- android:paddingRight="16dp">
+ android:orientation="vertical">
<view
android:layout_width="match_parent"
android:layout_height="match_parent"
class="se.emilsjolander.stickylistheaders.StickyListHeadersListView"
- android:id="@+id/list" />
- </LinearLayout>
+ android:id="@+id/list"
+ android:layout_alignParentTop="true"
+ android:layout_above="@+id/showUnknown"
+ android:paddingRight="32dp"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
+ android:paddingLeft="16dp" />
+
+ <CheckBox
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/show_unknown_signatures"
+ android:id="@+id/showUnknown"
+ android:enabled="true"
+ android:layout_alignParentBottom="true"
+ android:layout_alignEnd="@+id/list"
+ android:singleLine="false"
+ android:layout_alignParentRight="true"
+ android:layout_marginRight="16dp" />
+
+ </RelativeLayout>
</ScrollView> \ No newline at end of file
diff --git a/OpenPGP-Keychain/src/main/res/values/strings.xml b/OpenPGP-Keychain/src/main/res/values/strings.xml
index e13b9e0c6..42f74fda2 100644
--- a/OpenPGP-Keychain/src/main/res/values/strings.xml
+++ b/OpenPGP-Keychain/src/main/res/values/strings.xml
@@ -442,5 +442,6 @@
<string name="label_secret_key">Secret Key</string>
<string name="secret_key_yes">available</string>
<string name="secret_key_no">unavailable</string>
+ <string name="show_unknown_signatures">Show unknown signatures</string>
</resources>