From 97f5130a614847f1e1822dd985d4d28073880551 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Wed, 18 Apr 2018 14:13:43 +0200 Subject: [PATCH] Fix avatar settings --- .../quasseldroid/ui/chat/ChatActivity.kt | 9 ++++--- .../ui/chat/input/AutoCompleteAdapter.kt | 11 +++++--- .../ui/chat/input/ChatlineFragment.kt | 9 ++++--- .../chat/messages/QuasselMessageRenderer.kt | 4 +-- .../ui/chat/topic/TopicFragment.kt | 9 ++++--- .../util/irc/format/IrcFormatSerializer.kt | 6 ++--- app/src/main/res/xml/preferences.xml | 25 +++++++++---------- 7 files changed, 42 insertions(+), 31 deletions(-) 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 5cdbe638a..0af0dc407 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 @@ -77,6 +77,9 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc @Inject lateinit var ircFormatDeserializer: IrcFormatDeserializer + @Inject + lateinit var autoCompleteAdapter: AutoCompleteAdapter + private lateinit var drawerToggle: ActionBarDrawerToggle private var chatlineFragment: ChatlineFragment? = null @@ -141,12 +144,12 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc if (autoCompleteSettings.prefix || autoCompleteSettings.auto) { chatlineFragment?.let { - val autocompleteAdapter = AutoCompleteAdapter(messageSettings, it.chatline::autoComplete) + autoCompleteAdapter.setOnClickListener(it.chatline::autoComplete) autoCompleteList.layoutManager = LinearLayoutManager(it.activity) autoCompleteList.itemAnimator = DefaultItemAnimator() - autoCompleteList.adapter = autocompleteAdapter + autoCompleteList.adapter = autoCompleteAdapter it.autoCompleteHelper.setDataListener { - autocompleteAdapter.submitList(it) + autoCompleteAdapter.submitList(it) } } } 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 d7a59d77c..3ae0304fb 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 @@ -18,10 +18,10 @@ import de.kuschku.quasseldroid.util.helper.* 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( - private val messageSettings: MessageSettings, - private val clickListener: ((String) -> Unit)? = null +class AutoCompleteAdapter @Inject constructor( + private val messageSettings: MessageSettings ) : ListAdapter<AutoCompleteItem, AutoCompleteAdapter.AutoCompleteViewHolder>( object : DiffUtil.ItemCallback<AutoCompleteItem>() { override fun areItemsTheSame(oldItem: AutoCompleteItem, newItem: AutoCompleteItem) = @@ -30,6 +30,11 @@ class AutoCompleteAdapter( override fun areContentsTheSame(oldItem: AutoCompleteItem, newItem: AutoCompleteItem) = oldItem == newItem }) { + private var clickListener: ((String) -> Unit)? = null + + fun setOnClickListener(listener: ((String) -> Unit)?) { + this.clickListener = listener + } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = when (viewType) { VIEWTYPE_CHANNEL -> AutoCompleteViewHolder.ChannelViewHolder( diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/ChatlineFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/ChatlineFragment.kt index 19d19b30e..66898e472 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/ChatlineFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/ChatlineFragment.kt @@ -63,6 +63,9 @@ class ChatlineFragment : ServiceBoundFragment() { @Inject lateinit var ircFormatSerializer: IrcFormatSerializer + @Inject + lateinit var autoCompleteAdapter: AutoCompleteAdapter + lateinit var editorHelper: EditorHelper lateinit var autoCompleteHelper: AutoCompleteHelper @@ -145,12 +148,12 @@ class ChatlineFragment : ServiceBoundFragment() { editorViewModel.lastWord.onNext(editorHelper.lastWord) if (autoCompleteSettings.prefix || autoCompleteSettings.auto) { - val autocompleteAdapter = AutoCompleteAdapter(messageSettings, chatline::autoComplete) + autoCompleteAdapter.setOnClickListener(chatline::autoComplete) autoCompleteList.layoutManager = LinearLayoutManager(activity) autoCompleteList.itemAnimator = DefaultItemAnimator() - autoCompleteList.adapter = autocompleteAdapter + autoCompleteList.adapter = autoCompleteAdapter autoCompleteHelper.setDataListener { - autocompleteAdapter.submitList(it) + autoCompleteAdapter.submitList(it) } } 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 306a8207a..530a75e66 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 @@ -110,8 +110,8 @@ class QuasselMessageRenderer @Inject constructor( } viewHolder.avatar?.visibleIf(!isFollowUp) - avatarContainer?.visibleIf(messageSettings.showAvatars) - avatarPlaceholder?.visibleIf(messageSettings.showAvatars) + avatarContainer?.visibleIf(messageSettings.showAvatars && messageSettings.nicksOnNewLine) + avatarPlaceholder?.visibleIf(messageSettings.showAvatars && messageSettings.nicksOnNewLine) val separateLine = viewHolder.content != null && viewHolder.name != null && messageSettings.nicksOnNewLine viewHolder.name?.visibleIf(separateLine && !isFollowUp) viewHolder.content?.visibleIf(separateLine) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragment.kt index 4e1fdf203..ec33b8f4f 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragment.kt @@ -50,6 +50,9 @@ class TopicFragment : SettingsFragment(), SettingsFragment.Savable { @Inject lateinit var formatSerializer: IrcFormatSerializer + @Inject + lateinit var autoCompleteAdapter: AutoCompleteAdapter + private lateinit var editorHelper: EditorHelper private lateinit var mircColorMap: Map<Int, Int> @@ -124,12 +127,12 @@ class TopicFragment : SettingsFragment(), SettingsFragment.Savable { editorViewModel.lastWord.onNext(editorHelper.lastWord) if (autoCompleteSettings.prefix || autoCompleteSettings.auto) { - val autocompleteAdapter = AutoCompleteAdapter(messageSettings, chatline::autoComplete) + autoCompleteAdapter.setOnClickListener(chatline::autoComplete) autoCompleteList.layoutManager = LinearLayoutManager(activity) autoCompleteList.itemAnimator = DefaultItemAnimator() - autoCompleteList.adapter = autocompleteAdapter + autoCompleteList.adapter = autoCompleteAdapter autoCompleteHelper.setDataListener { - autocompleteAdapter.submitList(it) + autoCompleteAdapter.submitList(it) } } diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/IrcFormatSerializer.kt b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/IrcFormatSerializer.kt index 77e591833..975c430fd 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/IrcFormatSerializer.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/IrcFormatSerializer.kt @@ -1,21 +1,19 @@ package de.kuschku.quasseldroid.util.irc.format import android.graphics.Typeface -import android.support.annotation.ColorInt import android.text.Spanned import android.text.style.* import java.util.* import javax.inject.Inject class IrcFormatSerializer @Inject constructor() { - fun toEscapeCodes(@ColorInt colorForegroundMirc: Int, mircColorMap: Map<Int, Int>, - text: Spanned): String { + fun toEscapeCodes(colorForegroundMirc: Int, mircColorMap: Map<Int, Int>, text: Spanned): String { val out = StringBuilder() withinParagraph(colorForegroundMirc, mircColorMap, out, text, 0, text.length) return out.toString() } - private fun withinParagraph(@ColorInt colorForegroundMirc: Int, mircColorMap: Map<Int, Int>, + private fun withinParagraph(colorForegroundMirc: Int, mircColorMap: Map<Int, Int>, out: StringBuilder, text: Spanned, start: Int, end: Int) { fun writeBold() { out.append(CODE_BOLD) diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 9d37ce55f..2bbe913ca 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -70,19 +70,6 @@ <SwitchPreference android:defaultValue="true" - android:key="@string/preference_nicks_on_new_line_key" - android:summary="@string/preference_nicks_on_new_line_summary" - android:title="@string/preference_nicks_on_new_line_title" /> - - <SwitchPreference - android:defaultValue="true" - android:dependency="@string/preference_nicks_on_new_line_key" - android:key="@string/preference_show_realnames_key" - android:title="@string/preference_show_realnames_title" /> - - <SwitchPreference - android:defaultValue="true" - android:dependency="@string/preference_nicks_on_new_line_key" android:key="@string/preference_show_avatars_key" android:title="@string/preference_show_avatars_title" /> @@ -98,6 +85,18 @@ android:key="@string/preference_show_gravatar_avatars_key" android:title="@string/preference_show_gravatar_avatars_title" /> + <SwitchPreference + android:defaultValue="true" + android:key="@string/preference_nicks_on_new_line_key" + android:summary="@string/preference_nicks_on_new_line_summary" + android:title="@string/preference_nicks_on_new_line_title" /> + + <SwitchPreference + android:defaultValue="true" + android:dependency="@string/preference_nicks_on_new_line_key" + android:key="@string/preference_show_realnames_key" + android:title="@string/preference_show_realnames_title" /> + <SwitchPreference android:defaultValue="false" android:key="@string/preference_hostmask_actions_key" -- GitLab