Color search highlights

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
This commit is contained in:
Álvaro Brey 2022-07-21 15:00:09 +02:00 committed by Andy Scherzinger
parent 54d1ac9de7
commit 4af491c7df
No known key found for this signature in database
GPG Key ID: 6CADC7E3523C308B
4 changed files with 19 additions and 17 deletions

View File

@ -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());
}

View File

@ -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
}

View File

@ -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);
}

View File

@ -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
}