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 3db4fc528bc401ad17f5d34c36fcbabac89a7ec8..a69cbdfe1b2d858a6338548e5e6e9087e979ae4f 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 deac30615ed3162f400e29716c339a330026efb5..74dc58f7b7b6af4ff16d9045a88429b549cadd3c 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 1c210520ef44e654d5c6742a35cc898899984dda..95ce658c1636f8e22e635f765ca84d1b08645504 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 53dfd028d8c43ab58ab27f4538ff39b198be5146..27e8457a5650128bc48d3c9affd64f722a950356 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(),