From ed71a4a26b1f2231b4ff14435a305018db504e2a Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Fri, 5 Jan 2024 13:37:39 +0200 Subject: [PATCH] Hide media usage info for servers if usage call fails --- .../futo/circles/feature/settings/SettingsFragment.kt | 6 +++--- .../futo/circles/feature/settings/SettingsViewModel.kt | 9 ++++----- 2 files changed, 7 insertions(+), 8 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 0956f183b..6ea09e417 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 @@ -109,9 +109,9 @@ class SettingsFragment : Fragment(R.layout.fragment_settings) { viewModel.passPhraseLoadingLiveData.observeData(this) { loadingDialog.handleLoading(it) } - viewModel.mediaUsageInfoLiveData.observeData(this) { mediaUsage -> - bindMediaUsageProgress(mediaUsage) - } + viewModel.mediaUsageInfoLiveData.observeResponse(this, + error = { bindMediaUsageProgress(null) }, + success = { bindMediaUsageProgress(it) }) } private fun bindMediaUsageProgress(mediaUsage: MediaUsageInfo?) { 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 318be6f70..9a7ffeb2a 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 @@ -1,16 +1,15 @@ package org.futo.circles.feature.settings -import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import dagger.hilt.android.lifecycle.HiltViewModel import org.futo.circles.auth.feature.log_in.log_out.LogoutDataSource import org.futo.circles.auth.feature.token.RefreshTokenManager import org.futo.circles.core.base.SingleEventLiveData import org.futo.circles.core.extensions.Response +import org.futo.circles.core.extensions.createResult import org.futo.circles.core.extensions.launchBg import org.futo.circles.core.feature.workspace.SharedCircleDataSource import org.futo.circles.core.provider.MatrixSessionProvider -import org.matrix.android.sdk.api.extensions.tryOrNull import org.matrix.android.sdk.internal.session.media.MediaUsageInfo import javax.inject.Inject @@ -29,7 +28,7 @@ class SettingsViewModel @Inject constructor( val deactivateLiveData = SingleEventLiveData<Response<Unit?>>() val navigateToMatrixChangePasswordEvent = SingleEventLiveData<Unit>() val changePasswordResponseLiveData = SingleEventLiveData<Response<Unit?>>() - val mediaUsageInfoLiveData = MutableLiveData<MediaUsageInfo?>() + val mediaUsageInfoLiveData = SingleEventLiveData<Response<MediaUsageInfo?>>() fun logOut() { launchBg { @@ -64,10 +63,10 @@ class SettingsViewModel @Inject constructor( fun getSharedCircleSpaceId(): String? = sharedCircleDataSource.getSharedCirclesSpaceId() fun updateMediaUsageInfo() { launchBg { - val mediaUsageInfo = tryOrNull { + val mediaUsageInfoResult = createResult { MatrixSessionProvider.getSessionOrThrow().mediaService().getMediaUsage() } - mediaUsageInfoLiveData.postValue(mediaUsageInfo) + mediaUsageInfoLiveData.postValue(mediaUsageInfoResult) } } } \ No newline at end of file -- GitLab