diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-07-02 10:58:23 +0200 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-07-02 10:58:23 +0200 |
commit | 06c1871542eaad899c48431fdab620d815217fd8 (patch) | |
tree | d80d79f82b1689e15a1d308713a0d8909fe93a42 /OpenKeychain/src | |
parent | 9fe05ed1e7fff479430f0042c47842151a0cb68d (diff) | |
parent | 7b5c35ee8787934d97d24f3d6f79fd6340ab8a4d (diff) | |
download | open-keychain-06c1871542eaad899c48431fdab620d815217fd8.tar.gz open-keychain-06c1871542eaad899c48431fdab620d815217fd8.tar.bz2 open-keychain-06c1871542eaad899c48431fdab620d815217fd8.zip |
Merge pull request #1400 from open-keychain/keyserver-preference
Fixe Keyserver Preference crash on empty list
Diffstat (limited to 'OpenKeychain/src')
3 files changed, 13 insertions, 4 deletions
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..2ae64d90b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsKeyserverFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsKeyserverFragment.java @@ -83,7 +83,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); @@ -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/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<String> 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) { 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 @@ <string name="add_keyserver_without_verification">"Keyserver added without verification."</string> <string name="add_keyserver_invalid_url">"Invalid URL!"</string> <string name="add_keyserver_connection_failed">"Failed to connect to keyserver. Please check the URL and your internet connection."</string> - <string name="keyserver_deleted">"%s deleted"</string> + <string name="keyserver_preference_deleted">"%s deleted"</string> + <string name="keyserver_preference_cannot_delete_last">"Cannot delete last keyserver. At least one is required!"</string> <!-- Navigation Drawer --> <string name="nav_keys">"Keys"</string> |