From e9f62c630f8baacbe0913c6a17ff5c24bcf54673 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Thu, 26 Apr 2018 03:10:30 +0200 Subject: [PATCH] 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: Janne Koschinski <janne@kuschku.de> --- .../quasseldroid/dagger/ActivityModule.kt | 86 +++++++++++------ .../quasseldroid/dagger/ActivityScope.kt | 29 ++++++ .../quasseldroid/dagger/AppComponent.kt | 4 +- .../kuschku/quasseldroid/dagger/AppModule.kt | 5 +- .../service/QuasselServiceModule.kt | 33 +++++++ .../quasseldroid/ui/chat/ChatActivity.kt | 2 + .../ui/chat/ChatFragmentProvider.kt | 5 + .../quasseldroid/ui/chat/ToolbarFragment.kt | 35 +------ .../chat/buffers/BufferViewConfigFragment.kt | 34 ------- .../chat/info/channel/ChannelInfoFragment.kt | 39 +------- .../channel/ChannelInfoFragmentProvider.kt | 5 + .../ui/chat/info/user/UserInfoFragment.kt | 34 +------ .../info/user/UserInfoFragmentProvider.kt | 5 + .../ui/chat/input/AutoCompleteHelper.kt | 34 +------ .../ui/chat/input/ChatlineFragment.kt | 44 +-------- .../ui/chat/messages/MessageAdapter.kt | 5 - .../ui/chat/messages/MessageListFragment.kt | 2 - .../ui/chat/messages/MessageRenderer.kt | 2 - .../chat/messages/QuasselMessageRenderer.kt | 85 +++++------------ .../ui/chat/nicks/NickListFragment.kt | 34 +------ .../ui/chat/topic/TopicFragment.kt | 51 +--------- .../ui/chat/topic/TopicFragmentProvider.kt | 5 + .../about/AboutFragmentProvider.kt | 5 + .../client/ClientSettingsFragmentProvider.kt | 5 + .../crash/CrashFragmentProvider.kt | 5 + .../license/LicenseFragmentProvider.kt | 5 + .../whitelist/WhitelistFragmentProvider.kt | 5 + .../CoreSettingsFragmentProvider.kt | 5 + .../aliasitem/AliasItemFragment.kt | 49 +--------- .../aliasitem/AliasItemFragmentProvider.kt | 5 + .../aliaslist/AliasListAdapter.kt | 42 +-------- .../aliaslist/AliasListFragment.kt | 1 - .../aliaslist/AliasListFragmentProvider.kt | 5 + .../ChatlistCreateFragmentProvider.kt | 5 + .../chatlist/ChatlistEditFragmentProvider.kt | 5 + .../HighlightListFragmentProvider.kt | 5 + .../HighlightRuleFragmentProvider.kt | 5 + .../IdentityCreateFragmentProvider.kt | 5 + .../identity/IdentityEditFragmentProvider.kt | 5 + .../ignoreitem/IgnoreItemFragmentProvider.kt | 5 + .../ignorelist/IgnoreListFragmentProvider.kt | 5 + .../network/NetworkCreateFragmentProvider.kt | 5 + .../network/NetworkEditFragmentProvider.kt | 5 + .../NetworkConfigFragmentProvider.kt | 5 + .../NetworkServerFragmentProvider.kt | 5 + .../setup/accounts/edit/AccountEditModule.kt | 33 +++++++ .../AccountSelectionFragmentProvider.kt | 5 + .../setup/AccountSetupFragmentProvider.kt | 5 + .../util/irc/format/ContentFormatter.kt | 6 +- .../util/irc/format/IrcFormatDeserializer.kt | 41 ++++++++- .../util/irc/format/IrcFormatSerializer.kt | 62 +++++++++++-- .../libquassel/quassel/syncables/Network.kt | 5 +- .../viewmodel/QuasselViewModel.kt | 92 +++++++++---------- .../viewmodel/data/BufferProps.kt | 1 + 54 files changed, 471 insertions(+), 549 deletions(-) create mode 100644 app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityScope.kt create mode 100644 app/src/main/java/de/kuschku/quasseldroid/service/QuasselServiceModule.kt create mode 100644 app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/edit/AccountEditModule.kt diff --git a/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt b/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt index 7fd7e6b02..daef1c0e8 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt @@ -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 } diff --git a/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityScope.kt b/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityScope.kt new file mode 100644 index 000000000..24db7f326 --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityScope.kt @@ -0,0 +1,29 @@ +/* + * 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 diff --git a/app/src/main/java/de/kuschku/quasseldroid/dagger/AppComponent.kt b/app/src/main/java/de/kuschku/quasseldroid/dagger/AppComponent.kt index 29499c682..7b50b8e2e 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/dagger/AppComponent.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/dagger/AppComponent.kt @@ -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> { diff --git a/app/src/main/java/de/kuschku/quasseldroid/dagger/AppModule.kt b/app/src/main/java/de/kuschku/quasseldroid/dagger/AppModule.kt index 02c54f175..b5f184299 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/dagger/AppModule.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/dagger/AppModule.kt @@ -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 + */ } diff --git a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselServiceModule.kt b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselServiceModule.kt new file mode 100644 index 000000000..8b1b81515 --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselServiceModule.kt @@ -0,0 +1,33 @@ +/* + * 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 +} 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 b650b3fba..0bff8c758 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 @@ -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) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatFragmentProvider.kt index 04ee6fdc0..35d091d90 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatFragmentProvider.kt @@ -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 diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ToolbarFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ToolbarFragment.kt index c4e99371d..6988383a1 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ToolbarFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ToolbarFragment.kt @@ -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() 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 2d6c7dadf..4de5b6e3a 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 @@ -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 ), diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoFragment.kt index b1e4799a7..29dec8555 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoFragment.kt @@ -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) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoFragmentProvider.kt index 9d05e31a2..ee329dbb9 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoFragmentProvider.kt @@ -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 } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/user/UserInfoFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/user/UserInfoFragment.kt index 2001445a0..320b8051e 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/user/UserInfoFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/user/UserInfoFragment.kt @@ -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() diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/user/UserInfoFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/user/UserInfoFragmentProvider.kt index 3f620203d..06167bc89 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/user/UserInfoFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/user/UserInfoFragmentProvider.kt @@ -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 } 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 25427d013..2f5a0957c 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 @@ -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 { 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 2a52c5938..b9f56f829 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 @@ -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 -> diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt index 54202f68a..a1f822d33 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt @@ -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, diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt index 8d2cd38f0..caf7109c3 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt @@ -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, diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageRenderer.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageRenderer.kt index 020532d7e..c82c5d0d2 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageRenderer.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageRenderer.kt @@ -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 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 2ea4cf3d1..4d0bfe598 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 @@ -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 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 dc55cadbc..1fdbbf454 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 @@ -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) ) 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 b3031923e..4ae8faaa7 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 @@ -40,7 +40,6 @@ import de.kuschku.quasseldroid.settings.MessageSettings import de.kuschku.quasseldroid.ui.chat.input.* import de.kuschku.quasseldroid.ui.coresettings.SettingsFragment import de.kuschku.quasseldroid.util.helper.invoke -import de.kuschku.quasseldroid.util.helper.styledAttributes import de.kuschku.quasseldroid.util.helper.toLiveData import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.util.irc.format.IrcFormatSerializer @@ -77,55 +76,11 @@ class TopicFragment : SettingsFragment(), SettingsFragment.Savable { private lateinit var editorHelper: EditorHelper - private lateinit var mircColorMap: Map<Int, Int> - - private var colorForegroundMirc: Int = 0 - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater.inflate(R.layout.fragment_topic, 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) - } - } - - mircColorMap = mircColors.take(16).mapIndexed { index: Int, color: Int -> - color to index - }.toMap() - - colorForegroundMirc = requireContext().theme.styledAttributes(R.attr.colorForegroundMirc) { - getColor(0, 0) - } - val editorViewModel = ViewModelProviders.of(this).get(EditorViewModel::class.java) editorViewModel.quasselViewModel.onNext(viewModel) @@ -163,7 +118,7 @@ class TopicFragment : SettingsFragment(), SettingsFragment.Savable { viewModel.bufferData.filter { it.info != null }.firstElement().toLiveData().observe(this, Observer { - chatline.setText(formatDeserializer.formatString(mircColors, it?.description, true)) + chatline.setText(formatDeserializer.formatString(it?.description, true)) }) return view @@ -174,9 +129,7 @@ class TopicFragment : SettingsFragment(), SettingsFragment.Savable { val session = sessionOptional.orNull() viewModel.buffer { bufferId -> session?.bufferSyncer?.bufferInfo(bufferId)?.also { bufferInfo -> - val topic = formatSerializer.toEscapeCodes(colorForegroundMirc, - mircColorMap, - chatline.text) + val topic = formatSerializer.toEscapeCodes(chatline.text) session.rpcHandler?.sendInput(bufferInfo, "/topic $topic") return true } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragmentProvider.kt index cb1f8e8e4..aaa5c157c 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.chat.topic +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class TopicFragmentProvider { + @Binds + abstract fun bindContext(activity: TopicActivity): Context + @ContributesAndroidInjector abstract fun bindTopicFragment(): TopicFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutFragmentProvider.kt index 274b36248..68f43c681 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.clientsettings.about +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class AboutFragmentProvider { + @Binds + abstract fun bindContext(activity: AboutActivity): Context + @ContributesAndroidInjector abstract fun bindAboutFragment(): AboutFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/client/ClientSettingsFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/client/ClientSettingsFragmentProvider.kt index 5fbfdb81b..674c9d720 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/client/ClientSettingsFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/client/ClientSettingsFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.clientsettings.client +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class ClientSettingsFragmentProvider { + @Binds + abstract fun bindContext(activity: ClientSettingsActivity): Context + @ContributesAndroidInjector abstract fun bindClientSettingsFragment(): ClientSettingsFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashFragmentProvider.kt index d5e39b0fc..db045a545 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.clientsettings.crash +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class CrashFragmentProvider { + @Binds + abstract fun bindContext(activity: CrashActivity): Context + @ContributesAndroidInjector abstract fun bindClientSettingsFragment(): CrashFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/license/LicenseFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/license/LicenseFragmentProvider.kt index ebc7cccad..f8107fb53 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/license/LicenseFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/license/LicenseFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.clientsettings.license +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class LicenseFragmentProvider { + @Binds + abstract fun bindContext(activity: LicenseActivity): Context + @ContributesAndroidInjector abstract fun bindLicenseFragment(): LicenseFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/whitelist/WhitelistFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/whitelist/WhitelistFragmentProvider.kt index 8ec24f52a..0f6f181bd 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/whitelist/WhitelistFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/whitelist/WhitelistFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.clientsettings.whitelist +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class WhitelistFragmentProvider { + @Binds + abstract fun bindContext(activity: WhitelistActivity): Context + @ContributesAndroidInjector abstract fun bindWhitelistFragment(): WhitelistFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/CoreSettingsFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/CoreSettingsFragmentProvider.kt index 11a7534ea..000ac271c 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/CoreSettingsFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/CoreSettingsFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.coresettings +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class CoreSettingsFragmentProvider { + @Binds + abstract fun bindContext(activity: CoreSettingsActivity): Context + @ContributesAndroidInjector abstract fun bindCoreSettingsFragment(): CoreSettingsFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragment.kt index 310cfd681..253d2dc7a 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragment.kt @@ -42,7 +42,6 @@ import de.kuschku.quasseldroid.settings.AutoCompleteSettings import de.kuschku.quasseldroid.settings.MessageSettings import de.kuschku.quasseldroid.ui.chat.input.* import de.kuschku.quasseldroid.ui.coresettings.SettingsFragment -import de.kuschku.quasseldroid.util.helper.styledAttributes import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.util.irc.format.IrcFormatSerializer import de.kuschku.quasseldroid.viewmodel.EditorViewModel @@ -83,10 +82,6 @@ class AliasItemFragment : SettingsFragment(), SettingsFragment.Savable, private lateinit var editorHelper: EditorHelper - private lateinit var mircColorMap: Map<Int, Int> - - private var colorForegroundMirc: Int = 0 - private var rule: IAliasManager.Alias? = null override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, @@ -99,46 +94,6 @@ class AliasItemFragment : SettingsFragment(), SettingsFragment.Savable, rule = it } - 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) - } - } - - mircColorMap = mircColors.take(16).mapIndexed { index: Int, color: Int -> - color to index - }.toMap() - - colorForegroundMirc = requireContext().theme.styledAttributes(R.attr.colorForegroundMirc) { - getColor(0, 0) - } - val editorViewModel = ViewModelProviders.of(this).get(EditorViewModel::class.java) editorViewModel.quasselViewModel.onNext(viewModel) @@ -173,7 +128,7 @@ class AliasItemFragment : SettingsFragment(), SettingsFragment.Savable, rule?.let { data -> name.setText(data.name) - expansion.setText(formatDeserializer.formatString(mircColors, data.expansion, true)) + expansion.setText(formatDeserializer.formatString(data.expansion, true)) } return view @@ -181,7 +136,7 @@ class AliasItemFragment : SettingsFragment(), SettingsFragment.Savable, private fun applyChanges() = IAliasManager.Alias( name = name.text.toString(), - expansion = formatSerializer.toEscapeCodes(colorForegroundMirc, mircColorMap, expansion.text) + expansion = formatSerializer.toEscapeCodes(expansion.text) ) override fun onSave() = rule.let { data -> diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragmentProvider.kt index c6a3eb448..bfbeb0368 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.coresettings.aliasitem +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class AliasItemFragmentProvider { + @Binds + abstract fun bindContext(activity: AliasItemActivity): Context + @ContributesAndroidInjector abstract fun bindAliasItemFragment(): AliasItemFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListAdapter.kt index cb2a02818..9b9f7b509 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListAdapter.kt @@ -22,7 +22,6 @@ package de.kuschku.quasseldroid.ui.coresettings.aliaslist -import android.content.Context import android.support.v7.widget.RecyclerView import android.view.LayoutInflater import android.view.MotionEvent @@ -33,7 +32,6 @@ import butterknife.BindView import butterknife.ButterKnife import de.kuschku.libquassel.quassel.syncables.interfaces.IAliasManager import de.kuschku.quasseldroid.R -import de.kuschku.quasseldroid.util.helper.styledAttributes import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import java.util.* import javax.inject.Inject @@ -86,48 +84,11 @@ class AliasListAdapter @Inject constructor( notifyItemMoved(from, to) } - private lateinit var mircColors: IntArray - - 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) - } - } - } - override fun getItemCount() = data.size override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = AliasItemViewHolder( LayoutInflater.from(parent.context).inflate(R.layout.settings_aliaslist_item, parent, false), formatDeserializer, - mircColors, clickListener, dragListener ) @@ -139,7 +100,6 @@ class AliasListAdapter @Inject constructor( class AliasItemViewHolder( itemView: View, private val formatDeserializer: IrcFormatDeserializer, - private val mircColors: IntArray, clickListener: ((IAliasManager.Alias) -> Unit)?, dragListener: ((AliasItemViewHolder) -> Unit)? ) : RecyclerView.ViewHolder(itemView) { @@ -172,7 +132,7 @@ class AliasListAdapter @Inject constructor( fun bind(item: IAliasManager.Alias) { this.item = item name.text = item.name - expansion.text = formatDeserializer.formatString(mircColors, item.expansion, true) + expansion.text = formatDeserializer.formatString(item.expansion, true) } } } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListFragment.kt index 7c6443c7c..0dfb46626 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListFragment.kt @@ -66,7 +66,6 @@ class AliasListFragment : SettingsFragment(), SettingsFragment.Savable, val view = inflater.inflate(R.layout.settings_ignorelist, container, false) ButterKnife.bind(this, view) - adapter.updateColors(requireContext()) adapter.setOnClickListener(::itemClick) adapter.setOnDragListener(::startDrag) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListFragmentProvider.kt index f2e19a91d..129e7bdea 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.coresettings.aliaslist +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class AliasListFragmentProvider { + @Binds + abstract fun bindContext(activity: AliasListActivity): Context + @ContributesAndroidInjector abstract fun bindAliasListFragment(): AliasListFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatlistCreateFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatlistCreateFragmentProvider.kt index 65ce6cc5c..a17d733b7 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatlistCreateFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatlistCreateFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.coresettings.chatlist +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class ChatlistCreateFragmentProvider { + @Binds + abstract fun bindContext(activity: ChatlistCreateActivity): Context + @ContributesAndroidInjector abstract fun bindChatListCreateFragment(): ChatListCreateFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatlistEditFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatlistEditFragmentProvider.kt index e1ef7b653..c3c578ccb 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatlistEditFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatlistEditFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.coresettings.chatlist +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class ChatlistEditFragmentProvider { + @Binds + abstract fun bindContext(activity: ChatlistEditActivity): Context + @ContributesAndroidInjector abstract fun bindChatListEditFragment(): ChatListEditFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightlist/HighlightListFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightlist/HighlightListFragmentProvider.kt index 04d22dc64..9aeeec1e9 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightlist/HighlightListFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightlist/HighlightListFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.coresettings.highlightlist +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class HighlightListFragmentProvider { + @Binds + abstract fun bindContext(activity: HighlightListActivity): Context + @ContributesAndroidInjector abstract fun bindHighlightListFragment(): HighlightListFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragmentProvider.kt index d4cfd5d89..f051118dd 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.coresettings.highlightrule +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class HighlightRuleFragmentProvider { + @Binds + abstract fun bindContext(activity: HighlightRuleActivity): Context + @ContributesAndroidInjector abstract fun bindHighlightRuleFragment(): HighlightRuleFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityCreateFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityCreateFragmentProvider.kt index d41d07905..a42c6ebd6 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityCreateFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityCreateFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.coresettings.identity +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class IdentityCreateFragmentProvider { + @Binds + abstract fun bindContext(activity: IdentityCreateActivity): Context + @ContributesAndroidInjector abstract fun bindIdentityCreateFragment(): IdentityCreateFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityEditFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityEditFragmentProvider.kt index f7408f1d2..767a69982 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityEditFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityEditFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.coresettings.identity +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class IdentityEditFragmentProvider { + @Binds + abstract fun bindContext(activity: IdentityEditActivity): Context + @ContributesAndroidInjector abstract fun bindIdentityEditFragment(): IdentityEditFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/IgnoreItemFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/IgnoreItemFragmentProvider.kt index f455091fc..abc12c455 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/IgnoreItemFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/IgnoreItemFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.coresettings.ignoreitem +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class IgnoreItemFragmentProvider { + @Binds + abstract fun bindContext(activity: IgnoreItemActivity): Context + @ContributesAndroidInjector abstract fun bindIgnoreItemFragment(): IgnoreItemFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignorelist/IgnoreListFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignorelist/IgnoreListFragmentProvider.kt index a3e65f3b5..00d0d4c2d 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignorelist/IgnoreListFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignorelist/IgnoreListFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.coresettings.ignorelist +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class IgnoreListFragmentProvider { + @Binds + abstract fun bindContext(activity: IgnoreListActivity): Context + @ContributesAndroidInjector abstract fun bindIgnoreFragment(): IgnoreListFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkCreateFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkCreateFragmentProvider.kt index 633ae15ce..012bd1f9f 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkCreateFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkCreateFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.coresettings.network +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class NetworkCreateFragmentProvider { + @Binds + abstract fun bindContext(activity: NetworkCreateActivity): Context + @ContributesAndroidInjector abstract fun bindNetworkCreateFragment(): NetworkCreateFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkEditFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkEditFragmentProvider.kt index e9e674b54..b79250c5a 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkEditFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkEditFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.coresettings.network +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class NetworkEditFragmentProvider { + @Binds + abstract fun bindContext(activity: NetworkEditActivity): Context + @ContributesAndroidInjector abstract fun bindNetworkEditFragment(): NetworkEditFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkconfig/NetworkConfigFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkconfig/NetworkConfigFragmentProvider.kt index 555630b0b..20b85552d 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkconfig/NetworkConfigFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkconfig/NetworkConfigFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.coresettings.networkconfig +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class NetworkConfigFragmentProvider { + @Binds + abstract fun bindContext(activity: NetworkConfigActivity): Context + @ContributesAndroidInjector abstract fun bindNetworkConfigFragment(): NetworkConfigFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkserver/NetworkServerFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkserver/NetworkServerFragmentProvider.kt index 8b8bac238..38191184e 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkserver/NetworkServerFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkserver/NetworkServerFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.coresettings.networkserver +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class NetworkServerFragmentProvider { + @Binds + abstract fun bindContext(activity: NetworkServerActivity): Context + @ContributesAndroidInjector abstract fun bindNetworkServerFragment(): NetworkServerFragment } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/edit/AccountEditModule.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/edit/AccountEditModule.kt new file mode 100644 index 000000000..8e7e688c0 --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/edit/AccountEditModule.kt @@ -0,0 +1,33 @@ +/* + * 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.ui.setup.accounts.edit + +import android.content.Context +import dagger.Binds +import dagger.Module + +@Module +abstract class AccountEditModule { + @Binds + abstract fun bindContext(activity: AccountEditActivity): Context +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/selection/AccountSelectionFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/selection/AccountSelectionFragmentProvider.kt index a3239a77f..f85903e62 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/selection/AccountSelectionFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/selection/AccountSelectionFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.setup.accounts.selection +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class AccountSelectionFragmentProvider { + @Binds + abstract fun bindContext(activity: AccountSelectionActivity): Context + @ContributesAndroidInjector abstract fun bindAccountSelectionSlide(): AccountSelectionSlide } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupFragmentProvider.kt index 2e1de4139..21c910409 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupFragmentProvider.kt @@ -22,11 +22,16 @@ package de.kuschku.quasseldroid.ui.setup.accounts.setup +import android.content.Context +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector @Module abstract class AccountSetupFragmentProvider { + @Binds + abstract fun bindContext(activity: AccountSetupActivity): Context + @ContributesAndroidInjector abstract fun bindAccountSetupConnectionSlide(): AccountSetupConnectionSlide diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/ContentFormatter.kt b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/ContentFormatter.kt index c4339d609..8c35e4167 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/ContentFormatter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/ContentFormatter.kt @@ -63,10 +63,8 @@ class ContentFormatter @Inject constructor( } } - fun format(mircColors: IntArray, content: String, highlight: Boolean = false): CharSequence { - val formattedText = ircFormatDeserializer.formatString( - mircColors, content, messageSettings.colorizeMirc - ) + fun format(content: String, highlight: Boolean = false): CharSequence { + val formattedText = ircFormatDeserializer.formatString(content, messageSettings.colorizeMirc) val text = SpannableString(formattedText) for (result in urlPattern.findAll(formattedText)) { diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/IrcFormatDeserializer.kt b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/IrcFormatDeserializer.kt index ae8984d08..a876712e1 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/IrcFormatDeserializer.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/IrcFormatDeserializer.kt @@ -22,8 +22,11 @@ package de.kuschku.quasseldroid.util.irc.format +import android.content.Context import android.text.SpannableStringBuilder import android.text.Spanned +import de.kuschku.quasseldroid.R +import de.kuschku.quasseldroid.util.helper.styledAttributes import de.kuschku.quasseldroid.util.irc.format.spans.* import javax.inject.Inject @@ -31,14 +34,46 @@ import javax.inject.Inject * A helper class to turn mIRC formatted Strings into Android’s SpannableStrings with the same * color and format codes */ -class IrcFormatDeserializer @Inject constructor() { +class IrcFormatDeserializer @Inject constructor(context: Context) { + val 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) + } + } + /** * Function to handle mIRC formatted strings * * @param str mIRC formatted String * @return a CharSequence with Android’s span format representing the input string */ - fun formatString(mircColors: IntArray, str: String?, colorize: Boolean): CharSequence { + fun formatString(str: String?, colorize: Boolean): CharSequence { if (str == null) return "" val plainText = SpannableStringBuilder() @@ -148,7 +183,7 @@ class IrcFormatDeserializer @Inject constructor() { } // Add new format color = FormatDescription( - plainText.length, ColorIrcFormat(foreground, background, mircColors) + plainText.length, ColorIrcFormat(foreground, background, this.mircColors) ) // i points in front of the next character 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 115bff398..10a0ae5fd 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 @@ -22,21 +22,63 @@ package de.kuschku.quasseldroid.util.irc.format +import android.content.Context import android.graphics.Typeface import android.text.Spanned import android.text.style.* +import de.kuschku.quasseldroid.R +import de.kuschku.quasseldroid.util.helper.styledAttributes import java.util.* import javax.inject.Inject -class IrcFormatSerializer @Inject constructor() { - fun toEscapeCodes(colorForegroundMirc: Int, mircColorMap: Map<Int, Int>, text: Spanned): String { +class IrcFormatSerializer @Inject constructor(context: Context) { + private val 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) + } + } + + private val mircColorMap = mircColors.take(16).mapIndexed { index: Int, color: Int -> + color to index + }.toMap() + + private val colorForegroundMirc = context.theme.styledAttributes(R.attr.colorForegroundMirc) { + getColor(0, 0) + } + + fun toEscapeCodes(text: Spanned): String { val out = StringBuilder() - withinParagraph(colorForegroundMirc, mircColorMap, out, text, 0, text.length) + withinParagraph(out, text, 0, text.length) return out.toString() } - private fun withinParagraph(colorForegroundMirc: Int, mircColorMap: Map<Int, Int>, - out: StringBuilder, text: Spanned, start: Int, end: Int) { + private fun withinParagraph(out: StringBuilder, text: Spanned, start: Int, end: Int) { fun writeBold() { out.append(CODE_BOLD) } @@ -61,7 +103,7 @@ class IrcFormatSerializer @Inject constructor() { out.append(CODE_COLOR) if (foreground == null && background != null) { out.append( - String.format(Locale.US, "%02d,%02d", colorForegroundMirc, background) + String.format(Locale.US, "%02d,%02d", this.colorForegroundMirc, background) ) } else if (background == null && foreground != null) { out.append(String.format(Locale.US, "%02d", foreground)) @@ -154,10 +196,10 @@ class IrcFormatSerializer @Inject constructor() { } if (afterForeground != foreground || afterBackground != background) { - val foregroundCode = mircColorMap[foreground] - val backgroundCode = mircColorMap[background] - val afterForegroundCode = mircColorMap[afterForeground] - val afterBackgroundCode = mircColorMap[afterBackground] + val foregroundCode = this.mircColorMap[foreground] + val backgroundCode = this.mircColorMap[background] + val afterForegroundCode = this.mircColorMap[afterForeground] + val afterBackgroundCode = this.mircColorMap[afterBackground] val hasForegroundBefore = foreground != null val hasBackgroundBefore = background != null diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt index 33ea3b18c..ffba8e3ec 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt @@ -32,6 +32,7 @@ import de.kuschku.libquassel.util.helpers.getOr import de.kuschku.libquassel.util.helpers.serializeString import de.kuschku.libquassel.util.irc.HostmaskHelper import de.kuschku.libquassel.util.irc.IrcCaseMappers +import io.reactivex.Observable import io.reactivex.subjects.BehaviorSubject import java.nio.ByteBuffer import java.nio.charset.Charset @@ -91,6 +92,8 @@ class Network constructor( fun isConnected() = _connected fun connectionState() = _connectionState + fun liveConnectionState(): Observable<ConnectionState> = live_connectionState + fun prefixToMode(prefix: Char): Char? = prefixModes().elementAtOrNull(prefixes().indexOf(prefix)) fun prefixesToModes(prefixes: String): String = prefixes.mapNotNull { @@ -903,7 +906,7 @@ class Network constructor( private var _currentServer: String? = null private var _connected: Boolean = false private var _connectionState: ConnectionState = ConnectionState.Disconnected - val live_connectionState = BehaviorSubject.createDefault(ConnectionState.Disconnected) + private val live_connectionState = BehaviorSubject.createDefault(ConnectionState.Disconnected) private var _prefixes: List<Char>? = null private var _prefixModes: List<Char>? = null private var _channelModes: Map<ChannelModeType, Set<Char>>? = null diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt index 9eb841ea9..31b20d994 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt @@ -30,6 +30,7 @@ import de.kuschku.libquassel.quassel.syncables.BufferViewConfig import de.kuschku.libquassel.quassel.syncables.IrcChannel import de.kuschku.libquassel.quassel.syncables.IrcUser import de.kuschku.libquassel.quassel.syncables.Network +import de.kuschku.libquassel.quassel.syncables.interfaces.INetwork import de.kuschku.libquassel.session.Backend import de.kuschku.libquassel.session.ISession import de.kuschku.libquassel.session.SessionManager @@ -174,7 +175,7 @@ class QuasselViewModel : ViewModel() { } } BufferInfo.Type.StatusBuffer.toInt() -> { - network.live_connectionState.map { + network.liveConnectionState().map { BufferData( info = info, network = network @@ -286,7 +287,7 @@ class QuasselViewModel : ViewModel() { val network = networks[info.networkId] when (info.type.enabledValues().firstOrNull()) { Buffer_Type.StatusBuffer -> { - network?.live_connectionState?.map { + network?.liveConnectionState()?.map { SelectedBufferItem( info, connectionState = it, @@ -349,8 +350,6 @@ class QuasselViewModel : ViewModel() { } else { it to network } - }.filter { - !config.hideInactiveNetworks() || it.second.isConnected() }.map<Pair<BufferInfo, Network>, Observable<BufferProps>?> { (info, network) -> bufferSyncer.liveActivity(info.bufferId).switchMap { activity -> bufferSyncer.liveHighlightCount(info.bufferId).map { highlights -> @@ -360,51 +359,58 @@ class QuasselViewModel : ViewModel() { when (info.type.toInt()) { BufferInfo.Type.QueryBuffer.toInt() -> { network.liveNetworkInfo().switchMap { networkInfo -> - network.liveIrcUser(info.bufferName).switchMap { - it.updates().map { user -> - BufferProps( - info = info, - network = networkInfo, - bufferStatus = when { - user == IrcUser.NULL -> BufferStatus.OFFLINE - user.isAway() -> BufferStatus.AWAY - else -> BufferStatus.ONLINE - }, - description = user.realName(), - activity = activity, - highlights = highlights, - hiddenState = state - ) + network.liveConnectionState().switchMap { connectionState -> + network.liveIrcUser(info.bufferName).switchMap { + it.updates().map { user -> + BufferProps( + info = info, + network = networkInfo, + networkConnectionState = connectionState, + bufferStatus = when { + user == IrcUser.NULL -> BufferStatus.OFFLINE + user.isAway() -> BufferStatus.AWAY + else -> BufferStatus.ONLINE + }, + description = user.realName(), + activity = activity, + highlights = highlights, + hiddenState = state + ) + } } } } } BufferInfo.Type.ChannelBuffer.toInt() -> { network.liveNetworkInfo().switchMap { networkInfo -> - network.liveIrcChannel(info.bufferName).switchMap { channel -> - channel.updates().map { - BufferProps( - info = info, - network = networkInfo, - bufferStatus = when (it) { - IrcChannel.NULL -> BufferStatus.OFFLINE - else -> BufferStatus.ONLINE - }, - description = it.topic(), - activity = activity, - highlights = highlights, - hiddenState = state - ) + network.liveConnectionState().switchMap { connectionState -> + network.liveIrcChannel(info.bufferName).switchMap { channel -> + channel.updates().map { + BufferProps( + info = info, + network = networkInfo, + networkConnectionState = connectionState, + bufferStatus = when (it) { + IrcChannel.NULL -> BufferStatus.OFFLINE + else -> BufferStatus.ONLINE + }, + description = it.topic(), + activity = activity, + highlights = highlights, + hiddenState = state + ) + } } } } } BufferInfo.Type.StatusBuffer.toInt() -> { network.liveNetworkInfo().switchMap { networkInfo -> - network.live_connectionState.map { + network.liveConnectionState().map { connectionState -> BufferProps( info = info, network = networkInfo, + networkConnectionState = connectionState, bufferStatus = BufferStatus.OFFLINE, description = "", activity = activity, @@ -414,17 +420,7 @@ class QuasselViewModel : ViewModel() { } } } - else -> Observable.just( - BufferProps( - info = info, - network = network.networkInfo(), - bufferStatus = BufferStatus.OFFLINE, - description = "", - activity = activity, - highlights = highlights, - hiddenState = state - ) - ) + else -> Observable.empty() } } } @@ -455,7 +451,7 @@ class QuasselViewModel : ViewModel() { !config.hideInactiveNetworks() || it.isConnected() }.map<Network, Observable<BufferProps>?> { network -> network.liveNetworkInfo().switchMap { networkInfo -> - network.live_connectionState.map { + network.liveConnectionState().map { connectionState -> BufferProps( info = BufferInfo( bufferId = -networkInfo.networkId, @@ -465,6 +461,7 @@ class QuasselViewModel : ViewModel() { type = Buffer_Type.of(Buffer_Type.StatusBuffer) ), network = networkInfo, + networkConnectionState = connectionState, bufferStatus = BufferStatus.OFFLINE, description = "", activity = Message_Type.of(), @@ -491,6 +488,9 @@ class QuasselViewModel : ViewModel() { Pair<BufferViewConfig?, List<BufferProps>>( config, list.asSequence().filter { + !config.hideInactiveNetworks() || + it.networkConnectionState == INetwork.ConnectionState.Initialized + }.filter { (!config.hideInactiveBuffers()) || it.bufferStatus != BufferStatus.OFFLINE || it.info.type.hasFlag(Buffer_Type.StatusBuffer) diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferProps.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferProps.kt index 556edacd6..794ea6995 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferProps.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferProps.kt @@ -30,6 +30,7 @@ import de.kuschku.libquassel.quassel.syncables.interfaces.INetwork data class BufferProps( val info: BufferInfo, val network: INetwork.NetworkInfo, + val networkConnectionState: INetwork.ConnectionState, val bufferStatus: BufferStatus, val description: CharSequence, val activity: Message_Types, -- GitLab