add linked id certs uri to KeychainProvider
This commit is contained in:
@@ -359,8 +359,8 @@ public class KeychainContract {
|
||||
.appendPath(PATH_CERTS).build();
|
||||
}
|
||||
|
||||
public static Uri buildLinkedIdCertsUri(long masterKeyId, int rank) {
|
||||
return CONTENT_URI.buildUpon().appendPath(Long.toString(masterKeyId))
|
||||
public static Uri buildLinkedIdCertsUri(Uri uri, int rank) {
|
||||
return CONTENT_URI.buildUpon().appendPath(uri.getPathSegments().get(1))
|
||||
.appendPath(PATH_LINKED_IDS).appendPath(Integer.toString(rank))
|
||||
.appendPath(PATH_CERTS).build();
|
||||
}
|
||||
|
||||
@@ -566,7 +566,8 @@ public class KeychainProvider extends ContentProvider {
|
||||
}
|
||||
|
||||
case KEY_RING_CERTS:
|
||||
case KEY_RING_CERTS_SPECIFIC: {
|
||||
case KEY_RING_CERTS_SPECIFIC:
|
||||
case KEY_RING_LINKED_ID_CERTS: {
|
||||
HashMap<String, String> projectionMap = new HashMap<>();
|
||||
projectionMap.put(Certs._ID, Tables.CERTS + ".oid AS " + Certs._ID);
|
||||
projectionMap.put(Certs.MASTER_KEY_ID, Tables.CERTS + "." + Certs.MASTER_KEY_ID);
|
||||
@@ -587,10 +588,6 @@ public class KeychainProvider extends ContentProvider {
|
||||
+ " AND "
|
||||
+ Tables.CERTS + "." + Certs.RANK + " = "
|
||||
+ Tables.USER_PACKETS + "." + UserPackets.RANK
|
||||
// for now, we only return user ids here, so TYPE must be NULL
|
||||
// TODO at some point, we should lift this restriction
|
||||
+ " AND "
|
||||
+ Tables.USER_PACKETS + "." + UserPackets.TYPE + " IS NULL"
|
||||
+ ") LEFT JOIN " + Tables.USER_PACKETS + " AS signer ON ("
|
||||
+ Tables.CERTS + "." + Certs.KEY_ID_CERTIFIER + " = "
|
||||
+ "signer." + UserPackets.MASTER_KEY_ID
|
||||
@@ -610,6 +607,17 @@ public class KeychainProvider extends ContentProvider {
|
||||
qb.appendWhereEscapeString(uri.getPathSegments().get(4));
|
||||
}
|
||||
|
||||
if (match == KEY_RING_LINKED_ID_CERTS) {
|
||||
qb.appendWhere(" AND " + Tables.USER_PACKETS + "."
|
||||
+ UserPackets.TYPE + " IS NOT NULL");
|
||||
|
||||
qb.appendWhere(" AND " + Tables.USER_PACKETS + "."
|
||||
+ UserPackets.RANK + " = ");
|
||||
qb.appendWhereEscapeString(uri.getPathSegments().get(3));
|
||||
} else {
|
||||
qb.appendWhere(" AND " + Tables.USER_PACKETS + "." + UserPackets.TYPE + " IS NULL");
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user