From 40ca94a7dd3170f6b4ae2113794c6f6c22a77d85 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Sat, 21 Sep 2024 11:48:41 -0400 Subject: [PATCH] Fix sticker backup import/export. --- .../v2/processor/StickerBackupProcessor.kt | 24 ++++++++++++++++++- .../securesms/database/StickerTable.java | 14 +++++------ 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/processor/StickerBackupProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/processor/StickerBackupProcessor.kt index 5b87a7c88f..8c82aad470 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/processor/StickerBackupProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/processor/StickerBackupProcessor.kt @@ -7,10 +7,13 @@ package org.thoughtcrime.securesms.backup.v2.processor import okio.ByteString.Companion.toByteString 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.StickerPack 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.StickerTable import org.thoughtcrime.securesms.database.StickerTable.StickerPackRecordReader import org.thoughtcrime.securesms.database.model.StickerPackRecord import org.thoughtcrime.securesms.dependencies.AppDependencies @@ -31,8 +34,27 @@ object StickerBackupProcessor { } 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( - 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 + ) ) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/StickerTable.java b/app/src/main/java/org/thoughtcrime/securesms/database/StickerTable.java index e8776a6c9b..b386de7e5b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/StickerTable.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/StickerTable.java @@ -39,16 +39,16 @@ public class StickerTable extends DatabaseTable { public static final String TABLE_NAME = "sticker"; public static final String _ID = "_id"; - static final String PACK_ID = "pack_id"; - private static final String PACK_KEY = "pack_key"; - private static final String PACK_TITLE = "pack_title"; - private static final String PACK_AUTHOR = "pack_author"; + public static final String PACK_ID = "pack_id"; + public static final String PACK_KEY = "pack_key"; + public static final String PACK_TITLE = "pack_title"; + public static final String PACK_AUTHOR = "pack_author"; 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"; - private static final String COVER = "cover"; + public static final String COVER = "cover"; 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"; public static final String FILE_PATH = "file_path"; public static final String FILE_LENGTH = "file_length";