diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/KeyboardPagerViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/KeyboardPagerViewModel.kt index 86ac118a63..72bce57d52 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/KeyboardPagerViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/KeyboardPagerViewModel.kt @@ -1,7 +1,9 @@ package org.thoughtcrime.securesms.keyboard +import androidx.annotation.MainThread import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel +import org.signal.core.util.ThreadUtil import org.thoughtcrime.securesms.dependencies.ApplicationDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.stickers.StickerSearchRepository @@ -35,14 +37,19 @@ class KeyboardPagerViewModel : ViewModel() { fun page(): LiveData = page fun pages(): LiveData> = pages + @MainThread fun setOnlyPage(page: KeyboardPage) { - pages.postValue(setOf(page)) + pages.value = setOf(page) switchToPage(page) } fun switchToPage(page: KeyboardPage) { if (this.pages.value.contains(page) && this.page.value != page) { - this.page.postValue(page) + if (ThreadUtil.isMainThread()) { + this.page.value = page + } else { + this.page.postValue(page) + } } } }