From 5b355d04687bcb0aecadbc182243771d492f30d0 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Thu, 7 Jun 2018 01:56:38 +0200 Subject: [PATCH] Improve fallback readability --- .../service/QuasselNotificationBackend.kt | 23 +++++++------ .../quasseldroid/ui/chat/ChatActivity.kt | 3 ++ .../chat/buffers/BufferViewConfigFragment.kt | 24 +++++++------ .../ui/chat/input/AutoCompleteHelper.kt | 11 +++--- .../chat/messages/QuasselMessageRenderer.kt | 34 ++++++++++--------- .../ui/chat/nicks/NickListFragment.kt | 10 +++--- .../libquassel/quassel/syncables/IrcUser.kt | 1 + 7 files changed, 59 insertions(+), 47 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 1c764cefa..7c1a93138 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt @@ -20,6 +20,7 @@ package de.kuschku.quasseldroid.service import android.content.Context +import android.graphics.Typeface import android.graphics.drawable.Drawable import android.support.annotation.ColorInt import android.text.SpannableStringBuilder @@ -272,22 +273,22 @@ class QuasselNotificationBackend @Inject constructor( val avatarResult = try { GlideApp.with(context).loadWithFallbacks(avatarList) ?.letIf(!messageSettings.squareAvatars, GlideRequest<Drawable>::optionalCircleCrop) - ?.placeholder(TextDrawable.builder().beginConfig().textColor(colorBackground).endConfig().let { - if (messageSettings.squareAvatars) it.buildRoundRect(initial, senderColor, radius) - else it.buildRound(initial, senderColor) - }) + ?.placeholder(TextDrawable.builder().beginConfig() + .textColor((colorBackground and 0xFFFFFF) or (0x8A shl 24)).useFont( + Typeface.DEFAULT_BOLD).endConfig().let { + if (messageSettings.squareAvatars) it.buildRoundRect(initial, senderColor, radius) + else it.buildRound(initial, senderColor) + }) ?.submit(size, size) ?.get() } catch (_: Throwable) { null } - val avatar = avatarResult - ?: TextDrawable.builder().beginConfig().textColor(colorBackground).endConfig().let { - if (messageSettings.squareAvatars) it.buildRoundRect(initial, - senderColor, - radius) - else it.buildRound(initial, senderColor) - } + val avatar = avatarResult ?: TextDrawable.builder().beginConfig() + .textColor((colorBackground and 0xFFFFFF) or (0x8A shl 24)).useFont(Typeface.DEFAULT_BOLD).endConfig().let { + if (messageSettings.squareAvatars) it.buildRoundRect(initial, senderColor, radius) + else it.buildRound(initial, senderColor) + } NotificationMessage( messageId = it.messageId, diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt index bd19969fc..bf52cee62 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt @@ -740,6 +740,9 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc if (!startedSelection) { startActivityForResult(AccountSelectionActivity.intent(this), REQUEST_SELECT_ACCOUNT) startedSelection = true + drawerLayout.closeDrawers() + connectedAccount = -1L + restoredDrawerState = false viewModel.resetAccount() } } 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 90eacded4..dc7649ad2 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 @@ -20,6 +20,7 @@ package de.kuschku.quasseldroid.ui.chat.buffers import android.arch.lifecycle.Observer +import android.graphics.Typeface import android.os.Bundle import android.os.Parcelable import android.support.v7.widget.* @@ -334,22 +335,23 @@ class BufferViewConfigFragment : ServiceBoundFragment() { 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) + TextDrawable.builder().beginConfig() + .textColor((colorBackground and 0xFFFFFF) or (0x8A shl 24)).useFont(Typeface.DEFAULT_BOLD).endConfig().let { + if (messageSettings.squareAvatars) + it.buildRoundRect(initial, senderColor, radius) + else it.buildRound(initial, senderColor) + } } + ?: TextDrawable.builder().beginConfig() + .textColor((colorBackground and 0xFFFFFF) or (0x8A shl 24)).useFont(Typeface.DEFAULT_BOLD).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().beginConfig().textColor(colorBackground).endConfig().let { + TextDrawable.builder().beginConfig().useFont(Typeface.DEFAULT_BOLD).endConfig().let { if (messageSettings.squareAvatars) it.buildRoundRect("#", color, radius) else it.buildRound("#", color) } 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 e27d148bb..9f6cd378e 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 @@ -135,10 +135,11 @@ class AutoCompleteHelper( 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) - }, + fallbackDrawable = TextDrawable.builder().beginConfig() + .textColor((colorBackground and 0xFFFFFF) or (0x8A shl 24)).useFont(Typeface.DEFAULT_BOLD).endConfig().let { + if (messageSettings.squareAvatars) it.buildRoundRect(initial, senderColor, radius) + else it.buildRound(initial, senderColor) + }, modes = when (messageSettings.showPrefix) { MessageSettings.ShowPrefixMode.ALL -> it.modes @@ -156,7 +157,7 @@ class AutoCompleteHelper( else colorAway it.copy( - icon = TextDrawable.builder().beginConfig().textColor(colorBackground).endConfig().let { + icon = TextDrawable.builder().beginConfig().useFont(Typeface.DEFAULT_BOLD).endConfig().let { if (messageSettings.squareAvatars) it.buildRoundRect("#", color, radius) else it.buildRound("#", color) } 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 d3c49ab17..7f1edb839 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 @@ -222,7 +222,7 @@ class QuasselMessageRenderer @Inject constructor( val highlight__ = message.content.flag.hasFlag(Message_Flag.Highlight) val monochromeForeground = highlight__ && monochromeHighlights return when (message.content.type.enabledValues().firstOrNull()) { - Message_Type.Plain -> { + Message_Type.Plain -> { val realName = ircFormatDeserializer.formatString(message.content.realName, !monochromeForeground) val nick = SpannableStringBuilder().apply { @@ -261,17 +261,18 @@ class QuasselMessageRenderer @Inject constructor( }, realName = realName, avatarUrls = AvatarHelper.avatar(messageSettings, message.content, avatarSize), - fallbackDrawable = TextDrawable.builder().beginConfig().textColor(colorBackground).endConfig().let { - if (messageSettings.squareAvatars) it.buildRoundRect(initial, senderColor, radius) - else it.buildRound(initial, senderColor) - }, + fallbackDrawable = TextDrawable.builder().beginConfig() + .textColor((colorBackground and 0xFFFFFF) or (0x8A shl 24)).useFont(Typeface.DEFAULT_BOLD).endConfig().let { + if (messageSettings.squareAvatars) it.buildRoundRect(initial, senderColor, radius) + else it.buildRound(initial, senderColor) + }, hasDayChange = message.hasDayChange, isMarkerLine = message.isMarkerLine, isExpanded = message.isExpanded, isSelected = message.isSelected ) } - Message_Type.Action -> { + Message_Type.Action -> { val nickName = HostmaskHelper.nick(message.content.sender) val senderColorIndex = SenderColorUtil.senderColor(nickName) val rawInitial = nickName.trimStart('-', '_', '[', ']', '{', '}', '|', '`', '^', '.', '\\') @@ -296,17 +297,18 @@ class QuasselMessageRenderer @Inject constructor( contentFormatter.formatContent(message.content.content, monochromeForeground) ), avatarUrls = AvatarHelper.avatar(messageSettings, message.content, avatarSize), - fallbackDrawable = TextDrawable.builder().beginConfig().textColor(colorBackground).endConfig().let { - if (messageSettings.squareAvatars) it.buildRoundRect(initial, senderColor, radius) - else it.buildRound(initial, senderColor) - }, + fallbackDrawable = TextDrawable.builder().beginConfig() + .textColor((colorBackground and 0xFFFFFF) or (0x8A shl 24)).useFont(Typeface.DEFAULT_BOLD).endConfig().let { + if (messageSettings.squareAvatars) it.buildRoundRect(initial, senderColor, radius) + else it.buildRound(initial, senderColor) + }, hasDayChange = message.hasDayChange, isMarkerLine = message.isMarkerLine, isExpanded = message.isExpanded, isSelected = message.isSelected ) } - Message_Type.Notice -> FormattedMessage( + Message_Type.Notice -> FormattedMessage( id = message.content.messageId, time = timeFormatter.format(message.content.time.atZone(zoneId)), dayChange = formatDayChange(message), @@ -576,7 +578,7 @@ class QuasselMessageRenderer @Inject constructor( } Message_Type.Server, Message_Type.Info, - Message_Type.Error -> FormattedMessage( + Message_Type.Error -> FormattedMessage( id = message.content.messageId, time = timeFormatter.format(message.content.time.atZone(zoneId)), dayChange = formatDayChange(message), @@ -586,7 +588,7 @@ class QuasselMessageRenderer @Inject constructor( isExpanded = message.isExpanded, isSelected = message.isSelected ) - Message_Type.Topic -> FormattedMessage( + Message_Type.Topic -> FormattedMessage( id = message.content.messageId, time = timeFormatter.format(message.content.time.atZone(zoneId)), dayChange = formatDayChange(message), @@ -596,7 +598,7 @@ class QuasselMessageRenderer @Inject constructor( isExpanded = message.isExpanded, isSelected = message.isSelected ) - Message_Type.DayChange -> FormattedMessage( + Message_Type.DayChange -> FormattedMessage( id = message.content.messageId, time = "", dayChange = formatDayChange(message), @@ -606,7 +608,7 @@ class QuasselMessageRenderer @Inject constructor( isExpanded = false, isSelected = false ) - Message_Type.Invite -> FormattedMessage( + Message_Type.Invite -> FormattedMessage( id = message.content.messageId, time = timeFormatter.format(message.content.time.atZone(zoneId)), dayChange = formatDayChange(message), @@ -616,7 +618,7 @@ class QuasselMessageRenderer @Inject constructor( isExpanded = message.isExpanded, isSelected = message.isSelected ) - else -> FormattedMessage( + else -> FormattedMessage( id = message.content.messageId, time = timeFormatter.format(message.content.time.atZone(zoneId)), dayChange = formatDayChange(message), 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 ca74a5ce5..ab6f3703d 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 @@ -120,6 +120,7 @@ class NickListFragment : ServiceBoundFragment() { else senderColors[senderColorIndex] MessageSettings.ColorizeNicknamesMode.NONE -> selfColor } + fun formatNick(nick: CharSequence): CharSequence { val spannableString = SpannableString(nick) spannableString.setSpan( @@ -138,10 +139,11 @@ class NickListFragment : ServiceBoundFragment() { } 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) - }, + fallbackDrawable = TextDrawable.builder().beginConfig() + .textColor((colorBackground and 0xFFFFFF) or (0x8A shl 24)).useFont(Typeface.DEFAULT_BOLD).endConfig().let { + if (messageSettings.squareAvatars) it.buildRoundRect(initial, senderColor, radius) + else it.buildRound(initial, senderColor) + }, initial = initial, modes = when (messageSettings.showPrefix) { MessageSettings.ShowPrefixMode.ALL -> diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt index c30946e5d..f57ba8861 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt @@ -42,6 +42,7 @@ class IrcUser( fun fromVariantMap(properties: QVariantMap, index: Int? = null) { initSetProperties(properties, index) } + override fun fromVariantMap(properties: QVariantMap) { initSetProperties(properties) } -- GitLab