diff options
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java | 16 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/values/strings.xml | 3 |
2 files changed, 14 insertions, 5 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index 5024a17ed..ebc21a926 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -55,6 +55,7 @@ import android.widget.ListView; import android.widget.TextView; import com.beardedhen.androidbootstrap.BootstrapButton; +import com.devspark.appmsg.AppMsg; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; @@ -186,7 +187,7 @@ public class KeyListFragment extends Fragment } case R.id.menu_key_list_multi_delete: { ids = mAdapter.getCurrentSelectedMasterKeyIds(); - showDeleteKeyDialog(mode, ids); + showDeleteKeyDialog(mode, ids, mAdapter.isAnySecretSelected()); break; } case R.id.menu_key_list_multi_export: { @@ -263,7 +264,7 @@ public class KeyListFragment extends Fragment static final int INDEX_VERIFIED = 5; static final int INDEX_HAS_ANY_SECRET = 6; - static final String ORDER = // IN THE COURT + static final String ORDER = KeyRings.HAS_ANY_SECRET + " DESC, " + KeyRings.USER_ID + " ASC"; @@ -339,10 +340,17 @@ public class KeyListFragment extends Fragment * Show dialog to delete key * * @param masterKeyIds + * @param hasSecret must contain whether the list of masterKeyIds contains a secret key or not */ @TargetApi(11) - // TODO: this method needs an overhaul to handle both public and secret keys gracefully! - public void showDeleteKeyDialog(final ActionMode mode, long[] masterKeyIds) { + public void showDeleteKeyDialog(final ActionMode mode, long[] masterKeyIds, boolean hasSecret) { + // Can only work on singular secret keys + if(hasSecret && masterKeyIds.length > 1) { + AppMsg.makeText(getActivity(), R.string.secret_cannot_multiple, + AppMsg.STYLE_ALERT).show(); + return; + } + // Message is received after key is deleted Handler returnHandler = new Handler() { @Override diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 0a855ae70..4ea5d7adc 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -219,7 +219,7 @@ <string name="specify_file_to_export_to">Please specify which file to export to.\nWARNING: File will be overwritten if it exists.</string> <string name="specify_file_to_export_secret_keys_to">Please specify which file to export to.\nWARNING: You are about to export SECRET keys.\nWARNING: File will be overwritten if it exists.</string> <string name="key_deletion_confirmation">Do you really want to delete the key \'%s\'?\nYou can\'t undo this!</string> - <string name="key_deletion_confirmation_multi">Do you really want to delete all selected keys (including secret keys)?\nYou can\'t undo this!</string> + <string name="key_deletion_confirmation_multi">Do you really want to delete all selected public keys?\nYou can\'t undo this!</string> <string name="secret_key_deletion_confirmation">Do you really want to delete the SECRET key \'%s\'?\nYou can\'t undo this!</string> <string name="ask_save_changed_key">You have made changes to the keyring, would you like to save it?</string> <string name="ask_empty_id_ok">"You have added an empty user ID, are you sure you want to continue?"</string> @@ -537,5 +537,6 @@ <string name="error_key_processing">Error processing key!</string> <string name="no_subkey">subkey unavailable</string> <string name="key_stripped">stripped</string> + <string name="secret_cannot_multiple">Secret keys can only be deleted individually!</string> </resources> |