From a5271bf2297fc49474b5f1ab2755fb073cb7f3fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 16 Mar 2015 17:00:53 +0100 Subject: Allow encrypt of filenames via overflow menu --- .../keychain/ui/EncryptActivityInterface.java | 1 + .../keychain/ui/EncryptFilesActivity.java | 12 ++++++++++++ .../keychain/ui/EncryptFilesFragment.java | 15 +++++++++------ .../keychain/ui/EncryptTextActivity.java | 5 +++++ 4 files changed, 27 insertions(+), 6 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivityInterface.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivityInterface.java index baf445293..037366164 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivityInterface.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivityInterface.java @@ -29,6 +29,7 @@ public interface EncryptActivityInterface { public boolean isUseArmor(); public boolean isUseCompression(); + public boolean isEncryptFilenames(); public long getSignatureKey(); public long[] getEncryptionKeys(); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java index fa7717726..8277e2ccc 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java @@ -70,6 +70,7 @@ public class EncryptFilesActivity extends EncryptActivity implements EncryptActi private boolean mUseCompression = true; private boolean mDeleteAfterEncrypt = false; private boolean mShareAfterEncrypt = false; + private boolean mEncryptFilenames = true; private ArrayList mInputUris; private ArrayList mOutputUris; private String mMessage = ""; @@ -88,6 +89,11 @@ public class EncryptFilesActivity extends EncryptActivity implements EncryptActi return mUseCompression; } + @Override + public boolean isEncryptFilenames() { + return mEncryptFilenames; + } + @Override public long getSignatureKey() { return mSigningKeyId; @@ -371,6 +377,12 @@ public class EncryptFilesActivity extends EncryptActivity implements EncryptActi notifyUpdate(); break; } + case R.id.encrypt_filenames: { + mEncryptFilenames = item.isChecked(); + notifyUpdate(); + break; + } + default: { return super.onOptionsItemSelected(item); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java index 48737d223..6ea6ecec1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java @@ -137,17 +137,17 @@ public class EncryptFilesFragment extends Fragment implements EncryptActivityInt throw new IllegalStateException(); } Uri inputUri = mEncryptInterface.getInputUris().get(0); + String targetName = + (mEncryptInterface.isEncryptFilenames() ? "1" : FileHelper.getFilename(getActivity(), inputUri)) + + (mEncryptInterface.isUseArmor() ? ".asc" : ".gpg"); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { File file = new File(inputUri.getPath()); File parentDir = file.exists() ? file.getParentFile() : Constants.Path.APP_DIR; - String targetName = FileHelper.getFilename(getActivity(), inputUri) + - (mEncryptInterface.isUseArmor() ? ".asc" : ".gpg"); File targetFile = new File(parentDir, targetName); FileHelper.saveFile(this, getString(R.string.title_encrypt_to_file), getString(R.string.specify_file_to_encrypt_to), targetFile, REQUEST_CODE_OUTPUT); } else { - FileHelper.saveDocument(this, "*/*", FileHelper.getFilename(getActivity(), inputUri) + - (mEncryptInterface.isUseArmor() ? ".asc" : ".gpg"), REQUEST_CODE_OUTPUT); + FileHelper.saveDocument(this, "*/*", targetName, REQUEST_CODE_OUTPUT); } } @@ -158,10 +158,13 @@ public class EncryptFilesFragment extends Fragment implements EncryptActivityInt } if (share) { mEncryptInterface.getOutputUris().clear(); + int filenameCounter = 1; for (Uri uri : mEncryptInterface.getInputUris()) { - String targetName = FileHelper.getFilename(getActivity(), uri) + - (mEncryptInterface.isUseArmor() ? ".asc" : ".gpg"); + String targetName = + (mEncryptInterface.isEncryptFilenames() ? String.valueOf(filenameCounter) : FileHelper.getFilename(getActivity(), uri)) + + (mEncryptInterface.isUseArmor() ? ".asc" : ".gpg"); mEncryptInterface.getOutputUris().add(TemporaryStorageProvider.createFile(getActivity(), targetName)); + filenameCounter++; } mEncryptInterface.startEncrypt(true); } else { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java index d3dfd73df..e8c8bd5b5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java @@ -82,6 +82,11 @@ public class EncryptTextActivity extends EncryptActivity implements EncryptActiv return true; } + @Override + public boolean isEncryptFilenames() { + return false; + } + @Override public boolean isUseCompression() { return mUseCompression; -- cgit v1.2.3