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 0956f183bec8ab916439e09c46cd205fc6ec653b..6ea09e4176c1702e754868c5544e704df3267033 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 318be6f70f3eff45d8abad7613afa3d562fbec5a..9a7ffeb2a581b68459bae1193145f1a9addef55d 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