diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2014-03-11 02:40:41 +0100 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2014-03-11 02:40:41 +0100 |
commit | 74027abdad96069a3b1af9ac2d2711beff07f76f (patch) | |
tree | ddeaf3bf841197b2f3ad583c19b3d813cb01b4f5 /OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider | |
parent | 3b38ffe55eef7a3a9a0cd4367c7f7ee42e4305b8 (diff) | |
download | open-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.java | 45 |
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; |