diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2015-06-06 23:39:26 +0200 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2015-06-06 23:40:22 +0200 |
commit | b779211f55a126d54c643fb9f13a0a17b46c37bf (patch) | |
tree | a526af2e5d385691c20393560443e17f9a61201a /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java | |
parent | fa614383065a22269c5ca249819c46b82e20a194 (diff) | |
parent | 7cfc0d80d0b4318ce1ae027536d70c2cda4c8605 (diff) | |
download | open-keychain-b779211f55a126d54c643fb9f13a0a17b46c37bf.tar.gz open-keychain-b779211f55a126d54c643fb9f13a0a17b46c37bf.tar.bz2 open-keychain-b779211f55a126d54c643fb9f13a0a17b46c37bf.zip |
Merge branch 'master' into v/multi-decrypt
this also fixes weird-bug
Conflicts:
OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java
OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFilesFragment.java
OpenKeychain/src/main/res/values/strings.xml
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java | 127 |
1 files changed, 104 insertions, 23 deletions
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 f5963dbf0..ddfdecca3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java @@ -49,18 +49,20 @@ import org.sufficientlysecure.keychain.pgp.KeyRing; import org.sufficientlysecure.keychain.pgp.PgpConstants; import org.sufficientlysecure.keychain.pgp.SignEncryptParcel; import org.sufficientlysecure.keychain.provider.TemporaryStorageProvider; -import org.sufficientlysecure.keychain.service.KeychainIntentService; +import org.sufficientlysecure.keychain.service.KeychainService; import org.sufficientlysecure.keychain.service.ServiceProgressHandler; import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; import org.sufficientlysecure.keychain.ui.adapter.SpacesItemDecoration; import org.sufficientlysecure.keychain.ui.base.CachingCryptoOperationFragment; import org.sufficientlysecure.keychain.ui.dialog.DeleteFileDialogFragment; -import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; import org.sufficientlysecure.keychain.ui.util.FormattingUtils; import org.sufficientlysecure.keychain.ui.util.Notify; +import org.sufficientlysecure.keychain.ui.util.Notify.ActionListener; +import org.sufficientlysecure.keychain.ui.util.Notify.Style; import org.sufficientlysecure.keychain.util.FileHelper; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Passphrase; +import org.sufficientlysecure.keychain.util.Preferences; import org.sufficientlysecure.keychain.util.ShareHelper; import java.io.File; @@ -99,11 +101,10 @@ public class EncryptFilesFragment extends CachingCryptoOperationFragment<SignEnc /** * Creates new instance of this fragment */ - public static EncryptFilesFragment newInstance(ArrayList<Uri> uris, boolean useArmor) { + public static EncryptFilesFragment newInstance(ArrayList<Uri> uris) { EncryptFilesFragment frag = new EncryptFilesFragment(); Bundle args = new Bundle(); - args.putBoolean(ARG_USE_ASCII_ARMOR, useArmor); args.putParcelableArrayList(ARG_URIS, uris); frag.setArguments(args); @@ -167,11 +168,28 @@ public class EncryptFilesFragment extends CachingCryptoOperationFragment<SignEnc public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + Preferences prefs = Preferences.getPreferences(getActivity()); + Bundle args = savedInstanceState == null ? getArguments() : savedInstanceState; mDeleteAfterEncrypt = args.getBoolean(ARG_DELETE_AFTER_ENCRYPT, false); - mUseArmor = args.getBoolean(ARG_USE_ASCII_ARMOR, false); - mUseCompression = args.getBoolean(ARG_USE_COMPRESSION, true); - mEncryptFilenames = args.getBoolean(ARG_ENCRYPT_FILENAMES, true); + + if (args.containsKey(ARG_USE_ASCII_ARMOR)) { + mUseArmor = args.getBoolean(ARG_USE_ASCII_ARMOR, false); + } else { + mUseArmor = prefs.getUseArmor(); + } + + if (args.containsKey(ARG_USE_COMPRESSION)) { + mUseCompression = args.getBoolean(ARG_USE_COMPRESSION, true); + } else { + mUseCompression = prefs.getFilesUseCompression(); + } + + if (args.containsKey(ARG_ENCRYPT_FILENAMES)) { + mEncryptFilenames = args.getBoolean(ARG_ENCRYPT_FILENAMES, true); + } else { + mEncryptFilenames = prefs.getEncryptFilenames(); + } setHasOptionsMenu(true); } @@ -262,9 +280,7 @@ public class EncryptFilesFragment extends CachingCryptoOperationFragment<SignEnc break; } case R.id.check_use_armor: { - // we can NOT do this for every item, others might care! - item.setChecked(!item.isChecked()); - mUseArmor = item.isChecked(); + toggleUseArmor(item, !item.isChecked()); break; } case R.id.check_delete_after_encrypt: { @@ -273,13 +289,11 @@ public class EncryptFilesFragment extends CachingCryptoOperationFragment<SignEnc break; } case R.id.check_enable_compression: { - item.setChecked(!item.isChecked()); - mUseCompression = item.isChecked(); + toggleEnableCompression(item, !item.isChecked()); break; } case R.id.check_encrypt_filenames: { - item.setChecked(!item.isChecked()); - mEncryptFilenames = item.isChecked(); + toggleEncryptFilenamesCheck(item, !item.isChecked()); break; } // case R.id.check_hidden_recipients: { @@ -294,6 +308,72 @@ public class EncryptFilesFragment extends CachingCryptoOperationFragment<SignEnc return true; } + public void toggleUseArmor(MenuItem item, final boolean useArmor) { + + mUseArmor = useArmor; + item.setChecked(useArmor); + + Notify.create(getActivity(), useArmor + ? R.string.snack_armor_on + : R.string.snack_armor_off, + Notify.LENGTH_LONG, Style.OK, new ActionListener() { + @Override + public void onAction() { + Preferences.getPreferences(getActivity()).setUseArmor(useArmor); + Notify.create(getActivity(), useArmor + ? R.string.snack_armor_on + : R.string.snack_armor_off, + Notify.LENGTH_SHORT, Style.OK, null, R.string.btn_saved) + .show(EncryptFilesFragment.this, false); + } + }, R.string.btn_save_default).show(this); + + } + + public void toggleEnableCompression(MenuItem item, final boolean compress) { + + mUseCompression = compress; + item.setChecked(compress); + + Notify.create(getActivity(), compress + ? R.string.snack_compression_on + : R.string.snack_compression_off, + Notify.LENGTH_LONG, Style.OK, new ActionListener() { + @Override + public void onAction() { + Preferences.getPreferences(getActivity()).setFilesUseCompression(compress); + Notify.create(getActivity(), compress + ? R.string.snack_compression_on + : R.string.snack_compression_off, + Notify.LENGTH_SHORT, Style.OK, null, R.string.btn_saved) + .show(EncryptFilesFragment.this, false); + } + }, R.string.btn_save_default).show(this); + + } + + public void toggleEncryptFilenamesCheck(MenuItem item, final boolean encryptFilenames) { + + mEncryptFilenames = encryptFilenames; + item.setChecked(encryptFilenames); + + Notify.create(getActivity(), encryptFilenames + ? R.string.snack_encrypt_filenames_on + : R.string.snack_encrypt_filenames_off, + Notify.LENGTH_LONG, Style.OK, new ActionListener() { + @Override + public void onAction() { + Preferences.getPreferences(getActivity()).setEncryptFilenames(encryptFilenames); + Notify.create(getActivity(), encryptFilenames + ? R.string.snack_encrypt_filenames_on + : R.string.snack_encrypt_filenames_off, + Notify.LENGTH_SHORT, Style.OK, null, R.string.btn_saved) + .show(EncryptFilesFragment.this, false); + } + }, R.string.btn_save_default).show(this); + + } + public void onEncryptSuccess(final SignEncryptResult result) { if (mDeleteAfterEncrypt) { DeleteFileDialogFragment deleteFileDialog = @@ -505,21 +585,22 @@ public class EncryptFilesFragment extends CachingCryptoOperationFragment<SignEnc } // Send all information needed to service to edit key in other thread - Intent intent = new Intent(getActivity(), KeychainIntentService.class); - intent.setAction(KeychainIntentService.ACTION_SIGN_ENCRYPT); + Intent intent = new Intent(getActivity(), KeychainService.class); + intent.setAction(KeychainService.ACTION_SIGN_ENCRYPT); Bundle data = new Bundle(); - data.putParcelable(KeychainIntentService.SIGN_ENCRYPT_PARCEL, actionsParcel); - data.putParcelable(KeychainIntentService.EXTRA_CRYPTO_INPUT, cryptoInput); - intent.putExtra(KeychainIntentService.EXTRA_DATA, data); + data.putParcelable(KeychainService.SIGN_ENCRYPT_PARCEL, actionsParcel); + data.putParcelable(KeychainService.EXTRA_CRYPTO_INPUT, cryptoInput); + intent.putExtra(KeychainService.EXTRA_DATA, data); - // Message is received after encrypting is done in KeychainIntentService + // Message is received after encrypting is done in KeychainService ServiceProgressHandler serviceHandler = new ServiceProgressHandler( getActivity(), getString(R.string.progress_encrypting), ProgressDialog.STYLE_HORIZONTAL, - true, - ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { + true + ) { + @Override public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); @@ -542,7 +623,7 @@ public class EncryptFilesFragment extends CachingCryptoOperationFragment<SignEnc }; // Create a new Messenger for the communication back Messenger messenger = new Messenger(serviceHandler); - intent.putExtra(KeychainIntentService.EXTRA_MESSENGER, messenger); + intent.putExtra(KeychainService.EXTRA_MESSENGER, messenger); // show progress dialog serviceHandler.showProgressDialog(getActivity()); |