From 253b2d4f9327ef80598bf88e446c83f980ea4d54 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Mon, 25 Sep 2023 14:36:03 +0300 Subject: [PATCH] Fix logout loading --- .../circles/feature/settings/SettingsFragment.kt | 13 ++++++++----- .../circles/feature/settings/SettingsViewModel.kt | 1 - .../feature/log_in/log_out/LogoutDataSource.kt | 11 +---------- .../core/room/create/CreateRoomViewModel.kt | 15 +++++++-------- 4 files changed, 16 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/org/futo/circles/feature/settings/SettingsFragment.kt b/app/src/main/java/org/futo/circles/feature/settings/SettingsFragment.kt index 3db4fc528..a69cbdfe1 100644 --- a/app/src/main/java/org/futo/circles/feature/settings/SettingsFragment.kt +++ b/app/src/main/java/org/futo/circles/feature/settings/SettingsFragment.kt @@ -46,7 +46,12 @@ class SettingsFragment : Fragment(R.layout.fragment_settings) { private fun setupViews() { with(binding) { - tvLogout.setOnClickListener { withConfirmation(LogOut()) { viewModel.logOut() } } + tvLogout.setOnClickListener { + withConfirmation(LogOut()) { + loadingDialog.handleLoading(LoadingData(R.string.log_out)) + viewModel.logOut() + } + } tvSwitchUser.setOnClickListener { withConfirmation(SwitchUser()) { (activity as? MainActivity)?.stopSyncAndRestart() } } ivProfile.setOnClickListener { navigator.navigateToProfile() } tvChangePassword.setOnClickListener { viewModel.handleChangePasswordFlow() } @@ -68,14 +73,12 @@ class SettingsFragment : Fragment(R.layout.fragment_settings) { private fun setupObservers() { viewModel.logOutLiveData.observeResponse(this, - success = { clearSessionAndRestart() } + success = { clearSessionAndRestart() }, + onRequestInvoked = { loadingDialog.dismiss() } ) viewModel.profileLiveData.observeData(this) { it.getOrNull()?.let { bindProfile(it) } } - viewModel.loadingLiveData.observeData(this) { - loadingDialog.handleLoading(it) - } viewModel.deactivateLiveData.observeResponse(this, success = { clearSessionAndRestart() }, error = { showError(getString(org.futo.circles.auth.R.string.invalid_auth)) }, diff --git a/app/src/main/java/org/futo/circles/feature/settings/SettingsViewModel.kt b/app/src/main/java/org/futo/circles/feature/settings/SettingsViewModel.kt index deac30615..74dc58f7b 100644 --- a/app/src/main/java/org/futo/circles/feature/settings/SettingsViewModel.kt +++ b/app/src/main/java/org/futo/circles/feature/settings/SettingsViewModel.kt @@ -17,7 +17,6 @@ class SettingsViewModel @Inject constructor( ) : ViewModel() { val profileLiveData = settingsDataSource.profileLiveData - val loadingLiveData = logoutDataSource.loadingLiveData val passPhraseLoadingLiveData = settingsDataSource.passPhraseLoadingLiveData val startReAuthEventLiveData = settingsDataSource.startReAuthEventLiveData val logOutLiveData = SingleEventLiveData<Response<Unit?>>() diff --git a/auth/src/main/java/org/futo/circles/auth/feature/log_in/log_out/LogoutDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/log_in/log_out/LogoutDataSource.kt index 1c210520e..95ce658c1 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/log_in/log_out/LogoutDataSource.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/log_in/log_out/LogoutDataSource.kt @@ -1,22 +1,13 @@ package org.futo.circles.auth.feature.log_in.log_out -import androidx.lifecycle.MutableLiveData -import org.futo.circles.auth.R import org.futo.circles.core.extensions.createResult -import org.futo.circles.core.model.LoadingData import org.futo.circles.core.provider.MatrixSessionProvider import javax.inject.Inject class LogoutDataSource @Inject constructor() { - private val session = MatrixSessionProvider.getSessionOrThrow() - - val loadingLiveData = MutableLiveData<LoadingData>() - suspend fun logOut() = createResult { - loadingLiveData.postValue(LoadingData(messageId = R.string.log_out)) - session.signOutService().signOut(true) - loadingLiveData.postValue(LoadingData(isLoading = false)) + MatrixSessionProvider.getSessionOrThrow().signOutService().signOut(true) } } \ No newline at end of file diff --git a/core/src/main/java/org/futo/circles/core/room/create/CreateRoomViewModel.kt b/core/src/main/java/org/futo/circles/core/room/create/CreateRoomViewModel.kt index 53dfd028d..27e8457a5 100644 --- a/core/src/main/java/org/futo/circles/core/room/create/CreateRoomViewModel.kt +++ b/core/src/main/java/org/futo/circles/core/room/create/CreateRoomViewModel.kt @@ -59,14 +59,13 @@ class CreateRoomViewModel @Inject constructor( name: String, inviteIds: List<String>?, isPublicCircle: Boolean - ) = - dataSource.createRoom( - circlesRoom = Circle(), - name = name, - iconUri = selectedImageLiveData.value, - inviteIds = inviteIds, - isPublicCircle = isPublicCircle - ) + ) = dataSource.createRoom( + circlesRoom = Circle(), + name = name, + iconUri = selectedImageLiveData.value, + inviteIds = inviteIds, + isPublicCircle = isPublicCircle + ) private suspend fun createGallery(name: String) = dataSource.createRoom( circlesRoom = Gallery(), -- GitLab