Skip to content

Commit 8030be0

Browse files
committed
Redownload emoji search index if data is missing.
1 parent a3f1cc5 commit 8030be0

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

app/src/main/java/org/thoughtcrime/securesms/database/EmojiSearchTable.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.database
33
import android.content.Context
44
import android.text.TextUtils
55
import androidx.core.content.contentValuesOf
6+
import org.signal.core.util.exists
67
import org.signal.core.util.readToSingleInt
78
import org.signal.core.util.requireInt
89
import org.signal.core.util.requireNonNullString
@@ -104,6 +105,10 @@ class EmojiSearchTable(context: Context, databaseHelper: SignalDatabase) : Datab
104105
}
105106
}
106107

108+
fun hasSearchIndexData(): Boolean {
109+
return readableDatabase.exists(TABLE_NAME).run()
110+
}
111+
107112
private fun SQLiteDatabase.insert(searchIndex: List<EmojiSearchData>) {
108113
for (searchData in searchIndex) {
109114
for (label in searchData.tags) {

app/src/main/java/org/thoughtcrime/securesms/jobs/EmojiSearchIndexDownloadJob.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,13 @@ public static void scheduleIfNecessary() {
6060
long timeSinceCheck = System.currentTimeMillis() - SignalStore.emoji().getLastSearchIndexCheck();
6161
boolean needsCheck = false;
6262

63+
if (SignalStore.emoji().hasSearchIndex() && !SignalDatabase.emojiSearch().hasSearchIndexData()) {
64+
Log.w(TAG, "Emoji search data missing with metadata, clearing version to redownload.");
65+
SignalStore.emoji().clearSearchIndexVersion();
66+
scheduleImmediately();
67+
return;
68+
}
69+
6370
if (SignalStore.emoji().hasSearchIndex()) {
6471
needsCheck = timeSinceCheck > INTERVAL_WITH_INDEX;
6572
} else {

app/src/main/java/org/thoughtcrime/securesms/keyvalue/EmojiValues.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,10 @@ public void clearSearchIndexMetadata() {
135135
.apply();
136136
}
137137

138+
public void clearSearchIndexVersion() {
139+
getStore().beginWrite().remove(SEARCH_VERSION).apply();
140+
}
141+
138142
public @Nullable String getSearchLanguage() {
139143
return getString(SEARCH_LANGUAGE, null);
140144
}

0 commit comments

Comments
 (0)