From bbbccccf4725d0020ba241d417582e7478ff612b Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 29 Jan 2021 15:08:29 -0400 Subject: [PATCH] Fix crash when READ_PHONE_STATE is denied. --- .../thoughtcrime/securesms/sharing/ShareRepository.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/sharing/ShareRepository.java b/app/src/main/java/org/thoughtcrime/securesms/sharing/ShareRepository.java index 9045f5750d..dc7b4ae903 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sharing/ShareRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sharing/ShareRepository.java @@ -1,6 +1,8 @@ package org.thoughtcrime.securesms.sharing; +import android.Manifest; import android.content.Context; +import android.content.pm.PackageManager; import android.database.Cursor; import android.net.Uri; import android.provider.OpenableColumns; @@ -9,6 +11,7 @@ import android.util.Pair; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; +import androidx.core.content.ContextCompat; import com.annimon.stream.Collectors; import com.annimon.stream.Stream; @@ -22,9 +25,9 @@ import org.thoughtcrime.securesms.mediasend.Media; import org.thoughtcrime.securesms.mediasend.MediaSendConstants; import org.thoughtcrime.securesms.mms.MediaConstraints; import org.thoughtcrime.securesms.mms.PartAuthority; -import org.thoughtcrime.securesms.mms.PushMediaConstraints; import org.thoughtcrime.securesms.providers.BlobProvider; import org.thoughtcrime.securesms.util.MediaUtil; +import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; import org.whispersystems.libsignal.util.guava.Optional; @@ -109,7 +112,8 @@ class ShareRepository { } private boolean isMmsSupported(@NonNull Context context, @NonNull String mimeType, long size) { - if (!Util.isMmsCapable(context)) { + boolean canReadPhoneState = ContextCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED; + if (!TextSecurePreferences.isSmsEnabled(context) || !canReadPhoneState || !Util.isMmsCapable(context)) { return false; }