Fix comparison causing hot loop on API25.
This commit is contained in:
parent
85d5ea0382
commit
36fddbb79a
4 changed files with 14 additions and 7 deletions
|
@ -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)
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -19,4 +19,4 @@ fun EditText.setIncognitoKeyboardEnabled(isIncognitoKeyboardEnabled: Boolean) {
|
|||
} else {
|
||||
imeOptions and INCOGNITO_KEYBOARD.inv()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue