From 90e6dd3d7deefd42576dae098fcf8caf9d05ea38 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 11 Feb 2022 11:09:13 -0400 Subject: [PATCH] Don't trampoline in setOnlyPage. --- .../securesms/keyboard/KeyboardPagerViewModel.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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) + } } } }