From 56b2910061ec76e1d7e3c9a80f4973eca70d17c8 Mon Sep 17 00:00:00 2001 From: Ishit Date: Wed, 1 Jul 2015 01:52:31 +0530 Subject: Fix for #1357 --- .../keychain/ui/CreateKeyPassphraseFragment.java | 54 ++++++++++++++++------ 1 file changed, 41 insertions(+), 13 deletions(-) (limited to 'OpenKeychain/src/main') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyPassphraseFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyPassphraseFragment.java index 3379e0a6d..7bf1af393 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyPassphraseFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyPassphraseFragment.java @@ -21,6 +21,8 @@ import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.support.v4.app.Fragment; +import android.text.Editable; +import android.text.TextWatcher; import android.text.method.HideReturnsTransformationMethod; import android.text.method.PasswordTransformationMethod; import android.view.LayoutInflater; @@ -79,19 +81,10 @@ public class CreateKeyPassphraseFragment extends Fragment { return output; } - private static boolean areEditTextsEqual(Context context, EditText editText1, EditText editText2) { + private static boolean areEditTextsEqual(EditText editText1, EditText editText2) { Passphrase p1 = new Passphrase(editText1); Passphrase p2 = new Passphrase(editText2); - boolean output = (p1.equals(p2)); - - if (!output) { - editText2.setError(context.getString(R.string.create_key_passphrases_not_equal)); - editText2.requestFocus(); - } else { - editText2.setError(null); - } - - return output; + return (p1.equals(p2)); } @Override @@ -137,6 +130,35 @@ public class CreateKeyPassphraseFragment extends Fragment { } }); + TextWatcher textWatcher = new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + if (!isEditTextNotEmpty(getActivity(), mPassphraseEdit)) { + mPassphraseEditAgain.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); + return; + } + + if (areEditTextsEqual(mPassphraseEdit, mPassphraseEditAgain)) { + mPassphraseEditAgain.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_done_grey_24dp, 0); + } else { + mPassphraseEditAgain.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_close_grey_24dp, 0); + } + + } + + @Override + public void afterTextChanged(Editable s) { + + } + }; + + mPassphraseEdit.addTextChangedListener(textWatcher); + mPassphraseEditAgain.addTextChangedListener(textWatcher); return view; } @@ -153,9 +175,15 @@ public class CreateKeyPassphraseFragment extends Fragment { } private void nextClicked() { - if (isEditTextNotEmpty(getActivity(), mPassphraseEdit) - && areEditTextsEqual(getActivity(), mPassphraseEdit, mPassphraseEditAgain)) { + if (isEditTextNotEmpty(getActivity(), mPassphraseEdit)) { + + if (!areEditTextsEqual(mPassphraseEdit, mPassphraseEditAgain)) { + mPassphraseEditAgain.setError(getActivity().getApplicationContext().getString(R.string.create_key_passphrases_not_equal)); + mPassphraseEditAgain.requestFocus(); + return; + } + mPassphraseEditAgain.setError(null); // save state mCreateKeyActivity.mPassphrase = new Passphrase(mPassphraseEdit); -- cgit v1.2.3 From 3510275a7fd7bff005eccbb94895d645b12e7180 Mon Sep 17 00:00:00 2001 From: Adithya Abraham Philip Date: Thu, 2 Jul 2015 05:24:04 +0530 Subject: correct keyserver preference retrieval --- .../sufficientlysecure/keychain/ui/SettingsKeyserverFragment.java | 2 +- .../main/java/org/sufficientlysecure/keychain/util/Preferences.java | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'OpenKeychain/src/main') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsKeyserverFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsKeyserverFragment.java index 20565aa7d..6578d06af 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsKeyserverFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsKeyserverFragment.java @@ -45,6 +45,7 @@ import org.sufficientlysecure.keychain.ui.util.recyclerview.ItemTouchHelperViewH import org.sufficientlysecure.keychain.ui.util.recyclerview.ItemTouchHelperDragCallback; import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.ui.util.recyclerview.RecyclerItemClickListener; +import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Preferences; import java.util.ArrayList; @@ -83,7 +84,6 @@ public class SettingsKeyserverFragment extends Fragment implements RecyclerItemC String keyservers[] = getArguments().getStringArray(ARG_KEYSERVER_ARRAY); mKeyservers = new ArrayList<>(Arrays.asList(keyservers)); - saveKeyserverList(); // in case user does not make any changes mAdapter = new KeyserverListAdapter(mKeyservers); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java index a5b0088c0..713d5f5ea 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java @@ -138,6 +138,9 @@ public class Preferences { public String[] getKeyServers() { String rawData = mSharedPreferences.getString(Constants.Pref.KEY_SERVERS, Constants.Defaults.KEY_SERVERS); + if (rawData.equals("")) { + return new String[0]; + } Vector servers = new Vector<>(); String chunks[] = rawData.split(","); for (String c : chunks) { @@ -150,7 +153,8 @@ public class Preferences { } public String getPreferredKeyserver() { - return getKeyServers()[0]; + String[] keyservers = getKeyServers(); + return keyservers.length == 0 ? null : keyservers[0]; } public void setKeyServers(String[] value) { -- cgit v1.2.3 From 7b5c35ee8787934d97d24f3d6f79fd6340ab8a4d Mon Sep 17 00:00:00 2001 From: Adithya Abraham Philip Date: Thu, 2 Jul 2015 05:43:23 +0530 Subject: prevent deletion of last keyserver in preference --- .../sufficientlysecure/keychain/ui/SettingsKeyserverFragment.java | 8 ++++++-- OpenKeychain/src/main/res/values/strings.xml | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'OpenKeychain/src/main') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsKeyserverFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsKeyserverFragment.java index 6578d06af..2ae64d90b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsKeyserverFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsKeyserverFragment.java @@ -45,7 +45,6 @@ import org.sufficientlysecure.keychain.ui.util.recyclerview.ItemTouchHelperViewH import org.sufficientlysecure.keychain.ui.util.recyclerview.ItemTouchHelperDragCallback; import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.ui.util.recyclerview.RecyclerItemClickListener; -import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Preferences; import java.util.ArrayList; @@ -146,7 +145,7 @@ public class SettingsKeyserverFragment extends Fragment implements RecyclerItemC if (deleted) { Notify.create(getActivity(), getActivity().getString( - R.string.keyserver_deleted, mKeyservers.get(position)), + R.string.keyserver_preference_deleted, mKeyservers.get(position)), Notify.Style.OK) .show(); deleteKeyserver(position); @@ -222,6 +221,11 @@ public class SettingsKeyserverFragment extends Fragment implements RecyclerItemC } private void deleteKeyserver(int position) { + if (mKeyservers.size() == 1) { + Notify.create(getActivity(), R.string.keyserver_preference_cannot_delete_last, + Notify.Style.ERROR).show(); + return; + } mKeyservers.remove(position); // we use this mAdapter.notifyItemRemoved(position); diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 619c67ee3..c216cd869 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -685,7 +685,8 @@ "Keyserver added without verification." "Invalid URL!" "Failed to connect to keyserver. Please check the URL and your internet connection." - "%s deleted" + "%s deleted" + "Cannot delete last keyserver. At least one is required!" "Keys" -- cgit v1.2.3 From 51ac309bcf537f944c75bdc2415b411944e46b0a Mon Sep 17 00:00:00 2001 From: Ishit Date: Thu, 2 Jul 2015 20:13:50 +0530 Subject: Change PassphraseEditAgain status icons. --- .../keychain/ui/CreateKeyPassphraseFragment.java | 4 ++-- .../keychain/ui/widget/EmailEditText.java | 4 ++-- .../src/main/res/drawable-hdpi/ic_stat_retyped_bad.png | Bin 0 -> 942 bytes .../src/main/res/drawable-hdpi/ic_stat_retyped_ok.png | Bin 0 -> 1252 bytes OpenKeychain/src/main/res/drawable-hdpi/uid_mail_bad.png | Bin 942 -> 0 bytes OpenKeychain/src/main/res/drawable-hdpi/uid_mail_ok.png | Bin 1252 -> 0 bytes .../src/main/res/drawable-mdpi/ic_stat_retyped_bad.png | Bin 0 -> 647 bytes .../src/main/res/drawable-mdpi/ic_stat_retyped_ok.png | Bin 0 -> 862 bytes OpenKeychain/src/main/res/drawable-mdpi/uid_mail_bad.png | Bin 647 -> 0 bytes OpenKeychain/src/main/res/drawable-mdpi/uid_mail_ok.png | Bin 862 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_stat_retyped_bad.png | Bin 0 -> 1299 bytes .../src/main/res/drawable-xhdpi/ic_stat_retyped_ok.png | Bin 0 -> 1606 bytes .../src/main/res/drawable-xhdpi/uid_mail_bad.png | Bin 1299 -> 0 bytes OpenKeychain/src/main/res/drawable-xhdpi/uid_mail_ok.png | Bin 1606 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_stat_retyped_bad.png | Bin 0 -> 2338 bytes .../src/main/res/drawable-xxhdpi/ic_stat_retyped_ok.png | Bin 0 -> 2364 bytes .../src/main/res/drawable-xxhdpi/uid_mail_bad.png | Bin 2338 -> 0 bytes .../src/main/res/drawable-xxhdpi/uid_mail_ok.png | Bin 2364 -> 0 bytes 18 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_stat_retyped_bad.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_stat_retyped_ok.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/uid_mail_bad.png delete mode 100644 OpenKeychain/src/main/res/drawable-hdpi/uid_mail_ok.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_stat_retyped_bad.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_stat_retyped_ok.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/uid_mail_bad.png delete mode 100644 OpenKeychain/src/main/res/drawable-mdpi/uid_mail_ok.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_stat_retyped_bad.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_stat_retyped_ok.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/uid_mail_bad.png delete mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/uid_mail_ok.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_stat_retyped_bad.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_stat_retyped_ok.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/uid_mail_bad.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/uid_mail_ok.png (limited to 'OpenKeychain/src/main') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyPassphraseFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyPassphraseFragment.java index 7bf1af393..b38d874d8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyPassphraseFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyPassphraseFragment.java @@ -144,9 +144,9 @@ public class CreateKeyPassphraseFragment extends Fragment { } if (areEditTextsEqual(mPassphraseEdit, mPassphraseEditAgain)) { - mPassphraseEditAgain.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_done_grey_24dp, 0); + mPassphraseEditAgain.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_stat_retyped_ok, 0); } else { - mPassphraseEditAgain.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_close_grey_24dp, 0); + mPassphraseEditAgain.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_stat_retyped_bad, 0); } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EmailEditText.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EmailEditText.java index e55f6b1ad..494ccb6d3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EmailEditText.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EmailEditText.java @@ -75,10 +75,10 @@ public class EmailEditText extends AppCompatAutoCompleteTextView { Matcher emailMatcher = Patterns.EMAIL_ADDRESS.matcher(email); if (emailMatcher.matches()) { EmailEditText.this.setCompoundDrawablesWithIntrinsicBounds(0, 0, - R.drawable.uid_mail_ok, 0); + R.drawable.ic_stat_retyped_ok, 0); } else { EmailEditText.this.setCompoundDrawablesWithIntrinsicBounds(0, 0, - R.drawable.uid_mail_bad, 0); + R.drawable.ic_stat_retyped_bad, 0); } } else { // remove drawable if email is empty diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_stat_retyped_bad.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_stat_retyped_bad.png new file mode 100644 index 000000000..dc20b0f03 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_stat_retyped_bad.png differ diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_stat_retyped_ok.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_stat_retyped_ok.png new file mode 100644 index 000000000..76944469c Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_stat_retyped_ok.png differ diff --git a/OpenKeychain/src/main/res/drawable-hdpi/uid_mail_bad.png b/OpenKeychain/src/main/res/drawable-hdpi/uid_mail_bad.png deleted file mode 100644 index dc20b0f03..000000000 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/uid_mail_bad.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable-hdpi/uid_mail_ok.png b/OpenKeychain/src/main/res/drawable-hdpi/uid_mail_ok.png deleted file mode 100644 index 76944469c..000000000 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/uid_mail_ok.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_stat_retyped_bad.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_stat_retyped_bad.png new file mode 100644 index 000000000..262d53027 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_stat_retyped_bad.png differ diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_stat_retyped_ok.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_stat_retyped_ok.png new file mode 100644 index 000000000..e16ec810a Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_stat_retyped_ok.png differ diff --git a/OpenKeychain/src/main/res/drawable-mdpi/uid_mail_bad.png b/OpenKeychain/src/main/res/drawable-mdpi/uid_mail_bad.png deleted file mode 100644 index 262d53027..000000000 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/uid_mail_bad.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable-mdpi/uid_mail_ok.png b/OpenKeychain/src/main/res/drawable-mdpi/uid_mail_ok.png deleted file mode 100644 index e16ec810a..000000000 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/uid_mail_ok.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_stat_retyped_bad.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_stat_retyped_bad.png new file mode 100644 index 000000000..fc7ba24a3 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_stat_retyped_bad.png differ diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_stat_retyped_ok.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_stat_retyped_ok.png new file mode 100644 index 000000000..e2aef1177 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_stat_retyped_ok.png differ diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/uid_mail_bad.png b/OpenKeychain/src/main/res/drawable-xhdpi/uid_mail_bad.png deleted file mode 100644 index fc7ba24a3..000000000 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/uid_mail_bad.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/uid_mail_ok.png b/OpenKeychain/src/main/res/drawable-xhdpi/uid_mail_ok.png deleted file mode 100644 index e2aef1177..000000000 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/uid_mail_ok.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_stat_retyped_bad.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_stat_retyped_bad.png new file mode 100644 index 000000000..bc71d3a65 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_stat_retyped_bad.png differ diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_stat_retyped_ok.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_stat_retyped_ok.png new file mode 100644 index 000000000..501a75d63 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_stat_retyped_ok.png differ diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/uid_mail_bad.png b/OpenKeychain/src/main/res/drawable-xxhdpi/uid_mail_bad.png deleted file mode 100644 index bc71d3a65..000000000 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/uid_mail_bad.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/uid_mail_ok.png b/OpenKeychain/src/main/res/drawable-xxhdpi/uid_mail_ok.png deleted file mode 100644 index 501a75d63..000000000 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/uid_mail_ok.png and /dev/null differ -- cgit v1.2.3