diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2013-05-28 15:10:36 +0200 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2013-05-28 15:10:36 +0200 |
commit | b221c0c9051d7dea697aff7b3167fca69eb1f4f8 (patch) | |
tree | e973bdd30cd4c2b7e7366e693077210df795032b /OpenPGP-Keychain/src/org/sufficientlysecure/keychain/provider/ProviderHelper.java | |
parent | 8c537d33678bfa1583598923608494a49e8781ea (diff) | |
download | open-keychain-b221c0c9051d7dea697aff7b3167fca69eb1f4f8.tar.gz open-keychain-b221c0c9051d7dea697aff7b3167fca69eb1f4f8.tar.bz2 open-keychain-b221c0c9051d7dea697aff7b3167fca69eb1f4f8.zip |
Crypto Provider implementation start
Diffstat (limited to 'OpenPGP-Keychain/src/org/sufficientlysecure/keychain/provider/ProviderHelper.java')
-rw-r--r-- | OpenPGP-Keychain/src/org/sufficientlysecure/keychain/provider/ProviderHelper.java | 39 |
1 files changed, 35 insertions, 4 deletions
diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/provider/ProviderHelper.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/provider/ProviderHelper.java index 2665456ea..57d3b54d6 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/provider/ProviderHelper.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/provider/ProviderHelper.java @@ -31,6 +31,7 @@ import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.helper.PgpConversionHelper; import org.sufficientlysecure.keychain.helper.PgpHelper; import org.sufficientlysecure.keychain.helper.PgpMain; +import org.sufficientlysecure.keychain.provider.KeychainContract.CryptoConsumers; import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.provider.KeychainContract.Keys; import org.sufficientlysecure.keychain.provider.KeychainContract.UserIds; @@ -516,10 +517,13 @@ public class ProviderHelper { * @return */ private static boolean getMasterKeyCanSign(Context context, Uri queryUri, long keyRingRowId) { - String[] projection = new String[] { KeyRings.MASTER_KEY_ID, "(SELECT COUNT(sign_keys." + - Keys._ID + ") FROM " + Tables.KEYS + " AS sign_keys WHERE sign_keys." + Keys.KEY_RING_ROW_ID + " = " - + KeychainDatabase.Tables.KEY_RINGS + "." + KeyRings._ID + " AND sign_keys." - + Keys.CAN_SIGN + " = '1' AND " + Keys.IS_MASTER_KEY + " = 1) AS sign", }; + String[] projection = new String[] { + KeyRings.MASTER_KEY_ID, + "(SELECT COUNT(sign_keys." + Keys._ID + ") FROM " + Tables.KEYS + + " AS sign_keys WHERE sign_keys." + Keys.KEY_RING_ROW_ID + " = " + + KeychainDatabase.Tables.KEY_RINGS + "." + KeyRings._ID + + " AND sign_keys." + Keys.CAN_SIGN + " = '1' AND " + Keys.IS_MASTER_KEY + + " = 1) AS sign", }; ContentResolver cr = context.getContentResolver(); Cursor cursor = cr.query(queryUri, projection, null, null, null); @@ -713,4 +717,31 @@ public class ProviderHelper { return cursor; } + + public static ArrayList<String> getCryptoConsumers(Context context) { + Cursor cursor = context.getContentResolver().query(CryptoConsumers.CONTENT_URI, null, null, + null, null); + + ArrayList<String> packageNames = new ArrayList<String>(); + if (cursor != null) { + int packageNameCol = cursor.getColumnIndex(CryptoConsumers.PACKAGE_NAME); + if (cursor.moveToFirst()) { + do { + packageNames.add(cursor.getString(packageNameCol)); + } while (cursor.moveToNext()); + } + } + + if (cursor != null) { + cursor.close(); + } + + return packageNames; + } + + public static void addCryptoConsumer(Context context, String packageName) { + ContentValues values = new ContentValues(); + values.put(CryptoConsumers.PACKAGE_NAME, packageName); + context.getContentResolver().insert(CryptoConsumers.CONTENT_URI, values); + } } |