diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2015-05-27 22:33:14 +0200 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2015-05-28 16:33:44 +0200 |
commit | 40ab96539c7658b18a0c4d95786f28fda1f69516 (patch) | |
tree | ba829e043ae8693487f6ad2e61db7e0699ca0a84 /OpenKeychain | |
parent | 7c20c8df932e108c4156a316ddc68ff3610bba4e (diff) | |
download | open-keychain-40ab96539c7658b18a0c4d95786f28fda1f69516.tar.gz open-keychain-40ab96539c7658b18a0c4d95786f28fda1f69516.tar.bz2 open-keychain-40ab96539c7658b18a0c4d95786f28fda1f69516.zip |
move synchronous encryption into activity, and preserve checkbox state
Diffstat (limited to 'OpenKeychain')
6 files changed, 42 insertions, 25 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java index 9fd3a4988..4361705f9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java @@ -21,6 +21,8 @@ import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; +import android.view.Menu; +import android.view.MenuItem; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; @@ -56,9 +58,33 @@ public class EncryptActivity extends BaseActivity { } } - public void toggleModeFragment() { - boolean symmetric = getModeFragment() instanceof EncryptModeAsymmetricFragment; + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.check_use_symmetric: { + item.setChecked(!item.isChecked()); + setModeFragment(item.isChecked()); + return true; + } + default: { + return super.onOptionsItemSelected(item); + } + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.encrypt_activity, menu); + + Fragment frag = + getSupportFragmentManager().findFragmentById(R.id.encrypt_mode_container); + boolean isSymmetric = frag instanceof EncryptModeSymmetricFragment; + menu.findItem(R.id.check_use_symmetric).setChecked(isSymmetric); + + return super.onCreateOptionsMenu(menu); + } + private void setModeFragment(boolean symmetric) { FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.encrypt_mode_container, symmetric 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 fa35cc9ac..713c03fc2 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesFragment.java @@ -250,9 +250,6 @@ public class EncryptFilesFragment extends CryptoOperationFragment { @Override public boolean onOptionsItemSelected(MenuItem item) { - if (item.isCheckable()) { - item.setChecked(!item.isChecked()); - } switch (item.getItemId()) { case R.id.encrypt_save: { encryptClicked(false); @@ -262,24 +259,24 @@ public class EncryptFilesFragment extends CryptoOperationFragment { encryptClicked(true); break; } - case R.id.check_use_symmetric: { - EncryptActivity encryptActivity = (EncryptActivity) getActivity(); - encryptActivity.toggleModeFragment(); - 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(); break; } case R.id.check_delete_after_encrypt: { + item.setChecked(!item.isChecked()); mDeleteAfterEncrypt = item.isChecked(); break; } case R.id.check_enable_compression: { + item.setChecked(!item.isChecked()); mUseCompression = item.isChecked(); break; } case R.id.check_encrypt_filenames: { + item.setChecked(!item.isChecked()); mEncryptFilenames = item.isChecked(); break; } 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 89bc97e16..90eb2b1f3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextFragment.java @@ -137,11 +137,6 @@ public class EncryptTextFragment extends CryptoOperationFragment { item.setChecked(!item.isChecked()); } switch (item.getItemId()) { - case R.id.check_use_symmetric: { - EncryptActivity modeInterface = (EncryptActivity) getActivity(); - modeInterface.toggleModeFragment(); - break; - } case R.id.check_enable_compression: { mUseCompression = item.isChecked(); break; diff --git a/OpenKeychain/src/main/res/menu/encrypt_activity.xml b/OpenKeychain/src/main/res/menu/encrypt_activity.xml new file mode 100644 index 000000000..fdd19927e --- /dev/null +++ b/OpenKeychain/src/main/res/menu/encrypt_activity.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<menu xmlns:android="http://schemas.android.com/apk/res/android"> + + <item + android:id="@+id/check_use_symmetric" + android:title="@string/label_symmetric" + android:checkable="true" /> + +</menu>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/menu/encrypt_file_fragment.xml b/OpenKeychain/src/main/res/menu/encrypt_file_fragment.xml index d6ed726fa..10928e4bb 100644 --- a/OpenKeychain/src/main/res/menu/encrypt_file_fragment.xml +++ b/OpenKeychain/src/main/res/menu/encrypt_file_fragment.xml @@ -15,11 +15,6 @@ app:showAsAction="always" /> <item - android:id="@+id/check_use_symmetric" - android:title="@string/label_symmetric" - android:checkable="true" /> - - <item android:id="@+id/check_delete_after_encrypt" android:title="@string/label_delete_after_encryption" android:checkable="true" /> diff --git a/OpenKeychain/src/main/res/menu/encrypt_text_fragment.xml b/OpenKeychain/src/main/res/menu/encrypt_text_fragment.xml index 5a262fdd8..e49898093 100644 --- a/OpenKeychain/src/main/res/menu/encrypt_text_fragment.xml +++ b/OpenKeychain/src/main/res/menu/encrypt_text_fragment.xml @@ -15,11 +15,6 @@ app:showAsAction="always" /> <item - android:id="@+id/check_use_symmetric" - android:title="@string/label_symmetric" - android:checkable="true" /> - - <item android:id="@+id/check_enable_compression" android:title="@string/label_enable_compression" android:checked="true" |