diff options
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextFragment.java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextFragment.java | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextFragment.java index a8840dbf1..e206169bb 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextFragment.java @@ -46,7 +46,10 @@ import org.sufficientlysecure.keychain.service.ServiceProgressHandler; import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; import org.sufficientlysecure.keychain.ui.base.CachingCryptoOperationFragment; 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.Passphrase; +import org.sufficientlysecure.keychain.util.Preferences; import org.sufficientlysecure.keychain.util.ShareHelper; import java.util.HashSet; @@ -130,8 +133,16 @@ public class EncryptTextFragment extends CachingCryptoOperationFragment<SignEncr mMessage = getArguments().getString(ARG_TEXT); } + Preferences prefs = Preferences.getPreferences(getActivity()); + Bundle args = savedInstanceState == null ? getArguments() : savedInstanceState; + mUseCompression = args.getBoolean(ARG_USE_COMPRESSION, true); + if (args.containsKey(ARG_USE_COMPRESSION)) { + mUseCompression = args.getBoolean(ARG_USE_COMPRESSION, true); + } else { + mUseCompression = prefs.getTextUseCompression(); + } setHasOptionsMenu(true); } @@ -146,12 +157,9 @@ public class EncryptTextFragment extends CachingCryptoOperationFragment<SignEncr @Override public boolean onOptionsItemSelected(MenuItem item) { - if (item.isCheckable()) { - item.setChecked(!item.isChecked()); - } switch (item.getItemId()) { case R.id.check_enable_compression: { - mUseCompression = item.isChecked(); + toggleEnableCompression(item, !item.isChecked()); break; } // case R.id.check_hidden_recipients: { @@ -174,6 +182,28 @@ public class EncryptTextFragment extends CachingCryptoOperationFragment<SignEncr return true; } + 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()).setTextUseCompression(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(EncryptTextFragment.this, false); + } + }, R.string.btn_save_default).show(this); + + } + protected void onEncryptSuccess(SignEncryptResult result) { if (mShareAfterEncrypt) { // Share encrypted message/file |