aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2014-03-11 02:40:41 +0100
committerVincent Breitmoser <valodim@mugenguild.com>2014-03-11 02:40:41 +0100
commit74027abdad96069a3b1af9ac2d2711beff07f76f (patch)
treeddeaf3bf841197b2f3ad583c19b3d813cb01b4f5 /OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider
parent3b38ffe55eef7a3a9a0cd4367c7f7ee42e4305b8 (diff)
downloadopen-keychain-74027abdad96069a3b1af9ac2d2711beff07f76f.tar.gz
open-keychain-74027abdad96069a3b1af9ac2d2711beff07f76f.tar.bz2
open-keychain-74027abdad96069a3b1af9ac2d2711beff07f76f.zip
experimental cert list, proper
Diffstat (limited to 'OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider')
-rw-r--r--OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java45
1 files changed, 43 insertions, 2 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 095887433..e582ec559 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
@@ -87,7 +87,8 @@ public class KeychainProvider extends ContentProvider {
private static final int CERTS = 401;
private static final int CERTS_BY_KEY_ID = 402;
private static final int CERTS_BY_ROW_ID = 403;
- private static final int CERTS_BY_CERTIFIER_ID = 404;
+ private static final int CERTS_BY_KEY_ROW_ID = 404;
+ private static final int CERTS_BY_CERTIFIER_ID = 405;
// private static final int DATA_STREAM = 401;
@@ -254,6 +255,8 @@ public class KeychainProvider extends ContentProvider {
matcher.addURI(authority, KeychainContract.BASE_CERTS, CERTS);
matcher.addURI(authority, KeychainContract.BASE_CERTS + "/#", CERTS_BY_ROW_ID);
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_ID + "/#", CERTS_BY_KEY_ID);
matcher.addURI(authority, KeychainContract.BASE_CERTS + "/"
+ KeychainContract.PATH_BY_CERTIFIER_ID + "/#", CERTS_BY_CERTIFIER_ID);
@@ -713,6 +716,44 @@ public class KeychainProvider extends ContentProvider {
break;
+ case CERTS_BY_KEY_ROW_ID:
+ qb.setTables(Tables.CERTS
+ + " JOIN " + Tables.USER_IDS + " ON ("
+ + Tables.CERTS + "." + Certs.KEY_RING_ROW_ID + " = "
+ + Tables.USER_IDS + "." + UserIds.KEY_RING_ROW_ID
+ + " AND "
+ + 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
+ + ") LEFT JOIN " + Tables.USER_IDS + " AS signer ON ("
+ + Tables.KEYS + "." + Keys.KEY_RING_ROW_ID + " = "
+ + "signer." + UserIds.KEY_RING_ROW_ID
+ + " AND "
+ + Tables.KEYS + "." + Keys.RANK + " = "
+ + "signer." + UserIds.RANK
+ + ")");
+
+ // groupBy = Tables.USER_IDS + "." + UserIds.RANK;
+
+ HashMap<String, String> pmap2 = new HashMap<String, String>();
+ pmap2.put(Certs._ID, Tables.CERTS + "." + Certs._ID);
+ pmap2.put(Certs.RANK, Tables.CERTS + "." + Certs.RANK);
+ pmap2.put(Certs.KEY_ID_CERTIFIER, Tables.CERTS + "." + Certs.KEY_ID_CERTIFIER);
+ pmap2.put(Certs.VERIFIED, Tables.CERTS + "." + Certs.VERIFIED);
+ // verified key data
+ pmap2.put(UserIds.USER_ID, Tables.USER_IDS + "." + UserIds.USER_ID);
+ // verifying key data
+ pmap2.put("signer_uid", "signer." + UserIds.USER_ID + " AS signer_uid");
+ qb.setProjectionMap(pmap2);
+
+ qb.appendWhere(Tables.CERTS + "." + Certs.KEY_RING_ROW_ID + " = ");
+ qb.appendWhereEscapeString(uri.getPathSegments().get(2));
+
+ break;
+
case API_APPS:
qb.setTables(Tables.API_APPS);
@@ -825,7 +866,7 @@ public class KeychainProvider extends ContentProvider {
break;
case CERTS_BY_ROW_ID:
rowId = db.insertOrThrow(Tables.CERTS, null, values);
- // kinda useless :S
+ // kinda useless.. should this be buildCertsByKeyRowIdUri?
rowUri = Certs.buildCertsUri(Long.toString(rowId));
break;