mirror of
https://github.com/nextcloud/talk-android
synced 2025-03-06 06:15:12 +00:00
replace any use of getElement
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
This commit is contained in:
parent
89a7c5e400
commit
53f0779a44
@ -144,9 +144,9 @@ public class ConversationItem extends AbstractFlexibleItem<ConversationItem.Conv
|
||||
null));
|
||||
|
||||
if (adapter.hasFilter()) {
|
||||
FlexibleUtils.highlightText(holder.binding.dialogName, conversation.getDisplayName(),
|
||||
String.valueOf(adapter.getFilter(String.class)),
|
||||
viewThemeUtils.getElementColor(holder.binding.dialogName.getContext()));
|
||||
viewThemeUtils.highlightText(holder.binding.dialogName,
|
||||
conversation.getDisplayName(),
|
||||
String.valueOf(adapter.getFilter(String.class)));
|
||||
} else {
|
||||
holder.binding.dialogName.setText(conversation.getDisplayName());
|
||||
}
|
||||
|
@ -77,9 +77,11 @@ data class MessageResultItem constructor(
|
||||
}
|
||||
|
||||
private fun bindMessageExcerpt(holder: ViewHolder) {
|
||||
val messageSpannable = SpannableString(messageEntry.messageExcerpt)
|
||||
val highlightColor = viewThemeUtils.getElementColor(holder.binding.messageExcerpt.context)
|
||||
val highlightedSpan = DisplayUtils.searchAndColor(messageSpannable, messageEntry.searchTerm, highlightColor)
|
||||
val highlightedSpan = viewThemeUtils.createHighlightedSpan(
|
||||
holder.binding.messageExcerpt.context,
|
||||
SpannableString(messageEntry.messageExcerpt),
|
||||
messageEntry.searchTerm
|
||||
)
|
||||
holder.binding.messageExcerpt.text = highlightedSpan
|
||||
}
|
||||
|
||||
|
@ -39,9 +39,7 @@ import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.annotation.ColorInt
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.core.graphics.drawable.DrawableCompat
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
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.remotefilebrowser.activities.RemoteFileBrowserActivity
|
||||
import com.nextcloud.talk.ui.dialog.ScopeDialog
|
||||
import com.nextcloud.talk.ui.theme.ViewThemeUtils
|
||||
import com.nextcloud.talk.users.UserManager
|
||||
import com.nextcloud.talk.utils.ApiUtils
|
||||
import com.nextcloud.talk.utils.DisplayUtils
|
||||
@ -193,7 +192,7 @@ class ProfileController : NewBaseController(R.layout.controller_profile) {
|
||||
|
||||
override fun onAttach(view: View) {
|
||||
super.onAttach(view)
|
||||
adapter = UserInfoAdapter(null, viewThemeUtils.getElementColor(activity!!), this)
|
||||
adapter = UserInfoAdapter(null, viewThemeUtils, this)
|
||||
binding.userinfoList.adapter = adapter
|
||||
binding.userinfoList.setItemViewCacheSize(DEFAULT_CACHE_SIZE)
|
||||
currentUser = userManager.currentUser.blockingGet()
|
||||
@ -708,18 +707,18 @@ class ProfileController : NewBaseController(R.layout.controller_profile) {
|
||||
|
||||
class UserInfoAdapter(
|
||||
displayList: List<UserInfoDetailsItem>?,
|
||||
@ColorInt tintColor: Int,
|
||||
controller: ProfileController
|
||||
private val viewThemeUtils: ViewThemeUtils,
|
||||
private val controller: ProfileController
|
||||
) : RecyclerView.Adapter<UserInfoAdapter.ViewHolder>() {
|
||||
var displayList: List<UserInfoDetailsItem>?
|
||||
var filteredDisplayList: MutableList<UserInfoDetailsItem> = LinkedList()
|
||||
|
||||
@ColorInt
|
||||
protected var mTintColor: Int
|
||||
private val controller: ProfileController
|
||||
|
||||
class ViewHolder(val binding: UserInfoDetailsTableItemBinding) : RecyclerView.ViewHolder(binding.root)
|
||||
|
||||
init {
|
||||
this.displayList = displayList ?: LinkedList()
|
||||
}
|
||||
|
||||
fun setData(displayList: List<UserInfoDetailsItem>) {
|
||||
this.displayList = displayList
|
||||
updateFilteredList()
|
||||
@ -756,7 +755,7 @@ class ProfileController : NewBaseController(R.layout.controller_profile) {
|
||||
initUserInfoEditText(holder, item)
|
||||
|
||||
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) {
|
||||
holder.binding.userInfoDetailContainer.visibility = View.VISIBLE
|
||||
controller.viewThemeUtils.colorTextInputLayout(holder.binding.userInfoInputLayout)
|
||||
@ -851,12 +850,6 @@ class ProfileController : NewBaseController(R.layout.controller_profile) {
|
||||
displayList!![position].scope = scope
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
|
||||
init {
|
||||
this.displayList = displayList ?: LinkedList()
|
||||
mTintColor = tintColor
|
||||
this.controller = controller
|
||||
}
|
||||
}
|
||||
|
||||
enum class Field(val fieldName: String, val scopeName: String) {
|
||||
|
@ -30,6 +30,8 @@ import android.graphics.PorterDuff
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.graphics.drawable.LayerDrawable
|
||||
import android.os.Build
|
||||
import android.text.Spannable
|
||||
import android.text.SpannableString
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
@ -76,6 +78,7 @@ import com.nextcloud.talk.utils.ui.PlatformThemeUtil.isDarkMode
|
||||
import com.vanniktech.emoji.EmojiTextView
|
||||
import com.yarolegovich.mp.MaterialPreferenceCategory
|
||||
import com.yarolegovich.mp.MaterialSwitchPreference
|
||||
import eu.davidea.flexibleadapter.utils.FlexibleUtils
|
||||
import scheme.Scheme
|
||||
import javax.inject.Inject
|
||||
|
||||
@ -92,18 +95,6 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
|
||||
|
||||
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) {
|
||||
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 {
|
||||
private val THEMEABLE_PLACEHOLDER_IDS = listOf(
|
||||
R.drawable.ic_mimetype_package_x_generic,
|
||||
|
Loading…
Reference in New Issue
Block a user