mirror of
https://github.com/nextcloud/talk-android
synced 2025-03-06 14:27:24 +00:00
Color search highlights
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
This commit is contained in:
parent
54d1ac9de7
commit
4af491c7df
@ -46,6 +46,7 @@ import com.nextcloud.talk.models.json.chat.ChatMessage;
|
||||
import com.nextcloud.talk.models.json.conversations.Conversation;
|
||||
import com.nextcloud.talk.models.json.status.Status;
|
||||
import com.nextcloud.talk.ui.StatusDrawable;
|
||||
import com.nextcloud.talk.ui.theme.ViewThemeUtils;
|
||||
import com.nextcloud.talk.utils.ApiUtils;
|
||||
import com.nextcloud.talk.utils.DisplayUtils;
|
||||
import com.nextcloud.talk.utils.database.user.CapabilitiesUtilNew;
|
||||
@ -76,22 +77,22 @@ public class ConversationItem extends AbstractFlexibleItem<ConversationItem.Conv
|
||||
private final Context context;
|
||||
private GenericTextHeaderItem header;
|
||||
private final Status status;
|
||||
private final ViewThemeUtils viewThemeUtils;
|
||||
|
||||
|
||||
public ConversationItem(Conversation conversation, User user, Context activityContext, Status status) {
|
||||
public ConversationItem(Conversation conversation, User user, Context activityContext, Status status, final ViewThemeUtils viewThemeUtils) {
|
||||
this.conversation = conversation;
|
||||
this.user = user;
|
||||
this.context = activityContext;
|
||||
this.status = status;
|
||||
this.viewThemeUtils = viewThemeUtils;
|
||||
}
|
||||
|
||||
public ConversationItem(Conversation conversation, User user,
|
||||
Context activityContext, GenericTextHeaderItem genericTextHeaderItem, Status status) {
|
||||
this.conversation = conversation;
|
||||
this.user = user;
|
||||
this.context = activityContext;
|
||||
Context activityContext, GenericTextHeaderItem genericTextHeaderItem, Status status,
|
||||
final ViewThemeUtils viewThemeUtils) {
|
||||
this(conversation, user, activityContext, status, viewThemeUtils);
|
||||
this.header = genericTextHeaderItem;
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -146,11 +147,7 @@ public class ConversationItem extends AbstractFlexibleItem<ConversationItem.Conv
|
||||
if (adapter.hasFilter()) {
|
||||
FlexibleUtils.highlightText(holder.binding.dialogName, conversation.getDisplayName(),
|
||||
String.valueOf(adapter.getFilter(String.class)),
|
||||
NextcloudTalkApplication
|
||||
.Companion
|
||||
.getSharedApplication()
|
||||
.getResources()
|
||||
.getColor(R.color.colorPrimary));
|
||||
viewThemeUtils.getElementColor(holder.binding.dialogName.getContext()));
|
||||
} else {
|
||||
holder.binding.dialogName.setText(conversation.getDisplayName());
|
||||
}
|
||||
|
@ -24,7 +24,6 @@ package com.nextcloud.talk.adapters.items
|
||||
import android.content.Context
|
||||
import android.text.SpannableString
|
||||
import android.view.View
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.nextcloud.talk.R
|
||||
import com.nextcloud.talk.data.user.model.User
|
||||
@ -79,7 +78,7 @@ data class MessageResultItem constructor(
|
||||
|
||||
private fun bindMessageExcerpt(holder: ViewHolder) {
|
||||
val messageSpannable = SpannableString(messageEntry.messageExcerpt)
|
||||
val highlightColor = ContextCompat.getColor(context, R.color.colorPrimary)
|
||||
val highlightColor = viewThemeUtils.getElementColor(holder.binding.messageExcerpt.context)
|
||||
val highlightedSpan = DisplayUtils.searchAndColor(messageSpannable, messageEntry.searchTerm, highlightColor)
|
||||
holder.binding.messageExcerpt.text = highlightedSpan
|
||||
}
|
||||
|
@ -631,7 +631,8 @@ public class ConversationsListController extends BaseController implements Flexi
|
||||
conversation,
|
||||
currentUser,
|
||||
getActivity(),
|
||||
userStatuses.get(conversation.getName()));
|
||||
userStatuses.get(conversation.getName()),
|
||||
viewThemeUtils);
|
||||
conversationItems.add(conversationItem);
|
||||
|
||||
ConversationItem conversationItemWithHeader = new ConversationItem(
|
||||
@ -639,7 +640,8 @@ public class ConversationsListController extends BaseController implements Flexi
|
||||
currentUser,
|
||||
getActivity(),
|
||||
callHeaderItems.get(headerTitle),
|
||||
userStatuses.get(conversation.getName()));
|
||||
userStatuses.get(conversation.getName()),
|
||||
viewThemeUtils);
|
||||
conversationItemsWithHeader.add(conversationItemWithHeader);
|
||||
}
|
||||
}
|
||||
@ -712,7 +714,8 @@ public class ConversationsListController extends BaseController implements Flexi
|
||||
currentUser,
|
||||
getActivity(),
|
||||
callHeaderItems.get(headerTitle),
|
||||
userStatuses.get(conversation.getName()));
|
||||
userStatuses.get(conversation.getName()),
|
||||
viewThemeUtils);
|
||||
|
||||
openConversationItems.add(conversationItem);
|
||||
}
|
||||
|
@ -39,7 +39,10 @@ class ViewThemeUtils @Inject constructor(val theme: ServerTheme) {
|
||||
else -> false
|
||||
}
|
||||
|
||||
private fun getElementColor(context: Context): Int = when {
|
||||
/**
|
||||
* Color for painting elements
|
||||
*/
|
||||
fun getElementColor(context: Context): Int = when {
|
||||
isDarkMode(context) -> theme.colorElementDark
|
||||
else -> theme.colorElementBright
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user