diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-07-08 03:12:20 +0200 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-07-08 03:12:20 +0200 |
commit | 15cee8e7e995afe1c435004c3abba521439e4e0b (patch) | |
tree | 790f93b829e7f20e906bdad2c3ed44636013a144 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ExportOperation.java | |
parent | 954825a42ab3ffb4dc8c7431f50258a924fb5d18 (diff) | |
download | open-keychain-15cee8e7e995afe1c435004c3abba521439e4e0b.tar.gz open-keychain-15cee8e7e995afe1c435004c3abba521439e4e0b.tar.bz2 open-keychain-15cee8e7e995afe1c435004c3abba521439e4e0b.zip |
Temporary fix for multi export
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ExportOperation.java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ExportOperation.java | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ExportOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ExportOperation.java index 82b72c1fc..56ed4ef58 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ExportOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ExportOperation.java @@ -27,12 +27,14 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.net.Proxy; +import java.util.Collections; import java.util.concurrent.atomic.AtomicBoolean; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.support.annotation.NonNull; +import android.text.TextUtils; import org.spongycastle.bcpg.ArmoredOutputStream; import org.sufficientlysecure.keychain.Constants; @@ -211,21 +213,21 @@ public class ExportOperation extends BaseOperation<ExportKeyringParcel> { Cursor cursor = null; try { - String selection = null, ids[] = null; + String selection = null, selectionArgs[] = null; if (masterKeyIds != null) { - // generate placeholders and string selection args - ids = new String[masterKeyIds.length]; - StringBuilder placeholders = new StringBuilder("?"); + // convert long[] to String[] + selectionArgs = new String[masterKeyIds.length]; for (int i = 0; i < masterKeyIds.length; i++) { - ids[i] = Long.toString(masterKeyIds[i]); - if (i != 0) { - placeholders.append(",?"); - } + selectionArgs[i] = Long.toString(masterKeyIds[i]); } + // generates ?,?,? as placeholders for selectionArgs + String placeholders = TextUtils.join(",", + Collections.nCopies(masterKeyIds.length, "?")); + // put together selection string - selection = Tables.KEY_RINGS_PUBLIC + "." + KeyRings.MASTER_KEY_ID + selection = Tables.KEYS + "." + KeyRings.MASTER_KEY_ID + " IN (" + placeholders + ")"; } @@ -233,7 +235,7 @@ public class ExportOperation extends BaseOperation<ExportKeyringParcel> { KeyRings.buildUnifiedKeyRingsUri(), new String[]{ KeyRings.MASTER_KEY_ID, KeyRings.PUBKEY_DATA, KeyRings.PRIVKEY_DATA, KeyRings.HAS_ANY_SECRET - }, selection, ids, Tables.KEYS + "." + KeyRings.MASTER_KEY_ID + }, selection, selectionArgs, Tables.KEYS + "." + KeyRings.MASTER_KEY_ID ); if (cursor == null || !cursor.moveToFirst()) { |