Show the name of the sender in search results

Stephen Paul Weber created

Just like a MUC, search results lack the context to be sure who sent a message,
so show the name in the result item.

Change summary

src/main/java/eu/siacs/conversations/ui/SearchActivity.java         | 2 
src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java | 7 
2 files changed, 7 insertions(+), 2 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/SearchActivity.java 🔗

@@ -97,7 +97,7 @@ public class SearchActivity extends XmppActivity implements TextWatcher, OnSearc
 		this.binding = DataBindingUtil.setContentView(this, R.layout.activity_search);
 		setSupportActionBar(this.binding.toolbar);
 		configureActionBar(getSupportActionBar());
-		this.messageListAdapter = new MessageAdapter(this, this.messages);
+		this.messageListAdapter = new MessageAdapter(this, this.messages, true);
 		this.messageListAdapter.setOnContactPictureClicked(this);
 		this.binding.searchResults.setAdapter(messageListAdapter);
 		registerForContextMenu(this.binding.searchResults);

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

@@ -93,6 +93,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
     private OnContactPictureClicked mOnContactPictureClickedListener;
     private OnContactPictureLongClicked mOnContactPictureLongClickedListener;
     private boolean mUseGreenBackground = false;
+    private boolean mForceNames = false;
 
     public MessageAdapter(XmppActivity activity, List<Message> messages) {
         super(activity, 0, messages);
@@ -102,6 +103,10 @@ public class MessageAdapter extends ArrayAdapter<Message> {
         updatePreferences();
     }
 
+    public MessageAdapter(XmppActivity activity, List<Message> messages, boolean forceNames) {
+        this(activity, messages);
+        mForceNames = forceNames;
+    }
 
     private static void resetClickListener(View... views) {
         for (View view : views) {
@@ -239,7 +244,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
                 error = true;
                 break;
             default:
-                if (multiReceived) {
+                if (mForceNames || multiReceived) {
                     info = UIHelper.getMessageDisplayName(message);
                 }
                 break;