Add ContentProvider for user avatars.

This commit is contained in:
Alex Hart
2023-06-28 13:57:30 -03:00
committed by Nicholas
parent 04a5e56da7
commit a17033dff4
8 changed files with 289 additions and 66 deletions

View File

@@ -24,7 +24,9 @@ import org.thoughtcrime.securesms.contacts.avatars.GeneratedContactPhoto;
import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto;
import org.thoughtcrime.securesms.mms.GlideApp;
import org.thoughtcrime.securesms.mms.GlideRequest;
import org.thoughtcrime.securesms.providers.AvatarProvider;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientId;
import java.util.Optional;
import java.util.concurrent.ExecutionException;
@@ -99,12 +101,8 @@ public final class AvatarUtil {
}
@WorkerThread
public static IconCompat getIconForNotification(@NonNull Context context, @NonNull Recipient recipient) {
try {
return IconCompat.createWithBitmap(requestCircle(GlideApp.with(context).asBitmap(), context, recipient, UNDEFINED_SIZE).submit().get());
} catch (ExecutionException | InterruptedException e) {
return null;
}
public static IconCompat getIconWithUriForNotification(@NonNull Context context, @NonNull RecipientId recipientId) {
return IconCompat.createWithContentUri(AvatarProvider.getContentUri(context, recipientId));
}
@WorkerThread
@@ -128,8 +126,13 @@ public final class AvatarUtil {
@WorkerThread
public static Bitmap getBitmapForNotification(@NonNull Context context, @NonNull Recipient recipient) {
return getBitmapForNotification(context, recipient, UNDEFINED_SIZE);
}
@WorkerThread
public static Bitmap getBitmapForNotification(@NonNull Context context, @NonNull Recipient recipient, int size) {
try {
return requestCircle(GlideApp.with(context).asBitmap(), context, recipient, UNDEFINED_SIZE).submit().get();
return requestCircle(GlideApp.with(context).asBitmap(), context, recipient, size).submit().get();
} catch (ExecutionException | InterruptedException e) {
return null;
}

View File

@@ -286,12 +286,11 @@ public final class ConversationUtil {
/**
* @return A Compat Library Person object representing the given Recipient
*/
@WorkerThread
public static @NonNull Person buildPerson(@NonNull Context context, @NonNull Recipient recipient) {
return new Person.Builder()
.setKey(getShortcutId(recipient.getId()))
.setName(recipient.getDisplayName(context))
.setIcon(AvatarUtil.getIconForNotification(context, recipient))
.setIcon(AvatarUtil.getIconWithUriForNotification(context, recipient.getId()))
.setUri(recipient.isSystemContact() ? recipient.getContactUri().toString() : null)
.build();
}