diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryNameFieldItem.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryNameFieldItem.kt index b891db4de4..d002630801 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryNameFieldItem.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryNameFieldItem.kt @@ -43,7 +43,7 @@ object CreateStoryNameFieldItem { } override fun bind(model: Model) { - if (model.body != editText.text) { + if (model.body.toString() != editText.text.toString()) { editText.setText(model.body) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryWithViewersFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryWithViewersFragment.kt index 186332ca07..93fbe09c75 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryWithViewersFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryWithViewersFragment.kt @@ -14,6 +14,7 @@ import org.thoughtcrime.securesms.components.settings.DSLSettingsFragment import org.thoughtcrime.securesms.components.settings.configure import org.thoughtcrime.securesms.databinding.StoriesCreateWithRecipientsFragmentBinding import org.thoughtcrime.securesms.recipients.RecipientId +import org.thoughtcrime.securesms.util.LifecycleDisposable import org.thoughtcrime.securesms.util.Material3OnScrollHelper import org.thoughtcrime.securesms.util.ViewUtil import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory @@ -43,6 +44,7 @@ class CreateStoryWithViewersFragment : DSLSettingsFragment( ) private val binding by ViewBinderDelegate(StoriesCreateWithRecipientsFragmentBinding::bind) + private val disposables = LifecycleDisposable() private val recipientIds: Array get() = CreateStoryWithViewersFragmentArgs.fromBundle(requireArguments()).recipients @@ -56,8 +58,9 @@ class CreateStoryWithViewersFragment : DSLSettingsFragment( viewModel.setLabel(it) } + disposables.bindTo(viewLifecycleOwner) adapter.submitList(getConfiguration().toMappingModelList()) - viewModel.state.observe(viewLifecycleOwner) { state -> + disposables += viewModel.state.subscribe { state -> val nameModel = CreateStoryNameFieldItem.Model( body = state.label, diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryWithViewersViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryWithViewersViewModel.kt index 9095e75608..36c73c2f23 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryWithViewersViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryWithViewersViewModel.kt @@ -1,25 +1,29 @@ package org.thoughtcrime.securesms.stories.settings.create -import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.disposables.CompositeDisposable import io.reactivex.rxjava3.kotlin.plusAssign import io.reactivex.rxjava3.kotlin.subscribeBy import org.thoughtcrime.securesms.recipients.RecipientId -import org.thoughtcrime.securesms.util.livedata.Store +import org.thoughtcrime.securesms.util.rx.RxStore class CreateStoryWithViewersViewModel( private val repository: CreateStoryWithViewersRepository ) : ViewModel() { - private val store = Store(CreateStoryWithViewersState()) + private val store = RxStore(CreateStoryWithViewersState()) private val disposables = CompositeDisposable() - val state: LiveData = store.stateLiveData + val state: Flowable = store.stateFlowable + .distinctUntilChanged() + .observeOn(AndroidSchedulers.mainThread()) override fun onCleared() { disposables.clear() + store.dispose() } fun setLabel(label: CharSequence) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/EditTextExtensions.kt b/app/src/main/java/org/thoughtcrime/securesms/util/EditTextExtensions.kt index b295e06091..ef39be49e2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/EditTextExtensions.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/EditTextExtensions.kt @@ -19,4 +19,4 @@ fun EditText.setIncognitoKeyboardEnabled(isIncognitoKeyboardEnabled: Boolean) { } else { imeOptions and INCOGNITO_KEYBOARD.inv() } -} \ No newline at end of file +}