mirror of
https://github.com/moparisthebest/open-keychain
synced 2025-02-17 07:30:14 -05:00
Add database columns for crypto consumer preferences
This commit is contained in:
parent
d4e054d5f2
commit
36cc814e84
@ -43,7 +43,7 @@ public class KeychainContract {
|
|||||||
String CREATION = "creation";
|
String CREATION = "creation";
|
||||||
String EXPIRY = "expiry";
|
String EXPIRY = "expiry";
|
||||||
String KEY_RING_ROW_ID = "key_ring_row_id"; // foreign key to key_rings._ID
|
String KEY_RING_ROW_ID = "key_ring_row_id"; // foreign key to key_rings._ID
|
||||||
String KEY_DATA = "key_data"; // PGPPublicKey / PGPSecretKey blob
|
String KEY_DATA = "key_data"; // PGPPublicKey/PGPSecretKey blob
|
||||||
String RANK = "rank";
|
String RANK = "rank";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,6 +55,11 @@ public class KeychainContract {
|
|||||||
|
|
||||||
interface CryptoConsumersColumns {
|
interface CryptoConsumersColumns {
|
||||||
String PACKAGE_NAME = "package_name";
|
String PACKAGE_NAME = "package_name";
|
||||||
|
String PRIVATE_KEY_ID = "private_key_id"; // not a database id
|
||||||
|
String ASCII_ARMOR = "ascii_armor";
|
||||||
|
String ENCRYPTION_ALGORITHM = "encryption_algorithm";
|
||||||
|
String HASH_ALORITHM = "hash_algorithm";
|
||||||
|
String COMPRESSION = "compression";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final class KeyTypes {
|
public static final class KeyTypes {
|
||||||
@ -83,6 +88,7 @@ public class KeychainContract {
|
|||||||
public static final String PATH_KEYS = "keys";
|
public static final String PATH_KEYS = "keys";
|
||||||
|
|
||||||
public static final String BASE_CRYPTO_CONSUMERS = "crypto_consumers";
|
public static final String BASE_CRYPTO_CONSUMERS = "crypto_consumers";
|
||||||
|
public static final String PATH_BY_PACKAGE_NAME = "package_name";
|
||||||
|
|
||||||
public static class KeyRings implements KeyRingsColumns, BaseColumns {
|
public static class KeyRings implements KeyRingsColumns, BaseColumns {
|
||||||
public static final Uri CONTENT_URI = BASE_CONTENT_URI_INTERNAL.buildUpon()
|
public static final Uri CONTENT_URI = BASE_CONTENT_URI_INTERNAL.buildUpon()
|
||||||
@ -226,6 +232,11 @@ public class KeychainContract {
|
|||||||
public static Uri buildIdUri(String rowId) {
|
public static Uri buildIdUri(String rowId) {
|
||||||
return CONTENT_URI.buildUpon().appendPath(rowId).build();
|
return CONTENT_URI.buildUpon().appendPath(rowId).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Uri buildByPackageNameUri(String packageName) {
|
||||||
|
return CONTENT_URI.buildUpon().appendPath(PATH_BY_PACKAGE_NAME).appendPath(packageName)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class DataStream {
|
public static class DataStream {
|
||||||
|
@ -67,7 +67,11 @@ public class KeychainDatabase extends SQLiteOpenHelper {
|
|||||||
private static final String CREATE_CRYPTO_CONSUMERS = "CREATE TABLE IF NOT EXISTS "
|
private static final String CREATE_CRYPTO_CONSUMERS = "CREATE TABLE IF NOT EXISTS "
|
||||||
+ Tables.CRYPTO_CONSUMERS + " (" + BaseColumns._ID
|
+ Tables.CRYPTO_CONSUMERS + " (" + BaseColumns._ID
|
||||||
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + CryptoConsumersColumns.PACKAGE_NAME
|
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + CryptoConsumersColumns.PACKAGE_NAME
|
||||||
+ " TEXT UNIQUE)";
|
+ " TEXT UNIQUE, " + CryptoConsumersColumns.PRIVATE_KEY_ID + " INT64, "
|
||||||
|
+ CryptoConsumersColumns.ASCII_ARMOR + " INTEGER, "
|
||||||
|
+ CryptoConsumersColumns.ENCRYPTION_ALGORITHM + " INTEGER, "
|
||||||
|
+ CryptoConsumersColumns.HASH_ALORITHM + " INTEGER, "
|
||||||
|
+ CryptoConsumersColumns.COMPRESSION + " INTEGER)";
|
||||||
|
|
||||||
KeychainDatabase(Context context) {
|
KeychainDatabase(Context context) {
|
||||||
super(context, DATABASE_NAME, null, DATABASE_VERSION);
|
super(context, DATABASE_NAME, null, DATABASE_VERSION);
|
||||||
|
@ -80,6 +80,7 @@ public class KeychainProvider extends ContentProvider {
|
|||||||
|
|
||||||
private static final int CRYPTO_CONSUMERS = 301;
|
private static final int CRYPTO_CONSUMERS = 301;
|
||||||
private static final int CRYPTO_CONSUMERS_BY_ROW_ID = 302;
|
private static final int CRYPTO_CONSUMERS_BY_ROW_ID = 302;
|
||||||
|
private static final int CRYPTO_CONSUMERS_BY_PACKAGE_NAME = 303;
|
||||||
|
|
||||||
// private static final int DATA_STREAM = 401;
|
// private static final int DATA_STREAM = 401;
|
||||||
|
|
||||||
@ -230,6 +231,8 @@ public class KeychainProvider extends ContentProvider {
|
|||||||
matcher.addURI(authority, KeychainContract.BASE_CRYPTO_CONSUMERS, CRYPTO_CONSUMERS);
|
matcher.addURI(authority, KeychainContract.BASE_CRYPTO_CONSUMERS, CRYPTO_CONSUMERS);
|
||||||
matcher.addURI(authority, KeychainContract.BASE_CRYPTO_CONSUMERS + "/#",
|
matcher.addURI(authority, KeychainContract.BASE_CRYPTO_CONSUMERS + "/#",
|
||||||
CRYPTO_CONSUMERS_BY_ROW_ID);
|
CRYPTO_CONSUMERS_BY_ROW_ID);
|
||||||
|
matcher.addURI(authority, KeychainContract.BASE_CRYPTO_CONSUMERS + "/"
|
||||||
|
+ KeychainContract.PATH_BY_PACKAGE_NAME + "/*", CRYPTO_CONSUMERS_BY_PACKAGE_NAME);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* data stream
|
* data stream
|
||||||
@ -294,6 +297,7 @@ public class KeychainProvider extends ContentProvider {
|
|||||||
return CryptoConsumers.CONTENT_TYPE;
|
return CryptoConsumers.CONTENT_TYPE;
|
||||||
|
|
||||||
case CRYPTO_CONSUMERS_BY_ROW_ID:
|
case CRYPTO_CONSUMERS_BY_ROW_ID:
|
||||||
|
case CRYPTO_CONSUMERS_BY_PACKAGE_NAME:
|
||||||
return CryptoConsumers.CONTENT_ITEM_TYPE;
|
return CryptoConsumers.CONTENT_ITEM_TYPE;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -607,6 +611,12 @@ public class KeychainProvider extends ContentProvider {
|
|||||||
case CRYPTO_CONSUMERS:
|
case CRYPTO_CONSUMERS:
|
||||||
qb.setTables(Tables.CRYPTO_CONSUMERS);
|
qb.setTables(Tables.CRYPTO_CONSUMERS);
|
||||||
|
|
||||||
|
break;
|
||||||
|
case CRYPTO_CONSUMERS_BY_PACKAGE_NAME:
|
||||||
|
qb.setTables(Tables.CRYPTO_CONSUMERS);
|
||||||
|
qb.appendWhere(CryptoConsumers.PACKAGE_NAME + " = ");
|
||||||
|
qb.appendWhereEscapeString(uri.getPathSegments().get(2));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -755,6 +765,7 @@ public class KeychainProvider extends ContentProvider {
|
|||||||
selectionArgs);
|
selectionArgs);
|
||||||
break;
|
break;
|
||||||
case CRYPTO_CONSUMERS_BY_ROW_ID:
|
case CRYPTO_CONSUMERS_BY_ROW_ID:
|
||||||
|
case CRYPTO_CONSUMERS_BY_PACKAGE_NAME:
|
||||||
count = db.delete(Tables.CRYPTO_CONSUMERS,
|
count = db.delete(Tables.CRYPTO_CONSUMERS,
|
||||||
buildDefaultCryptoConsumersSelection(uri, selection), selectionArgs);
|
buildDefaultCryptoConsumersSelection(uri, selection), selectionArgs);
|
||||||
break;
|
break;
|
||||||
@ -818,6 +829,11 @@ public class KeychainProvider extends ContentProvider {
|
|||||||
count = db.update(Tables.USER_IDS, values,
|
count = db.update(Tables.USER_IDS, values,
|
||||||
buildDefaultUserIdsSelection(uri, selection), selectionArgs);
|
buildDefaultUserIdsSelection(uri, selection), selectionArgs);
|
||||||
break;
|
break;
|
||||||
|
case CRYPTO_CONSUMERS_BY_ROW_ID:
|
||||||
|
case CRYPTO_CONSUMERS_BY_PACKAGE_NAME:
|
||||||
|
count = db.update(Tables.CRYPTO_CONSUMERS, values,
|
||||||
|
buildDefaultCryptoConsumersSelection(uri, selection), selectionArgs);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw new UnsupportedOperationException("Unknown uri: " + uri);
|
throw new UnsupportedOperationException("Unknown uri: " + uri);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user