Fix post-transfer emoji search.

This commit is contained in:
Michelle Tang 2024-12-06 17:27:23 -05:00 committed by Greyson Parrelli
parent a577018d03
commit a188eb64ab
3 changed files with 16 additions and 1 deletions

View file

@ -162,9 +162,10 @@ public class ApplicationMigrations {
static final int WALLPAPER_MIGRATION_CLEANUP = 118; static final int WALLPAPER_MIGRATION_CLEANUP = 118;
static final int AEP_INTRODUCTION = 119; static final int AEP_INTRODUCTION = 119;
static final int GROUP_EXTRAS_DB_FIX = 120; 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 * 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()); 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; return jobs;
} }

View file

@ -8,6 +8,7 @@ package org.thoughtcrime.securesms.registration.util;
import org.signal.core.util.logging.Log; import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob; import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
import org.thoughtcrime.securesms.jobs.EmojiSearchIndexDownloadJob;
import org.thoughtcrime.securesms.jobs.RefreshAttributesJob; import org.thoughtcrime.securesms.jobs.RefreshAttributesJob;
import org.thoughtcrime.securesms.jobs.StorageSyncJob; import org.thoughtcrime.securesms.jobs.StorageSyncJob;
import org.thoughtcrime.securesms.keyvalue.PhoneNumberPrivacyValues.PhoneNumberDiscoverabilityMode; import org.thoughtcrime.securesms.keyvalue.PhoneNumberPrivacyValues.PhoneNumberDiscoverabilityMode;
@ -48,6 +49,9 @@ public final class RegistrationUtil {
.then(new DirectoryRefreshJob(false)) .then(new DirectoryRefreshJob(false))
.enqueue(); .enqueue();
SignalStore.emoji().clearSearchIndexMetadata();
EmojiSearchIndexDownloadJob.scheduleImmediately();
} else if (!SignalStore.registration().isRegistrationComplete()) { } else if (!SignalStore.registration().isRegistrationComplete()) {
Log.i(TAG, "Registration is not yet complete.", new Throwable()); Log.i(TAG, "Registration is not yet complete.", new Throwable());
} }

View file

@ -11,6 +11,7 @@ import io.mockk.mockkObject
import io.mockk.unmockkObject import io.mockk.unmockkObject
import org.junit.rules.ExternalResource import org.junit.rules.ExternalResource
import org.thoughtcrime.securesms.keyvalue.AccountValues import org.thoughtcrime.securesms.keyvalue.AccountValues
import org.thoughtcrime.securesms.keyvalue.EmojiValues
import org.thoughtcrime.securesms.keyvalue.PhoneNumberPrivacyValues import org.thoughtcrime.securesms.keyvalue.PhoneNumberPrivacyValues
import org.thoughtcrime.securesms.keyvalue.RegistrationValues import org.thoughtcrime.securesms.keyvalue.RegistrationValues
import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.keyvalue.SignalStore
@ -41,17 +42,22 @@ class MockSignalStoreRule(private val relaxed: Set<KClass<*>> = emptySet()) : Ex
lateinit var svr: SvrValues lateinit var svr: SvrValues
private set private set
lateinit var emoji: EmojiValues
private set
override fun before() { override fun before() {
account = mockk(relaxed = relaxed.contains(AccountValues::class), relaxUnitFun = true) account = mockk(relaxed = relaxed.contains(AccountValues::class), relaxUnitFun = true)
phoneNumberPrivacy = mockk(relaxed = relaxed.contains(PhoneNumberPrivacyValues::class), relaxUnitFun = true) phoneNumberPrivacy = mockk(relaxed = relaxed.contains(PhoneNumberPrivacyValues::class), relaxUnitFun = true)
registration = mockk(relaxed = relaxed.contains(RegistrationValues::class), relaxUnitFun = true) registration = mockk(relaxed = relaxed.contains(RegistrationValues::class), relaxUnitFun = true)
svr = mockk(relaxed = relaxed.contains(SvrValues::class), relaxUnitFun = true) svr = mockk(relaxed = relaxed.contains(SvrValues::class), relaxUnitFun = true)
emoji = mockk(relaxed = relaxed.contains(EmojiValues::class), relaxUnitFun = true)
mockkObject(SignalStore) mockkObject(SignalStore)
every { SignalStore.account } returns account every { SignalStore.account } returns account
every { SignalStore.phoneNumberPrivacy } returns phoneNumberPrivacy every { SignalStore.phoneNumberPrivacy } returns phoneNumberPrivacy
every { SignalStore.registration } returns registration every { SignalStore.registration } returns registration
every { SignalStore.svr } returns svr every { SignalStore.svr } returns svr
every { SignalStore.emoji } returns emoji
} }
override fun after() { override fun after() {