Skip to content
Snippets Groups Projects
Commit c5a8e735 authored by Taras's avatar Taras
Browse files

Refactor get content provider

parent db9ee471
No related branches found
No related tags found
No related merge requests found
......@@ -5,12 +5,12 @@ import org.matrix.android.sdk.api.Matrix
import org.matrix.android.sdk.api.MatrixConfiguration
import org.matrix.android.sdk.api.session.Session
class MatrixSessionProvider(private val context: Context) {
object MatrixSessionProvider {
var currentSession: Session? = null
private set
fun initSession() {
fun initSession(context: Context) {
Matrix.initialize(
context = context, matrixConfiguration = MatrixConfiguration(
roomDisplayNameFallbackProvider = RoomDisplayNameFallbackProviderImpl()
......
......@@ -18,12 +18,7 @@ class GroupsFragment : Fragment(R.layout.groups_fragment) {
private val viewModel by viewModel<GroupsViewModel>()
private val binding by viewBinding(GroupsFragmentBinding::bind)
private val listAdapter by lazy {
GroupsListAdapter(
viewModel.getContentResolver(),
::onGroupListItemClicked
)
}
private val listAdapter by lazy { GroupsListAdapter(::onGroupListItemClicked) }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
......
......@@ -4,10 +4,8 @@ import android.view.ViewGroup
import com.futo.circles.base.BaseRvAdapter
import com.futo.circles.model.GroupListItem
import com.futo.circles.model.GroupListItemPayload
import org.matrix.android.sdk.api.session.content.ContentUrlResolver
class GroupsListAdapter(
private val urlResolver: ContentUrlResolver?,
private val onGroupClicked: (GroupListItem) -> Unit
) : BaseRvAdapter<GroupListItem, GroupViewHolder>(PayloadIdEntityCallback { _, new ->
GroupListItemPayload(
......@@ -20,7 +18,6 @@ class GroupsListAdapter(
viewType: Int
): GroupViewHolder = GroupViewHolder(
parent = parent,
urlResolver = urlResolver,
onGroupClicked = { position -> onGroupClicked(getItem(position)) }
)
......
......@@ -26,7 +26,7 @@ class GroupTimelineFragment : Fragment(R.layout.group_timeline_fragment), GroupP
private val binding by viewBinding(GroupTimelineFragmentBinding::bind)
private val listAdapter by lazy {
GroupTimelineAdapter(this, viewModel.urlResolver) { viewModel.loadMore() }
GroupTimelineAdapter(this) { viewModel.loadMore() }
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
......
......@@ -10,7 +10,6 @@ class GroupTimelineViewModel(
val titleLiveData = MutableLiveData(dataSource.getGroupTitle())
val timelineEventsLiveData = dataSource.timelineEventsLiveData
val urlResolver get() = dataSource.getUrlResolver()
init {
dataSource.startTimeline()
......
......@@ -10,11 +10,10 @@ import org.matrix.android.sdk.api.session.room.timeline.TimelineSettings
class GroupTimelineDatasource(
private val roomId: String,
private val matrixSessionProvider: MatrixSessionProvider,
private val timelineBuilder: GroupTimelineBuilder
) : Timeline.Listener {
private val room = matrixSessionProvider.currentSession?.getRoom(roomId)
private val room = MatrixSessionProvider.currentSession?.getRoom(roomId)
val timelineEventsLiveData = MutableLiveData<List<Post>>()
......@@ -53,8 +52,6 @@ class GroupTimelineDatasource(
timeline?.restartWithEventId(null)
}
fun getUrlResolver() = matrixSessionProvider.currentSession?.contentUrlResolver()
companion object {
private const val MESSAGES_PER_PAGE = 30
}
......
......@@ -11,7 +11,6 @@ import org.matrix.android.sdk.api.session.content.ContentUrlResolver
class GroupTimelineAdapter(
private val postListener: GroupPostListener,
private val urlResolver: ContentUrlResolver?,
private val onLoadMore: () -> Unit
) : BaseRvAdapter<Post, GroupPostViewHolder>(PayloadIdEntityCallback { _, new ->
(new as? RootPost)?.let { rootPost ->
......@@ -30,8 +29,8 @@ class GroupTimelineAdapter(
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): GroupPostViewHolder {
return when (PostContentType.values()[viewType]) {
PostContentType.TEXT_CONTENT -> TextPostViewHolder(parent, postListener, urlResolver)
PostContentType.IMAGE_CONTENT -> ImagePostViewHolder(parent, postListener, urlResolver)
PostContentType.TEXT_CONTENT -> TextPostViewHolder(parent, postListener)
PostContentType.IMAGE_CONTENT -> ImagePostViewHolder(parent, postListener)
}
}
......
......@@ -44,9 +44,9 @@ class PostLayout(
}
fun setData(data: Post, urlResolver: ContentUrlResolver?) {
fun setData(data: Post) {
post = data
setGeneralMessageData(data, urlResolver)
setGeneralMessageData(data)
bindRepliesButton(data)
}
......@@ -54,13 +54,10 @@ class PostLayout(
bindRepliesButton(payload.hasReplies, payload.repliesCount, payload.isRepliesVisible)
}
private fun setGeneralMessageData(
data: Post,
urlResolver: ContentUrlResolver?
) {
private fun setGeneralMessageData(data: Post) {
val isReply = data is ReplyPost
binding.vReplyMargin.setVisibility(isReply)
binding.postHeader.setData(data.postInfo.sender, urlResolver)
binding.postHeader.setData(data.postInfo.sender)
binding.postFooter.setData(data.postInfo, isReply)
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment