Convert AccountViewHolder from Java to Kotlin (#3044)

* Convert AccountViewHolder from Java to Kotlin

Use view binding in the converted code, which requires small changes in code
that calls constructors.

Pass showBotOverlays as a parameter, rather than having the code reach in to
the shared preferences, fixing a layering violation. This affects callers
and classes derived from AccountAdapter.

* Use 2-arg getString

* Simplify setting bot badge indicator

- Specify the drawable in the XML
- Use visible() to set visibility
- Rename ID to account_bot_badge to make it clearer that this is all it is for

* Use lateinit to avoid needing !! later
This commit is contained in:
Nik Clayton 2022-12-28 19:07:43 +01:00 committed by GitHub
commit ee765a3117
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 116 additions and 91 deletions

View file

@ -34,7 +34,12 @@ class FollowRequestViewHolder(
private val showHeader: Boolean
) : RecyclerView.ViewHolder(binding.root) {
fun setupWithAccount(account: TimelineAccount, animateAvatar: Boolean, animateEmojis: Boolean) {
fun setupWithAccount(
account: TimelineAccount,
animateAvatar: Boolean,
animateEmojis: Boolean,
showBotOverlay: Boolean
) {
val wrappedName = account.name.unicodeWrap()
val emojifiedName: CharSequence = wrappedName.emojify(account.emojis, itemView, animateEmojis)
binding.displayNameTextView.text = emojifiedName