forked from mirror/monocles_chat
Show the name of the sender in search results (#4379)
Just like a MUC, search results lack the context to be sure who sent a message, so show the name in the result item. (cherry picked from commit 9ae0475413334b33b713dae6b84a070c890d1d76) (cherry picked from commit 95b2562a5a0de100b42821ca42e34a991cc1fb2a)
This commit is contained in:
parent
d6f5b49736
commit
201849358d
3 changed files with 28 additions and 9 deletions
src/main
java/eu/siacs/conversations/ui
res/layout
|
@ -29,6 +29,9 @@
|
|||
|
||||
package eu.siacs.conversations.ui;
|
||||
|
||||
import static eu.siacs.conversations.ui.util.SoftKeyboardUtils.hideSoftKeyboard;
|
||||
import static eu.siacs.conversations.ui.util.SoftKeyboardUtils.showKeyboard;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.Editable;
|
||||
|
@ -72,9 +75,6 @@ import eu.siacs.conversations.utils.FtsUtils;
|
|||
import eu.siacs.conversations.utils.MessageUtils;
|
||||
import eu.siacs.conversations.utils.UIHelper;
|
||||
|
||||
import static eu.siacs.conversations.ui.util.SoftKeyboardUtils.hideSoftKeyboard;
|
||||
import static eu.siacs.conversations.ui.util.SoftKeyboardUtils.showKeyboard;
|
||||
|
||||
public class SearchActivity extends XmppActivity implements TextWatcher, OnSearchResultsAvailable, MessageAdapter.OnContactPictureClicked {
|
||||
|
||||
private static final String EXTRA_SEARCH_TERM = "search-term";
|
||||
|
@ -100,7 +100,7 @@ public class SearchActivity extends XmppActivity implements TextWatcher, OnSearc
|
|||
this.binding = DataBindingUtil.setContentView(this, R.layout.activity_search);
|
||||
setSupportActionBar((Toolbar) this.binding.toolbar);
|
||||
configureActionBar(getSupportActionBar());
|
||||
this.messageListAdapter = new MessageAdapter(this, this.messages);
|
||||
this.messageListAdapter = new MessageAdapter(this, this.messages, uuid == null);
|
||||
this.messageListAdapter.setOnContactPictureClicked(this);
|
||||
this.binding.searchResults.setAdapter(messageListAdapter);
|
||||
registerForContextMenu(this.binding.searchResults);
|
||||
|
|
|
@ -124,6 +124,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
|||
private boolean mPlayGifInside = false;
|
||||
private boolean mShowLinksInside = false;
|
||||
private boolean mShowMapsInside = false;
|
||||
private boolean mForceNames = false;
|
||||
|
||||
public MessageAdapter(XmppActivity activity, List<Message> messages) {
|
||||
super(activity, 0, messages);
|
||||
|
@ -133,6 +134,11 @@ 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) {
|
||||
view.setOnClickListener(null);
|
||||
|
@ -308,11 +314,10 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
|||
error = true;
|
||||
break;
|
||||
default:
|
||||
if (multiReceived) {
|
||||
if (mForceNames || multiReceived) {
|
||||
final int shadowSize = 10;
|
||||
showUsername(viewHolder, message, darkBackground);
|
||||
}
|
||||
if (singleReceived) {
|
||||
} else if (singleReceived) {
|
||||
viewHolder.username.setVisibility(View.GONE);
|
||||
}
|
||||
break;
|
||||
|
@ -406,12 +411,15 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
|||
}
|
||||
}
|
||||
private void showUsername(ViewHolder viewHolder, Message message, boolean darkBackground) {
|
||||
if (message.showUsername()) {
|
||||
if (message == null || viewHolder == null) {
|
||||
return;
|
||||
}
|
||||
viewHolder.username.setText(UIHelper.getColoredUsername(activity.xmppConnectionService, message));
|
||||
if (message.showUsername() || mForceNames) {
|
||||
viewHolder.username.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
viewHolder.username.setVisibility(View.GONE);
|
||||
}
|
||||
viewHolder.username.setText(UIHelper.getColoredUsername(activity.xmppConnectionService, message));
|
||||
if (activity.xmppConnectionService.colored_muc_names() && ThemeHelper.showColoredUsernameBackGround(activity, darkBackground)) {
|
||||
viewHolder.username.setPadding(4, 2, 4, 2);
|
||||
viewHolder.username.setBackground(ContextCompat.getDrawable(activity, R.drawable.duration_background));
|
||||
|
@ -1135,6 +1143,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
|||
view = activity.getLayoutInflater().inflate(R.layout.message_sent, parent, false);
|
||||
viewHolder.message_box = view.findViewById(R.id.message_box);
|
||||
viewHolder.contact_picture = view.findViewById(R.id.message_photo);
|
||||
viewHolder.username = view.findViewById(R.id.username);
|
||||
viewHolder.audioPlayer = view.findViewById(R.id.audio_player);
|
||||
viewHolder.download_button = view.findViewById(R.id.download_button);
|
||||
viewHolder.resend_button = view.findViewById(R.id.resend_button);
|
||||
|
|
|
@ -56,6 +56,16 @@
|
|||
android:orientation="vertical"
|
||||
android:padding="2dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/username"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/user"
|
||||
android:textAppearance="@style/TextAppearance.Conversations.Caption"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<include
|
||||
android:id="@+id/message_content"
|
||||
layout="@layout/message_content" />
|
||||
|
|
Loading…
Add table
Reference in a new issue