Fix sticker backup import/export.

This commit is contained in:
Greyson Parrelli 2024-09-21 11:48:41 -04:00
parent ba1e8b6c14
commit 40ca94a7dd
2 changed files with 30 additions and 8 deletions

View file

@ -7,10 +7,13 @@ package org.thoughtcrime.securesms.backup.v2.processor
import okio.ByteString.Companion.toByteString import okio.ByteString.Companion.toByteString
import org.signal.core.util.Hex import org.signal.core.util.Hex
import org.signal.core.util.insertInto
import org.thoughtcrime.securesms.backup.v2.proto.Frame import org.thoughtcrime.securesms.backup.v2.proto.Frame
import org.thoughtcrime.securesms.backup.v2.proto.StickerPack import org.thoughtcrime.securesms.backup.v2.proto.StickerPack
import org.thoughtcrime.securesms.backup.v2.stream.BackupFrameEmitter import org.thoughtcrime.securesms.backup.v2.stream.BackupFrameEmitter
import org.thoughtcrime.securesms.database.SQLiteDatabase
import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.SignalDatabase
import org.thoughtcrime.securesms.database.StickerTable
import org.thoughtcrime.securesms.database.StickerTable.StickerPackRecordReader import org.thoughtcrime.securesms.database.StickerTable.StickerPackRecordReader
import org.thoughtcrime.securesms.database.model.StickerPackRecord import org.thoughtcrime.securesms.database.model.StickerPackRecord
import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.dependencies.AppDependencies
@ -31,8 +34,27 @@ object StickerBackupProcessor {
} }
fun import(stickerPack: StickerPack) { fun import(stickerPack: StickerPack) {
SignalDatabase.rawDatabase
.insertInto(StickerTable.TABLE_NAME)
.values(
StickerTable.PACK_ID to Hex.toStringCondensed(stickerPack.packId.toByteArray()),
StickerTable.PACK_KEY to Hex.toStringCondensed(stickerPack.packKey.toByteArray()),
StickerTable.PACK_TITLE to "",
StickerTable.PACK_AUTHOR to "",
StickerTable.INSTALLED to 1,
StickerTable.COVER to 1,
StickerTable.EMOJI to "",
StickerTable.CONTENT_TYPE to "",
StickerTable.FILE_PATH to ""
)
.run(SQLiteDatabase.CONFLICT_IGNORE)
AppDependencies.jobManager.add( AppDependencies.jobManager.add(
StickerPackDownloadJob.forInstall(Hex.toStringCondensed(stickerPack.packId.toByteArray()), Hex.toStringCondensed(stickerPack.packKey.toByteArray()), false) StickerPackDownloadJob.forInstall(
Hex.toStringCondensed(stickerPack.packId.toByteArray()),
Hex.toStringCondensed(stickerPack.packKey.toByteArray()),
false
)
) )
} }
} }

View file

@ -39,16 +39,16 @@ public class StickerTable extends DatabaseTable {
public static final String TABLE_NAME = "sticker"; public static final String TABLE_NAME = "sticker";
public static final String _ID = "_id"; public static final String _ID = "_id";
static final String PACK_ID = "pack_id"; public static final String PACK_ID = "pack_id";
private static final String PACK_KEY = "pack_key"; public static final String PACK_KEY = "pack_key";
private static final String PACK_TITLE = "pack_title"; public static final String PACK_TITLE = "pack_title";
private static final String PACK_AUTHOR = "pack_author"; public static final String PACK_AUTHOR = "pack_author";
private static final String STICKER_ID = "sticker_id"; private static final String STICKER_ID = "sticker_id";
private static final String EMOJI = "emoji"; public static final String EMOJI = "emoji";
public static final String CONTENT_TYPE = "content_type"; public static final String CONTENT_TYPE = "content_type";
private static final String COVER = "cover"; public static final String COVER = "cover";
private static final String PACK_ORDER = "pack_order"; private static final String PACK_ORDER = "pack_order";
private static final String INSTALLED = "installed"; public static final String INSTALLED = "installed";
private static final String LAST_USED = "last_used"; private static final String LAST_USED = "last_used";
public static final String FILE_PATH = "file_path"; public static final String FILE_PATH = "file_path";
public static final String FILE_LENGTH = "file_length"; public static final String FILE_LENGTH = "file_length";