diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/DoNotDisturbUtil.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/DoNotDisturbUtil.java index 5aaba4d5cf..657fc72141 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/DoNotDisturbUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/DoNotDisturbUtil.java @@ -1,5 +1,6 @@ package org.thoughtcrime.securesms.notifications; +import android.Manifest; import android.app.NotificationManager; import android.content.Context; import android.database.Cursor; @@ -12,6 +13,7 @@ import androidx.annotation.WorkerThread; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.DatabaseFactory; +import org.thoughtcrime.securesms.permissions.Permissions; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.ServiceUtil; @@ -84,6 +86,10 @@ public final class DoNotDisturbUtil { private static boolean isContactStarred(@NonNull Context context, @NonNull Recipient recipient) { if (!recipient.resolve().isSystemContact()) return false; + if (!Permissions.hasAny(context, Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_CONTACTS)) { + return false; + } + try (Cursor cursor = context.getContentResolver().query(recipient.resolve().getContactUri(), new String[]{ContactsContract.Contacts.STARRED}, null, null, null)) { if (cursor == null || !cursor.moveToFirst()) return false; return cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts.STARRED)) == 1;