diff options
| author | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-08-16 13:42:55 +0200 | 
|---|---|---|
| committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-08-16 13:42:55 +0200 | 
| commit | ccf58a92fa915f948709fffde17f834bb1a88cdd (patch) | |
| tree | 897df170ed54cc6225f6fab2a228ff6e5eaaeeee /OpenKeychain/src/main/java/org/sufficientlysecure | |
| parent | c1f9c5e4b5378f6c98f96e85ae82137c93f5009f (diff) | |
| download | open-keychain-ccf58a92fa915f948709fffde17f834bb1a88cdd.tar.gz open-keychain-ccf58a92fa915f948709fffde17f834bb1a88cdd.tar.bz2 open-keychain-ccf58a92fa915f948709fffde17f834bb1a88cdd.zip  | |
Fix flags UI in add subkey dialog
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure')
2 files changed, 44 insertions, 5 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAddedAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAddedAdapter.java index be2e17c63..7e0027ddc 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAddedAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAddedAdapter.java @@ -106,7 +106,7 @@ public class SubkeysAddedAdapter extends ArrayAdapter<SaveKeyringParcel.SubkeyAd          holder.vKeyId.setText(R.string.edit_key_new_subkey);          holder.vKeyDetails.setText(algorithmStr); -        if (holder.mModel.mExpiry != null) { +        if (holder.mModel.mExpiry != 0L) {              Date expiryDate = new Date(holder.mModel.mExpiry * 1000);              holder.vKeyExpiry.setText(getContext().getString(R.string.label_expiry) + ": " diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java index 2b8768596..c35afd4fe 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java @@ -76,6 +76,8 @@ public class AddSubkeyDialogFragment extends DialogFragment {      private CheckBox mFlagEncrypt;      private CheckBox mFlagAuthenticate; +    private boolean mWillBeMasterKey; +      public void setOnAlgorithmSelectedListener(OnAlgorithmSelectedListener listener) {          mAlgorithmSelectedListener = listener;      } @@ -96,7 +98,7 @@ public class AddSubkeyDialogFragment extends DialogFragment {          final FragmentActivity context = getActivity();          final LayoutInflater mInflater; -        final boolean willBeMasterKey = getArguments().getBoolean(ARG_WILL_BE_MASTER_KEY); +        mWillBeMasterKey = getArguments().getBoolean(ARG_WILL_BE_MASTER_KEY);          mInflater = context.getLayoutInflater();          CustomAlertDialogBuilder dialog = new CustomAlertDialogBuilder(context); @@ -136,7 +138,7 @@ public class AddSubkeyDialogFragment extends DialogFragment {          ArrayList<Choice> choices = new ArrayList<Choice>();          choices.add(new Choice(PublicKeyAlgorithmTags.DSA, getResources().getString(                  R.string.dsa))); -        if (!willBeMasterKey) { +        if (!mWillBeMasterKey) {              choices.add(new Choice(PublicKeyAlgorithmTags.ELGAMAL_ENCRYPT, getResources().getString(                      R.string.elgamal)));          } @@ -246,7 +248,7 @@ public class AddSubkeyDialogFragment extends DialogFragment {          mAlgorithmSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {              @Override              public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { -                setKeyLengthSpinnerValuesForAlgorithm(((Choice) parent.getSelectedItem()).getId()); +                updateUiForAlgorithm(((Choice) parent.getSelectedItem()).getId());                  setCustomKeyVisibility();                  setOkButtonAvailability(alertDialog); @@ -348,7 +350,7 @@ public class AddSubkeyDialogFragment extends DialogFragment {          }      } -    private void setKeyLengthSpinnerValuesForAlgorithm(int algorithmId) { +    private void updateUiForAlgorithm(int algorithmId) {          final ArrayAdapter<CharSequence> keySizeAdapter = (ArrayAdapter<CharSequence>) mKeySizeSpinner.getAdapter();          final Object selectedItem = mKeySizeSpinner.getSelectedItem();          keySizeAdapter.clear(); @@ -356,14 +358,51 @@ public class AddSubkeyDialogFragment extends DialogFragment {              case PublicKeyAlgorithmTags.RSA_GENERAL:                  replaceArrayAdapterContent(keySizeAdapter, R.array.rsa_key_size_spinner_values);                  mCustomKeyInfoTextView.setText(getResources().getString(R.string.key_size_custom_info_rsa)); +                // allowed flags: +                mFlagSign.setEnabled(true); +                mFlagEncrypt.setEnabled(true); +                mFlagAuthenticate.setEnabled(true); + +                if (mWillBeMasterKey) { +                    mFlagCertify.setEnabled(true); + +                    mFlagCertify.setChecked(true); +                    mFlagSign.setChecked(false); +                    mFlagEncrypt.setChecked(false); +                } else { +                    mFlagCertify.setEnabled(false); + +                    mFlagCertify.setChecked(false); +                    mFlagSign.setChecked(true); +                    mFlagEncrypt.setChecked(true); +                } +                mFlagAuthenticate.setChecked(false);                  break;              case PublicKeyAlgorithmTags.ELGAMAL_ENCRYPT:                  replaceArrayAdapterContent(keySizeAdapter, R.array.elgamal_key_size_spinner_values);                  mCustomKeyInfoTextView.setText(""); // ElGamal does not support custom key length +                // allowed flags: +                mFlagCertify.setChecked(false); +                mFlagCertify.setEnabled(false); +                mFlagSign.setChecked(false); +                mFlagSign.setEnabled(false); +                mFlagEncrypt.setChecked(true); +                mFlagEncrypt.setEnabled(true); +                mFlagAuthenticate.setChecked(false); +                mFlagAuthenticate.setEnabled(false);                  break;              case PublicKeyAlgorithmTags.DSA:                  replaceArrayAdapterContent(keySizeAdapter, R.array.dsa_key_size_spinner_values);                  mCustomKeyInfoTextView.setText(getResources().getString(R.string.key_size_custom_info_dsa)); +                // allowed flags: +                mFlagCertify.setChecked(false); +                mFlagCertify.setEnabled(false); +                mFlagSign.setChecked(true); +                mFlagSign.setEnabled(true); +                mFlagEncrypt.setChecked(false); +                mFlagEncrypt.setEnabled(false); +                mFlagAuthenticate.setChecked(false); +                mFlagAuthenticate.setEnabled(false);                  break;          }          keySizeAdapter.notifyDataSetChanged();  | 
