From 4367bf4ae07f128f730850031554c42558f36154 Mon Sep 17 00:00:00 2001 From: Sagar Date: Wed, 29 Jan 2025 00:40:57 +0530 Subject: [PATCH] Fix textStoryToggle visibility when hasSelectedMedia --- .../securesms/mediasend/v2/MediaSelectionActivity.kt | 9 ++++++++- .../securesms/mediasend/v2/MediaSelectionViewModel.kt | 8 ++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionActivity.kt index c05bf5f755..ddc9be03e0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionActivity.kt @@ -153,6 +153,14 @@ class MediaSelectionActivity : textViewModel.restoreFromInstanceState(savedInstanceState) } + viewModel.hasSelectedMedia.observe(this) { hasSelectedMedia-> + if(hasSelectedMedia) { + textStoryToggle.visible = false + } else { + textStoryToggle.visible = canDisplayStorySwitch() + } + } + (supportFragmentManager.findFragmentByTag(NAV_HOST_TAG) as NavHostFragment).navController.addOnDestinationChangedListener { _, d, _ -> when (d.id) { R.id.mediaCaptureFragment -> { @@ -233,7 +241,6 @@ class MediaSelectionActivity : private fun canDisplayStorySwitch(): Boolean { return Stories.isFeatureEnabled() && isCameraFirst() && - !viewModel.hasSelectedMedia() && (destination == MediaSelectionDestination.ChooseAfterMediaSelection || destination is MediaSelectionDestination.SingleStory) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionViewModel.kt index 26ddcc505c..1c7463fff3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionViewModel.kt @@ -7,6 +7,8 @@ import android.os.Parcel import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.distinctUntilChanged +import androidx.lifecycle.map import com.google.common.io.ByteStreams import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.Flowable @@ -80,6 +82,8 @@ class MediaSelectionViewModel( val state: LiveData = store.stateLiveData + val hasSelectedMedia: LiveData = store.stateLiveData.map { it.selectedMedia.isNotEmpty() }.distinctUntilChanged() + private val internalHudCommands = PublishSubject.create() val mediaErrors: BehaviorSubject = BehaviorSubject.createDefault(MediaValidator.FilterError.None) @@ -469,10 +473,6 @@ class MediaSelectionViewModel( } } - fun hasSelectedMedia(): Boolean { - return store.state.selectedMedia.isNotEmpty() - } - fun clearMediaErrors() { mediaErrors.onNext(MediaValidator.FilterError.None) }