replace any use of getElement

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
This commit is contained in:
Andy Scherzinger 2022-08-11 16:03:57 +02:00
parent 89a7c5e400
commit 53f0779a44
No known key found for this signature in database
GPG Key ID: 6CADC7E3523C308B
4 changed files with 34 additions and 34 deletions

View File

@ -144,9 +144,9 @@ public class ConversationItem extends AbstractFlexibleItem<ConversationItem.Conv
null)); null));
if (adapter.hasFilter()) { if (adapter.hasFilter()) {
FlexibleUtils.highlightText(holder.binding.dialogName, conversation.getDisplayName(), viewThemeUtils.highlightText(holder.binding.dialogName,
String.valueOf(adapter.getFilter(String.class)), conversation.getDisplayName(),
viewThemeUtils.getElementColor(holder.binding.dialogName.getContext())); String.valueOf(adapter.getFilter(String.class)));
} else { } else {
holder.binding.dialogName.setText(conversation.getDisplayName()); holder.binding.dialogName.setText(conversation.getDisplayName());
} }

View File

@ -77,9 +77,11 @@ data class MessageResultItem constructor(
} }
private fun bindMessageExcerpt(holder: ViewHolder) { private fun bindMessageExcerpt(holder: ViewHolder) {
val messageSpannable = SpannableString(messageEntry.messageExcerpt) val highlightedSpan = viewThemeUtils.createHighlightedSpan(
val highlightColor = viewThemeUtils.getElementColor(holder.binding.messageExcerpt.context) holder.binding.messageExcerpt.context,
val highlightedSpan = DisplayUtils.searchAndColor(messageSpannable, messageEntry.searchTerm, highlightColor) SpannableString(messageEntry.messageExcerpt),
messageEntry.searchTerm
)
holder.binding.messageExcerpt.text = highlightedSpan holder.binding.messageExcerpt.text = highlightedSpan
} }

View File

