Block avatar downloads in message request states.

This commit is contained in:
Michelle Tang
2025-03-06 12:36:58 -05:00
parent 5592d13258
commit 451d12ed53
28 changed files with 991 additions and 492 deletions

View File

@@ -32,6 +32,7 @@ import org.thoughtcrime.securesms.avatar.fallback.FallbackAvatar;
import org.thoughtcrime.securesms.avatar.fallback.FallbackAvatarDrawable;
import org.thoughtcrime.securesms.contacts.avatars.ContactPhoto;
import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto;
import org.thoughtcrime.securesms.conversation.colors.AvatarGradientColors;
import org.thoughtcrime.securesms.providers.AvatarProvider;
import org.thoughtcrime.securesms.recipients.Recipient;
@@ -132,10 +133,14 @@ public final class AvatarUtil {
AvatarTarget avatarTarget = new AvatarTarget(size);
RequestManager requestManager = Glide.with(context);
requestCircle(requestManager.asBitmap(), context, recipient, size).into(avatarTarget);
if (recipient.getShouldBlurAvatar() && recipient.getHasAvatar()) {
return DrawableUtil.toBitmap(AvatarGradientColors.getGradientDrawable(recipient), size, size);
} else {
requestCircle(requestManager.asBitmap(), context, recipient, size).into(avatarTarget);
Bitmap bitmap = avatarTarget.await();
return Objects.requireNonNullElseGet(bitmap, () -> DrawableUtil.toBitmap(getFallback(context, recipient, size), size, size));
Bitmap bitmap = avatarTarget.await();
return Objects.requireNonNullElseGet(bitmap, () -> DrawableUtil.toBitmap(getFallback(context, recipient, size), size, size));
}
} catch (InterruptedException e) {
return DrawableUtil.toBitmap(getFallback(context, recipient, size), size, size);
}
@@ -168,14 +173,7 @@ public final class AvatarUtil {
.diskCacheStrategy(DiskCacheStrategy.ALL)
.override(size);
if (recipient.getShouldBlurAvatar()) {
BlurTransformation blur = new BlurTransformation(context, 0.25f, BlurTransformation.MAX_RADIUS);
if (transformation != null) {
return request.transform(blur, transformation);
} else {
return request.transform(blur);
}
} else if (transformation != null) {
if (transformation != null) {
return request.transform(transformation);
} else {
return request;

View File

@@ -378,7 +378,7 @@ public final class ProfileUtil {
SignalStore.phoneNumberPrivacy().isPhoneNumberSharingEnabled()).orElse(null);
SignalStore.registration().setHasUploadedProfile(true);
if (!avatar.keepTheSame) {
SignalDatabase.recipients().setProfileAvatar(Recipient.self().getId(), avatarPath);
SignalDatabase.recipients().setProfileAvatar(Recipient.self().getId(), avatarPath, false);
}
AppDependencies.getJobManager().add(new RefreshOwnProfileJob());
}