From a9e313308ef92f85a99b21b837d08e0aab5d94a4 Mon Sep 17 00:00:00 2001 From: Taras <tarassmakula@gmail.com> Date: Sat, 26 Feb 2022 01:08:09 +0200 Subject: [PATCH] Remove matrix home server provider --- app/src/main/java/com/futo/circles/App.kt | 3 +-- .../java/com/futo/circles/MainActivity.kt | 3 +-- .../com/futo/circles/di/DataSourceModule.kt | 4 ++-- .../main/java/com/futo/circles/di/Modules.kt | 2 +- .../com/futo/circles/di/ProviderModule.kt | 8 ------- .../main/java/com/futo/circles/di/UiModule.kt | 2 +- .../provider/MatrixHomeServerProvider.kt | 15 ------------- .../futo/circles/ui/groups/GroupsViewModel.kt | 7 ++----- .../circles/ui/groups/list/GroupViewHolder.kt | 6 ++---- .../timeline/list/GroupTimelineViewHolder.kt | 19 +++++++---------- .../ui/log_in/data_source/LoginDataSource.kt | 21 +++++++++++-------- 11 files changed, 30 insertions(+), 60 deletions(-) delete mode 100644 app/src/main/java/com/futo/circles/di/ProviderModule.kt delete mode 100644 app/src/main/java/com/futo/circles/provider/MatrixHomeServerProvider.kt diff --git a/app/src/main/java/com/futo/circles/App.kt b/app/src/main/java/com/futo/circles/App.kt index 6f9934578..730870f18 100644 --- a/app/src/main/java/com/futo/circles/App.kt +++ b/app/src/main/java/com/futo/circles/App.kt @@ -3,7 +3,6 @@ package com.futo.circles import android.app.Application import com.futo.circles.di.applicationModules import com.futo.circles.provider.MatrixSessionProvider -import org.koin.android.ext.android.get import org.koin.android.ext.koin.androidContext import org.koin.core.context.startKoin @@ -15,6 +14,6 @@ class App : Application() { androidContext(this@App) modules(applicationModules) } - get<MatrixSessionProvider>().initSession() + MatrixSessionProvider.initSession(applicationContext) } } \ No newline at end of file diff --git a/app/src/main/java/com/futo/circles/MainActivity.kt b/app/src/main/java/com/futo/circles/MainActivity.kt index 2b8928d55..fa17ebb0c 100644 --- a/app/src/main/java/com/futo/circles/MainActivity.kt +++ b/app/src/main/java/com/futo/circles/MainActivity.kt @@ -6,7 +6,6 @@ import androidx.navigation.NavController import androidx.navigation.NavGraph import androidx.navigation.fragment.NavHostFragment import com.futo.circles.provider.MatrixSessionProvider -import org.koin.android.ext.android.get class MainActivity : AppCompatActivity(R.layout.main_activity) { @@ -25,7 +24,7 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) { } private fun setStartDestination(navGraph: NavGraph) { - val startDestinationId = get<MatrixSessionProvider>().currentSession?.let { + val startDestinationId = MatrixSessionProvider.currentSession?.let { R.id.bottomNavigationFragment } ?: R.id.logInFragment diff --git a/app/src/main/java/com/futo/circles/di/DataSourceModule.kt b/app/src/main/java/com/futo/circles/di/DataSourceModule.kt index e570f965d..7c02aab11 100644 --- a/app/src/main/java/com/futo/circles/di/DataSourceModule.kt +++ b/app/src/main/java/com/futo/circles/di/DataSourceModule.kt @@ -6,9 +6,9 @@ import com.futo.circles.ui.log_in.data_source.LoginDataSource import org.koin.dsl.module val dataSourceModule = module { - factory { LoginDataSource(get(), get()) } + factory { LoginDataSource(get()) } - factory { (roomId: String) -> GroupTimelineDatasource(roomId, get(), get()) } + factory { (roomId: String) -> GroupTimelineDatasource(roomId, get()) } factory { GroupTimelineBuilder() } } \ No newline at end of file diff --git a/app/src/main/java/com/futo/circles/di/Modules.kt b/app/src/main/java/com/futo/circles/di/Modules.kt index 29e895d54..d7324146b 100644 --- a/app/src/main/java/com/futo/circles/di/Modules.kt +++ b/app/src/main/java/com/futo/circles/di/Modules.kt @@ -1,3 +1,3 @@ package com.futo.circles.di -val applicationModules = listOf(uiModule, providerModule, dataSourceModule) \ No newline at end of file +val applicationModules = listOf(uiModule, dataSourceModule) \ No newline at end of file diff --git a/app/src/main/java/com/futo/circles/di/ProviderModule.kt b/app/src/main/java/com/futo/circles/di/ProviderModule.kt deleted file mode 100644 index e3369eee3..000000000 --- a/app/src/main/java/com/futo/circles/di/ProviderModule.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.futo.circles.di - -import com.futo.circles.provider.MatrixSessionProvider -import org.koin.dsl.module - -val providerModule = module { - single { MatrixSessionProvider(context = get()) } -} \ No newline at end of file diff --git a/app/src/main/java/com/futo/circles/di/UiModule.kt b/app/src/main/java/com/futo/circles/di/UiModule.kt index 8b5d91860..f86656837 100644 --- a/app/src/main/java/com/futo/circles/di/UiModule.kt +++ b/app/src/main/java/com/futo/circles/di/UiModule.kt @@ -9,6 +9,6 @@ import org.koin.dsl.module val uiModule = module { viewModel { LogInViewModel(get()) } - viewModel { GroupsViewModel(get()) } + viewModel { GroupsViewModel() } viewModel { (roomId: String) -> GroupTimelineViewModel(get { parametersOf(roomId) }) } } \ No newline at end of file diff --git a/app/src/main/java/com/futo/circles/provider/MatrixHomeServerProvider.kt b/app/src/main/java/com/futo/circles/provider/MatrixHomeServerProvider.kt deleted file mode 100644 index 936152647..000000000 --- a/app/src/main/java/com/futo/circles/provider/MatrixHomeServerProvider.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.futo.circles.provider - -import android.net.Uri -import com.futo.circles.BuildConfig -import org.matrix.android.sdk.api.auth.data.HomeServerConnectionConfig - -class MatrixHomeServerProvider { - - fun createHomeServerConfig() = - HomeServerConnectionConfig - .Builder() - .withHomeServerUri(Uri.parse(BuildConfig.MATRIX_HOME_SERVER_URL)) - .build() - -} diff --git a/app/src/main/java/com/futo/circles/ui/groups/GroupsViewModel.kt b/app/src/main/java/com/futo/circles/ui/groups/GroupsViewModel.kt index a0b313431..60bd6f9f5 100644 --- a/app/src/main/java/com/futo/circles/ui/groups/GroupsViewModel.kt +++ b/app/src/main/java/com/futo/circles/ui/groups/GroupsViewModel.kt @@ -8,13 +8,10 @@ import com.futo.circles.utils.GROUP_TAG import org.matrix.android.sdk.api.session.room.roomSummaryQueryParams -class GroupsViewModel( - private val matrixSessionProvider: MatrixSessionProvider -) : ViewModel() { +class GroupsViewModel : ViewModel() { val groupsLiveData = - matrixSessionProvider.currentSession?.getRoomSummariesLive(roomSummaryQueryParams()) + MatrixSessionProvider.currentSession?.getRoomSummariesLive(roomSummaryQueryParams()) ?.map { list -> list.toGroupsList(GROUP_TAG) } - fun getContentResolver() = matrixSessionProvider.currentSession?.contentUrlResolver() } diff --git a/app/src/main/java/com/futo/circles/ui/groups/list/GroupViewHolder.kt b/app/src/main/java/com/futo/circles/ui/groups/list/GroupViewHolder.kt index f27d1fd31..6c0d0bb9a 100644 --- a/app/src/main/java/com/futo/circles/ui/groups/list/GroupViewHolder.kt +++ b/app/src/main/java/com/futo/circles/ui/groups/list/GroupViewHolder.kt @@ -7,16 +7,14 @@ import com.futo.circles.R import com.futo.circles.base.ViewBindingHolder import com.futo.circles.base.context import com.futo.circles.databinding.GroupListItemBinding -import com.futo.circles.extensions.loadMatrixThumbnail +import com.futo.circles.extensions.loadImage import com.futo.circles.extensions.onClick import com.futo.circles.extensions.setIsEncryptedIcon import com.futo.circles.model.GroupListItem import com.futo.circles.model.GroupListItemPayload -import org.matrix.android.sdk.api.session.content.ContentUrlResolver class GroupViewHolder( parent: ViewGroup, - private val urlResolver: ContentUrlResolver?, onGroupClicked: (Int) -> Unit ) : RecyclerView.ViewHolder(inflate(parent, GroupListItemBinding::inflate)) { @@ -30,7 +28,7 @@ class GroupViewHolder( fun bind(data: GroupListItem) { with(binding) { - ivGroup.loadMatrixThumbnail(data.avatarUrl, urlResolver) + ivGroup.loadImage(data.avatarUrl, ivGroup.height) ivLock.setIsEncryptedIcon(data.isEncrypted) diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineViewHolder.kt b/app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineViewHolder.kt index af5a82640..4bda5a906 100644 --- a/app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineViewHolder.kt +++ b/app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineViewHolder.kt @@ -6,22 +6,21 @@ import androidx.recyclerview.widget.RecyclerView import com.futo.circles.base.ViewBindingHolder import com.futo.circles.databinding.ImagePostViewBinding import com.futo.circles.databinding.TextPostViewBinding -import com.futo.circles.extensions.loadMatrixThumbnail +import com.futo.circles.extensions.loadEncryptedImage import com.futo.circles.model.ImageContent import com.futo.circles.model.Post import com.futo.circles.model.PostItemPayload import com.futo.circles.model.TextContent import com.futo.circles.ui.view.GroupPostListener import com.futo.circles.ui.view.PostLayout -import org.matrix.android.sdk.api.session.content.ContentUrlResolver -sealed class GroupPostViewHolder(view: View, private val urlResolver: ContentUrlResolver?) : +sealed class GroupPostViewHolder(view: View) : RecyclerView.ViewHolder(view) { abstract val postLayout: PostLayout open fun bind(post: Post) { - postLayout.setData(post, urlResolver) + postLayout.setData(post) } fun bindPayload(payload: PostItemPayload) { @@ -31,9 +30,8 @@ sealed class GroupPostViewHolder(view: View, private val urlResolver: ContentUrl class TextPostViewHolder( parent: ViewGroup, - postListener: GroupPostListener, - private val urlResolver: ContentUrlResolver? -) : GroupPostViewHolder(inflate(parent, TextPostViewBinding::inflate), urlResolver) { + postListener: GroupPostListener +) : GroupPostViewHolder(inflate(parent, TextPostViewBinding::inflate)) { private companion object : ViewBindingHolder @@ -55,9 +53,8 @@ class TextPostViewHolder( class ImagePostViewHolder( parent: ViewGroup, - postListener: GroupPostListener, - private val urlResolver: ContentUrlResolver? -) : GroupPostViewHolder(inflate(parent, ImagePostViewBinding::inflate), urlResolver) { + postListener: GroupPostListener +) : GroupPostViewHolder(inflate(parent, ImagePostViewBinding::inflate)) { private companion object : ViewBindingHolder @@ -72,7 +69,7 @@ class ImagePostViewHolder( super.bind(post) (post.content as? ImageContent)?.let { - binding.ivContent.loadMatrixThumbnail(it.url, urlResolver) + binding.ivContent.loadEncryptedImage(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/futo/circles/ui/log_in/data_source/LoginDataSource.kt b/app/src/main/java/com/futo/circles/ui/log_in/data_source/LoginDataSource.kt index 2e809484a..45bb6609b 100644 --- a/app/src/main/java/com/futo/circles/ui/log_in/data_source/LoginDataSource.kt +++ b/app/src/main/java/com/futo/circles/ui/log_in/data_source/LoginDataSource.kt @@ -1,23 +1,20 @@ package com.futo.circles.ui.log_in.data_source import android.content.Context +import android.net.Uri +import com.futo.circles.BuildConfig import com.futo.circles.R import com.futo.circles.extensions.createResult -import com.futo.circles.provider.MatrixHomeServerProvider import com.futo.circles.provider.MatrixSessionProvider import org.matrix.android.sdk.api.Matrix +import org.matrix.android.sdk.api.auth.data.HomeServerConnectionConfig -class LoginDataSource( - private val context: Context, - private val matrixSessionProvider: MatrixSessionProvider -) { +class LoginDataSource(private val context: Context) { suspend fun logIn(name: String, password: String, secondPassword: String?) = createResult { - val homeServerConnectionConfig = MatrixHomeServerProvider().createHomeServerConfig() - Matrix.getInstance(context).authenticationService().directAuthentication( - homeServerConnectionConfig = homeServerConnectionConfig, + homeServerConnectionConfig = createHomeServerConfig(), matrixId = name, password = password, deviceId = secondPassword, @@ -25,6 +22,12 @@ class LoginDataSource( R.string.initial_device_name, context.getString(R.string.app_name) ) - ).also { matrixSessionProvider.startSession(it) } + ).also { MatrixSessionProvider.startSession(it) } } + + private fun createHomeServerConfig() = + HomeServerConnectionConfig + .Builder() + .withHomeServerUri(Uri.parse(BuildConfig.MATRIX_HOME_SERVER_URL)) + .build() } \ No newline at end of file -- GitLab