From 04cdd45e1aceb940fe74051a0015e5ab85b18314 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Tue, 5 Aug 2014 18:35:48 +0200 Subject: Work on add subkey dialog design --- .../ui/dialog/AddSubkeyDialogFragment.java | 46 +++++++++++++++++----- 1 file changed, 37 insertions(+), 9 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java') 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 2031eae2a..c085adf40 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 @@ -32,6 +32,9 @@ import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.ArrayAdapter; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.DatePicker; import android.widget.EditText; import android.widget.Spinner; import android.widget.TextView; @@ -54,11 +57,18 @@ public class AddSubkeyDialogFragment extends DialogFragment { private static final String ARG_WILL_BE_MASTER_KEY = "will_be_master_key"; private OnAlgorithmSelectedListener mAlgorithmSelectedListener; + + private CheckBox mNoExpiryCheckBox; + private DatePicker mExpiryDatePicker; private Spinner mAlgorithmSpinner; private Spinner mKeySizeSpinner; private TextView mCustomKeyTextView; private EditText mCustomKeyEditText; private TextView mCustomKeyInfoTextView; + private CheckBox mFlagCertify; + private CheckBox mFlagSign; + private CheckBox mFlagEncrypt; + private CheckBox mFlagAuthenticate; public void setOnAlgorithmSelectedListener(OnAlgorithmSelectedListener listener) { mAlgorithmSelectedListener = listener; @@ -85,11 +95,33 @@ public class AddSubkeyDialogFragment extends DialogFragment { CustomAlertDialogBuilder dialog = new CustomAlertDialogBuilder(context); - View view = mInflater.inflate(R.layout.create_key_dialog, null); + View view = mInflater.inflate(R.layout.add_subkey_dialog, null); dialog.setView(view); dialog.setTitle(R.string.title_create_key); - mAlgorithmSpinner = (Spinner) view.findViewById(R.id.create_key_algorithm); + mNoExpiryCheckBox = (CheckBox) view.findViewById(R.id.add_subkey_no_expiry); + mExpiryDatePicker = (DatePicker) view.findViewById(R.id.add_subkey_expiry_date_picker); + mAlgorithmSpinner = (Spinner) view.findViewById(R.id.add_subkey_algorithm); + mKeySizeSpinner = (Spinner) view.findViewById(R.id.add_subkey_size); + mCustomKeyTextView = (TextView) view.findViewById(R.id.add_subkey_custom_key_size_label); + mCustomKeyEditText = (EditText) view.findViewById(R.id.add_subkey_custom_key_size_input); + mCustomKeyInfoTextView = (TextView) view.findViewById(R.id.add_subkey_custom_key_size_info); + mFlagCertify = (CheckBox) view.findViewById(R.id.add_subkey_flag_certify); + mFlagSign = (CheckBox) view.findViewById(R.id.add_subkey_flag_sign); + mFlagEncrypt = (CheckBox) view.findViewById(R.id.add_subkey_flag_encrypt); + mFlagAuthenticate = (CheckBox) view.findViewById(R.id.add_subkey_flag_authenticate); + + mNoExpiryCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + mExpiryDatePicker.setVisibility(View.GONE); + } else { + mExpiryDatePicker.setVisibility(View.VISIBLE); + } + } + }); + ArrayList choices = new ArrayList(); choices.add(new Choice(Constants.choice.algorithm.dsa, getResources().getString( R.string.dsa))); @@ -97,10 +129,8 @@ public class AddSubkeyDialogFragment extends DialogFragment { choices.add(new Choice(Constants.choice.algorithm.elgamal, getResources().getString( R.string.elgamal))); } - choices.add(new Choice(Constants.choice.algorithm.rsa, getResources().getString( R.string.rsa))); - ArrayAdapter adapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, choices); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); @@ -113,7 +143,7 @@ public class AddSubkeyDialogFragment extends DialogFragment { } } - mKeySizeSpinner = (Spinner) view.findViewById(R.id.create_key_size); + // dynamic ArrayAdapter must be created (instead of ArrayAdapter.getFromResource), because it's content may change ArrayAdapter keySizeAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, new ArrayList(Arrays.asList(getResources().getStringArray(R.array.rsa_key_size_spinner_values)))); @@ -121,9 +151,6 @@ public class AddSubkeyDialogFragment extends DialogFragment { mKeySizeSpinner.setAdapter(keySizeAdapter); mKeySizeSpinner.setSelection(1); // Default to 4096 for the key length - mCustomKeyTextView = (TextView) view.findViewById(R.id.custom_key_size_label); - mCustomKeyEditText = (EditText) view.findViewById(R.id.custom_key_size_input); - mCustomKeyInfoTextView = (TextView) view.findViewById(R.id.custom_key_size_info); dialog.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @@ -148,7 +175,8 @@ public class AddSubkeyDialogFragment extends DialogFragment { public void onClick(DialogInterface di, int id) { di.dismiss(); } - }); + } + ); final AlertDialog alertDialog = dialog.show(); -- cgit v1.2.3