Rewrite fallbackphoto system.

This commit is contained in:
Alex Hart
2024-06-12 15:59:35 -03:00
committed by Greyson Parrelli
parent d698f74d0b
commit 11557e4815
42 changed files with 676 additions and 805 deletions

View File

@@ -10,8 +10,9 @@ import androidx.core.app.TaskStackBuilder
import org.signal.core.util.PendingIntentFlags
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.avatar.fallback.FallbackAvatar
import org.thoughtcrime.securesms.avatar.fallback.FallbackAvatarDrawable
import org.thoughtcrime.securesms.contacts.TurnOffContactJoinedNotificationsActivity
import org.thoughtcrime.securesms.contacts.avatars.GeneratedContactPhoto
import org.thoughtcrime.securesms.conversation.ConversationIntents
import org.thoughtcrime.securesms.conversation.colors.AvatarColor
import org.thoughtcrime.securesms.keyvalue.SignalStore
@@ -27,7 +28,6 @@ import org.thoughtcrime.securesms.service.KeyCachingService
import org.thoughtcrime.securesms.stories.StoryViewerArgs
import org.thoughtcrime.securesms.stories.viewer.StoryViewerActivity
import org.thoughtcrime.securesms.util.Util
import java.lang.NullPointerException
/**
* Encapsulate all the notifications for a given conversation (thread) and the top
@@ -57,7 +57,7 @@ data class NotificationConversation(
return if (SignalStore.settings().messageNotificationsPrivacy.isDisplayContact) {
recipient.getContactDrawable(context)
} else {
GeneratedContactPhoto("Unknown", R.drawable.ic_profile_outline_40).asDrawable(context, AvatarColor.UNKNOWN)
FallbackAvatarDrawable(context, FallbackAvatar.forTextOrDefault("Unknown", AvatarColor.UNKNOWN)).circleCrop()
}
}

View File

@@ -13,9 +13,9 @@ import com.bumptech.glide.load.Transformation
import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.bumptech.glide.load.resource.bitmap.CircleCrop
import org.thoughtcrime.securesms.R
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.FallbackContactPhoto
import org.thoughtcrime.securesms.contacts.avatars.GeneratedContactPhoto
import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto
import org.thoughtcrime.securesms.dependencies.AppDependencies
import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri
@@ -37,7 +37,7 @@ fun Drawable?.toLargeBitmap(context: Context): Bitmap? {
fun Recipient.getContactDrawable(context: Context): Drawable? {
val contactPhoto: ContactPhoto? = if (isSelf) ProfileContactPhoto(this) else contactPhoto
val fallbackContactPhoto: FallbackContactPhoto = if (isSelf) getFallback(context) else fallbackContactPhoto
val fallbackAvatar: FallbackAvatar = if (isSelf) getFallback(context) else getFallbackAvatar()
return if (contactPhoto != null) {
try {
val transforms: MutableList<Transformation<Bitmap>> = mutableListOf()
@@ -56,12 +56,12 @@ fun Recipient.getContactDrawable(context: Context): Drawable? {
)
.get()
} catch (e: InterruptedException) {
fallbackContactPhoto.asDrawable(context, avatarColor)
FallbackAvatarDrawable(context, fallbackAvatar).circleCrop()
} catch (e: ExecutionException) {
fallbackContactPhoto.asDrawable(context, avatarColor)
FallbackAvatarDrawable(context, fallbackAvatar).circleCrop()
}
} else {
fallbackContactPhoto.asDrawable(context, avatarColor)
FallbackAvatarDrawable(context, fallbackAvatar).circleCrop()
}
}
@@ -84,8 +84,8 @@ fun Intent.makeUniqueToPreventMerging(): Intent {
return setData((Uri.parse("custom://" + System.currentTimeMillis())))
}
fun Recipient.getFallback(context: Context): FallbackContactPhoto {
return GeneratedContactPhoto(getDisplayName(context), R.drawable.ic_profile_outline_40)
fun Recipient.getFallback(context: Context): FallbackAvatar {
return FallbackAvatar.forTextOrDefault(getDisplayName(context), avatarColor)
}
fun NotificationManager.isDisplayingSummaryNotification(): Boolean {

View File

@@ -19,8 +19,9 @@ import org.signal.core.util.concurrent.SignalExecutors
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.MainActivity
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.avatar.fallback.FallbackAvatar
import org.thoughtcrime.securesms.avatar.fallback.FallbackAvatarDrawable
import org.thoughtcrime.securesms.components.emoji.EmojiStrings
import org.thoughtcrime.securesms.contacts.avatars.GeneratedContactPhoto
import org.thoughtcrime.securesms.conversation.ConversationIntents
import org.thoughtcrime.securesms.conversation.colors.AvatarColor
import org.thoughtcrime.securesms.database.SignalDatabase
@@ -390,7 +391,7 @@ object NotificationFactory {
recipient.getContactDrawable(context)
}
} else {
GeneratedContactPhoto("Unknown", R.drawable.ic_profile_outline_40).asDrawable(context, AvatarColor.UNKNOWN)
FallbackAvatarDrawable(context, FallbackAvatar.forTextOrDefault("Unknown", AvatarColor.UNKNOWN)).circleCrop()
}.toLargeBitmap(context)
val builder: NotificationBuilder = NotificationBuilder.create(context)