Merge pull request #1400 from open-keychain/keyserver-preference
Fixe Keyserver Preference crash on empty list
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user