From 048d8598816e99c9eb6570874cd425831c7d040c Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 24 Jun 2019 12:21:02 -0400 Subject: [PATCH] Handle missing profile photos better. There were a couple funny behaviors you could run into if you had a contact that previously had a profile photo, but then removed it. --- .../securesms/contacts/avatars/ProfileContactPhoto.java | 4 +++- .../securesms/contactshare/ContactFieldAdapter.java | 7 ++++++- .../thoughtcrime/securesms/glide/ContactPhotoFetcher.java | 3 +++ src/org/thoughtcrime/securesms/util/MediaUtil.java | 2 -- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/org/thoughtcrime/securesms/contacts/avatars/ProfileContactPhoto.java b/src/org/thoughtcrime/securesms/contacts/avatars/ProfileContactPhoto.java index d037bcadc7..480b7dc3d4 100644 --- a/src/org/thoughtcrime/securesms/contacts/avatars/ProfileContactPhoto.java +++ b/src/org/thoughtcrime/securesms/contacts/avatars/ProfileContactPhoto.java @@ -9,6 +9,7 @@ import androidx.annotation.Nullable; import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.profiles.AvatarHelper; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.security.MessageDigest; @@ -30,7 +31,8 @@ public class ProfileContactPhoto implements ContactPhoto { @Override public @Nullable Uri getUri(@NonNull Context context) { - return Uri.fromFile(AvatarHelper.getAvatarFile(context, address)); + File avatarFile = AvatarHelper.getAvatarFile(context, address); + return avatarFile.exists() ? Uri.fromFile(avatarFile) : null; } @Override diff --git a/src/org/thoughtcrime/securesms/contactshare/ContactFieldAdapter.java b/src/org/thoughtcrime/securesms/contactshare/ContactFieldAdapter.java index 25fec500d2..3b2680bbf7 100644 --- a/src/org/thoughtcrime/securesms/contactshare/ContactFieldAdapter.java +++ b/src/org/thoughtcrime/securesms/contactshare/ContactFieldAdapter.java @@ -13,6 +13,7 @@ import android.widget.ImageView; import android.widget.TextView; import com.annimon.stream.Stream; +import com.bumptech.glide.load.engine.DiskCacheStrategy; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.contactshare.Contact.Phone; @@ -103,7 +104,11 @@ class ContactFieldAdapter extends RecyclerView.Adapter { try { inputStream = contactPhoto.openInputStream(context); callback.onDataReady(inputStream); + } catch (FileNotFoundException e) { + callback.onDataReady(null); } catch (IOException e) { callback.onLoadFailed(e); } diff --git a/src/org/thoughtcrime/securesms/util/MediaUtil.java b/src/org/thoughtcrime/securesms/util/MediaUtil.java index 6163ba16d6..625337f3d1 100644 --- a/src/org/thoughtcrime/securesms/util/MediaUtil.java +++ b/src/org/thoughtcrime/securesms/util/MediaUtil.java @@ -242,8 +242,6 @@ public class MediaUtil { } public static boolean hasVideoThumbnail(Uri uri) { - Log.i(TAG, "Checking: " + uri); - if (uri == null || !ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) { return false; }