fix: show DM partner name in text field in DMs
Signed-off-by: Infi <infi@infi.sh>
This commit is contained in:
parent
bff633f001
commit
6d50571ab4
|
|
@ -331,7 +331,7 @@ fun ShareTargetScreen(
|
||||||
channelSearchContent,
|
channelSearchContent,
|
||||||
ignoreCase = true
|
ignoreCase = true
|
||||||
) == true
|
) == true
|
||||||
|| ChannelUtils.resolveDMName(it)
|
|| ChannelUtils.resolveName(it)
|
||||||
?.contains(
|
?.contains(
|
||||||
channelSearchContent,
|
channelSearchContent,
|
||||||
ignoreCase = true
|
ignoreCase = true
|
||||||
|
|
@ -347,7 +347,7 @@ fun ShareTargetScreen(
|
||||||
channel.channelType ?: ChannelType.TextChannel
|
channel.channelType ?: ChannelType.TextChannel
|
||||||
),
|
),
|
||||||
name = (if (channel.server != null) "${channel.name} (${RevoltAPI.serverCache[channel.server]?.name})" else channel.name)
|
name = (if (channel.server != null) "${channel.name} (${RevoltAPI.serverCache[channel.server]?.name})" else channel.name)
|
||||||
?: ChannelUtils.resolveDMName(channel)
|
?: ChannelUtils.resolveName(channel)
|
||||||
?: stringResource(R.string.unknown),
|
?: stringResource(R.string.unknown),
|
||||||
selected = selectedChannel == channel.id,
|
selected = selectedChannel == channel.id,
|
||||||
hasUnread = false,
|
hasUnread = false,
|
||||||
|
|
@ -357,7 +357,7 @@ fun ShareTargetScreen(
|
||||||
dmPartnerIcon = ChannelUtils.resolveDMPartner(
|
dmPartnerIcon = ChannelUtils.resolveDMPartner(
|
||||||
channel
|
channel
|
||||||
)?.let { u -> RevoltAPI.userCache[u] }?.avatar,
|
)?.let { u -> RevoltAPI.userCache[u] }?.avatar,
|
||||||
dmPartnerName = ChannelUtils.resolveDMName(
|
dmPartnerName = ChannelUtils.resolveName(
|
||||||
channel
|
channel
|
||||||
),
|
),
|
||||||
dmPartnerStatus = ChannelUtils.resolveDMPartner(
|
dmPartnerStatus = ChannelUtils.resolveDMPartner(
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,13 @@ sealed class CategorisedChannelList {
|
||||||
}
|
}
|
||||||
|
|
||||||
object ChannelUtils {
|
object ChannelUtils {
|
||||||
fun resolveDMName(channel: Channel): String? {
|
/**
|
||||||
|
* Resolves the name of a channel, preferring the name of the channel itself, then the name of the first recipient.
|
||||||
|
* @param channel The channel to resolve the name of.
|
||||||
|
* @return The name of the channel, or the name of the first recipient if the channel is a DM.
|
||||||
|
* @see User.resolveDefaultName
|
||||||
|
*/
|
||||||
|
fun resolveName(channel: Channel): String? {
|
||||||
return channel.name
|
return channel.name
|
||||||
?: RevoltAPI.userCache[channel.recipients?.first { u -> u != RevoltAPI.selfId }]?.let {
|
?: RevoltAPI.userCache[channel.recipients?.first { u -> u != RevoltAPI.selfId }]?.let {
|
||||||
User.resolveDefaultName(
|
User.resolveDefaultName(
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ fun ChannelHeader(
|
||||||
) {
|
) {
|
||||||
Text(
|
Text(
|
||||||
text = channel.name
|
text = channel.name
|
||||||
?: ChannelUtils.resolveDMName(channel)
|
?: ChannelUtils.resolveName(channel)
|
||||||
?: if (channel.channelType == ChannelType.SavedMessages) {
|
?: if (channel.channelType == ChannelType.SavedMessages) {
|
||||||
stringResource(R.string.channel_notes)
|
stringResource(R.string.channel_notes)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -432,7 +432,7 @@ fun ChannelScreen(
|
||||||
)
|
)
|
||||||
|
|
||||||
ChannelType.DirectMessage -> Text(
|
ChannelType.DirectMessage -> Text(
|
||||||
ChannelUtils.resolveDMName(it)
|
ChannelUtils.resolveName(it)
|
||||||
?: stringResource(R.string.unknown),
|
?: stringResource(R.string.unknown),
|
||||||
maxLines = 1,
|
maxLines = 1,
|
||||||
overflow = TextOverflow.Ellipsis
|
overflow = TextOverflow.Ellipsis
|
||||||
|
|
@ -785,7 +785,9 @@ fun ChannelScreen(
|
||||||
onSendMessage = viewModel::sendPendingMessage,
|
onSendMessage = viewModel::sendPendingMessage,
|
||||||
channelType = viewModel.channel?.channelType
|
channelType = viewModel.channel?.channelType
|
||||||
?: ChannelType.TextChannel,
|
?: ChannelType.TextChannel,
|
||||||
channelName = viewModel.channel?.name
|
channelName = viewModel.channel?.let { channel ->
|
||||||
|
ChannelUtils.resolveName(channel)
|
||||||
|
}
|
||||||
?: stringResource(R.string.unknown),
|
?: stringResource(R.string.unknown),
|
||||||
onFocusChange = { isFocused ->
|
onFocusChange = { isFocused ->
|
||||||
if (isFocused && viewModel.activePane != ChannelScreenActivePane.None) {
|
if (isFocused && viewModel.activePane != ChannelScreenActivePane.None) {
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,7 @@ fun ChannelInfoSheet(channelId: String, onHideSheet: suspend () -> Unit) {
|
||||||
) {
|
) {
|
||||||
ChannelSheetHeader(
|
ChannelSheetHeader(
|
||||||
channelName = channel.name
|
channelName = channel.name
|
||||||
?: ChannelUtils.resolveDMName(channel)
|
?: ChannelUtils.resolveName(channel)
|
||||||
?: stringResource(id = R.string.unknown),
|
?: stringResource(id = R.string.unknown),
|
||||||
channelIcon = channel.icon,
|
channelIcon = channel.icon,
|
||||||
channelType = channel.channelType ?: ChannelType.TextChannel,
|
channelType = channel.channelType ?: ChannelType.TextChannel,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue