From 15f11b7ea4f12fc6ccbe34aee9cb6ced5c28ea49 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Thu, 7 Jun 2018 00:52:18 +0200 Subject: [PATCH] Introduces rounded square avatars, properly colors avatars --- .../service/QuasselNotificationBackend.kt | 21 +++- .../ui/chat/buffers/BufferListAdapter.kt | 42 ++----- .../chat/buffers/BufferViewConfigFragment.kt | 61 ++++++--- .../ui/chat/input/AutoCompleteAdapter.kt | 25 +--- .../ui/chat/input/AutoCompleteHelper.kt | 118 +++++++++++------- .../chat/messages/QuasselMessageRenderer.kt | 14 ++- .../ui/chat/nicks/NickListFragment.kt | 10 +- .../quasseldroid/util/helper/GlideHelper.kt | 10 +- app/src/main/res/values/dimens.xml | 2 + .../viewmodel/data/AutoCompleteItem.kt | 3 +- 10 files changed, 178 insertions(+), 128 deletions(-) diff --git a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt index dd004e0e3..1c764cefa 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt @@ -64,6 +64,9 @@ class QuasselNotificationBackend @Inject constructor( private var selfColor: Int private var senderColors: IntArray + @ColorInt + private var colorBackground: Int + init { notificationSettings = Settings.notification(context) appearanceSettings = Settings.appearance(context) @@ -81,6 +84,9 @@ class QuasselNotificationBackend @Inject constructor( } } selfColor = context.getColorCompat(R.color.material_dark_background) + colorBackground = context.theme.styledAttributes(R.attr.colorBackground) { + getColor(0, 0) + } } override fun init(session: Session) { @@ -157,6 +163,9 @@ class QuasselNotificationBackend @Inject constructor( } } selfColor = context.getColorCompat(R.color.material_dark_background) + colorBackground = context.theme.styledAttributes(R.attr.colorBackground) { + getColor(0, 0) + } } @Synchronized @@ -258,12 +267,13 @@ class QuasselNotificationBackend @Inject constructor( } val size = context.resources.getDimensionPixelSize(R.dimen.notification_avatar_width) + val radius = context.resources.getDimensionPixelSize(R.dimen.avatar_radius) val avatarList = AvatarHelper.avatar(messageSettings, it) val avatarResult = try { GlideApp.with(context).loadWithFallbacks(avatarList) ?.letIf(!messageSettings.squareAvatars, GlideRequest<Drawable>::optionalCircleCrop) - ?.placeholder(TextDrawable.builder()?.let { - if (messageSettings.squareAvatars) it.buildRect(initial, senderColor) + ?.placeholder(TextDrawable.builder().beginConfig().textColor(colorBackground).endConfig().let { + if (messageSettings.squareAvatars) it.buildRoundRect(initial, senderColor, radius) else it.buildRound(initial, senderColor) }) ?.submit(size, size) @@ -271,8 +281,11 @@ class QuasselNotificationBackend @Inject constructor( } catch (_: Throwable) { null } - val avatar = avatarResult ?: TextDrawable.builder().let { - if (messageSettings.squareAvatars) it.buildRect(initial, senderColor) + val avatar = avatarResult + ?: TextDrawable.builder().beginConfig().textColor(colorBackground).endConfig().let { + if (messageSettings.squareAvatars) it.buildRoundRect(initial, + senderColor, + radius) else it.buildRound(initial, senderColor) } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferListAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferListAdapter.kt index 4a329ce63..ebcf54b35 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferListAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferListAdapter.kt @@ -331,9 +331,6 @@ class BufferListAdapter( var bufferId: BufferId? = null - private val online: Drawable? - private val offline: Drawable? - private var none: Int = 0 private var activity: Int = 0 private var message: Int = 0 @@ -357,21 +354,14 @@ class BufferListAdapter( } } - online = itemView.context.getVectorDrawableCompat(R.drawable.ic_status_channel)?.mutate() - offline = itemView.context.getVectorDrawableCompat(R.drawable.ic_status_channel_offline)?.mutate() - itemView.context.theme.styledAttributes( - R.attr.colorAccent, R.attr.colorAway, R.attr.colorTextPrimary, R.attr.colorTintActivity, R.attr.colorTintMessage, R.attr.colorTintHighlight ) { - online?.tint(getColor(0, 0)) - offline?.tint(getColor(1, 0)) - - none = getColor(2, 0) - activity = getColor(3, 0) - message = getColor(4, 0) - highlight = getColor(5, 0) + none = getColor(0, 0) + activity = getColor(1, 0) + message = getColor(2, 0) + highlight = getColor(3, 0) } } @@ -394,12 +384,7 @@ class BufferListAdapter( description.visibleIf(props.description.isNotBlank()) - status.setImageDrawable( - when (props.bufferStatus) { - BufferStatus.ONLINE -> online - else -> offline - } - ) + status.setImageDrawable(props.fallbackDrawable) } } @@ -419,8 +404,6 @@ class BufferListAdapter( var bufferId: BufferId? = null - private val offline: Drawable? - private var none: Int = 0 private var activity: Int = 0 private var message: Int = 0 @@ -444,19 +427,14 @@ class BufferListAdapter( } } - offline = itemView.context.getVectorDrawableCompat(R.drawable.ic_status_offline)?.mutate() - itemView.context.theme.styledAttributes( - R.attr.colorAway, R.attr.colorTextPrimary, R.attr.colorTintActivity, R.attr.colorTintMessage, R.attr.colorTintHighlight ) { - offline?.tint(getColor(0, 0)) - - none = getColor(1, 0) - activity = getColor(2, 0) - message = getColor(3, 0) - highlight = getColor(4, 0) + none = getColor(0, 0) + activity = getColor(1, 0) + message = getColor(2, 0) + highlight = getColor(3, 0) } } @@ -480,7 +458,7 @@ class BufferListAdapter( description.visibleIf(props.description.isNotBlank()) status.loadAvatars(props.avatarUrls, - props.fallbackDrawable ?: offline, + props.fallbackDrawable, crop = !messageSettings.squareAvatars) } } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigFragment.kt index 75fc022f1..90eacded4 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigFragment.kt @@ -56,6 +56,7 @@ import de.kuschku.quasseldroid.viewmodel.EditorViewModel.Companion.IGNORED_CHARS import de.kuschku.quasseldroid.viewmodel.data.BufferHiddenState import de.kuschku.quasseldroid.viewmodel.data.BufferListItem import de.kuschku.quasseldroid.viewmodel.data.BufferState +import de.kuschku.quasseldroid.viewmodel.data.BufferStatus import javax.inject.Inject class BufferViewConfigFragment : ServiceBoundFragment() { @@ -272,6 +273,20 @@ class BufferViewConfigFragment : ServiceBoundFragment() { getColor(0, 0) } + val colorAccent = requireContext().theme.styledAttributes(R.attr.colorAccent) { + getColor(0, 0) + } + + val colorAway = requireContext().theme.styledAttributes(R.attr.colorAway) { + getColor(0, 0) + } + + val colorBackground = requireContext().theme.styledAttributes(R.attr.colorBackground) { + getColor(0, 0) + } + + val radius = requireContext().resources.getDimensionPixelSize(R.dimen.avatar_radius) + combineLatest(viewModel.bufferList, viewModel.expandedNetworks, viewModel.selectedBuffer) .toLiveData().zip(database.filtered().listen(accountId)) .observe(this, Observer { it -> @@ -304,23 +319,39 @@ class BufferViewConfigFragment : ServiceBoundFragment() { else -> Buffer_Activity.NoActivity } ), - fallbackDrawable = props.ircUser?.let { - val nickName = it.nick() - val senderColorIndex = SenderColorUtil.senderColor(nickName) - val rawInitial = nickName.trimStart(*IGNORED_CHARS).firstOrNull() - ?: nickName.firstOrNull() - val initial = rawInitial?.toUpperCase().toString() - val senderColor = when (messageSettings.colorizeNicknames) { - MessageSettings.ColorizeNicknamesMode.ALL -> senderColors[senderColorIndex] - MessageSettings.ColorizeNicknamesMode.ALL_BUT_MINE -> - if (props.ircUser?.network()?.isMyNick(nickName) == true) selfColor - else senderColors[senderColorIndex] - MessageSettings.ColorizeNicknamesMode.NONE -> selfColor + fallbackDrawable = if (props.info.type.hasFlag(Buffer_Type.QueryBuffer)) { + props.ircUser?.let { + val nickName = it.nick() + val senderColorIndex = SenderColorUtil.senderColor(nickName) + val rawInitial = nickName.trimStart(*IGNORED_CHARS).firstOrNull() + ?: nickName.firstOrNull() + val initial = rawInitial?.toUpperCase().toString() + val senderColor = when (messageSettings.colorizeNicknames) { + MessageSettings.ColorizeNicknamesMode.ALL -> senderColors[senderColorIndex] + MessageSettings.ColorizeNicknamesMode.ALL_BUT_MINE -> + if (props.ircUser?.network()?.isMyNick(nickName) == true) selfColor + else senderColors[senderColorIndex] + MessageSettings.ColorizeNicknamesMode.NONE -> selfColor + } + + TextDrawable.builder().beginConfig().textColor(colorBackground).endConfig().let { + if (messageSettings.squareAvatars) it.buildRoundRect(initial, + senderColor, + radius) + else it.buildRound(initial, senderColor) + } + } + ?: TextDrawable.builder().beginConfig().textColor(colorBackground).endConfig().let { + if (messageSettings.squareAvatars) it.buildRoundRect("", colorAway, radius) + else it.buildRound("", colorAway) } + } else { + val color = if (props.bufferStatus == BufferStatus.ONLINE) colorAccent + else colorAway - TextDrawable.builder().let { - if (messageSettings.squareAvatars) it.buildRect(initial, senderColor) - else it.buildRound(initial, senderColor) + TextDrawable.builder().beginConfig().textColor(colorBackground).endConfig().let { + if (messageSettings.squareAvatars) it.buildRoundRect("#", color, radius) + else it.buildRound("#", color) } }, avatarUrls = props.ircUser?.let { diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/AutoCompleteAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/AutoCompleteAdapter.kt index cf5466771..b13ef6398 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/AutoCompleteAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/AutoCompleteAdapter.kt @@ -19,7 +19,6 @@ package de.kuschku.quasseldroid.ui.chat.input -import android.graphics.drawable.Drawable import android.support.v7.recyclerview.extensions.ListAdapter import android.support.v7.util.DiffUtil import android.support.v7.widget.RecyclerView @@ -33,10 +32,10 @@ import butterknife.ButterKnife import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.settings.MessageSettings import de.kuschku.quasseldroid.ui.chat.nicks.NickListAdapter.Companion.VIEWTYPE_AWAY -import de.kuschku.quasseldroid.util.helper.* +import de.kuschku.quasseldroid.util.helper.loadAvatars +import de.kuschku.quasseldroid.util.helper.visibleIf import de.kuschku.quasseldroid.util.ui.SpanFormatter import de.kuschku.quasseldroid.viewmodel.data.AutoCompleteItem -import de.kuschku.quasseldroid.viewmodel.data.BufferStatus import javax.inject.Inject class AutoCompleteAdapter @Inject constructor( @@ -161,9 +160,6 @@ class AutoCompleteAdapter @Inject constructor( var value: AutoCompleteItem? = null - private val online: Drawable? - private val offline: Drawable? - init { ButterKnife.bind(this, itemView) itemView.setOnClickListener { @@ -171,16 +167,6 @@ class AutoCompleteAdapter @Inject constructor( if (value != null) clickListener?.invoke(value.name, value.suffix) } - - online = itemView.context.getVectorDrawableCompat(R.drawable.ic_status_channel)?.mutate() - offline = itemView.context.getVectorDrawableCompat(R.drawable.ic_status_channel_offline)?.mutate() - - itemView.context.theme.styledAttributes( - R.attr.colorAccent, R.attr.colorAway - ) { - online?.tint(getColor(0, 0)) - offline?.tint(getColor(1, 0)) - } } fun bindImpl(data: AutoCompleteItem.ChannelItem, messageSettings: MessageSettings) { @@ -191,12 +177,7 @@ class AutoCompleteAdapter @Inject constructor( description.visibleIf(data.description.isNotBlank()) - status.setImageDrawable( - when (data.bufferStatus) { - BufferStatus.ONLINE -> online - else -> offline - } - ) + status.setImageDrawable(data.icon) } } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/AutoCompleteHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/AutoCompleteHelper.kt index 1f6419617..e27d148bb 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/AutoCompleteHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/AutoCompleteHelper.kt @@ -73,6 +73,20 @@ class AutoCompleteHelper( getColor(0, 0) } + private val colorAccent = activity.theme.styledAttributes(R.attr.colorAccent) { + getColor(0, 0) + } + + private val colorAway = activity.theme.styledAttributes(R.attr.colorAway) { + getColor(0, 0) + } + + private val colorBackground = activity.theme.styledAttributes(R.attr.colorBackground) { + getColor(0, 0) + } + + private val radius = activity.resources.getDimensionPixelSize(R.dimen.avatar_radius) + init { viewModel.autoCompleteData.toLiveData().observe(activity, Observer { val query = it?.first ?: "" @@ -87,56 +101,68 @@ class AutoCompleteHelper( it is AutoCompleteItem.UserItem && autoCompleteSettings.nicks || it is AutoCompleteItem.ChannelItem && autoCompleteSettings.buffers }.map { - if (it is AutoCompleteItem.UserItem) { - val nickName = it.nick - val senderColorIndex = SenderColorUtil.senderColor(nickName) - val rawInitial = nickName.trimStart(*IGNORED_CHARS).firstOrNull() - ?: nickName.firstOrNull() - val initial = rawInitial?.toUpperCase().toString() - val senderColor = when (messageSettings.colorizeNicknames) { - MessageSettings.ColorizeNicknamesMode.ALL -> senderColors[senderColorIndex] - MessageSettings.ColorizeNicknamesMode.ALL_BUT_MINE -> - if (it.self) selfColor - else senderColors[senderColorIndex] - MessageSettings.ColorizeNicknamesMode.NONE -> selfColor - } + when (it) { + is AutoCompleteItem.UserItem -> { + val nickName = it.nick + val senderColorIndex = SenderColorUtil.senderColor(nickName) + val rawInitial = nickName.trimStart(*IGNORED_CHARS).firstOrNull() + ?: nickName.firstOrNull() + val initial = rawInitial?.toUpperCase().toString() + val senderColor = when (messageSettings.colorizeNicknames) { + MessageSettings.ColorizeNicknamesMode.ALL -> senderColors[senderColorIndex] + MessageSettings.ColorizeNicknamesMode.ALL_BUT_MINE -> + if (it.self) selfColor + else senderColors[senderColorIndex] + MessageSettings.ColorizeNicknamesMode.NONE -> selfColor + } - fun formatNick(nick: CharSequence): CharSequence { - val spannableString = SpannableString(nick) - spannableString.setSpan( - ForegroundColorSpan(senderColor), - 0, - nick.length, - SpannableString.SPAN_INCLUSIVE_EXCLUSIVE - ) - spannableString.setSpan( - StyleSpan(Typeface.BOLD), - 0, - nick.length, - SpannableString.SPAN_INCLUSIVE_EXCLUSIVE + fun formatNick(nick: CharSequence): CharSequence { + val spannableString = SpannableString(nick) + spannableString.setSpan( + ForegroundColorSpan(senderColor), + 0, + nick.length, + SpannableString.SPAN_INCLUSIVE_EXCLUSIVE + ) + spannableString.setSpan( + StyleSpan(Typeface.BOLD), + 0, + nick.length, + SpannableString.SPAN_INCLUSIVE_EXCLUSIVE + ) + return spannableString + } + + it.copy( + displayNick = formatNick(it.nick), + fallbackDrawable = TextDrawable.builder().beginConfig().textColor(colorBackground).endConfig().let { + if (messageSettings.squareAvatars) it.buildRoundRect(initial, senderColor, radius) + else it.buildRound(initial, senderColor) + }, + modes = when (messageSettings.showPrefix) { + MessageSettings.ShowPrefixMode.ALL -> + it.modes + else -> + it.modes.substring(0, Math.min(it.modes.length, 1)) + }, + realname = ircFormatDeserializer.formatString( + it.realname.toString(), messageSettings.colorizeMirc + ), + avatarUrls = AvatarHelper.avatar(messageSettings, it) ) - return spannableString } + is AutoCompleteItem.ChannelItem -> { + val color = if (it.bufferStatus == BufferStatus.ONLINE) colorAccent + else colorAway - it.copy( - displayNick = formatNick(it.nick), - fallbackDrawable = TextDrawable.builder().let { - if (messageSettings.squareAvatars) it.buildRect(initial, senderColor) - else it.buildRound(initial, senderColor) - }, - modes = when (messageSettings.showPrefix) { - MessageSettings.ShowPrefixMode.ALL -> - it.modes - else -> - it.modes.substring(0, Math.min(it.modes.length, 1)) - }, - realname = ircFormatDeserializer.formatString( - it.realname.toString(), messageSettings.colorizeMirc - ), - avatarUrls = AvatarHelper.avatar(messageSettings, it) - ) - } else { - it + it.copy( + icon = TextDrawable.builder().beginConfig().textColor(colorBackground).endConfig().let { + if (messageSettings.squareAvatars) it.buildRoundRect("#", color, radius) + else it.buildRound("#", color) + } + ) + } + else -> it } } dataListeners.forEach { diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/QuasselMessageRenderer.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/QuasselMessageRenderer.kt index 8a8ace583..d3c49ab17 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/QuasselMessageRenderer.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/QuasselMessageRenderer.kt @@ -98,6 +98,12 @@ class QuasselMessageRenderer @Inject constructor( getColor(0, 0) } + private val colorBackground = context.theme.styledAttributes(R.attr.colorBackground) { + getColor(0, 0) + } + + private val radius = context.resources.getDimensionPixelSize(R.dimen.avatar_radius) + private val zoneId = ZoneId.systemDefault() override fun layout(type: Message_Type?, hasHighlight: Boolean, @@ -255,8 +261,8 @@ class QuasselMessageRenderer @Inject constructor( }, realName = realName, avatarUrls = AvatarHelper.avatar(messageSettings, message.content, avatarSize), - fallbackDrawable = TextDrawable.builder().let { - if (messageSettings.squareAvatars) it.buildRect(initial, senderColor) + fallbackDrawable = TextDrawable.builder().beginConfig().textColor(colorBackground).endConfig().let { + if (messageSettings.squareAvatars) it.buildRoundRect(initial, senderColor, radius) else it.buildRound(initial, senderColor) }, hasDayChange = message.hasDayChange, @@ -290,8 +296,8 @@ class QuasselMessageRenderer @Inject constructor( contentFormatter.formatContent(message.content.content, monochromeForeground) ), avatarUrls = AvatarHelper.avatar(messageSettings, message.content, avatarSize), - fallbackDrawable = TextDrawable.builder().let { - if (messageSettings.squareAvatars) it.buildRect(initial, senderColor) + fallbackDrawable = TextDrawable.builder().beginConfig().textColor(colorBackground).endConfig().let { + if (messageSettings.squareAvatars) it.buildRoundRect(initial, senderColor, radius) else it.buildRound(initial, senderColor) }, hasDayChange = message.hasDayChange, diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/nicks/NickListFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/nicks/NickListFragment.kt index 80f6d2ce1..ca74a5ce5 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/nicks/NickListFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/nicks/NickListFragment.kt @@ -98,6 +98,12 @@ class NickListFragment : ServiceBoundFragment() { getColor(0, 0) } + val colorBackground = requireContext().theme.styledAttributes(R.attr.colorBackground) { + getColor(0, 0) + } + + val radius = requireContext().resources.getDimensionPixelSize(R.dimen.avatar_radius) + val avatarSize = resources.getDimensionPixelSize(R.dimen.avatar_size) viewModel.nickData.toLiveData().observe(this, Observer { runInBackground { @@ -132,8 +138,8 @@ class NickListFragment : ServiceBoundFragment() { } it.copy( displayNick = formatNick(it.nick), - fallbackDrawable = TextDrawable.builder().let { - if (messageSettings.squareAvatars) it.buildRect(initial, senderColor) + fallbackDrawable = TextDrawable.builder().beginConfig().textColor(colorBackground).endConfig().let { + if (messageSettings.squareAvatars) it.buildRoundRect(initial, senderColor, radius) else it.buildRound(initial, senderColor) }, initial = initial, diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/helper/GlideHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/helper/GlideHelper.kt index 11f013106..c5b5afe3f 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/helper/GlideHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/helper/GlideHelper.kt @@ -22,9 +22,11 @@ package de.kuschku.quasseldroid.util.helper import android.graphics.drawable.Drawable import android.widget.ImageView import com.bumptech.glide.RequestBuilder +import com.bumptech.glide.load.resource.bitmap.RoundedCorners import de.kuschku.quasseldroid.GlideApp import de.kuschku.quasseldroid.GlideRequest import de.kuschku.quasseldroid.GlideRequests +import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.viewmodel.data.Avatar fun GlideRequests.loadWithFallbacks(urls: List<Avatar>): GlideRequest<Drawable>? { @@ -46,8 +48,12 @@ fun ImageView.loadAvatars(urls: List<Avatar>, fallback: Drawable? = null, crop: if (urls.isNotEmpty()) { GlideApp.with(this) .loadWithFallbacks(urls) - ?.letIf(crop) { - it.optionalCircleCrop() + ?.let { + if (crop) { + it.optionalCircleCrop() + } else { + it.transform(RoundedCorners(this.context.resources.getDimensionPixelSize(R.dimen.avatar_radius))) + } } ?.placeholder(fallback) ?.into(this) diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 2b47dc949..e861f1d65 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -39,6 +39,8 @@ <dimen name="avatar_size_action">20sp</dimen> <dimen name="avatar_size_buffer">32dp</dimen> + <dimen name="avatar_radius">2dp</dimen> + <dimen name="notification_avatar_width">64dp</dimen> <dimen name="notification_avatar_height">64dp</dimen> </resources> diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/AutoCompleteItem.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/AutoCompleteItem.kt index c9e4d2f97..0c39ad9c7 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/AutoCompleteItem.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/AutoCompleteItem.kt @@ -53,6 +53,7 @@ sealed class AutoCompleteItem(open val name: String, val suffix: String, private val info: BufferInfo, val network: INetwork.NetworkInfo, val bufferStatus: BufferStatus, - val description: CharSequence + val description: CharSequence, + val icon: Drawable? = null ) : AutoCompleteItem(info.bufferName ?: "", " ", 2) } -- GitLab