show user no longer in group when coming from adapter

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/adapter/UserAdapter.java        | 20 
src/main/java/eu/siacs/conversations/ui/adapter/UserPreviewAdapter.java | 16 
2 files changed, 31 insertions(+), 5 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/adapter/UserAdapter.java 🔗

@@ -6,6 +6,7 @@ import android.view.ContextMenu;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.Toast;
 
 import androidx.annotation.NonNull;
 import androidx.databinding.DataBindingUtil;
@@ -13,6 +14,8 @@ import androidx.recyclerview.widget.DiffUtil;
 import androidx.recyclerview.widget.ListAdapter;
 import androidx.recyclerview.widget.RecyclerView;
 
+import com.google.common.base.Strings;
+
 import org.openintents.openpgp.util.OpenPgpUtils;
 
 import eu.siacs.conversations.R;
@@ -71,9 +74,20 @@ public class UserAdapter extends ListAdapter<MucOptions.User, UserAdapter.ViewHo
         AvatarWorkerTask.loadAvatar(user, viewHolder.binding.contactPhoto, R.dimen.avatar);
         viewHolder.binding.getRoot().setOnClickListener(v -> {
             final XmppActivity activity = XmppActivity.find(v);
-            if (activity != null) {
-                activity.highlightInMuc(user.getConversation(), user.getName());
+            if (activity == null) {
+                return;
+            }
+            final var contact = user.getContact();
+            if (user.getRole() == MucOptions.Role.NONE && contact != null) {
+                Toast.makeText(
+                                activity,
+                                activity.getString(
+                                        R.string.user_has_left_conference,
+                                        contact.getDisplayName()),
+                                Toast.LENGTH_SHORT)
+                        .show();
             }
+            activity.highlightInMuc(user.getConversation(), user.getName());
         });
         viewHolder.binding.getRoot().setTag(user);
         viewHolder.binding.getRoot().setOnCreateContextMenuListener(this);
@@ -92,7 +106,7 @@ public class UserAdapter extends ListAdapter<MucOptions.User, UserAdapter.ViewHo
                 viewHolder.binding.contactJid.setText(ConferenceDetailsActivity.getStatus(viewHolder.binding.getRoot().getContext(), user, advancedMode));
             }
         } else {
-            viewHolder.binding.contactDisplayName.setText(name == null ? "" : name);
+            viewHolder.binding.contactDisplayName.setText(Strings.nullToEmpty(name));
             viewHolder.binding.contactJid.setText(ConferenceDetailsActivity.getStatus(viewHolder.binding.getRoot().getContext(), user, advancedMode));
         }
         if (advancedMode && user.getPgpKeyId() != 0) {

src/main/java/eu/siacs/conversations/ui/adapter/UserPreviewAdapter.java 🔗

@@ -4,6 +4,7 @@ import android.view.ContextMenu;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.Toast;
 
 import androidx.annotation.NonNull;
 import androidx.databinding.DataBindingUtil;
@@ -47,9 +48,20 @@ public class UserPreviewAdapter extends ListAdapter<MucOptions.User, UserPreview
                 .setOnClickListener(
                         v -> {
                             final XmppActivity activity = XmppActivity.find(v);
-                            if (activity != null) {
-                                activity.highlightInMuc(user.getConversation(), user.getName());
+                            if (activity == null) {
+                                return;
                             }
+                            final var contact = user.getContact();
+                            if (user.getRole() == MucOptions.Role.NONE && contact != null) {
+                                Toast.makeText(
+                                                activity,
+                                                activity.getString(
+                                                        R.string.user_has_left_conference,
+                                                        contact.getDisplayName()),
+                                                Toast.LENGTH_SHORT)
+                                        .show();
+                            }
+                            activity.highlightInMuc(user.getConversation(), user.getName());
                         });
         viewHolder.binding.getRoot().setOnCreateContextMenuListener(this);
         viewHolder.binding.getRoot().setTag(user);