From 443cf8b2278cada347cdcf4fc934e8273ddf9957 Mon Sep 17 00:00:00 2001 From: Andy Scherzinger Date: Sun, 16 May 2021 13:53:42 +0200 Subject: [PATCH 1/2] user proper activity context to grab themed color for item header for mention items Signed-off-by: Andy Scherzinger --- .../items/MentionAutocompleteItem.java | 13 ++++++++++++- .../talk/controllers/ChatController.kt | 2 +- .../MentionAutocompletePresenter.java | 19 +++++++++++-------- app/src/main/res/layout/rv_item_mention.xml | 2 +- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java b/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java index ac7c84a9f..714b17dd6 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java @@ -21,6 +21,7 @@ package com.nextcloud.talk.adapters.items; import android.annotation.SuppressLint; +import android.content.Context; import android.view.View; import com.facebook.drawee.backends.pipeline.Fresco; @@ -34,6 +35,7 @@ import com.nextcloud.talk.utils.DisplayUtils; import java.util.List; import java.util.regex.Pattern; +import androidx.core.content.res.ResourcesCompat; import eu.davidea.flexibleadapter.FlexibleAdapter; import eu.davidea.flexibleadapter.items.AbstractFlexibleItem; import eu.davidea.flexibleadapter.items.IFilterable; @@ -47,12 +49,18 @@ public class MentionAutocompleteItem extends AbstractFlexibleItem adapter, UserItem.UserItemViewHolder holder, int position, List payloads) { + holder.contactDisplayName.setTextColor(ResourcesCompat.getColor(context.getResources(), + R.color.conversation_item_header, + null)); if (adapter.hasFilter()) { FlexibleUtils.highlightText(holder.contactDisplayName, displayName, String.valueOf(adapter.getFilter(String.class)), NextcloudTalkApplication.Companion.getSharedApplication() diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt index 561b6a2fe..e854b589e 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt @@ -801,7 +801,7 @@ class ChatController(args: Bundle) : val elevation = 6f resources?.let { val backgroundDrawable = ColorDrawable(it.getColor(R.color.bg_default)) - val presenter = MentionAutocompletePresenter(applicationContext, roomToken) + val presenter = MentionAutocompletePresenter(activity, roomToken) val callback = MentionAutocompleteCallback( activity, conversationUser, messageInput diff --git a/app/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java b/app/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java index c998feaf3..cccb83fce 100644 --- a/app/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java +++ b/app/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java @@ -22,9 +22,7 @@ package com.nextcloud.talk.presenters; import android.content.Context; import android.view.View; -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.RecyclerView; -import autodagger.AutoInjector; + import com.nextcloud.talk.adapters.items.MentionAutocompleteItem; import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; @@ -34,6 +32,15 @@ import com.nextcloud.talk.models.json.mention.MentionOverall; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.database.user.UserUtils; import com.otaliastudios.autocomplete.RecyclerViewPresenter; + +import java.util.ArrayList; +import java.util.List; + +import javax.inject.Inject; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.RecyclerView; +import autodagger.AutoInjector; import eu.davidea.flexibleadapter.FlexibleAdapter; import eu.davidea.flexibleadapter.items.AbstractFlexibleItem; import io.reactivex.Observer; @@ -41,10 +48,6 @@ import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; -import javax.inject.Inject; -import java.util.ArrayList; -import java.util.List; - @AutoInjector(NextcloudTalkApplication.class) public class MentionAutocompletePresenter extends RecyclerViewPresenter implements FlexibleAdapter.OnItemClickListener { @Inject @@ -118,7 +121,7 @@ public class MentionAutocompletePresenter extends RecyclerViewPresenter internalAbstractFlexibleItemList.add( new MentionAutocompleteItem(mention.getId(), mention.getLabel(), mention.getSource(), - currentUser)); + currentUser, context)); } if (adapter.getItemCount() != 0) { diff --git a/app/src/main/res/layout/rv_item_mention.xml b/app/src/main/res/layout/rv_item_mention.xml index d8187d6ee..0a75d1de3 100644 --- a/app/src/main/res/layout/rv_item_mention.xml +++ b/app/src/main/res/layout/rv_item_mention.xml @@ -58,7 +58,7 @@ android:layout_height="wrap_content" android:ellipsize="middle" android:singleLine="true" - android:textAppearance="?android:attr/textAppearanceListItem" + android:textAppearance="@style/ListItem" tools:text="Call item text" /> Date: Sun, 16 May 2021 14:11:34 +0200 Subject: [PATCH 2/2] Add annotation where needed Signed-off-by: Andy Scherzinger --- .../MentionAutocompletePresenter.java | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java b/app/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java index cccb83fce..a70f81f84 100644 --- a/app/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java +++ b/app/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java @@ -2,6 +2,8 @@ * Nextcloud Talk application * * @author Mario Danic + * @author Andy Scherzinger + * Copyright (C) 2021 Andy Scherzinger * Copyright (C) 2017-2018 Mario Danic * * This program is free software: you can redistribute it and/or modify @@ -33,6 +35,8 @@ import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.database.user.UserUtils; import com.otaliastudios.autocomplete.RecyclerViewPresenter; +import org.jetbrains.annotations.NotNull; + import java.util.ArrayList; import java.util.List; @@ -106,11 +110,12 @@ public class MentionAutocompletePresenter extends RecyclerViewPresenter .retry(3) .subscribe(new Observer() { @Override - public void onSubscribe(Disposable d) { + public void onSubscribe(@NotNull Disposable d) { + // no actions atm } @Override - public void onNext(MentionOverall mentionOverall) { + public void onNext(@NotNull MentionOverall mentionOverall) { List mentionsList = mentionOverall.getOcs().getData(); if (mentionsList.size() == 0) { @@ -119,9 +124,12 @@ public class MentionAutocompletePresenter extends RecyclerViewPresenter List internalAbstractFlexibleItemList = new ArrayList<>(); for (Mention mention : mentionsList) { internalAbstractFlexibleItemList.add( - new MentionAutocompleteItem(mention.getId(), - mention.getLabel(), mention.getSource(), - currentUser, context)); + new MentionAutocompleteItem( + mention.getId(), + mention.getLabel(), + mention.getSource(), + currentUser, + context)); } if (adapter.getItemCount() != 0) { @@ -133,18 +141,17 @@ public class MentionAutocompletePresenter extends RecyclerViewPresenter } @Override - public void onError(Throwable e) { + public void onError(@NotNull Throwable e) { adapter.clear(); } @Override public void onComplete() { - + // no actions atm } }); } - @Override public boolean onItemClick(View view, int position) { Mention mention = new Mention();