@ -39,9 +39,7 @@ import android.view.MenuItem
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Toast import android.widget.Toast
import androidx.annotation.ColorInt
import androidx.annotation.DrawableRes import androidx.annotation.DrawableRes
import androidx.core.graphics.drawable.DrawableCompat
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import autodagger.AutoInjector import autodagger.AutoInjector
@ -66,6 +64,7 @@ import com.nextcloud.talk.models.json.userprofile.UserProfileFieldsOverall
import com.nextcloud.talk.models.json.userprofile.UserProfileOverall import com.nextcloud.talk.models.json.userprofile.UserProfileOverall
import com.nextcloud.talk.remotefilebrowser.activities.RemoteFileBrowserActivity import com.nextcloud.talk.remotefilebrowser.activities.RemoteFileBrowserActivity
import com.nextcloud.talk.ui.dialog.ScopeDialog import com.nextcloud.talk.ui.dialog.ScopeDialog
import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.nextcloud.talk.users.UserManager import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.DisplayUtils import com.nextcloud.talk.utils.DisplayUtils
@ -193,7 +192,7 @@ class ProfileController : NewBaseController(R.layout.controller_profile) {
override fun onAttach(view: View) { override fun onAttach(view: View) {
super.onAttach(view) super.onAttach(view)
adapter = UserInfoAdapter(null, viewThemeUtils.getElementColor(activity!!), this) adapter = UserInfoAdapter(null, viewThemeUtils, this)
binding.userinfoList.adapter = adapter binding.userinfoList.adapter = adapter
binding.userinfoList.setItemViewCacheSize(DEFAULT_CACHE_SIZE) binding.userinfoList.setItemViewCacheSize(DEFAULT_CACHE_SIZE)
currentUser = userManager.currentUser.blockingGet() currentUser = userManager.currentUser.blockingGet()
@ -708,18 +707,18 @@ class ProfileController : NewBaseController(R.layout.controller_profile) {
class UserInfoAdapter( class UserInfoAdapter(
displayList: List<UserInfoDetailsItem>?, displayList: List<UserInfoDetailsItem>?,
@ColorInt tintColor: Int, private val viewThemeUtils: ViewThemeUtils,
controller: ProfileController private val controller: ProfileController
) : RecyclerView.Adapter<UserInfoAdapter.ViewHolder>() { ) : RecyclerView.Adapter<UserInfoAdapter.ViewHolder>() {
var displayList: List<UserInfoDetailsItem>? var displayList: List<UserInfoDetailsItem>?
var filteredDisplayList: MutableList<UserInfoDetailsItem> = LinkedList() var filteredDisplayList: MutableList<UserInfoDetailsItem> = LinkedList()
@ColorInt
protected var mTintColor: Int
private val controller: ProfileController
class ViewHolder(val binding: UserInfoDetailsTableItemBinding) : RecyclerView.ViewHolder(binding.root) class ViewHolder(val binding: UserInfoDetailsTableItemBinding) : RecyclerView.ViewHolder(binding.root)
init {
this.displayList = displayList ?: LinkedList()
}
fun setData(displayList: List<UserInfoDetailsItem>) { fun setData(displayList: List<UserInfoDetailsItem>) {
this.displayList = displayList this.displayList = displayList
updateFilteredList() updateFilteredList()
@ -756,7 +755,7 @@ class ProfileController : NewBaseController(R.layout.controller_profile) {
initUserInfoEditText(holder, item) initUserInfoEditText(holder, item)
holder.binding.icon.contentDescription = item.hint holder.binding.icon.contentDescription = item.hint
DrawableCompat.setTint(holder.binding.icon.drawable, mTintColor) viewThemeUtils.colorImageView(holder.binding.icon)
if (!TextUtils.isEmpty(item.text) || controller.edit) { if (!TextUtils.isEmpty(item.text) || controller.edit) {
holder.binding.userInfoDetailContainer.visibility = View.VISIBLE holder.binding.userInfoDetailContainer.visibility = View.VISIBLE
controller.viewThemeUtils.colorTextInputLayout(holder.binding.userInfoInputLayout) controller.viewThemeUtils.colorTextInputLayout(holder.binding.userInfoInputLayout)
@ -851,12 +850,6 @@ class ProfileController : NewBaseController(R.layout.controller_profile) {
displayList!![position].scope = scope displayList!![position].scope = scope
notifyDataSetChanged() notifyDataSetChanged()
} }
init {
this.displayList = displayList ?: LinkedList()
mTintColor = tintColor
this.controller = controller
}
} }
enum class Field(val fieldName: String, val scopeName: String) { enum class Field(val fieldName: String, val scopeName: String) {

View File

@ -30,6 +30,8 @@ import android.graphics.PorterDuff
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.graphics.drawable.LayerDrawable import android.graphics.drawable.LayerDrawable
import android.os.Build import android.os.Build
import android.text.Spannable
import android.text.SpannableString
import android.view.MenuItem import android.view.MenuItem
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
@ -76,6 +78,7 @@ import com.nextcloud.talk.utils.ui.PlatformThemeUtil.isDarkMode
import com.vanniktech.emoji.EmojiTextView import com.vanniktech.emoji.EmojiTextView
import com.yarolegovich.mp.MaterialPreferenceCategory import com.yarolegovich.mp.MaterialPreferenceCategory
import com.yarolegovich.mp.MaterialSwitchPreference import com.yarolegovich.mp.MaterialSwitchPreference
import eu.davidea.flexibleadapter.utils.FlexibleUtils
import scheme.Scheme import scheme.Scheme
import javax.inject.Inject import javax.inject.Inject
@ -92,18 +95,6 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
private fun getSchemeDark(): Scheme = theme.darkScheme private fun getSchemeDark(): Scheme = theme.darkScheme
/**
* Color for painting elements
*/
fun getElementColor(context: Context): Int = when {
isDarkMode(context) -> theme.colorElementDark
else -> theme.colorElementBright
}
private fun withElementColor(view: View, block: (Int) -> Unit) {
block(getElementColor(view.context))
}
private fun withScheme(view: View, block: (Scheme) -> Unit) { private fun withScheme(view: View, block: (Scheme) -> Unit) {
block(getScheme(view.context)) block(getScheme(view.context))
} }
@ -796,6 +787,20 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
} }
} }
fun highlightText(textView: TextView, originalText: String, constraint: String) {
withScheme(textView) { scheme ->
FlexibleUtils.highlightText(textView, originalText, constraint, scheme.primary)
}
}
fun createHighlightedSpan(context: Context, messageSpannable: SpannableString, searchTerm: String): Spannable {
var spannable: Spannable = messageSpannable
withScheme(context) { scheme ->
spannable = DisplayUtils.searchAndColor(messageSpannable, searchTerm, scheme.primary)
}
return spannable
}
companion object { companion object {
private val THEMEABLE_PLACEHOLDER_IDS = listOf( private val THEMEABLE_PLACEHOLDER_IDS = listOf(
R.drawable.ic_mimetype_package_x_generic, R.drawable.ic_mimetype_package_x_generic,