Improve code.
This commit is contained in:
parent
df4853e1f5
commit
e6934aacfa
2 changed files with 4 additions and 25 deletions
|
|
@ -10,10 +10,8 @@ package io.element.android.libraries.push.impl.notifications
|
||||||
import dev.zacsweers.metro.AppScope
|
import dev.zacsweers.metro.AppScope
|
||||||
import dev.zacsweers.metro.ContributesBinding
|
import dev.zacsweers.metro.ContributesBinding
|
||||||
import dev.zacsweers.metro.SingleIn
|
import dev.zacsweers.metro.SingleIn
|
||||||
import io.element.android.libraries.core.data.tryOrNull
|
|
||||||
import io.element.android.libraries.core.log.logger.LoggerTag
|
import io.element.android.libraries.core.log.logger.LoggerTag
|
||||||
import io.element.android.libraries.di.annotations.AppCoroutineScope
|
import io.element.android.libraries.di.annotations.AppCoroutineScope
|
||||||
import io.element.android.libraries.matrix.api.MatrixClient
|
|
||||||
import io.element.android.libraries.matrix.api.MatrixClientProvider
|
import io.element.android.libraries.matrix.api.MatrixClientProvider
|
||||||
import io.element.android.libraries.matrix.api.core.EventId
|
import io.element.android.libraries.matrix.api.core.EventId
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
|
|
@ -31,7 +29,6 @@ import io.element.android.services.appnavstate.api.NavigationState
|
||||||
import io.element.android.services.appnavstate.api.currentSessionId
|
import io.element.android.services.appnavstate.api.currentSessionId
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import timber.log.Timber
|
|
||||||
|
|
||||||
private val loggerTag = LoggerTag("DefaultNotificationDrawerManager", LoggerTag.NotificationLoggerTag)
|
private val loggerTag = LoggerTag("DefaultNotificationDrawerManager", LoggerTag.NotificationLoggerTag)
|
||||||
|
|
||||||
|
|
@ -190,29 +187,9 @@ class DefaultNotificationDrawerManager(
|
||||||
// We have an avatar and a display name, use it
|
// We have an avatar and a display name, use it
|
||||||
userFromCache
|
userFromCache
|
||||||
} else {
|
} else {
|
||||||
client.getSafeUserProfile()
|
client.getUserProfile().getOrNull() ?: MatrixUser(sessionId)
|
||||||
}
|
}
|
||||||
|
|
||||||
notificationRenderer.render(currentUser, useCompleteNotificationFormat, notifiableEvents, imageLoader)
|
notificationRenderer.render(currentUser, useCompleteNotificationFormat, notifiableEvents, imageLoader)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun MatrixClient.getSafeUserProfile(): MatrixUser {
|
|
||||||
return tryOrNull(
|
|
||||||
onException = { Timber.tag(loggerTag.value).e(it, "Unable to retrieve info for user ${sessionId.value}") },
|
|
||||||
operation = {
|
|
||||||
val profile = getUserProfile().getOrNull()
|
|
||||||
// displayName cannot be empty else NotificationCompat.MessagingStyle() will crash
|
|
||||||
if (profile?.displayName.isNullOrEmpty()) {
|
|
||||||
profile?.copy(displayName = sessionId.value)
|
|
||||||
} else {
|
|
||||||
profile
|
|
||||||
}
|
|
||||||
}
|
|
||||||
) ?: MatrixUser(
|
|
||||||
userId = sessionId,
|
|
||||||
displayName = sessionId.value,
|
|
||||||
avatarUrl = null
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import io.element.android.libraries.matrix.api.core.ThreadId
|
import io.element.android.libraries.matrix.api.core.ThreadId
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.EventType
|
import io.element.android.libraries.matrix.api.timeline.item.event.EventType
|
||||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||||
|
import io.element.android.libraries.matrix.ui.model.getBestName
|
||||||
import io.element.android.libraries.push.api.notifications.NotificationBitmapLoader
|
import io.element.android.libraries.push.api.notifications.NotificationBitmapLoader
|
||||||
import io.element.android.libraries.push.impl.R
|
import io.element.android.libraries.push.impl.R
|
||||||
import io.element.android.libraries.push.impl.notifications.RoomEventGroupInfo
|
import io.element.android.libraries.push.impl.notifications.RoomEventGroupInfo
|
||||||
|
|
@ -446,7 +447,8 @@ class DefaultNotificationCreator(
|
||||||
): MessagingStyle {
|
): MessagingStyle {
|
||||||
return MessagingStyle(
|
return MessagingStyle(
|
||||||
Person.Builder()
|
Person.Builder()
|
||||||
.setName(user.displayName?.annotateForDebug(50))
|
// Note: name cannot be empty else NotificationCompat.MessagingStyle() will crash
|
||||||
|
.setName(user.getBestName().annotateForDebug(50))
|
||||||
.setIcon(bitmapLoader.getUserIcon(user.avatarUrl, imageLoader))
|
.setIcon(bitmapLoader.getUserIcon(user.avatarUrl, imageLoader))
|
||||||
.setKey(user.userId.value)
|
.setKey(user.userId.value)
|
||||||
.build()
|
.build()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue