diff --git a/app/src/main/java/com/futo/circles/provider/MatrixSessionProvider.kt b/app/src/main/java/com/futo/circles/provider/MatrixSessionProvider.kt index 6344e1e54d7283f630324959debc9dfed2723589..f573de5e6fb7029ab64af58facdf587565fbc81d 100644 --- a/app/src/main/java/com/futo/circles/provider/MatrixSessionProvider.kt +++ b/app/src/main/java/com/futo/circles/provider/MatrixSessionProvider.kt @@ -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() diff --git a/app/src/main/java/com/futo/circles/ui/groups/GroupsFragment.kt b/app/src/main/java/com/futo/circles/ui/groups/GroupsFragment.kt index 36620e2708edfe93b2fd835435cbee0d91bd508d..171f830e80599286ff77d45363d6e7477635a79d 100644 --- a/app/src/main/java/com/futo/circles/ui/groups/GroupsFragment.kt +++ b/app/src/main/java/com/futo/circles/ui/groups/GroupsFragment.kt @@ -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) diff --git a/app/src/main/java/com/futo/circles/ui/groups/list/GroupsListAdapter.kt b/app/src/main/java/com/futo/circles/ui/groups/list/GroupsListAdapter.kt index bd02c75631ce659276e24293654f75f2970227f8..b64f53c517b193cc5b974d6067adb0e85f93c334 100644 --- a/app/src/main/java/com/futo/circles/ui/groups/list/GroupsListAdapter.kt +++ b/app/src/main/java/com/futo/circles/ui/groups/list/GroupsListAdapter.kt @@ -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)) } ) diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineFragment.kt b/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineFragment.kt index b4092777cef57b97b76130c8350da88e1cf6a26d..8964599d8764a06c3cea9c9dadcdd23a927cd09a 100644 --- a/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineFragment.kt +++ b/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineFragment.kt @@ -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?) { diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineViewModel.kt b/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineViewModel.kt index 76142252a308820e2a9169f60787441eccd7c217..ae6997c8ba9cad2b82cf9eb30a6261002ba6f812 100644 --- a/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineViewModel.kt +++ b/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineViewModel.kt @@ -10,7 +10,6 @@ class GroupTimelineViewModel( val titleLiveData = MutableLiveData(dataSource.getGroupTitle()) val timelineEventsLiveData = dataSource.timelineEventsLiveData - val urlResolver get() = dataSource.getUrlResolver() init { dataSource.startTimeline() diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/data_source/GroupTimelineDatasource.kt b/app/src/main/java/com/futo/circles/ui/groups/timeline/data_source/GroupTimelineDatasource.kt index 1058d7f783f65223fe634d7a9665e8460d0643fc..ddf9b2fef0f019d82bc1090780302eee45adf458 100644 --- a/app/src/main/java/com/futo/circles/ui/groups/timeline/data_source/GroupTimelineDatasource.kt +++ b/app/src/main/java/com/futo/circles/ui/groups/timeline/data_source/GroupTimelineDatasource.kt @@ -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 } diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineAdapter.kt b/app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineAdapter.kt index c9245dc13a3243ea9a5e40fe5b7203c462fe9011..0f5d6a1ffff9f14abb1d3d1ce99850547a65f0af 100644 --- a/app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineAdapter.kt +++ b/app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineAdapter.kt @@ -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) } } diff --git a/app/src/main/java/com/futo/circles/ui/view/PostLayout.kt b/app/src/main/java/com/futo/circles/ui/view/PostLayout.kt index 2b8151253ba2c78253c71ad38902797e52e96bcc..973e172eb4870df954688d645fc63180f79a5206 100644 --- a/app/src/main/java/com/futo/circles/ui/view/PostLayout.kt +++ b/app/src/main/java/com/futo/circles/ui/view/PostLayout.kt @@ -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) }