Fix comparison causing hot loop on API25.

fork-5.53.8
Alex Hart 2022-10-26 11:02:14 -03:00
rodzic 8ea1e1acf9
commit a314b71a5f
3 zmienionych plików z 13 dodań i 6 usunięć

Wyświetl plik

@ -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)
}

Wyświetl plik

@ -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<RecipientId>
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,

Wyświetl plik

@ -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<CreateStoryWithViewersState> = store.stateLiveData
val state: Flowable<CreateStoryWithViewersState> = store.stateFlowable
.distinctUntilChanged()
.observeOn(AndroidSchedulers.mainThread())
override fun onCleared() {
disposables.clear()
store.dispose()
}
fun setLabel(label: CharSequence) {