diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationsActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationsActivity.java index 39d2540e1..e0cbfcc66 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationsActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationsActivity.java @@ -63,6 +63,7 @@ import eu.siacs.conversations.databinding.ActivityConversationsBinding; import eu.siacs.conversations.entities.Account; import eu.siacs.conversations.entities.Conversation; import eu.siacs.conversations.services.XmppConnectionService; +import eu.siacs.conversations.ui.interfaces.OnBackendConnected; import eu.siacs.conversations.ui.interfaces.OnConversationArchived; import eu.siacs.conversations.ui.interfaces.OnConversationRead; import eu.siacs.conversations.ui.interfaces.OnConversationSelected; @@ -258,8 +259,8 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio private void notifyFragmentOfBackendConnected(@IdRes int id) { final Fragment fragment = getFragmentManager().findFragmentById(id); - if (fragment != null && fragment instanceof XmppFragment) { - ((XmppFragment) fragment).onBackendConnected(); + if (fragment != null && fragment instanceof OnBackendConnected) { + ((OnBackendConnected) fragment).onBackendConnected(); } } diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java index dd951e124..3a96718a2 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java @@ -145,7 +145,7 @@ public class ConversationsOverviewFragment extends XmppFragment implements Enhan } @Override - void onBackendConnected() { + public void onBackendConnected() { refresh(); } diff --git a/src/main/java/eu/siacs/conversations/ui/XmppFragment.java b/src/main/java/eu/siacs/conversations/ui/XmppFragment.java index 59e084187..30524d2f5 100644 --- a/src/main/java/eu/siacs/conversations/ui/XmppFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/XmppFragment.java @@ -32,9 +32,9 @@ package eu.siacs.conversations.ui; import android.app.Activity; import android.app.Fragment; -public abstract class XmppFragment extends Fragment { +import eu.siacs.conversations.ui.interfaces.OnBackendConnected; - abstract void onBackendConnected(); +public abstract class XmppFragment extends Fragment implements OnBackendConnected { abstract void refresh(); diff --git a/src/main/java/eu/siacs/conversations/ui/interfaces/OnBackendConnected.java b/src/main/java/eu/siacs/conversations/ui/interfaces/OnBackendConnected.java new file mode 100644 index 000000000..882e7417c --- /dev/null +++ b/src/main/java/eu/siacs/conversations/ui/interfaces/OnBackendConnected.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2018, Daniel Gultsch All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its contributors + * may be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package eu.siacs.conversations.ui.interfaces; + +public interface OnBackendConnected { + + void onBackendConnected(); + +} diff --git a/src/main/java/eu/siacs/conversations/utils/UIHelper.java b/src/main/java/eu/siacs/conversations/utils/UIHelper.java index f046269ff..d05935e88 100644 --- a/src/main/java/eu/siacs/conversations/utils/UIHelper.java +++ b/src/main/java/eu/siacs/conversations/utils/UIHelper.java @@ -418,12 +418,14 @@ public class UIHelper { public static String concatNames(List users, int max) { StringBuilder builder = new StringBuilder(); final boolean shortNames = users.size() >= 3; - for (int i = 0; i < Math.max(users.size(), max); ++i) { + for (int i = 0; i < Math.min(users.size(), max); ++i) { if (builder.length() != 0) { builder.append(", "); } final String name = UIHelper.getDisplayName(users.get(i)); - builder.append(shortNames ? name.split("\\s+")[0] : name); + if (name != null) { + builder.append(shortNames ? name.split("\\s+")[0] : name); + } } return builder.toString(); }