Forráskód Böngészése

replace any use of getElement

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Andy Scherzinger 2 éve
szülő
commit
53f0779a44

+ 3 - 3
app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java

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

+ 5 - 3
app/src/main/java/com/nextcloud/talk/adapters/items/MessageResultItem.kt

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

+ 9 - 16
app/src/main/java/com/nextcloud/talk/controllers/ProfileController.kt

@@ -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) {

+ 17 - 12
app/src/main/java/com/nextcloud/talk/ui/theme/ViewThemeUtils.kt

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