From db7da6525ee12af54002f7edf6574b0b49f17b41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Sun, 21 Sep 2014 23:19:21 +0200 Subject: Fix custom key configuration for primary user ids --- .../keychain/ui/EditKeyFragment.java | 22 +++++++++++++++++----- .../keychain/ui/adapter/SubkeysAddedAdapter.java | 7 +++++-- .../keychain/ui/adapter/UserIdsAddedAdapter.java | 14 +++++++++++++- .../ui/dialog/AddUserIdDialogFragment.java | 3 +-- 4 files changed, 36 insertions(+), 10 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java index e20d5e888..e7d5d3869 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java @@ -66,6 +66,7 @@ import org.sufficientlysecure.keychain.ui.dialog.EditSubkeyExpiryDialogFragment; import org.sufficientlysecure.keychain.ui.dialog.EditUserIdDialogFragment; import org.sufficientlysecure.keychain.ui.dialog.PassphraseDialogFragment; import org.sufficientlysecure.keychain.ui.dialog.SetPassphraseDialogFragment; +import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.util.Log; public class EditKeyFragment extends LoaderFragment implements @@ -190,10 +191,10 @@ public class EditKeyFragment extends LoaderFragment implements mPrimaryUserId = saveKeyringParcel.mChangePrimaryUserId; mCurrentPassphrase = saveKeyringParcel.mNewPassphrase; - mUserIdsAddedAdapter = new UserIdsAddedAdapter(getActivity(), mSaveKeyringParcel.mAddUserIds); + mUserIdsAddedAdapter = new UserIdsAddedAdapter(getActivity(), mSaveKeyringParcel.mAddUserIds, true); mUserIdsAddedList.setAdapter(mUserIdsAddedAdapter); - mSubkeysAddedAdapter = new SubkeysAddedAdapter(getActivity(), mSaveKeyringParcel.mAddSubKeys); + mSubkeysAddedAdapter = new SubkeysAddedAdapter(getActivity(), mSaveKeyringParcel.mAddSubKeys, true); mSubkeysAddedList.setAdapter(mSubkeysAddedAdapter); // show directly @@ -270,13 +271,13 @@ public class EditKeyFragment extends LoaderFragment implements mUserIdsList.setAdapter(mUserIdsAdapter); // TODO: SaveParcel from savedInstance?! - mUserIdsAddedAdapter = new UserIdsAddedAdapter(getActivity(), mSaveKeyringParcel.mAddUserIds); + mUserIdsAddedAdapter = new UserIdsAddedAdapter(getActivity(), mSaveKeyringParcel.mAddUserIds, false); mUserIdsAddedList.setAdapter(mUserIdsAddedAdapter); mSubkeysAdapter = new SubkeysAdapter(getActivity(), null, 0, mSaveKeyringParcel); mSubkeysList.setAdapter(mSubkeysAdapter); - mSubkeysAddedAdapter = new SubkeysAddedAdapter(getActivity(), mSaveKeyringParcel.mAddSubKeys); + mSubkeysAddedAdapter = new SubkeysAddedAdapter(getActivity(), mSaveKeyringParcel.mAddSubKeys, false); mSubkeysAddedList.setAdapter(mSubkeysAddedAdapter); } @@ -566,6 +567,18 @@ public class EditKeyFragment extends LoaderFragment implements } private void returnKeyringParcel() { + if (mSaveKeyringParcel.mAddUserIds.size() == 0) { + Notify.showNotify(getActivity(), R.string.edit_key_error_add_identity, Notify.Style.ERROR); + return; + } + if (mSaveKeyringParcel.mAddSubKeys.size() == 0) { + Notify.showNotify(getActivity(), R.string.edit_key_error_add_subkey, Notify.Style.ERROR); + return; + } + + // use first user id as primary + mSaveKeyringParcel.mChangePrimaryUserId = mSaveKeyringParcel.mAddUserIds.get(0); + Intent returnIntent = new Intent(); returnIntent.putExtra(EditKeyActivity.EXTRA_SAVE_KEYRING_PARCEL, mSaveKeyringParcel); getActivity().setResult(Activity.RESULT_OK, returnIntent); @@ -638,7 +651,6 @@ public class EditKeyFragment extends LoaderFragment implements * Closes this activity, returning a result parcel with a single error log entry. */ void finishWithError(LogType reason) { - // Prepare an intent with an EXTRA_RESULT Intent intent = new Intent(); intent.putExtra(OperationResult.EXTRA_RESULT, 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 6d4613aee..9f5d5341e 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 @@ -42,11 +42,14 @@ import java.util.TimeZone; public class SubkeysAddedAdapter extends ArrayAdapter { private LayoutInflater mInflater; private Activity mActivity; + private boolean mNewKeyring; - public SubkeysAddedAdapter(Activity activity, List data) { + public SubkeysAddedAdapter(Activity activity, List data, + boolean newKeyring) { super(activity, -1, data); mActivity = activity; mInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + mNewKeyring = newKeyring; } static class ViewHolder { @@ -107,7 +110,7 @@ public class SubkeysAddedAdapter extends ArrayAdapter { private LayoutInflater mInflater; + private boolean mNewKeyring; // hold a private reference to the underlying data List private List mData; - public UserIdsAddedAdapter(Activity activity, List data) { + public UserIdsAddedAdapter(Activity activity, List data, boolean newKeyring) { super(activity, -1, data); mInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); mData = data; + mNewKeyring = newKeyring; } public List getData() { @@ -111,6 +114,15 @@ public class UserIdsAddedAdapter extends ArrayAdapter { holder.vComment.setVisibility(View.GONE); } + boolean isPrimary = mNewKeyring && position == 0; + if (isPrimary) { + holder.vName.setTypeface(null, Typeface.BOLD); + holder.vAddress.setTypeface(null, Typeface.BOLD); + } else { + holder.vName.setTypeface(null, Typeface.NORMAL); + holder.vAddress.setTypeface(null, Typeface.NORMAL); + } + return convertView; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddUserIdDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddUserIdDialogFragment.java index 800110d1e..27339a02f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddUserIdDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddUserIdDialogFragment.java @@ -200,7 +200,6 @@ public class AddUserIdDialogFragment extends DialogFragment implements OnEditorA @Override public void onDismiss(DialogInterface dialog) { super.onDismiss(dialog); - Log.d(Constants.TAG, "onDismiss"); // hide keyboard on dismiss hideKeyboard(); @@ -210,7 +209,7 @@ public class AddUserIdDialogFragment extends DialogFragment implements OnEditorA InputMethodManager inputManager = (InputMethodManager) getActivity() .getSystemService(Context.INPUT_METHOD_SERVICE); - //check if no view has focus: + // check if no view has focus: View v = getActivity().getCurrentFocus(); if (v == null) return; -- cgit v1.2.3