mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-09 14:58:34 +00:00
Fix notification reply image.
This commit is contained in:
parent
a5c4c1e0a6
commit
e2a48d1714
@ -34,6 +34,7 @@ import org.thoughtcrime.securesms.mms.Slide;
|
|||||||
import org.thoughtcrime.securesms.mms.SlideDeck;
|
import org.thoughtcrime.securesms.mms.SlideDeck;
|
||||||
import org.thoughtcrime.securesms.preferences.widgets.NotificationPrivacyPreference;
|
import org.thoughtcrime.securesms.preferences.widgets.NotificationPrivacyPreference;
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||||
|
import org.thoughtcrime.securesms.util.AvatarUtil;
|
||||||
import org.thoughtcrime.securesms.util.BitmapUtil;
|
import org.thoughtcrime.securesms.util.BitmapUtil;
|
||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
import org.thoughtcrime.securesms.util.Util;
|
import org.thoughtcrime.securesms.util.Util;
|
||||||
@ -273,6 +274,7 @@ public class SingleRecipientNotificationBuilder extends AbstractNotificationBuil
|
|||||||
.setBot(false)
|
.setBot(false)
|
||||||
.setName(Recipient.self().getDisplayName(context))
|
.setName(Recipient.self().getDisplayName(context))
|
||||||
.setKey(Recipient.self().getId().serialize())
|
.setKey(Recipient.self().getId().serialize())
|
||||||
|
.setIcon(AvatarUtil.getIconForNotification(context, Recipient.self()))
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
if (threadRecipient.isGroup()) {
|
if (threadRecipient.isGroup()) {
|
||||||
|
@ -6,6 +6,8 @@ import android.text.TextUtils;
|
|||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.WorkerThread;
|
||||||
|
import androidx.core.graphics.drawable.IconCompat;
|
||||||
|
|
||||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||||
|
|
||||||
@ -15,16 +17,40 @@ import org.thoughtcrime.securesms.contacts.avatars.ContactColors;
|
|||||||
import org.thoughtcrime.securesms.contacts.avatars.GeneratedContactPhoto;
|
import org.thoughtcrime.securesms.contacts.avatars.GeneratedContactPhoto;
|
||||||
import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto;
|
import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto;
|
||||||
import org.thoughtcrime.securesms.mms.GlideApp;
|
import org.thoughtcrime.securesms.mms.GlideApp;
|
||||||
|
import org.thoughtcrime.securesms.mms.GlideRequest;
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||||
import org.whispersystems.libsignal.util.guava.Optional;
|
import org.whispersystems.libsignal.util.guava.Optional;
|
||||||
|
|
||||||
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
||||||
public final class AvatarUtil {
|
public final class AvatarUtil {
|
||||||
|
|
||||||
private AvatarUtil() {
|
private AvatarUtil() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void loadIconIntoImageView(@NonNull Recipient recipient, @NonNull ImageView target) {
|
public static void loadIconIntoImageView(@NonNull Recipient recipient, @NonNull ImageView target) {
|
||||||
Context context = target.getContext();
|
Context context = target.getContext();
|
||||||
|
|
||||||
|
request(GlideApp.with(context).asDrawable(), context, recipient).into(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
@WorkerThread
|
||||||
|
public static IconCompat getIconForNotification(@NonNull Context context, @NonNull Recipient recipient) {
|
||||||
|
try {
|
||||||
|
return IconCompat.createWithBitmap(request(GlideApp.with(context).asBitmap(), context, recipient).submit().get());
|
||||||
|
} catch (ExecutionException | InterruptedException e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static <T> GlideRequest<T> request(@NonNull GlideRequest<T> glideRequest, @NonNull Context context, @NonNull Recipient recipient) {
|
||||||
|
return glideRequest.load(new ProfileContactPhoto(recipient.getId(), String.valueOf(TextSecurePreferences.getProfileAvatarId(context))))
|
||||||
|
.error(getFallback(context, recipient))
|
||||||
|
.circleCrop()
|
||||||
|
.diskCacheStrategy(DiskCacheStrategy.ALL);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Drawable getFallback(@NonNull Context context, @NonNull Recipient recipient) {
|
||||||
String name = Optional.fromNullable(recipient.getDisplayName(context)).or(Optional.fromNullable(TextSecurePreferences.getProfileName(context))).or("");
|
String name = Optional.fromNullable(recipient.getDisplayName(context)).or(Optional.fromNullable(TextSecurePreferences.getProfileName(context))).or("");
|
||||||
MaterialColor fallbackColor = recipient.getColor();
|
MaterialColor fallbackColor = recipient.getColor();
|
||||||
|
|
||||||
@ -32,13 +58,6 @@ public final class AvatarUtil {
|
|||||||
fallbackColor = ContactColors.generateFor(name);
|
fallbackColor = ContactColors.generateFor(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
Drawable fallback = new GeneratedContactPhoto(name, R.drawable.ic_profile_outline_40).asDrawable(context, fallbackColor.toAvatarColor(context));
|
return new GeneratedContactPhoto(name, R.drawable.ic_profile_outline_40).asDrawable(context, fallbackColor.toAvatarColor(context));
|
||||||
|
|
||||||
GlideApp.with(context)
|
|
||||||
.load(new ProfileContactPhoto(recipient.getId(), String.valueOf(TextSecurePreferences.getProfileAvatarId(context))))
|
|
||||||
.error(fallback)
|
|
||||||
.circleCrop()
|
|
||||||
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
|
||||||
.into(target);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user