Skip to content
Snippets Groups Projects
Verified Commit e9f62c63 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Minor bugfixes and dependency graph fixes


- Context is passed in constructor
- Networks that changed connectivity did not properly show/hide in the
  buffer list before

Signed-off-by: default avatarJanne Koschinski <janne@kuschku.de>
parent 89331293
Branches
Tags
No related merge requests found
Pipeline #
Showing
with 175 additions and 347 deletions
......@@ -25,6 +25,7 @@ package de.kuschku.quasseldroid.dagger
import dagger.Module
import dagger.android.ContributesAndroidInjector
import de.kuschku.quasseldroid.service.QuasselService
import de.kuschku.quasseldroid.service.QuasselServiceModule
import de.kuschku.quasseldroid.ui.chat.ChatActivity
import de.kuschku.quasseldroid.ui.chat.ChatActivityModule
import de.kuschku.quasseldroid.ui.chat.ChatFragmentProvider
......@@ -75,6 +76,7 @@ import de.kuschku.quasseldroid.ui.coresettings.networkconfig.NetworkConfigFragme
import de.kuschku.quasseldroid.ui.coresettings.networkserver.NetworkServerActivity
import de.kuschku.quasseldroid.ui.coresettings.networkserver.NetworkServerFragmentProvider
import de.kuschku.quasseldroid.ui.setup.accounts.edit.AccountEditActivity
import de.kuschku.quasseldroid.ui.setup.accounts.edit.AccountEditModule
import de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionActivity
import de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionFragmentProvider
import de.kuschku.quasseldroid.ui.setup.accounts.setup.AccountSetupActivity
......@@ -82,87 +84,115 @@ import de.kuschku.quasseldroid.ui.setup.accounts.setup.AccountSetupFragmentProvi
@Module
abstract class ActivityModule {
@ContributesAndroidInjector(modules = [ChatActivityModule::class, ChatFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [ChatActivityModule::class, ChatFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindChatActivity(): ChatActivity
@ContributesAndroidInjector(modules = [UserInfoFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [UserInfoFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindUserInfoActivity(): UserInfoActivity
@ContributesAndroidInjector(modules = [ChannelInfoFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [ChannelInfoFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindChannelInfoActivity(): ChannelInfoActivity
@ContributesAndroidInjector(modules = [TopicFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [TopicFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindTopicActivity(): TopicActivity
@ContributesAndroidInjector(modules = [ClientSettingsFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [ClientSettingsFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindClientSettingsActivity(): ClientSettingsActivity
@ContributesAndroidInjector(modules = [WhitelistFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [WhitelistFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindWhitelistActivity(): WhitelistActivity
@ContributesAndroidInjector(modules = [CrashFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [CrashFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindCrashActivity(): CrashActivity
@ContributesAndroidInjector(modules = [AboutFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [AboutFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindAboutActivity(): AboutActivity
@ContributesAndroidInjector(modules = [LicenseFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [LicenseFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindLicenseActivity(): LicenseActivity
@ContributesAndroidInjector(modules = [CoreSettingsFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [CoreSettingsFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindCoreSettingsActivity(): CoreSettingsActivity
@ContributesAndroidInjector(modules = [NetworkCreateFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [NetworkCreateFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindNetworkCreateActivity(): NetworkCreateActivity
@ContributesAndroidInjector(modules = [NetworkEditFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [NetworkEditFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindNetworkEditActivity(): NetworkEditActivity
@ContributesAndroidInjector(modules = [NetworkServerFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [NetworkServerFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindNetworkServerActivity(): NetworkServerActivity
@ContributesAndroidInjector(modules = [IdentityCreateFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [IdentityCreateFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindIdentityCreateActivity(): IdentityCreateActivity
@ContributesAndroidInjector(modules = [IdentityEditFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [IdentityEditFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindIdentityEditActivity(): IdentityEditActivity
@ContributesAndroidInjector(modules = [ChatlistCreateFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [ChatlistCreateFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindChatListCreateActivity(): ChatlistCreateActivity
@ContributesAndroidInjector(modules = [ChatlistEditFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [ChatlistEditFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindChatListEditActivity(): ChatlistEditActivity
@ContributesAndroidInjector(modules = [IgnoreListFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [IgnoreListFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindIgnoreListActivity(): IgnoreListActivity
@ContributesAndroidInjector(modules = [IgnoreItemFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [IgnoreItemFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindIgnoreItemActivity(): IgnoreItemActivity
@ContributesAndroidInjector(modules = [HighlightListFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [HighlightListFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindHighlightListActivity(): HighlightListActivity
@ContributesAndroidInjector(modules = [HighlightRuleFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [HighlightRuleFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindHighlightRuleActivity(): HighlightRuleActivity
@ContributesAndroidInjector(modules = [AliasListFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [AliasListFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindAliasListActivity(): AliasListActivity
@ContributesAndroidInjector(modules = [AliasItemFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [AliasItemFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindAliasItemActivity(): AliasItemActivity
@ContributesAndroidInjector(modules = [NetworkConfigFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [NetworkConfigFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindNetworkConfigActivity(): NetworkConfigActivity
@ContributesAndroidInjector(modules = [AccountSetupFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [AccountSetupFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindAccountSetupActivity(): AccountSetupActivity
@ContributesAndroidInjector(modules = [AccountSelectionFragmentProvider::class])
@ActivityScope
@ContributesAndroidInjector(modules = [AccountSelectionFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindAccountSelectionActivity(): AccountSelectionActivity
@ContributesAndroidInjector
@ActivityScope
@ContributesAndroidInjector(modules = [AccountEditModule::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindAccountEditActivity(): AccountEditActivity
@ContributesAndroidInjector
@ActivityScope
@ContributesAndroidInjector(modules = [QuasselServiceModule::class, SettingsModule::class, DatabaseModule::class])
abstract fun bindQuasselService(): QuasselService
}
/*
* QuasselDroid - Quassel client for Android
*
* Copyright (c) 2018 Janne Koschinski
* Copyright (c) 2018 Ken Børge Viktil
* Copyright (c) 2018 Magnus Fjell
* Copyright (c) 2018 Martin Sandsmark
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package de.kuschku.quasseldroid.dagger
import javax.inject.Scope
@Scope
@Retention(AnnotationRetention.RUNTIME)
annotation class ActivityScope
......@@ -33,9 +33,7 @@ import javax.inject.Singleton
modules = [
AndroidSupportInjectionModule::class,
AppModule::class,
ActivityModule::class,
DatabaseModule::class,
SettingsModule::class
ActivityModule::class
]
)
interface AppComponent : AndroidInjector<QuasselDroid> {
......
......@@ -22,13 +22,12 @@
package de.kuschku.quasseldroid.dagger
import android.content.Context
import dagger.Binds
import dagger.Module
import de.kuschku.quasseldroid.QuasselDroid
@Module
abstract class AppModule {
/*
@Binds
abstract fun provideContext(application: QuasselDroid): Context
*/
}
/*
* QuasselDroid - Quassel client for Android
*
* Copyright (c) 2018 Janne Koschinski
* Copyright (c) 2018 Ken Børge Viktil
* Copyright (c) 2018 Magnus Fjell
* Copyright (c) 2018 Martin Sandsmark
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package de.kuschku.quasseldroid.service
import android.content.Context
import dagger.Binds
import dagger.Module
@Module
abstract class QuasselServiceModule {
@Binds
abstract fun bindContext(service: QuasselService): Context
}
......@@ -76,6 +76,7 @@ import org.threeten.bp.format.FormatStyle
import java.security.cert.CertificateExpiredException
import java.security.cert.CertificateNotYetValidException
import javax.inject.Inject
import javax.inject.Named
class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenceChangeListener {
@BindView(R.id.drawer_layout)
......@@ -106,6 +107,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
lateinit var ircFormatDeserializer: IrcFormatDeserializer
@Inject
@Named("ui")
lateinit var autoCompleteAdapter: AutoCompleteAdapter
private val dateTimeFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)
......
......@@ -22,6 +22,8 @@
package de.kuschku.quasseldroid.ui.chat
import android.content.Context
import dagger.Binds
import dagger.Module
import dagger.android.ContributesAndroidInjector
import de.kuschku.quasseldroid.ui.chat.buffers.BufferViewConfigFragment
......@@ -31,6 +33,9 @@ import de.kuschku.quasseldroid.ui.chat.nicks.NickListFragment
@Module
abstract class ChatFragmentProvider {
@Binds
abstract fun bindContext(activity: ChatActivity): Context
@ContributesAndroidInjector
abstract fun bindBufferViewConfigFragment(): BufferViewConfigFragment
......
......@@ -40,7 +40,6 @@ import de.kuschku.quasseldroid.settings.MessageSettings
import de.kuschku.quasseldroid.ui.chat.info.channel.ChannelInfoActivity
import de.kuschku.quasseldroid.ui.chat.info.user.UserInfoActivity
import de.kuschku.quasseldroid.util.helper.combineLatest
import de.kuschku.quasseldroid.util.helper.styledAttributes
import de.kuschku.quasseldroid.util.helper.toLiveData
import de.kuschku.quasseldroid.util.helper.visibleIf
import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer
......@@ -91,40 +90,8 @@ class ToolbarFragment : ServiceBoundFragment() {
val view = inflater.inflate(R.layout.fragment_toolbar, container, false)
ButterKnife.bind(this, view)
val mircColors = requireContext().theme.styledAttributes(
R.attr.mircColor00, R.attr.mircColor01, R.attr.mircColor02, R.attr.mircColor03,
R.attr.mircColor04, R.attr.mircColor05, R.attr.mircColor06, R.attr.mircColor07,
R.attr.mircColor08, R.attr.mircColor09, R.attr.mircColor10, R.attr.mircColor11,
R.attr.mircColor12, R.attr.mircColor13, R.attr.mircColor14, R.attr.mircColor15,
R.attr.mircColor16, R.attr.mircColor17, R.attr.mircColor18, R.attr.mircColor19,
R.attr.mircColor20, R.attr.mircColor21, R.attr.mircColor22, R.attr.mircColor23,
R.attr.mircColor24, R.attr.mircColor25, R.attr.mircColor26, R.attr.mircColor27,
R.attr.mircColor28, R.attr.mircColor29, R.attr.mircColor30, R.attr.mircColor31,
R.attr.mircColor32, R.attr.mircColor33, R.attr.mircColor34, R.attr.mircColor35,
R.attr.mircColor36, R.attr.mircColor37, R.attr.mircColor38, R.attr.mircColor39,
R.attr.mircColor40, R.attr.mircColor41, R.attr.mircColor42, R.attr.mircColor43,
R.attr.mircColor44, R.attr.mircColor45, R.attr.mircColor46, R.attr.mircColor47,
R.attr.mircColor48, R.attr.mircColor49, R.attr.mircColor50, R.attr.mircColor51,
R.attr.mircColor52, R.attr.mircColor53, R.attr.mircColor54, R.attr.mircColor55,
R.attr.mircColor56, R.attr.mircColor57, R.attr.mircColor58, R.attr.mircColor59,
R.attr.mircColor60, R.attr.mircColor61, R.attr.mircColor62, R.attr.mircColor63,
R.attr.mircColor64, R.attr.mircColor65, R.attr.mircColor66, R.attr.mircColor67,
R.attr.mircColor68, R.attr.mircColor69, R.attr.mircColor70, R.attr.mircColor71,
R.attr.mircColor72, R.attr.mircColor73, R.attr.mircColor74, R.attr.mircColor75,
R.attr.mircColor76, R.attr.mircColor77, R.attr.mircColor78, R.attr.mircColor79,
R.attr.mircColor80, R.attr.mircColor81, R.attr.mircColor82, R.attr.mircColor83,
R.attr.mircColor84, R.attr.mircColor85, R.attr.mircColor86, R.attr.mircColor87,
R.attr.mircColor88, R.attr.mircColor89, R.attr.mircColor90, R.attr.mircColor91,
R.attr.mircColor92, R.attr.mircColor93, R.attr.mircColor94, R.attr.mircColor95,
R.attr.mircColor96, R.attr.mircColor97, R.attr.mircColor98
) {
IntArray(99) {
getColor(it, 0)
}
}
fun colorizeDescription(description: String?) = ircFormatDeserializer.formatString(
mircColors, description, messageSettings.colorizeMirc
description, messageSettings.colorizeMirc
)
combineLatest(viewModel.bufferData, viewModel.isSecure, viewModel.lag).toLiveData()
......
......@@ -46,7 +46,6 @@ import de.kuschku.quasseldroid.settings.AppearanceSettings
import de.kuschku.quasseldroid.settings.MessageSettings
import de.kuschku.quasseldroid.ui.coresettings.network.NetworkEditActivity
import de.kuschku.quasseldroid.util.helper.combineLatest
import de.kuschku.quasseldroid.util.helper.styledAttributes
import de.kuschku.quasseldroid.util.helper.toLiveData
import de.kuschku.quasseldroid.util.helper.zip
import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer
......@@ -208,38 +207,6 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
val view = inflater.inflate(R.layout.fragment_chat_list, container, false)
ButterKnife.bind(this, view)
val mircColors = requireContext().theme.styledAttributes(
R.attr.mircColor00, R.attr.mircColor01, R.attr.mircColor02, R.attr.mircColor03,
R.attr.mircColor04, R.attr.mircColor05, R.attr.mircColor06, R.attr.mircColor07,
R.attr.mircColor08, R.attr.mircColor09, R.attr.mircColor10, R.attr.mircColor11,
R.attr.mircColor12, R.attr.mircColor13, R.attr.mircColor14, R.attr.mircColor15,
R.attr.mircColor16, R.attr.mircColor17, R.attr.mircColor18, R.attr.mircColor19,
R.attr.mircColor20, R.attr.mircColor21, R.attr.mircColor22, R.attr.mircColor23,
R.attr.mircColor24, R.attr.mircColor25, R.attr.mircColor26, R.attr.mircColor27,
R.attr.mircColor28, R.attr.mircColor29, R.attr.mircColor30, R.attr.mircColor31,
R.attr.mircColor32, R.attr.mircColor33, R.attr.mircColor34, R.attr.mircColor35,
R.attr.mircColor36, R.attr.mircColor37, R.attr.mircColor38, R.attr.mircColor39,
R.attr.mircColor40, R.attr.mircColor41, R.attr.mircColor42, R.attr.mircColor43,
R.attr.mircColor44, R.attr.mircColor45, R.attr.mircColor46, R.attr.mircColor47,
R.attr.mircColor48, R.attr.mircColor49, R.attr.mircColor50, R.attr.mircColor51,
R.attr.mircColor52, R.attr.mircColor53, R.attr.mircColor54, R.attr.mircColor55,
R.attr.mircColor56, R.attr.mircColor57, R.attr.mircColor58, R.attr.mircColor59,
R.attr.mircColor60, R.attr.mircColor61, R.attr.mircColor62, R.attr.mircColor63,
R.attr.mircColor64, R.attr.mircColor65, R.attr.mircColor66, R.attr.mircColor67,
R.attr.mircColor68, R.attr.mircColor69, R.attr.mircColor70, R.attr.mircColor71,
R.attr.mircColor72, R.attr.mircColor73, R.attr.mircColor74, R.attr.mircColor75,
R.attr.mircColor76, R.attr.mircColor77, R.attr.mircColor78, R.attr.mircColor79,
R.attr.mircColor80, R.attr.mircColor81, R.attr.mircColor82, R.attr.mircColor83,
R.attr.mircColor84, R.attr.mircColor85, R.attr.mircColor86, R.attr.mircColor87,
R.attr.mircColor88, R.attr.mircColor89, R.attr.mircColor90, R.attr.mircColor91,
R.attr.mircColor92, R.attr.mircColor93, R.attr.mircColor94, R.attr.mircColor95,
R.attr.mircColor96, R.attr.mircColor97, R.attr.mircColor98
) {
IntArray(99) {
getColor(it, 0)
}
}
val adapter = BufferViewConfigAdapter()
viewModel.bufferViewConfigs.switchMap {
combineLatest(it.map(BufferViewConfig::liveUpdates))
......@@ -283,7 +250,6 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
props.copy(
activity = activity,
description = ircFormatDeserializer.formatString(
mircColors,
props.description.toString(),
colorize = messageSettings.colorizeMirc
),
......
......@@ -36,7 +36,10 @@ import de.kuschku.libquassel.quassel.syncables.IrcChannel
import de.kuschku.libquassel.util.helpers.value
import de.kuschku.quasseldroid.R
import de.kuschku.quasseldroid.ui.chat.topic.TopicActivity
import de.kuschku.quasseldroid.util.helper.*
import de.kuschku.quasseldroid.util.helper.combineLatest
import de.kuschku.quasseldroid.util.helper.retint
import de.kuschku.quasseldroid.util.helper.setTooltip
import de.kuschku.quasseldroid.util.helper.toLiveData
import de.kuschku.quasseldroid.util.irc.format.ContentFormatter
import de.kuschku.quasseldroid.util.service.ServiceBoundFragment
import de.kuschku.quasseldroid.util.ui.LinkLongClickMenuHelper
......@@ -71,38 +74,6 @@ class ChannelInfoFragment : ServiceBoundFragment() {
val view = inflater.inflate(R.layout.fragment_info_channel, container, false)
ButterKnife.bind(this, view)
val mircColors = requireContext().theme.styledAttributes(
R.attr.mircColor00, R.attr.mircColor01, R.attr.mircColor02, R.attr.mircColor03,
R.attr.mircColor04, R.attr.mircColor05, R.attr.mircColor06, R.attr.mircColor07,
R.attr.mircColor08, R.attr.mircColor09, R.attr.mircColor10, R.attr.mircColor11,
R.attr.mircColor12, R.attr.mircColor13, R.attr.mircColor14, R.attr.mircColor15,
R.attr.mircColor16, R.attr.mircColor17, R.attr.mircColor18, R.attr.mircColor19,
R.attr.mircColor20, R.attr.mircColor21, R.attr.mircColor22, R.attr.mircColor23,
R.attr.mircColor24, R.attr.mircColor25, R.attr.mircColor26, R.attr.mircColor27,
R.attr.mircColor28, R.attr.mircColor29, R.attr.mircColor30, R.attr.mircColor31,
R.attr.mircColor32, R.attr.mircColor33, R.attr.mircColor34, R.attr.mircColor35,
R.attr.mircColor36, R.attr.mircColor37, R.attr.mircColor38, R.attr.mircColor39,
R.attr.mircColor40, R.attr.mircColor41, R.attr.mircColor42, R.attr.mircColor43,
R.attr.mircColor44, R.attr.mircColor45, R.attr.mircColor46, R.attr.mircColor47,
R.attr.mircColor48, R.attr.mircColor49, R.attr.mircColor50, R.attr.mircColor51,
R.attr.mircColor52, R.attr.mircColor53, R.attr.mircColor54, R.attr.mircColor55,
R.attr.mircColor56, R.attr.mircColor57, R.attr.mircColor58, R.attr.mircColor59,
R.attr.mircColor60, R.attr.mircColor61, R.attr.mircColor62, R.attr.mircColor63,
R.attr.mircColor64, R.attr.mircColor65, R.attr.mircColor66, R.attr.mircColor67,
R.attr.mircColor68, R.attr.mircColor69, R.attr.mircColor70, R.attr.mircColor71,
R.attr.mircColor72, R.attr.mircColor73, R.attr.mircColor74, R.attr.mircColor75,
R.attr.mircColor76, R.attr.mircColor77, R.attr.mircColor78, R.attr.mircColor79,
R.attr.mircColor80, R.attr.mircColor81, R.attr.mircColor82, R.attr.mircColor83,
R.attr.mircColor84, R.attr.mircColor85, R.attr.mircColor86, R.attr.mircColor87,
R.attr.mircColor88, R.attr.mircColor89, R.attr.mircColor90, R.attr.mircColor91,
R.attr.mircColor92, R.attr.mircColor93, R.attr.mircColor94, R.attr.mircColor95,
R.attr.mircColor96, R.attr.mircColor97, R.attr.mircColor98
) {
IntArray(99) {
getColor(it, 0)
}
}
val openBuffer = arguments?.getBoolean("openBuffer")
combineLatest(viewModel.session, viewModel.networks).map { (sessionOptional, networks) ->
......@@ -121,7 +92,7 @@ class ChannelInfoFragment : ServiceBoundFragment() {
}.switchMap(IrcChannel::updates).toLiveData().observe(this, Observer { channel ->
if (channel != null) {
name.text = channel.name()
topic.text = contentFormatter.format(mircColors, channel.topic())
topic.text = contentFormatter.format(channel.topic())
actionEditTopic.setOnClickListener {
TopicActivity.launch(requireContext(), buffer = arguments?.getInt("bufferId") ?: -1)
......
......@@ -22,11 +22,16 @@
package de.kuschku.quasseldroid.ui.chat.info.channel
import android.content.Context
import dagger.Binds
import dagger.Module
import dagger.android.ContributesAndroidInjector
@Module
abstract class ChannelInfoFragmentProvider {
@Binds
abstract fun bindContext(activity: ChannelInfoActivity): Context
@ContributesAndroidInjector
abstract fun bindChannelInfoFragment(): ChannelInfoFragment
}
......@@ -126,38 +126,6 @@ class UserInfoFragment : ServiceBoundFragment() {
}
}
val mircColors = requireContext().theme.styledAttributes(
R.attr.mircColor00, R.attr.mircColor01, R.attr.mircColor02, R.attr.mircColor03,
R.attr.mircColor04, R.attr.mircColor05, R.attr.mircColor06, R.attr.mircColor07,
R.attr.mircColor08, R.attr.mircColor09, R.attr.mircColor10, R.attr.mircColor11,
R.attr.mircColor12, R.attr.mircColor13, R.attr.mircColor14, R.attr.mircColor15,
R.attr.mircColor16, R.attr.mircColor17, R.attr.mircColor18, R.attr.mircColor19,
R.attr.mircColor20, R.attr.mircColor21, R.attr.mircColor22, R.attr.mircColor23,
R.attr.mircColor24, R.attr.mircColor25, R.attr.mircColor26, R.attr.mircColor27,
R.attr.mircColor28, R.attr.mircColor29, R.attr.mircColor30, R.attr.mircColor31,
R.attr.mircColor32, R.attr.mircColor33, R.attr.mircColor34, R.attr.mircColor35,
R.attr.mircColor36, R.attr.mircColor37, R.attr.mircColor38, R.attr.mircColor39,
R.attr.mircColor40, R.attr.mircColor41, R.attr.mircColor42, R.attr.mircColor43,
R.attr.mircColor44, R.attr.mircColor45, R.attr.mircColor46, R.attr.mircColor47,
R.attr.mircColor48, R.attr.mircColor49, R.attr.mircColor50, R.attr.mircColor51,
R.attr.mircColor52, R.attr.mircColor53, R.attr.mircColor54, R.attr.mircColor55,
R.attr.mircColor56, R.attr.mircColor57, R.attr.mircColor58, R.attr.mircColor59,
R.attr.mircColor60, R.attr.mircColor61, R.attr.mircColor62, R.attr.mircColor63,
R.attr.mircColor64, R.attr.mircColor65, R.attr.mircColor66, R.attr.mircColor67,
R.attr.mircColor68, R.attr.mircColor69, R.attr.mircColor70, R.attr.mircColor71,
R.attr.mircColor72, R.attr.mircColor73, R.attr.mircColor74, R.attr.mircColor75,
R.attr.mircColor76, R.attr.mircColor77, R.attr.mircColor78, R.attr.mircColor79,
R.attr.mircColor80, R.attr.mircColor81, R.attr.mircColor82, R.attr.mircColor83,
R.attr.mircColor84, R.attr.mircColor85, R.attr.mircColor86, R.attr.mircColor87,
R.attr.mircColor88, R.attr.mircColor89, R.attr.mircColor90, R.attr.mircColor91,
R.attr.mircColor92, R.attr.mircColor93, R.attr.mircColor94, R.attr.mircColor95,
R.attr.mircColor96, R.attr.mircColor97, R.attr.mircColor98
) {
IntArray(99) {
getColor(it, 0)
}
}
val networkId = arguments?.getInt("networkId")
val nickName = arguments?.getString("nick")
combineLatest(viewModel.session, viewModel.networks).switchMap { (sessionOptional, networks) ->
......@@ -188,7 +156,7 @@ class UserInfoFragment : ServiceBoundFragment() {
)
nick.text = user.nick()
realName.text = contentFormatter.format(mircColors, user.realName())
realName.text = contentFormatter.format(user.realName())
realName.visibleIf(user.realName().isNotBlank() && user.realName() != user.nick())
awayMessage.text = user.awayMessage()
......
......@@ -22,11 +22,16 @@
package de.kuschku.quasseldroid.ui.chat.info.user
import android.content.Context
import dagger.Binds
import dagger.Module
import dagger.android.ContributesAndroidInjector
@Module
abstract class UserInfoFragmentProvider {
@Binds
abstract fun bindContext(activity: UserInfoActivity): Context
@ContributesAndroidInjector
abstract fun bindUserInfoFragment(): UserInfoFragment
}
......@@ -66,38 +66,6 @@ class AutoCompleteHelper(
IntArray(length()) { getColor(it, 0) }
}
val mircColors = activity.theme.styledAttributes(
R.attr.mircColor00, R.attr.mircColor01, R.attr.mircColor02, R.attr.mircColor03,
R.attr.mircColor04, R.attr.mircColor05, R.attr.mircColor06, R.attr.mircColor07,
R.attr.mircColor08, R.attr.mircColor09, R.attr.mircColor10, R.attr.mircColor11,
R.attr.mircColor12, R.attr.mircColor13, R.attr.mircColor14, R.attr.mircColor15,
R.attr.mircColor16, R.attr.mircColor17, R.attr.mircColor18, R.attr.mircColor19,
R.attr.mircColor20, R.attr.mircColor21, R.attr.mircColor22, R.attr.mircColor23,
R.attr.mircColor24, R.attr.mircColor25, R.attr.mircColor26, R.attr.mircColor27,
R.attr.mircColor28, R.attr.mircColor29, R.attr.mircColor30, R.attr.mircColor31,
R.attr.mircColor32, R.attr.mircColor33, R.attr.mircColor34, R.attr.mircColor35,
R.attr.mircColor36, R.attr.mircColor37, R.attr.mircColor38, R.attr.mircColor39,
R.attr.mircColor40, R.attr.mircColor41, R.attr.mircColor42, R.attr.mircColor43,
R.attr.mircColor44, R.attr.mircColor45, R.attr.mircColor46, R.attr.mircColor47,
R.attr.mircColor48, R.attr.mircColor49, R.attr.mircColor50, R.attr.mircColor51,
R.attr.mircColor52, R.attr.mircColor53, R.attr.mircColor54, R.attr.mircColor55,
R.attr.mircColor56, R.attr.mircColor57, R.attr.mircColor58, R.attr.mircColor59,
R.attr.mircColor60, R.attr.mircColor61, R.attr.mircColor62, R.attr.mircColor63,
R.attr.mircColor64, R.attr.mircColor65, R.attr.mircColor66, R.attr.mircColor67,
R.attr.mircColor68, R.attr.mircColor69, R.attr.mircColor70, R.attr.mircColor71,
R.attr.mircColor72, R.attr.mircColor73, R.attr.mircColor74, R.attr.mircColor75,
R.attr.mircColor76, R.attr.mircColor77, R.attr.mircColor78, R.attr.mircColor79,
R.attr.mircColor80, R.attr.mircColor81, R.attr.mircColor82, R.attr.mircColor83,
R.attr.mircColor84, R.attr.mircColor85, R.attr.mircColor86, R.attr.mircColor87,
R.attr.mircColor88, R.attr.mircColor89, R.attr.mircColor90, R.attr.mircColor91,
R.attr.mircColor92, R.attr.mircColor93, R.attr.mircColor94, R.attr.mircColor95,
R.attr.mircColor96, R.attr.mircColor97, R.attr.mircColor98
) {
IntArray(99) {
getColor(it, 0)
}
}
private val avatarSize = activity.resources.getDimensionPixelSize(R.dimen.avatar_size)
init {
......@@ -143,7 +111,7 @@ class AutoCompleteHelper(
it.modes.substring(0, Math.min(it.modes.length, 1))
},
realname = ircFormatDeserializer.formatString(
mircColors, it.realname.toString(), messageSettings.colorizeMirc
it.realname.toString(), messageSettings.colorizeMirc
)
)
} else {
......
......@@ -107,46 +107,6 @@ class ChatlineFragment : ServiceBoundFragment() {
val view = inflater.inflate(R.layout.fragment_chatline, container, false)
ButterKnife.bind(this, view)
val mircColors = requireContext().theme.styledAttributes(
R.attr.mircColor00, R.attr.mircColor01, R.attr.mircColor02, R.attr.mircColor03,
R.attr.mircColor04, R.attr.mircColor05, R.attr.mircColor06, R.attr.mircColor07,
R.attr.mircColor08, R.attr.mircColor09, R.attr.mircColor10, R.attr.mircColor11,
R.attr.mircColor12, R.attr.mircColor13, R.attr.mircColor14, R.attr.mircColor15,
R.attr.mircColor16, R.attr.mircColor17, R.attr.mircColor18, R.attr.mircColor19,
R.attr.mircColor20, R.attr.mircColor21, R.attr.mircColor22, R.attr.mircColor23,
R.attr.mircColor24, R.attr.mircColor25, R.attr.mircColor26, R.attr.mircColor27,
R.attr.mircColor28, R.attr.mircColor29, R.attr.mircColor30, R.attr.mircColor31,
R.attr.mircColor32, R.attr.mircColor33, R.attr.mircColor34, R.attr.mircColor35,
R.attr.mircColor36, R.attr.mircColor37, R.attr.mircColor38, R.attr.mircColor39,
R.attr.mircColor40, R.attr.mircColor41, R.attr.mircColor42, R.attr.mircColor43,
R.attr.mircColor44, R.attr.mircColor45, R.attr.mircColor46, R.attr.mircColor47,
R.attr.mircColor48, R.attr.mircColor49, R.attr.mircColor50, R.attr.mircColor51,
R.attr.mircColor52, R.attr.mircColor53, R.attr.mircColor54, R.attr.mircColor55,
R.attr.mircColor56, R.attr.mircColor57, R.attr.mircColor58, R.attr.mircColor59,
R.attr.mircColor60, R.attr.mircColor61, R.attr.mircColor62, R.attr.mircColor63,
R.attr.mircColor64, R.attr.mircColor65, R.attr.mircColor66, R.attr.mircColor67,
R.attr.mircColor68, R.attr.mircColor69, R.attr.mircColor70, R.attr.mircColor71,
R.attr.mircColor72, R.attr.mircColor73, R.attr.mircColor74, R.attr.mircColor75,
R.attr.mircColor76, R.attr.mircColor77, R.attr.mircColor78, R.attr.mircColor79,
R.attr.mircColor80, R.attr.mircColor81, R.attr.mircColor82, R.attr.mircColor83,
R.attr.mircColor84, R.attr.mircColor85, R.attr.mircColor86, R.attr.mircColor87,
R.attr.mircColor88, R.attr.mircColor89, R.attr.mircColor90, R.attr.mircColor91,
R.attr.mircColor92, R.attr.mircColor93, R.attr.mircColor94, R.attr.mircColor95,
R.attr.mircColor96, R.attr.mircColor97, R.attr.mircColor98
) {
IntArray(99) {
getColor(it, 0)
}
}
val mircColorMap = mircColors.take(16).mapIndexed { index: Int, color: Int ->
color to index
}.toMap()
val colorForegroundMirc = requireContext().theme.styledAttributes(R.attr.colorForegroundMirc) {
getColor(0, 0)
}
val editorViewModel = ViewModelProviders.of(this).get(EditorViewModel::class.java)
editorViewModel.quasselViewModel.onNext(viewModel)
......@@ -193,9 +153,7 @@ class ChatlineFragment : ServiceBoundFragment() {
fun send() {
if (chatline.text.isNotBlank()) {
val lines = chatline.text.lineSequence().map {
it.toString() to ircFormatSerializer.toEscapeCodes(colorForegroundMirc,
mircColorMap,
SpannableString(it))
it.toString() to ircFormatSerializer.toEscapeCodes(SpannableString(it))
}
viewModel.session { sessionOptional ->
......
......@@ -23,7 +23,6 @@
package de.kuschku.quasseldroid.ui.chat.messages
import android.arch.paging.PagedListAdapter
import android.content.Context
import android.support.v7.util.DiffUtil
import android.support.v7.widget.RecyclerView
import android.util.LruCache
......@@ -164,10 +163,6 @@ class MessageAdapter @Inject constructor(
null
}
fun updateColors(context: Context) {
messageRenderer.updateColors(context)
}
class QuasselMessageViewHolder(
itemView: View,
clickListener: ((FormattedMessage) -> Unit)? = null,
......
......@@ -231,8 +231,6 @@ class MessageListFragment : ServiceBoundFragment() {
messageList.layoutManager = linearLayoutManager
messageList.itemAnimator = null
adapter.updateColors(requireContext())
val senderColors = requireContext().theme.styledAttributes(
R.attr.senderColor0, R.attr.senderColor1, R.attr.senderColor2, R.attr.senderColor3,
R.attr.senderColor4, R.attr.senderColor5, R.attr.senderColor6, R.attr.senderColor7,
......
......@@ -29,8 +29,6 @@ import de.kuschku.quasseldroid.persistence.QuasselDatabase
import de.kuschku.quasseldroid.viewmodel.data.FormattedMessage
interface MessageRenderer {
fun updateColors(context: Context)
@LayoutRes
fun layout(type: Message_Type?, hasHighlight: Boolean, isFollowUp: Boolean, isEmoji: Boolean): Int
......
......@@ -60,6 +60,7 @@ import javax.inject.Inject
import kotlin.math.roundToInt
class QuasselMessageRenderer @Inject constructor(
context: Context,
private val messageSettings: MessageSettings,
private val contentFormatter: ContentFormatter
) : MessageRenderer {
......@@ -80,9 +81,20 @@ class QuasselMessageRenderer @Inject constructor(
else -> "HH:mm"
}
private lateinit var mircColors: IntArray
private lateinit var senderColors: IntArray
private var selfColor: Int = 0
private val senderColors: IntArray = context.theme.styledAttributes(
R.attr.senderColor0, R.attr.senderColor1, R.attr.senderColor2, R.attr.senderColor3,
R.attr.senderColor4, R.attr.senderColor5, R.attr.senderColor6, R.attr.senderColor7,
R.attr.senderColor8, R.attr.senderColor9, R.attr.senderColorA, R.attr.senderColorB,
R.attr.senderColorC, R.attr.senderColorD, R.attr.senderColorE, R.attr.senderColorF
) {
IntArray(16) {
getColor(it, 0)
}
}
private val selfColor: Int = context.theme.styledAttributes(R.attr.colorForegroundSecondary) {
getColor(0, 0)
}
private val zoneId = ZoneId.systemDefault()
......@@ -183,53 +195,6 @@ class QuasselMessageRenderer @Inject constructor(
holder.bind(message, original, !isDayChange, !isDayChange)
}
override fun updateColors(context: Context) {
mircColors = context.theme.styledAttributes(
R.attr.mircColor00, R.attr.mircColor01, R.attr.mircColor02, R.attr.mircColor03,
R.attr.mircColor04, R.attr.mircColor05, R.attr.mircColor06, R.attr.mircColor07,
R.attr.mircColor08, R.attr.mircColor09, R.attr.mircColor10, R.attr.mircColor11,
R.attr.mircColor12, R.attr.mircColor13, R.attr.mircColor14, R.attr.mircColor15,
R.attr.mircColor16, R.attr.mircColor17, R.attr.mircColor18, R.attr.mircColor19,
R.attr.mircColor20, R.attr.mircColor21, R.attr.mircColor22, R.attr.mircColor23,
R.attr.mircColor24, R.attr.mircColor25, R.attr.mircColor26, R.attr.mircColor27,
R.attr.mircColor28, R.attr.mircColor29, R.attr.mircColor30, R.attr.mircColor31,
R.attr.mircColor32, R.attr.mircColor33, R.attr.mircColor34, R.attr.mircColor35,
R.attr.mircColor36, R.attr.mircColor37, R.attr.mircColor38, R.attr.mircColor39,
R.attr.mircColor40, R.attr.mircColor41, R.attr.mircColor42, R.attr.mircColor43,
R.attr.mircColor44, R.attr.mircColor45, R.attr.mircColor46, R.attr.mircColor47,
R.attr.mircColor48, R.attr.mircColor49, R.attr.mircColor50, R.attr.mircColor51,
R.attr.mircColor52, R.attr.mircColor53, R.attr.mircColor54, R.attr.mircColor55,
R.attr.mircColor56, R.attr.mircColor57, R.attr.mircColor58, R.attr.mircColor59,
R.attr.mircColor60, R.attr.mircColor61, R.attr.mircColor62, R.attr.mircColor63,
R.attr.mircColor64, R.attr.mircColor65, R.attr.mircColor66, R.attr.mircColor67,
R.attr.mircColor68, R.attr.mircColor69, R.attr.mircColor70, R.attr.mircColor71,
R.attr.mircColor72, R.attr.mircColor73, R.attr.mircColor74, R.attr.mircColor75,
R.attr.mircColor76, R.attr.mircColor77, R.attr.mircColor78, R.attr.mircColor79,
R.attr.mircColor80, R.attr.mircColor81, R.attr.mircColor82, R.attr.mircColor83,
R.attr.mircColor84, R.attr.mircColor85, R.attr.mircColor86, R.attr.mircColor87,
R.attr.mircColor88, R.attr.mircColor89, R.attr.mircColor90, R.attr.mircColor91,
R.attr.mircColor92, R.attr.mircColor93, R.attr.mircColor94, R.attr.mircColor95,
R.attr.mircColor96, R.attr.mircColor97, R.attr.mircColor98
) {
IntArray(99) {
getColor(it, 0)
}
}
context.theme.styledAttributes(
R.attr.senderColor0, R.attr.senderColor1, R.attr.senderColor2, R.attr.senderColor3,
R.attr.senderColor4, R.attr.senderColor5, R.attr.senderColor6, R.attr.senderColor7,
R.attr.senderColor8, R.attr.senderColor9, R.attr.senderColorA, R.attr.senderColorB,
R.attr.senderColorC, R.attr.senderColorD, R.attr.senderColorE, R.attr.senderColorF,
R.attr.colorForegroundSecondary
) {
senderColors = IntArray(16) {
getColor(it, 0)
}
selfColor = getColor(16, 0)
}
}
override fun render(context: Context, message: DisplayMessage): FormattedMessage {
val avatarSize = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_SP,
......@@ -241,7 +206,7 @@ class QuasselMessageRenderer @Inject constructor(
val highlight = Message_Flag.of(message.content.flag).hasFlag(Message_Flag.Highlight)
return when (Message_Type.of(message.content.type).enabledValues().firstOrNull()) {
Message_Type.Plain -> {
val realName = contentFormatter.format(mircColors, message.content.realName, highlight)
val realName = contentFormatter.format(message.content.realName, highlight)
val nick = SpannableStringBuilder().apply {
append(formatPrefix(message.content.senderPrefixes, highlight))
append(formatNick(
......@@ -251,7 +216,7 @@ class QuasselMessageRenderer @Inject constructor(
messageSettings.showHostmaskPlain && messageSettings.nicksOnNewLine
))
}
val content = contentFormatter.format(mircColors, message.content.content, highlight)
val content = contentFormatter.format(message.content.content, highlight)
val nickName = HostmaskHelper.nick(message.content.sender)
val senderColorIndex = IrcUserUtils.senderColor(nickName)
val rawInitial = nickName.trimStart('-', '_', '[', ']', '{', '}', '|', '`', '^', '.', '\\')
......@@ -287,7 +252,7 @@ class QuasselMessageRenderer @Inject constructor(
context.getString(R.string.message_format_action),
formatPrefix(message.content.senderPrefixes, highlight),
formatNick(message.content.sender, self, highlight, false),
contentFormatter.format(mircColors, message.content.content, highlight)
contentFormatter.format(message.content.content, highlight)
),
isMarkerLine = message.isMarkerLine,
isExpanded = message.isExpanded,
......@@ -300,7 +265,7 @@ class QuasselMessageRenderer @Inject constructor(
context.getString(R.string.message_format_notice),
formatPrefix(message.content.senderPrefixes, highlight),
formatNick(message.content.sender, self, highlight, false),
contentFormatter.format(mircColors, message.content.content, highlight)
contentFormatter.format(message.content.content, highlight)
),
isMarkerLine = message.isMarkerLine,
isExpanded = message.isExpanded,
......@@ -374,7 +339,7 @@ class QuasselMessageRenderer @Inject constructor(
self,
highlight,
messageSettings.showHostmaskActions),
contentFormatter.format(mircColors, message.content.content, highlight)
contentFormatter.format(message.content.content, highlight)
)
},
isMarkerLine = message.isMarkerLine,
......@@ -398,7 +363,7 @@ class QuasselMessageRenderer @Inject constructor(
self,
highlight,
messageSettings.showHostmaskActions),
contentFormatter.format(mircColors, message.content.content, highlight)
contentFormatter.format(message.content.content, highlight)
)
},
isMarkerLine = message.isMarkerLine,
......@@ -429,7 +394,7 @@ class QuasselMessageRenderer @Inject constructor(
self,
highlight,
messageSettings.showHostmaskActions),
contentFormatter.format(mircColors, reason, highlight)
contentFormatter.format(reason, highlight)
)
},
isMarkerLine = message.isMarkerLine,
......@@ -461,7 +426,7 @@ class QuasselMessageRenderer @Inject constructor(
self,
highlight,
messageSettings.showHostmaskActions),
contentFormatter.format(mircColors, reason, highlight)
contentFormatter.format(reason, highlight)
)
},
isMarkerLine = message.isMarkerLine,
......@@ -506,7 +471,7 @@ class QuasselMessageRenderer @Inject constructor(
Message_Type.Error -> FormattedMessage(
id = message.content.messageId,
time = timeFormatter.format(message.content.time.atZone(zoneId)),
combined = contentFormatter.format(mircColors, message.content.content, highlight),
combined = contentFormatter.format(message.content.content, highlight),
isMarkerLine = message.isMarkerLine,
isExpanded = message.isExpanded,
isSelected = message.isSelected
......@@ -514,7 +479,7 @@ class QuasselMessageRenderer @Inject constructor(
Message_Type.Topic -> FormattedMessage(
id = message.content.messageId,
time = timeFormatter.format(message.content.time.atZone(zoneId)),
combined = contentFormatter.format(mircColors, message.content.content, highlight),
combined = contentFormatter.format(message.content.content, highlight),
isMarkerLine = message.isMarkerLine,
isExpanded = message.isExpanded,
isSelected = message.isSelected
......
......@@ -96,38 +96,6 @@ class NickListFragment : ServiceBoundFragment() {
}
}
val mircColors = requireContext().theme.styledAttributes(
R.attr.mircColor00, R.attr.mircColor01, R.attr.mircColor02, R.attr.mircColor03,
R.attr.mircColor04, R.attr.mircColor05, R.attr.mircColor06, R.attr.mircColor07,
R.attr.mircColor08, R.attr.mircColor09, R.attr.mircColor10, R.attr.mircColor11,
R.attr.mircColor12, R.attr.mircColor13, R.attr.mircColor14, R.attr.mircColor15,
R.attr.mircColor16, R.attr.mircColor17, R.attr.mircColor18, R.attr.mircColor19,
R.attr.mircColor20, R.attr.mircColor21, R.attr.mircColor22, R.attr.mircColor23,
R.attr.mircColor24, R.attr.mircColor25, R.attr.mircColor26, R.attr.mircColor27,
R.attr.mircColor28, R.attr.mircColor29, R.attr.mircColor30, R.attr.mircColor31,
R.attr.mircColor32, R.attr.mircColor33, R.attr.mircColor34, R.attr.mircColor35,
R.attr.mircColor36, R.attr.mircColor37, R.attr.mircColor38, R.attr.mircColor39,
R.attr.mircColor40, R.attr.mircColor41, R.attr.mircColor42, R.attr.mircColor43,
R.attr.mircColor44, R.attr.mircColor45, R.attr.mircColor46, R.attr.mircColor47,
R.attr.mircColor48, R.attr.mircColor49, R.attr.mircColor50, R.attr.mircColor51,
R.attr.mircColor52, R.attr.mircColor53, R.attr.mircColor54, R.attr.mircColor55,
R.attr.mircColor56, R.attr.mircColor57, R.attr.mircColor58, R.attr.mircColor59,
R.attr.mircColor60, R.attr.mircColor61, R.attr.mircColor62, R.attr.mircColor63,
R.attr.mircColor64, R.attr.mircColor65, R.attr.mircColor66, R.attr.mircColor67,
R.attr.mircColor68, R.attr.mircColor69, R.attr.mircColor70, R.attr.mircColor71,
R.attr.mircColor72, R.attr.mircColor73, R.attr.mircColor74, R.attr.mircColor75,
R.attr.mircColor76, R.attr.mircColor77, R.attr.mircColor78, R.attr.mircColor79,
R.attr.mircColor80, R.attr.mircColor81, R.attr.mircColor82, R.attr.mircColor83,
R.attr.mircColor84, R.attr.mircColor85, R.attr.mircColor86, R.attr.mircColor87,
R.attr.mircColor88, R.attr.mircColor89, R.attr.mircColor90, R.attr.mircColor91,
R.attr.mircColor92, R.attr.mircColor93, R.attr.mircColor94, R.attr.mircColor95,
R.attr.mircColor96, R.attr.mircColor97, R.attr.mircColor98
) {
IntArray(99) {
getColor(it, 0)
}
}
val avatarSize = resources.getDimensionPixelSize(R.dimen.avatar_size)
viewModel.nickData.toLiveData().observe(this, Observer {
runInBackground {
......@@ -174,7 +142,7 @@ class NickListFragment : ServiceBoundFragment() {
it.modes.substring(0, Math.min(it.modes.length, 1))
},
realname = ircFormatDeserializer.formatString(
mircColors, it.realname.toString(), messageSettings.colorizeMirc
it.realname.toString(), messageSettings.colorizeMirc
),
avatarUrls = AvatarHelper.avatar(messageSettings, it, avatarSize)
)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment