feat: Tapping followed hashtag names in lists opens relevant timeline
This commit is contained in:
parent
4762411147
commit
65a0fb19d9
|
@ -19,6 +19,7 @@ import app.pachli.core.common.extensions.hide
|
||||||
import app.pachli.core.common.extensions.show
|
import app.pachli.core.common.extensions.show
|
||||||
import app.pachli.core.common.extensions.viewBinding
|
import app.pachli.core.common.extensions.viewBinding
|
||||||
import app.pachli.core.common.extensions.visible
|
import app.pachli.core.common.extensions.visible
|
||||||
|
import app.pachli.core.navigation.StatusListActivityIntent
|
||||||
import app.pachli.core.network.retrofit.MastodonApi
|
import app.pachli.core.network.retrofit.MastodonApi
|
||||||
import app.pachli.core.preferences.PrefKeys
|
import app.pachli.core.preferences.PrefKeys
|
||||||
import app.pachli.databinding.ActivityFollowedTagsBinding
|
import app.pachli.databinding.ActivityFollowedTagsBinding
|
||||||
|
@ -170,6 +171,10 @@ class FollowedTagsActivity :
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onViewTag(tag: String) {
|
||||||
|
startActivityWithSlideInAnimation(StatusListActivityIntent.hashtag(this, tag))
|
||||||
|
}
|
||||||
|
|
||||||
override suspend fun search(token: String): List<ComposeAutoCompleteAdapter.AutocompleteResult> {
|
override suspend fun search(token: String): List<ComposeAutoCompleteAdapter.AutocompleteResult> {
|
||||||
return viewModel.searchAutocompleteSuggestions(token)
|
return viewModel.searchAutocompleteSuggestions(token)
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,11 +2,8 @@ package app.pachli.components.followedtags
|
||||||
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.ImageButton
|
|
||||||
import android.widget.TextView
|
|
||||||
import androidx.paging.PagingDataAdapter
|
import androidx.paging.PagingDataAdapter
|
||||||
import androidx.recyclerview.widget.DiffUtil
|
import androidx.recyclerview.widget.DiffUtil
|
||||||
import app.pachli.R
|
|
||||||
import app.pachli.databinding.ItemFollowedHashtagBinding
|
import app.pachli.databinding.ItemFollowedHashtagBinding
|
||||||
import app.pachli.interfaces.HashtagActionListener
|
import app.pachli.interfaces.HashtagActionListener
|
||||||
import app.pachli.util.BindingHolder
|
import app.pachli.util.BindingHolder
|
||||||
|
@ -20,12 +17,18 @@ class FollowedTagsAdapter(
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: BindingHolder<ItemFollowedHashtagBinding>, position: Int) {
|
override fun onBindViewHolder(holder: BindingHolder<ItemFollowedHashtagBinding>, position: Int) {
|
||||||
viewModel.tags[position].let { tag ->
|
viewModel.tags[position].let { tag ->
|
||||||
holder.itemView.findViewById<TextView>(R.id.followed_tag).text = tag.name
|
with(holder.binding) {
|
||||||
holder.itemView.findViewById<ImageButton>(R.id.followed_tag_unfollow).setOnClickListener {
|
followedTag.text = tag.name
|
||||||
|
followedTag.setOnClickListener {
|
||||||
|
actionListener.onViewTag(tag.name)
|
||||||
|
}
|
||||||
|
|
||||||
|
followedTagUnfollow.setOnClickListener {
|
||||||
actionListener.unfollow(tag.name, holder.bindingAdapterPosition)
|
actionListener.unfollow(tag.name, holder.bindingAdapterPosition)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun getItemCount(): Int = viewModel.tags.size
|
override fun getItemCount(): Int = viewModel.tags.size
|
||||||
|
|
||||||
|
|
|
@ -2,4 +2,5 @@ package app.pachli.interfaces
|
||||||
|
|
||||||
interface HashtagActionListener {
|
interface HashtagActionListener {
|
||||||
fun unfollow(tagName: String, position: Int)
|
fun unfollow(tagName: String, position: Int)
|
||||||
|
fun onViewTag(tag: String)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue