diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2015-06-03 01:23:51 +0200 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2015-06-03 01:23:51 +0200 |
commit | 7cfc0d80d0b4318ce1ae027536d70c2cda4c8605 (patch) | |
tree | 5e000b4d388f441f6d39b9ea0d7059740b038aa0 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java | |
parent | bd5a5c013881c57d29d67a9d6de1618f45dbcb99 (diff) | |
parent | ecfbc743f312d37d0e3b9a5fae4e9db74a92d7e0 (diff) | |
download | open-keychain-7cfc0d80d0b4318ce1ae027536d70c2cda4c8605.tar.gz open-keychain-7cfc0d80d0b4318ce1ae027536d70c2cda4c8605.tar.bz2 open-keychain-7cfc0d80d0b4318ce1ae027536d70c2cda4c8605.zip |
Merge branch 'v/sticky-prefs'
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 | 105 |
1 files changed, 93 insertions, 12 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 143450e32..ddfdecca3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java @@ -57,9 +57,12 @@ import org.sufficientlysecure.keychain.ui.base.CachingCryptoOperationFragment; import org.sufficientlysecure.keychain.ui.dialog.DeleteFileDialogFragment; 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; @@ -98,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); @@ -166,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); } @@ -261,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: { @@ -272,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: { @@ -293,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 = |