diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/ApplicationMigrations.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/ApplicationMigrations.java index 8461f4aad7..8b90c38062 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/ApplicationMigrations.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/ApplicationMigrations.java @@ -162,9 +162,10 @@ public class ApplicationMigrations { static final int WALLPAPER_MIGRATION_CLEANUP = 118; static final int AEP_INTRODUCTION = 119; static final int GROUP_EXTRAS_DB_FIX = 120; + static final int EMOJI_SEARCH_INDEX_CHECK_2 = 121; } - public static final int CURRENT_VERSION = 120; + public static final int CURRENT_VERSION = 121; /** * This *must* be called after the {@link JobManager} has been instantiated, but *before* the call @@ -743,6 +744,10 @@ public class ApplicationMigrations { jobs.put(Version.GROUP_EXTRAS_DB_FIX, new DatabaseMigrationJob()); } + if (lastSeenVersion < Version.EMOJI_SEARCH_INDEX_CHECK_2) { + jobs.put(Version.EMOJI_SEARCH_INDEX_CHECK_2, new EmojiSearchIndexCheckMigrationJob()); + } + return jobs; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/util/RegistrationUtil.java b/app/src/main/java/org/thoughtcrime/securesms/registration/util/RegistrationUtil.java index 2ad5caa34c..7acd443935 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/util/RegistrationUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/util/RegistrationUtil.java @@ -8,6 +8,7 @@ package org.thoughtcrime.securesms.registration.util; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob; +import org.thoughtcrime.securesms.jobs.EmojiSearchIndexDownloadJob; import org.thoughtcrime.securesms.jobs.RefreshAttributesJob; import org.thoughtcrime.securesms.jobs.StorageSyncJob; import org.thoughtcrime.securesms.keyvalue.PhoneNumberPrivacyValues.PhoneNumberDiscoverabilityMode; @@ -48,6 +49,9 @@ public final class RegistrationUtil { .then(new DirectoryRefreshJob(false)) .enqueue(); + SignalStore.emoji().clearSearchIndexMetadata(); + EmojiSearchIndexDownloadJob.scheduleImmediately(); + } else if (!SignalStore.registration().isRegistrationComplete()) { Log.i(TAG, "Registration is not yet complete.", new Throwable()); } diff --git a/app/src/test/java/org/thoughtcrime/securesms/testutil/MockSignalStoreRule.kt b/app/src/test/java/org/thoughtcrime/securesms/testutil/MockSignalStoreRule.kt index a0d82e6891..d1ceb6e444 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/testutil/MockSignalStoreRule.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/testutil/MockSignalStoreRule.kt @@ -11,6 +11,7 @@ import io.mockk.mockkObject import io.mockk.unmockkObject import org.junit.rules.ExternalResource import org.thoughtcrime.securesms.keyvalue.AccountValues +import org.thoughtcrime.securesms.keyvalue.EmojiValues import org.thoughtcrime.securesms.keyvalue.PhoneNumberPrivacyValues import org.thoughtcrime.securesms.keyvalue.RegistrationValues import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -41,17 +42,22 @@ class MockSignalStoreRule(private val relaxed: Set> = emptySet()) : Ex lateinit var svr: SvrValues private set + lateinit var emoji: EmojiValues + private set + override fun before() { account = mockk(relaxed = relaxed.contains(AccountValues::class), relaxUnitFun = true) phoneNumberPrivacy = mockk(relaxed = relaxed.contains(PhoneNumberPrivacyValues::class), relaxUnitFun = true) registration = mockk(relaxed = relaxed.contains(RegistrationValues::class), relaxUnitFun = true) svr = mockk(relaxed = relaxed.contains(SvrValues::class), relaxUnitFun = true) + emoji = mockk(relaxed = relaxed.contains(EmojiValues::class), relaxUnitFun = true) mockkObject(SignalStore) every { SignalStore.account } returns account every { SignalStore.phoneNumberPrivacy } returns phoneNumberPrivacy every { SignalStore.registration } returns registration every { SignalStore.svr } returns svr + every { SignalStore.emoji } returns emoji } override fun after() {