diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2014-04-16 17:33:33 +0200 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2014-04-16 18:14:44 +0200 |
commit | c7eb40b8145fa70b05b1c4cfe01852a95a669e11 (patch) | |
tree | b04ce3888919b58190126ae86a83dc7b4dcc7131 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java | |
parent | 66b8b86695bdeeec1d44289e30294825a0223a82 (diff) | |
download | open-keychain-c7eb40b8145fa70b05b1c4cfe01852a95a669e11.tar.gz open-keychain-c7eb40b8145fa70b05b1c4cfe01852a95a669e11.tar.bz2 open-keychain-c7eb40b8145fa70b05b1c4cfe01852a95a669e11.zip |
stripped support: implement has_secret support, in ui and impot of secret keys
Closes #570
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java index 35932b5c9..83986c254 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java @@ -703,6 +703,20 @@ public class KeychainProvider extends ContentProvider { try { final int match = mUriMatcher.match(uri); switch (match) { + case KEY_RING_KEYS: { + if(values.size() != 1 || !values.containsKey(Keys.HAS_SECRET)) { + throw new UnsupportedOperationException( + "Only has_secret column may be updated!"); + } + // make sure we get a long value here + Long mkid = Long.parseLong(uri.getPathSegments().get(1)); + String actualSelection = Keys.MASTER_KEY_ID + " = " + Long.toString(mkid); + if(!TextUtils.isEmpty(selection)) { + actualSelection += " AND (" + selection + ")"; + } + count = db.update(Tables.KEYS, values, actualSelection, selectionArgs); + break; + } case API_APPS_BY_PACKAGE_NAME: count = db.update(Tables.API_APPS, values, buildDefaultApiAppsSelection(uri, selection), selectionArgs); @@ -719,7 +733,7 @@ public class KeychainProvider extends ContentProvider { getContext().getContentResolver().notifyChange(uri, null); } catch (SQLiteConstraintException e) { - Log.e(Constants.TAG, "Constraint exception on update! Entry already existing?"); + Log.e(Constants.TAG, "Constraint exception on update! Entry already existing?", e); } return count; |