diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-08-05 18:35:48 +0200 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-08-05 18:35:48 +0200 |
commit | 04cdd45e1aceb940fe74051a0015e5ab85b18314 (patch) | |
tree | 80e1609a03053f745b4aa94a5c07616831fa7a28 | |
parent | d377d1f23d75ad78982419e9ca9633cd5b6813e1 (diff) | |
download | open-keychain-04cdd45e1aceb940fe74051a0015e5ab85b18314.tar.gz open-keychain-04cdd45e1aceb940fe74051a0015e5ab85b18314.tar.bz2 open-keychain-04cdd45e1aceb940fe74051a0015e5ab85b18314.zip |
Work on add subkey dialog design
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java | 46 | ||||
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java | 4 | ||||
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditUserIdDialogFragment.java | 2 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/layout/add_subkey_dialog.xml (renamed from OpenKeychain/src/main/res/layout/create_key_dialog.xml) | 157 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml (renamed from OpenKeychain/src/main/res/layout/expiry_dialog.xml) | 4 |
5 files changed, 127 insertions, 86 deletions
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<Choice> choices = new ArrayList<Choice>(); 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<Choice> adapter = new ArrayAdapter<Choice>(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<CharSequence> keySizeAdapter = new ArrayAdapter<CharSequence>(context, android.R.layout.simple_spinner_item, new ArrayList<CharSequence>(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(); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java index 8482c0b37..303ab4363 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java @@ -92,10 +92,10 @@ public class EditSubkeyExpiryDialogFragment extends DialogFragment { alert.setTitle(R.string.expiry_date_dialog_title); LayoutInflater inflater = activity.getLayoutInflater(); - View view = inflater.inflate(R.layout.expiry_dialog, null); + View view = inflater.inflate(R.layout.edit_subkey_expiry_dialog, null); alert.setView(view); - mDatePicker = (DatePicker) view.findViewById(R.id.datePicker); + mDatePicker = (DatePicker) view.findViewById(R.id.edit_subkey_expiry_date_picker); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) { // will crash with IllegalArgumentException if we set a min date diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditUserIdDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditUserIdDialogFragment.java index 8a31b7f64..70a3b8fd0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditUserIdDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditUserIdDialogFragment.java @@ -29,8 +29,6 @@ import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.util.Log; -import java.util.Arrays; - public class EditUserIdDialogFragment extends DialogFragment { private static final String ARG_MESSENGER = "messenger"; diff --git a/OpenKeychain/src/main/res/layout/create_key_dialog.xml b/OpenKeychain/src/main/res/layout/add_subkey_dialog.xml index 31c5fbefc..a4bd4ed6a 100644 --- a/OpenKeychain/src/main/res/layout/create_key_dialog.xml +++ b/OpenKeychain/src/main/res/layout/add_subkey_dialog.xml @@ -6,64 +6,90 @@ <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" + android:paddingTop="8dp" android:paddingLeft="16dp" android:paddingRight="16dp" android:stretchColumns="1"> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:text="@string/key_creation_el_gamal_info" /> + <TableRow> <TextView - android:id="@+id/label_expiry" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" - android:paddingRight="10dip" - android:text="@string/label_expiry" /> + android:text="@string/label_algorithm" /> - <Button - android:id="@+id/expiry" + <Spinner + android:id="@+id/add_subkey_algorithm" android:layout_width="match_parent" - android:layout_height="40dp" - android:text="@string/none" - android:background="@drawable/button_edgy" /> + android:layout_height="wrap_content" + android:padding="4dp" /> </TableRow> - <TableRow android:id="@+id/row_certify"> + <TableRow> <TextView - android:id="@+id/label_usage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" - android:paddingRight="10dip" - android:text="@string/label_usage" /> + android:text="@string/label_key_size" /> - <CheckBox - android:id="@+id/chkCertify" - android:enabled="false" - android:layout_width="wrap_content" + <Spinner + android:id="@+id/add_subkey_size" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="@string/flag_certify" /> + android:gravity="right" + android:padding="4dp" /> </TableRow> - <TableRow android:id="@+id/row_sign"> + <TextView + android:id="@+id/add_subkey_custom_key_size_label" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:text="@string/key_size_custom_info" + android:visibility="gone" /> + + <EditText + android:id="@+id/add_subkey_custom_key_size_input" + android:layout_width="0dip" + android:layout_height="wrap_content" + android:layout_weight="1" + android:inputType="number" + android:visibility="gone" /> + + <TextView + android:id="@+id/add_subkey_custom_key_size_info" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" /> + + <TableRow> <TextView - android:id="@+id/label_usage2" + android:id="@+id/label_expiry" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:paddingRight="10dip" - android:text="@string/label_usage" /> + android:text="@string/label_expiry" /> <CheckBox - android:id="@+id/chkSign" + android:id="@+id/add_subkey_no_expiry" + android:checked="true" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="@string/flag_sign" /> + android:text="@string/btn_no_date" /> + </TableRow> - <TableRow android:id="@+id/row_encrypt"> + <TableRow> <TextView android:layout_width="wrap_content" @@ -71,49 +97,49 @@ android:layout_gravity="center_vertical" android:paddingRight="10dip" /> - <CheckBox - android:id="@+id/chkEncrypt" + <DatePicker + android:id="@+id/add_subkey_expiry_date_picker" + android:layout_gravity="center_horizontal" + android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="@string/flag_encrypt" /> + android:spinnersShown="true" + android:calendarViewShown="false" /> + </TableRow> - <TableRow android:id="@+id/row_authenticate"> + <TableRow> <TextView + android:id="@+id/label_usage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" - android:paddingRight="10dip" /> + android:paddingRight="10dip" + android:text="@string/label_usage" /> + <CheckBox - android:id="@+id/chkAuthenticate" + android:id="@+id/add_subkey_flag_certify" + android:enabled="false" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="@string/flag_authenticate" /> + android:text="@string/flag_certify" /> </TableRow> - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center_vertical" - android:padding="4dp" - android:text="@string/key_creation_el_gamal_info" /> - <TableRow> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" - android:padding="4dp" - android:text="@string/label_algorithm" /> + android:paddingRight="10dip" /> - <Spinner - android:id="@+id/create_key_algorithm" - android:layout_width="match_parent" + <CheckBox + android:id="@+id/add_subkey_flag_sign" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:padding="4dp" /> + android:text="@string/flag_sign" /> </TableRow> <TableRow> @@ -122,40 +148,29 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" - android:padding="4dp" - android:text="@string/label_key_size" /> + android:paddingRight="10dip" /> - <Spinner - android:id="@+id/create_key_size" - android:layout_width="match_parent" + <CheckBox + android:id="@+id/add_subkey_flag_encrypt" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:gravity="right" - android:padding="4dp" /> + android:text="@string/flag_encrypt" /> </TableRow> - <TextView - android:id="@+id/custom_key_size_label" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center_vertical" - android:padding="4dp" - android:text="@string/key_size_custom_info" - android:visibility="gone" /> + <TableRow> - <EditText - android:id="@+id/custom_key_size_input" - android:layout_width="0dip" - android:layout_height="wrap_content" - android:layout_weight="1" - android:inputType="number" - android:visibility="gone" /> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:paddingRight="10dip" /> - <TextView - android:id="@+id/custom_key_size_info" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center_vertical" - android:padding="4dp" /> + <CheckBox + android:id="@+id/add_subkey_flag_authenticate" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/flag_authenticate" /> + </TableRow> </TableLayout> diff --git a/OpenKeychain/src/main/res/layout/expiry_dialog.xml b/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml index 14fff0b3f..062f07863 100644 --- a/OpenKeychain/src/main/res/layout/expiry_dialog.xml +++ b/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml @@ -4,8 +4,8 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - <DatePicker xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/datePicker" + <DatePicker + android:id="@+id/edit_subkey_expiry_date_picker" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" |