From 5362e07a5c8bf57499cb4205fb602a4ea4b0a34c Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 4 Sep 2019 11:09:30 -0400 Subject: [PATCH] Fix crash that may happen upon first sticker install. --- .../securesms/database/AttachmentDatabase.java | 13 +++++++++---- .../securesms/jobs/StickerPackDownloadJob.java | 5 +++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/org/thoughtcrime/securesms/database/AttachmentDatabase.java b/src/org/thoughtcrime/securesms/database/AttachmentDatabase.java index fcedea0a50..f306de689b 100644 --- a/src/org/thoughtcrime/securesms/database/AttachmentDatabase.java +++ b/src/org/thoughtcrime/securesms/database/AttachmentDatabase.java @@ -188,7 +188,7 @@ public class AttachmentDatabase extends Database { String selection = STICKER_PACK_ID + " = ?"; String[] args = new String[] { stickerPackId }; - try (Cursor cursor = databaseHelper.getReadableDatabase().query(TABLE_NAME, null, selection, args, null, null, "1")) { + try (Cursor cursor = databaseHelper.getReadableDatabase().query(TABLE_NAME, null, selection, args, null, null, null, "1")) { return cursor != null && cursor.moveToFirst(); } } @@ -563,9 +563,14 @@ public class AttachmentDatabase extends Database { * database. */ public @Nullable Cursor getUnavailableStickerPacks() { - String query = "SELECT DISTINCT " + STICKER_PACK_ID + ", " + STICKER_PACK_KEY + " FROM " + TABLE_NAME + " WHERE " + STICKER_PACK_ID + " NOT IN (" + - "SELECT DISTINCT " + StickerDatabase.PACK_ID + " FROM " + StickerDatabase.TABLE_NAME + - ")"; + String query = "SELECT DISTINCT " + STICKER_PACK_ID + ", " + STICKER_PACK_KEY + + " FROM " + TABLE_NAME + + " WHERE " + + STICKER_PACK_ID + " NOT NULL AND " + + STICKER_PACK_KEY + " NOT NULL AND " + + STICKER_PACK_ID + " NOT IN (" + + "SELECT DISTINCT " + StickerDatabase.PACK_ID + " FROM " + StickerDatabase.TABLE_NAME + + ")"; return databaseHelper.getReadableDatabase().rawQuery(query, null); } diff --git a/src/org/thoughtcrime/securesms/jobs/StickerPackDownloadJob.java b/src/org/thoughtcrime/securesms/jobs/StickerPackDownloadJob.java index 0d9a0c0b02..8797bc63de 100644 --- a/src/org/thoughtcrime/securesms/jobs/StickerPackDownloadJob.java +++ b/src/org/thoughtcrime/securesms/jobs/StickerPackDownloadJob.java @@ -1,6 +1,7 @@ package org.thoughtcrime.securesms.jobs; import androidx.annotation.NonNull; +import androidx.core.util.Preconditions; import org.thoughtcrime.securesms.ApplicationContext; import org.thoughtcrime.securesms.database.DatabaseFactory; @@ -56,6 +57,10 @@ public class StickerPackDownloadJob extends BaseJob { boolean isReferencePack) { super(parameters); + + Preconditions.checkNotNull(packId); + Preconditions.checkNotNull(packKey); + this.packId = packId; this.packKey = packKey; this.isReferencePack = isReferencePack;