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 +-- .../keychain/util/ContactHelper.java | 1 - OpenKeychain/src/main/res/values/strings.xml | 2 ++ 6 files changed, 38 insertions(+), 11 deletions(-) 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; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java index 1e2a35be2..1c4eece6b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java @@ -130,7 +130,6 @@ public class ContactHelper { Set currNames = new HashSet(); while (profileCursor.moveToNext()) { String name = profileCursor.getString(1); - Log.d(Constants.TAG, "name" + name); if (name != null) { currNames.add(name); } diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 3b1f01f1f..e5e320585 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -497,6 +497,8 @@ "new subkey" "Please select at least one flag!" + "Add at least one identity!" + "Add at least one subkey!" "Upload key to keyserver" -- cgit v1.2.3