From 4757aa3c6418d5fe19ca3ef3e1d6328d0a3e2950 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Tue, 17 Apr 2018 00:45:37 +0200 Subject: [PATCH] Cleanup --- .../de/kuschku/quasseldroid/QuasselDroid.kt | 1 - .../quasseldroid/dagger/AppComponent.kt | 1 - .../kuschku/quasseldroid/dagger/AppModule.kt | 2 +- .../quasseldroid/dagger/DatabaseModule.kt | 2 +- .../quasseldroid/dagger/SettingsModule.kt | 2 +- .../quasseldroid/settings/BacklogSettings.kt | 2 +- .../settings/ConnectionSettings.kt | 2 +- .../ui/chat/buffers/BufferListAdapter.kt | 91 +++++---------- .../chat/buffers/BufferViewConfigFragment.kt | 88 +++++++++------ .../chat/info/channel/ChannelInfoActivity.kt | 1 - .../ui/chat/input/ChatlineFragment.kt | 1 - .../ui/chat/input/MessageHistoryAdapter.kt | 1 - .../ui/chat/messages/MessageAdapter.kt | 1 - .../ui/chat/messages/MessageListFragment.kt | 4 +- .../ui/chat/messages/MessageRenderer.kt | 1 - .../ui/chat/nicks/NickListFragment.kt | 104 +++++++++--------- .../ui/chat/topic/TopicActivity.kt | 1 - .../about/AboutSettingsFragmentProvider.kt | 2 +- .../ui/clientsettings/about/Contributor.kt | 2 +- .../about/ContributorAdapter.kt | 2 +- .../ui/clientsettings/about/Library.kt | 2 +- .../ui/clientsettings/about/License.kt | 2 +- .../clientsettings/app/AppSettingsFragment.kt | 2 +- .../app/AppSettingsFragmentProvider.kt | 2 +- .../ui/clientsettings/crash/CrashAdapter.kt | 2 +- .../crash/CrashSettingsFragmentProvider.kt | 2 +- .../license/LicenseSettingsFragment.kt | 2 +- .../LicenseSettingsFragmentProvider.kt | 2 +- .../CoreSettingsFragmentProvider.kt | 2 +- .../ui/coresettings/SettingsItem.kt | 2 +- .../ui/coresettings/SettingsItemAdapter.kt | 2 +- .../chatlist/ChatListBaseFragment.kt | 4 +- .../chatlist/MinimumActivityAdapter.kt | 1 - .../coresettings/chatlist/NetworkAdapter.kt | 4 - .../identity/IdentityBaseFragment.kt | 1 - .../identity/IdentityCreateFragment.kt | 1 - .../identity/IdentityNicksAdapter.kt | 2 +- .../ignoreitem/IgnoreTypeAdapter.kt | 1 - .../ignoreitem/ScopeTypeAdapter.kt | 1 - .../ignoreitem/StrictnessTypeAdapter.kt | 1 - .../network/NetworkBaseFragment.kt | 1 - .../network/NetworkServerAdapter.kt | 3 - .../networkconfig/NetworkConfigFragment.kt | 5 +- .../NetworkConfigFragmentProvider.kt | 2 +- .../networkserver/ProxyTypeAdapter.kt | 1 - .../accounts/edit/AccountEditActivity.kt | 2 +- .../AccountSelectionFragmentProvider.kt | 2 +- .../setup/AccountSetupConnectionSlide.kt | 3 +- .../setup/AccountSetupFragmentProvider.kt | 2 +- .../accounts/setup/AccountSetupUserSlide.kt | 2 + .../kuschku/quasseldroid/util/AvatarHelper.kt | 4 +- .../de/kuschku/quasseldroid/util/Patterns.kt | 12 +- .../util/backport/AndroidThreeTenBackport.kt | 3 +- .../util/backport/WritableWrappedChannel.kt | 1 - .../compatibility/AndroidHandlerService.kt | 8 +- .../quasseldroid/util/helper/BooleanHelper.kt | 1 - .../quasseldroid/util/helper/ContextHelper.kt | 2 +- .../util/helper/DrawableHelper.kt | 2 +- .../util/helper/FloatingActionButtonHelper.kt | 2 +- .../quasseldroid/util/helper/GsonHelper.kt | 2 +- .../util/helper/IntProgressionHelper.kt | 2 +- .../util/helper/IntRangeHelper.kt | 2 +- .../quasseldroid/util/helper/ListHelper.kt | 9 ++ .../util/helper/LruCacheHelper.kt | 2 +- .../quasseldroid/util/helper/MenuHelper.kt | 2 +- .../util/helper/SelectionHelper.kt | 2 +- .../util/helper/SwitchCompatHelper.kt | 2 +- .../quasseldroid/util/helper/ThemeHelper.kt | 2 +- .../util/irc/format/ContentFormatter.kt | 2 +- .../util/irc/format/IrcFormatDeserializer.kt | 25 ----- .../util/service/ServiceBoundActivity.kt | 1 - .../quasseldroid/util/ui/AnimationHelper.kt | 2 +- .../util/ui/AutoCompleteRecyclerView.kt | 2 +- .../ui/MaterialContentLoadingProgressBar.kt | 3 +- .../util/ui/RecyclerSpinnerAdapter.kt | 1 - .../quasseldroid/util/ui/SeekBarPreference.kt | 31 +++--- .../quasseldroid/util/ui/SettingsActivity.kt | 1 - .../res/layout/widget_chatmessage_plain.xml | 4 +- buildSrc/src/main/kotlin/ProjectHelper.kt | 2 +- buildSrc/src/main/kotlin/VersionContext.kt | 2 +- .../kuschku/libquassel/protocol/QVariant.kt | 2 +- .../de/kuschku/libquassel/protocol/Type.kt | 1 - .../libquassel/quassel/LegacyFeature.kt | 30 ++--- .../libquassel/quassel/QuasselFeatures.kt | 1 - .../exceptions/DeserializationException.kt | 2 +- .../exceptions/MessageHandlingException.kt | 2 +- .../quassel/syncables/BufferSyncer.kt | 4 +- .../libquassel/quassel/syncables/IrcUser.kt | 26 +---- .../libquassel/quassel/syncables/Network.kt | 1 - .../quassel/syncables/NetworkConfig.kt | 1 - .../syncables/interfaces/ISyncableObject.kt | 4 +- .../libquassel/session/CoreConnection.kt | 1 + .../de/kuschku/libquassel/session/Features.kt | 2 +- .../de/kuschku/libquassel/session/ISession.kt | 3 - .../libquassel/session/ProtocolHandler.kt | 6 +- .../de/kuschku/libquassel/session/Session.kt | 4 +- .../de/kuschku/libquassel/util/CRCUtils.kt | 2 +- .../kuschku/libquassel/util/IrcUserUtils.kt | 2 +- .../kuschku/libquassel/util/flag/LongFlag.kt | 2 +- .../kuschku/libquassel/util/flag/ShortFlag.kt | 2 +- .../libquassel/util/helpers/MathHelper.kt | 2 +- .../libquassel/util/irc/IrcCaseMappers.kt | 8 +- .../libquassel/util/nio/ChainedByteBuffer.kt | 1 - .../libquassel/util/nio/WrappedChannel.kt | 1 - .../kuschku/libquassel/ConnectionUnitTest.kt | 15 +-- .../util/helper/LiveDataHelper.kt | 2 +- .../util/helper/LiveDataZipHelper.kt | 3 +- .../viewmodel/data/BufferHiddenState.kt | 1 - .../viewmodel/data/BufferListItem.kt | 2 +- .../viewmodel/data/BufferProps.kt | 2 +- .../viewmodel/data/BufferState.kt | 2 +- .../viewmodel/data/BufferStatus.kt | 2 +- .../viewmodel/data/SelectedBufferItem.kt | 2 +- 113 files changed, 278 insertions(+), 371 deletions(-) create mode 100644 app/src/main/java/de/kuschku/quasseldroid/util/helper/ListHelper.kt diff --git a/app/src/main/java/de/kuschku/quasseldroid/QuasselDroid.kt b/app/src/main/java/de/kuschku/quasseldroid/QuasselDroid.kt index 940023c90..0d02ed87e 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/QuasselDroid.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/QuasselDroid.kt @@ -13,7 +13,6 @@ import de.kuschku.quasseldroid.util.compatibility.AndroidCompatibilityUtils import de.kuschku.quasseldroid.util.compatibility.AndroidLoggingHandler import de.kuschku.quasseldroid.util.compatibility.AndroidStreamChannelFactory - class QuasselDroid : DaggerApplication() { override fun applicationInjector(): AndroidInjector<out QuasselDroid> = DaggerAppComponent.builder().create(this) 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 f8d97c2df..f41427b9f 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/dagger/AppComponent.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/dagger/AppComponent.kt @@ -20,4 +20,3 @@ interface AppComponent : AndroidInjector<QuasselDroid> { @Component.Builder abstract class Builder : AndroidInjector.Builder<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 d0e026b04..763581c71 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/dagger/AppModule.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/dagger/AppModule.kt @@ -9,4 +9,4 @@ import de.kuschku.quasseldroid.QuasselDroid abstract class AppModule { @Binds abstract fun provideContext(application: QuasselDroid): Context -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/dagger/DatabaseModule.kt b/app/src/main/java/de/kuschku/quasseldroid/dagger/DatabaseModule.kt index f13fa558c..442e59f37 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/dagger/DatabaseModule.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/dagger/DatabaseModule.kt @@ -17,4 +17,4 @@ class DatabaseModule { fun provideAccountsDatabase(context: Context): AccountDatabase { return AccountDatabase.Creator.init(context) } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/dagger/SettingsModule.kt b/app/src/main/java/de/kuschku/quasseldroid/dagger/SettingsModule.kt index 7fe62188d..f49bc646e 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/dagger/SettingsModule.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/dagger/SettingsModule.kt @@ -21,4 +21,4 @@ class SettingsModule { @Provides fun provideConnectionSettings(context: Context) = Settings.connection(context) -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/settings/BacklogSettings.kt b/app/src/main/java/de/kuschku/quasseldroid/settings/BacklogSettings.kt index 55a128e44..a7b8355e2 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/settings/BacklogSettings.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/settings/BacklogSettings.kt @@ -7,4 +7,4 @@ data class BacklogSettings( companion object { val DEFAULT = BacklogSettings() } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/settings/ConnectionSettings.kt b/app/src/main/java/de/kuschku/quasseldroid/settings/ConnectionSettings.kt index 68b945534..044af32ac 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/settings/ConnectionSettings.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/settings/ConnectionSettings.kt @@ -6,4 +6,4 @@ data class ConnectionSettings( companion object { val DEFAULT = ConnectionSettings() } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferListAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferListAdapter.kt index 271f9c5cf..89cda2853 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferListAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferListAdapter.kt @@ -1,9 +1,7 @@ package de.kuschku.quasseldroid.ui.chat.buffers -import android.arch.lifecycle.LifecycleOwner -import android.arch.lifecycle.LiveData -import android.arch.lifecycle.Observer import android.graphics.drawable.Drawable +import android.support.v7.recyclerview.extensions.ListAdapter import android.support.v7.util.DiffUtil import android.support.v7.widget.RecyclerView import android.view.LayoutInflater @@ -15,12 +13,14 @@ import butterknife.BindView import butterknife.ButterKnife import de.kuschku.libquassel.protocol.BufferId import de.kuschku.libquassel.protocol.Buffer_Activity -import de.kuschku.libquassel.protocol.Buffer_Type import de.kuschku.libquassel.protocol.NetworkId import de.kuschku.libquassel.quassel.BufferInfo import de.kuschku.libquassel.util.flag.hasFlag import de.kuschku.quasseldroid.R -import de.kuschku.quasseldroid.util.helper.* +import de.kuschku.quasseldroid.util.helper.getVectorDrawableCompat +import de.kuschku.quasseldroid.util.helper.styledAttributes +import de.kuschku.quasseldroid.util.helper.tint +import de.kuschku.quasseldroid.util.helper.visibleIf import de.kuschku.quasseldroid.viewmodel.data.BufferListItem import de.kuschku.quasseldroid.viewmodel.data.BufferProps import de.kuschku.quasseldroid.viewmodel.data.BufferState @@ -28,16 +28,26 @@ import de.kuschku.quasseldroid.viewmodel.data.BufferStatus import io.reactivex.subjects.BehaviorSubject class BufferListAdapter( - lifecycleOwner: LifecycleOwner, - liveData: LiveData<List<BufferProps>?>, private val selectedBuffer: BehaviorSubject<BufferId>, - private val collapsedNetworks: BehaviorSubject<Set<NetworkId>>, - runInBackground: (() -> Unit) -> Any, - runOnUiThread: (Runnable) -> Any, - private val clickListener: ((BufferId) -> Unit)? = null, - private val longClickListener: ((BufferId) -> Unit)? = null -) : RecyclerView.Adapter<BufferListAdapter.BufferViewHolder>() { - var data = emptyList<BufferListItem>() + private val collapsedNetworks: BehaviorSubject<Set<NetworkId>> +) : ListAdapter<BufferListItem, BufferListAdapter.BufferViewHolder>( + object : DiffUtil.ItemCallback<BufferListItem>() { + override fun areItemsTheSame(oldItem: BufferListItem, newItem: BufferListItem) = + oldItem.props.info.bufferId == newItem.props.info.bufferId + + override fun areContentsTheSame(oldItem: BufferListItem, newItem: BufferListItem) = + oldItem == newItem + } +) { + private var clickListener: ((BufferId) -> Unit)? = null + private var longClickListener: ((BufferId) -> Unit)? = null + fun setOnClickListener(listener: ((BufferId) -> Unit)?) { + this.clickListener = listener + } + + fun setOnLongClickListener(listener: ((BufferId) -> Unit)?) { + this.longClickListener = listener + } fun expandListener(networkId: NetworkId) { if (collapsedNetworks.value.orEmpty().contains(networkId)) @@ -56,52 +66,6 @@ class BufferListAdapter( selectedBuffer.onNext(-1) } - init { - liveData.zip(collapsedNetworks.toLiveData(), selectedBuffer.toLiveData()).observe( - lifecycleOwner, Observer { it: Triple<List<BufferProps>?, Set<NetworkId>, BufferId>? -> - val old: List<BufferListItem> = data - runInBackground { - val list = it?.first ?: emptyList() - val collapsedNetworks = it?.second ?: emptySet() - val selected = it?.third ?: -1 - - val new: List<BufferListItem> = list.sortedBy { props -> - !props.info.type.hasFlag(Buffer_Type.StatusBuffer) - }.sortedBy { props -> - props.network.networkName - }.map { props -> - BufferListItem( - props, - BufferState( - networkExpanded = !collapsedNetworks.contains(props.network.networkId), - selected = selected == props.info.bufferId - ) - ) - }.filter { (props, state) -> - props.info.type.hasFlag(BufferInfo.Type.StatusBuffer) || state.networkExpanded - } - - val result = DiffUtil.calculateDiff( - object : DiffUtil.Callback() { - override fun areItemsTheSame(oldItemPosition: Int, newItemPosition: Int) = - old[oldItemPosition].props.info.bufferId == new[newItemPosition].props.info.bufferId - - override fun getOldListSize() = old.size - override fun getNewListSize() = new.size - - override fun areContentsTheSame(oldItemPosition: Int, newItemPosition: Int) = - old[oldItemPosition] == new[newItemPosition] - }, true - ) - runOnUiThread( - Runnable { - data = new - result.dispatchUpdatesTo(this@BufferListAdapter) - }) - } - }) - } - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = when (viewType) { BufferInfo.Type.ChannelBuffer.toInt() -> BufferViewHolder.ChannelBuffer( LayoutInflater.from(parent.context).inflate( @@ -138,12 +102,9 @@ class BufferListAdapter( } override fun onBindViewHolder(holder: BufferViewHolder, position: Int) = - holder.bind(data[position].props, data[position].state) - - override fun getItemCount() = data.size - - override fun getItemViewType(position: Int) = data[position].props.info.type.toInt() + holder.bind(getItem(position).props, getItem(position).state) + override fun getItemViewType(position: Int) = getItem(position).props.info.type.toInt() abstract class BufferViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { abstract fun bind(props: BufferProps, state: BufferState) 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 a4b20a53f..f0dcff4b0 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 @@ -12,6 +12,7 @@ import de.kuschku.libquassel.protocol.BufferId import de.kuschku.libquassel.protocol.Buffer_Activity import de.kuschku.libquassel.protocol.Buffer_Type import de.kuschku.libquassel.protocol.Message_Type +import de.kuschku.libquassel.quassel.BufferInfo import de.kuschku.libquassel.quassel.syncables.BufferViewConfig import de.kuschku.libquassel.quassel.syncables.interfaces.INetwork import de.kuschku.libquassel.util.flag.hasFlag @@ -22,12 +23,13 @@ import de.kuschku.quasseldroid.persistence.QuasselDatabase import de.kuschku.quasseldroid.settings.AppearanceSettings import de.kuschku.quasseldroid.settings.MessageSettings import de.kuschku.quasseldroid.util.helper.combineLatest -import de.kuschku.quasseldroid.util.helper.map import de.kuschku.quasseldroid.util.helper.toLiveData import de.kuschku.quasseldroid.util.helper.zip import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.util.service.ServiceBoundFragment import de.kuschku.quasseldroid.viewmodel.data.BufferHiddenState +import de.kuschku.quasseldroid.viewmodel.data.BufferListItem +import de.kuschku.quasseldroid.viewmodel.data.BufferState import javax.inject.Inject class BufferViewConfigFragment : ServiceBoundFragment() { @@ -196,42 +198,58 @@ class BufferViewConfigFragment : ServiceBoundFragment() { } listAdapter = BufferListAdapter( - this, - viewModel.bufferList.toLiveData().zip(database.filtered().listen(accountId)).map { - val (data, activityList) = it - val (config, list) = data ?: Pair(null, emptyList()) - val minimumActivity = config?.minimumActivity() ?: Buffer_Activity.NONE - val activities = activityList.map { it.bufferId to it.filtered }.toMap() - list.map { - val activity = it.activity - (activities[it.info.bufferId] ?: 0) - it.copy( - description = ircFormatDeserializer.formatString( - requireContext(), it.description.toString(), messageSettings.colorizeMirc - ), - activity = activity, - bufferActivity = Buffer_Activity.of( - when { - it.highlights > 0 -> Buffer_Activity.Highlight - activity.hasFlag(Message_Type.Plain) || - activity.hasFlag(Message_Type.Notice) || - activity.hasFlag(Message_Type.Action) -> Buffer_Activity.NewMessage - activity.isNotEmpty() -> Buffer_Activity.OtherActivity - else -> Buffer_Activity.NoActivity - } - ) - ) - }.filter { props -> - minimumActivity.toInt() <= props.bufferActivity.toInt() || - props.info.type.hasFlag(Buffer_Type.StatusBuffer) - } - }, viewModel.selectedBufferId, - viewModel.collapsedNetworks, - ::runInBackground, - activity!!::runOnUiThread, - ::clickListener, - ::longClickListener + viewModel.collapsedNetworks ) + combineLatest(viewModel.bufferList, viewModel.collapsedNetworks, viewModel.selectedBuffer) + .toLiveData().zip(database.filtered().listen(accountId)) + .observe(this, Observer { it -> + it?.let { (data, activityList) -> + runInBackground { + val (info, collapsedNetworks, selected) = data + val (config, list) = info ?: Pair(null, emptyList()) + val minimumActivity = config?.minimumActivity() ?: Buffer_Activity.NONE + val activities = activityList.associate { it.bufferId to it.filtered } + listAdapter.submitList(list.sortedBy { props -> + !props.info.type.hasFlag(Buffer_Type.StatusBuffer) + }.sortedBy { props -> + props.network.networkName + }.map { props -> + BufferListItem( + props, + BufferState( + networkExpanded = !collapsedNetworks.contains(props.network.networkId), + selected = selected.info?.bufferId == props.info.bufferId + ) + ) + }.filter { (props, state) -> + props.info.type.hasFlag(BufferInfo.Type.StatusBuffer) || state.networkExpanded + }.map { + val activity = it.props.activity - (activities[it.props.info.bufferId] ?: 0) + it.copy( + props = it.props.copy( + activity = activity, + bufferActivity = Buffer_Activity.of( + when { + it.props.highlights > 0 -> Buffer_Activity.Highlight + activity.hasFlag(Message_Type.Plain) || + activity.hasFlag(Message_Type.Notice) || + activity.hasFlag(Message_Type.Action) -> Buffer_Activity.NewMessage + activity.isNotEmpty() -> Buffer_Activity.OtherActivity + else -> Buffer_Activity.NoActivity + } + ) + ) + ) + }.filter { + minimumActivity.toInt() <= it.props.bufferActivity.toInt() || + it.props.info.type.hasFlag(Buffer_Type.StatusBuffer) + }) + } + } + }) + listAdapter.setOnClickListener(this@BufferViewConfigFragment::clickListener) + listAdapter.setOnLongClickListener(this@BufferViewConfigFragment::longClickListener) chatList.adapter = listAdapter viewModel.selectedBuffer.toLiveData().observe(this, Observer { buffer -> diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoActivity.kt index 8904d4ae1..e61e55817 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoActivity.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoActivity.kt @@ -22,4 +22,3 @@ class ChannelInfoActivity : SettingsActivity(ChannelInfoFragment()) { } } } - 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 255e89229..3c2839472 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 @@ -82,7 +82,6 @@ class ChatlineFragment : ServiceBoundFragment() { val view = inflater.inflate(R.layout.fragment_chatline, container, false) ButterKnife.bind(this, view) - val editorViewModel = ViewModelProviders.of(this).get(EditorViewModel::class.java) editorViewModel.quasselViewModel.onNext(viewModel) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/MessageHistoryAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/MessageHistoryAdapter.kt index 68a1653c3..f2537f1d1 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/MessageHistoryAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/MessageHistoryAdapter.kt @@ -54,7 +54,6 @@ class MessageHistoryAdapter : ListAdapter<CharSequence, MessageHistoryAdapter.Me fun bind(data: CharSequence) { value = data - content.text = data } } 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 6e53f1c92..b4e9e903e 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 @@ -234,4 +234,3 @@ class MessageAdapter @Inject constructor( } } } - 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 f4c95212b..6a6be7434 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 @@ -247,7 +247,7 @@ class MessageListFragment : ServiceBoundFragment() { expanded: Set<MsgId>, markerLine: MsgId?): List<DisplayMessage> { var previous: QuasselDatabase.DatabaseMessage? = null var previousDate: ZonedDateTime? = null - return list.asReversed().map { + return list.mapReverse { val date = it.time.atZone(ZoneId.systemDefault()).truncatedTo(ChronoUnit.DAYS) val isSameDay = previousDate?.isEqual(date) ?: false val isFollowUp = previous?.sender == it.sender && previous?.type == it.type && isSameDay @@ -262,7 +262,7 @@ class MessageListFragment : ServiceBoundFragment() { isMarkerLine = markerLine == it.messageId, isEmoji = false ) - }.asReversed() + } } val data = combineLatest(viewModel.buffer, 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 3a34a3bc7..58b09710e 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 @@ -21,4 +21,3 @@ interface MessageRenderer { isFollowUp: Boolean, isEmoji: Boolean) = Unit } - 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 3bfae2fa0..68408c557 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 @@ -63,7 +63,6 @@ class NickListFragment : ServiceBoundFragment() { } nickList.itemAnimator = DefaultItemAnimator() - 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, @@ -76,56 +75,63 @@ class NickListFragment : ServiceBoundFragment() { } val avatarSize = resources.getDimensionPixelSize(R.dimen.avatar_size) - - viewModel.nickData.map { - it.map { - val nickName = it.nick - val senderColorIndex = IrcUserUtils.senderColor(nickName) - val rawInitial = nickName.trimStart('-', '_', '[', ']', '{', '}', '|', '`', '^', '.', '\\') - .firstOrNull() ?: nickName.firstOrNull() - val initial = rawInitial?.toUpperCase().toString() - val senderColor = senderColors[senderColorIndex] - - - fun formatNick(nick: CharSequence): CharSequence { - val spannableString = SpannableString(nick) - spannableString.setSpan( - ForegroundColorSpan(senderColor), - 0, - nick.length, - SpannableString.SPAN_INCLUSIVE_EXCLUSIVE - ) - spannableString.setSpan( - StyleSpan(Typeface.BOLD), - 0, - nick.length, - SpannableString.SPAN_INCLUSIVE_EXCLUSIVE + viewModel.nickData.toLiveData().observe(this, Observer { + runInBackground { + it?.map { + val nickName = it.nick + val senderColorIndex = IrcUserUtils.senderColor(nickName) + val rawInitial = nickName.trimStart('-', + '_', + '[', + ']', + '{', + '}', + '|', + '`', + '^', + '.', + '\\') + .firstOrNull() ?: nickName.firstOrNull() + val initial = rawInitial?.toUpperCase().toString() + val senderColor = senderColors[senderColorIndex] + fun formatNick(nick: CharSequence): CharSequence { + val spannableString = SpannableString(nick) + spannableString.setSpan( + ForegroundColorSpan(senderColor), + 0, + nick.length, + SpannableString.SPAN_INCLUSIVE_EXCLUSIVE + ) + spannableString.setSpan( + StyleSpan(Typeface.BOLD), + 0, + nick.length, + SpannableString.SPAN_INCLUSIVE_EXCLUSIVE + ) + return spannableString + } + it.copy( + displayNick = formatNick(it.nick), + fallbackDrawable = TextDrawable.builder().buildRound(initial, senderColor), + modes = when (messageSettings.showPrefix) { + MessageSettings.ShowPrefixMode.ALL -> + it.modes + else -> + it.modes.substring(0, Math.min(it.modes.length, 1)) + }, + realname = ircFormatDeserializer.formatString( + requireContext(), it.realname.toString(), messageSettings.colorizeMirc + ), + avatarUrls = AvatarHelper.avatar(messageSettings, it, avatarSize) ) - return spannableString - } - - it.copy( - displayNick = formatNick(it.nick), - fallbackDrawable = TextDrawable.builder().buildRound(initial, senderColor), - modes = when (messageSettings.showPrefix) { - MessageSettings.ShowPrefixMode.ALL -> - it.modes - else -> - it.modes.substring(0, Math.min(it.modes.length, 1)) - }, - realname = ircFormatDeserializer.formatString( - requireContext(), it.realname.toString(), messageSettings.colorizeMirc - ), - avatarUrls = AvatarHelper.avatar(messageSettings, it, avatarSize) - ) - }.sortedBy { - IrcCaseMappers[it.networkCasemapping].toLowerCase(it.nick.trimStart(*IGNORED_CHARS)) - .trimStart(*IGNORED_CHARS) - }.sortedBy { - it.lowestMode + }?.sortedBy { + IrcCaseMappers[it.networkCasemapping].toLowerCase(it.nick.trimStart(*IGNORED_CHARS)) + .trimStart(*IGNORED_CHARS) + }?.sortedBy { + it.lowestMode + }?.let(nickListAdapter::submitList) } - }.toLiveData().observe(this, Observer(nickListAdapter::submitList)) - + }) savedInstanceState?.run { nickList.layoutManager.onRestoreInstanceState(getParcelable(KEY_STATE_LIST)) } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicActivity.kt index 7d3c08cd8..bf935c2e6 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicActivity.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicActivity.kt @@ -19,4 +19,3 @@ class TopicActivity : SettingsActivity(TopicFragment()) { } } } - diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutSettingsFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutSettingsFragmentProvider.kt index 29251635e..87c2b85f9 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutSettingsFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutSettingsFragmentProvider.kt @@ -7,4 +7,4 @@ import dagger.android.ContributesAndroidInjector abstract class AboutSettingsFragmentProvider { @ContributesAndroidInjector abstract fun bindAboutSettingsFragment(): AboutSettingsFragment -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/Contributor.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/Contributor.kt index d90d86e1c..78bf7e6e2 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/Contributor.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/Contributor.kt @@ -4,4 +4,4 @@ data class Contributor( val name: String, val nickName: String, val description: String -) \ No newline at end of file +) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/ContributorAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/ContributorAdapter.kt index a5a3e7dfb..9949b05be 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/ContributorAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/ContributorAdapter.kt @@ -41,4 +41,4 @@ class ContributorAdapter(private val contributors: List<Contributor>) : this.description.text = item.description } } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/Library.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/Library.kt index 21debd0ec..1d63953b0 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/Library.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/Library.kt @@ -5,4 +5,4 @@ data class Library( val version: String? = null, val license: License, val url: String? = null -) \ No newline at end of file +) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/License.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/License.kt index 29e4db909..4a8077a14 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/License.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/License.kt @@ -6,4 +6,4 @@ data class License( val shortName: String, val fullName: String = shortName, @StringRes val text: Int -) \ No newline at end of file +) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/app/AppSettingsFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/app/AppSettingsFragment.kt index 7981dc1f0..1a0bb25ff 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/app/AppSettingsFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/app/AppSettingsFragment.kt @@ -51,4 +51,4 @@ class AppSettingsFragment : DaggerPreferenceFragmentCompat(), updateSummary(preference) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/app/AppSettingsFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/app/AppSettingsFragmentProvider.kt index 1c005598f..237399cb3 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/app/AppSettingsFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/app/AppSettingsFragmentProvider.kt @@ -7,4 +7,4 @@ import dagger.android.ContributesAndroidInjector abstract class AppSettingsFragmentProvider { @ContributesAndroidInjector abstract fun bindAppSettingsFragment(): AppSettingsFragment -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashAdapter.kt index 6c6ee0acc..eccdfb17b 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashAdapter.kt @@ -78,4 +78,4 @@ class CrashAdapter : ListAdapter<Pair<Report, String>, CrashAdapter.CrashViewHol this.error.text = "${item.crash?.exception?.lines()?.firstOrNull()}" } } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashSettingsFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashSettingsFragmentProvider.kt index 7d7c78eab..8c54633c4 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashSettingsFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashSettingsFragmentProvider.kt @@ -7,4 +7,4 @@ import dagger.android.ContributesAndroidInjector abstract class CrashSettingsFragmentProvider { @ContributesAndroidInjector abstract fun bindAppSettingsFragment(): CrashSettingsFragment -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/license/LicenseSettingsFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/license/LicenseSettingsFragment.kt index 0e9cfb75e..a13da2823 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/license/LicenseSettingsFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/license/LicenseSettingsFragment.kt @@ -27,4 +27,4 @@ class LicenseSettingsFragment : DaggerFragment() { return view } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/license/LicenseSettingsFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/license/LicenseSettingsFragmentProvider.kt index 86cc6cff6..c1f290046 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/license/LicenseSettingsFragmentProvider.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/license/LicenseSettingsFragmentProvider.kt @@ -7,4 +7,4 @@ import dagger.android.ContributesAndroidInjector abstract class LicenseSettingsFragmentProvider { @ContributesAndroidInjector abstract fun bindLicenseSettingsFragment(): LicenseSettingsFragment -} \ No newline at end of file +} 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 2b0e5768a..3892a6474 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 @@ -7,4 +7,4 @@ import dagger.android.ContributesAndroidInjector abstract class CoreSettingsFragmentProvider { @ContributesAndroidInjector abstract fun CoreSettingsFragmentbind(): CoreSettingsFragment -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/SettingsItem.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/SettingsItem.kt index 939c36527..7eba4efe0 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/SettingsItem.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/SettingsItem.kt @@ -3,4 +3,4 @@ package de.kuschku.quasseldroid.ui.coresettings data class SettingsItem( val id: Int, val name: String -) \ No newline at end of file +) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/SettingsItemAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/SettingsItemAdapter.kt index ac1812720..ee5858663 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/SettingsItemAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/SettingsItemAdapter.kt @@ -50,4 +50,4 @@ class SettingsItemAdapter(private val clickListener: (Int) -> Unit) : this.title.text = item.name } } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatListBaseFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatListBaseFragment.kt index d964fcfd3..84f18336a 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatListBaseFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatListBaseFragment.kt @@ -27,8 +27,6 @@ import de.kuschku.quasseldroid.util.helper.toLiveData abstract class ChatListBaseFragment : SettingsFragment(), SettingsFragment.Savable, SettingsFragment.Changeable { - protected var chatlist: Pair<BufferViewConfig?, BufferViewConfig>? = null - @BindView(R.id.buffer_view_name) lateinit var bufferViewName: EditText @@ -62,6 +60,8 @@ abstract class ChatListBaseFragment : SettingsFragment(), SettingsFragment.Savab @BindView(R.id.hide_inactive_networks) lateinit var hideInactiveNetworks: SwitchCompat + protected var chatlist: Pair<BufferViewConfig?, BufferViewConfig>? = null + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater.inflate(R.layout.settings_chatlist, container, false) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/MinimumActivityAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/MinimumActivityAdapter.kt index 2a36ed6f6..f32d01c1e 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/MinimumActivityAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/MinimumActivityAdapter.kt @@ -68,4 +68,3 @@ class MinimumActivityAdapter(val data: List<MinimumActivityItem>) : } } } - diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/NetworkAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/NetworkAdapter.kt index c70c42f33..ec292d7ef 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/NetworkAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/NetworkAdapter.kt @@ -52,13 +52,9 @@ class NetworkAdapter : RecyclerSpinnerAdapter<NetworkAdapter.NetworkViewHolder>( } override fun getItem(position: Int): INetwork.NetworkInfo? = data[position] - override fun getItemId(position: Int) = getItem(position)?.networkId?.toLong() ?: -1 - override fun hasStableIds() = true - override fun getCount() = data.size - class NetworkViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { @BindView(android.R.id.text1) lateinit var text: TextView diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityBaseFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityBaseFragment.kt index ec80b42bd..724f719e4 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityBaseFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityBaseFragment.kt @@ -22,7 +22,6 @@ import de.kuschku.quasseldroid.ui.coresettings.SettingsFragment import de.kuschku.quasseldroid.util.helper.setDependent import de.kuschku.quasseldroid.util.helper.toLiveData - abstract class IdentityBaseFragment : SettingsFragment(), SettingsFragment.Savable, SettingsFragment.Changeable { diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityCreateFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityCreateFragment.kt index d7a0bfde0..cdaef171b 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityCreateFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityCreateFragment.kt @@ -3,7 +3,6 @@ package de.kuschku.quasseldroid.ui.coresettings.identity import de.kuschku.libquassel.quassel.syncables.Identity import de.kuschku.libquassel.util.helpers.value - class IdentityCreateFragment : IdentityBaseFragment() { override fun onSave() = viewModel.session.value?.orNull()?.let { session -> Identity(session.proxy).let { data -> diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityNicksAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityNicksAdapter.kt index c95903662..4ba215fcd 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityNicksAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityNicksAdapter.kt @@ -95,4 +95,4 @@ class IdentityNicksAdapter( nick.text = item } } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/IgnoreTypeAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/IgnoreTypeAdapter.kt index b86e2ee16..c8ba877ac 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/IgnoreTypeAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/IgnoreTypeAdapter.kt @@ -68,4 +68,3 @@ class IgnoreTypeAdapter(val data: List<IgnoreTypeItem>) : } } } - diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/ScopeTypeAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/ScopeTypeAdapter.kt index 21eec1e61..58762ec9d 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/ScopeTypeAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/ScopeTypeAdapter.kt @@ -68,4 +68,3 @@ class ScopeTypeAdapter(val data: List<ScopeTypeItem>) : } } } - diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/StrictnessTypeAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/StrictnessTypeAdapter.kt index a30682a30..59712d6a8 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/StrictnessTypeAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/StrictnessTypeAdapter.kt @@ -68,4 +68,3 @@ class StrictnessTypeAdapter(val data: List<StrictnessTypeItem>) : } } } - diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkBaseFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkBaseFragment.kt index 234002202..0af5ac7f5 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkBaseFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkBaseFragment.kt @@ -31,7 +31,6 @@ import kotlin.math.roundToInt abstract class NetworkBaseFragment : SettingsFragment(), SettingsFragment.Savable, SettingsFragment.Changeable { - @BindView(R.id.network_name) lateinit var networkName: EditText diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkServerAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkServerAdapter.kt index 80d697bef..2b1cb4473 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkServerAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkServerAdapter.kt @@ -112,11 +112,9 @@ class NetworkServerAdapter( } false } - secure = itemView.context.getVectorDrawableCompat(R.drawable.ic_lock)?.mutate() partiallySecure = itemView.context.getVectorDrawableCompat(R.drawable.ic_lock)?.mutate() insecure = itemView.context.getVectorDrawableCompat(R.drawable.ic_lock_open)?.mutate() - itemView.context.theme.styledAttributes( R.attr.colorTintSecure, R.attr.colorTintPartiallySecure, @@ -132,7 +130,6 @@ class NetworkServerAdapter( this.item = item host.text = item.host port.text = item.port.toString() - sslEnabled.setImageDrawable( when { item.useSsl && item.sslVerify -> secure diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkconfig/NetworkConfigFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkconfig/NetworkConfigFragment.kt index e8c697a08..41019cd2d 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkconfig/NetworkConfigFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkconfig/NetworkConfigFragment.kt @@ -18,8 +18,6 @@ import de.kuschku.quasseldroid.util.helper.toLiveData class NetworkConfigFragment : SettingsFragment(), SettingsFragment.Savable, SettingsFragment.Changeable { - private var networkConfig: Pair<NetworkConfig, NetworkConfig>? = null - @BindView(R.id.ping_timeout_enabled) lateinit var pingTimeoutEnabled: SwitchCompat @@ -50,6 +48,8 @@ class NetworkConfigFragment : SettingsFragment(), SettingsFragment.Savable, @BindView(R.id.standard_ctcp) lateinit var standardCtcp: SwitchCompat + private var networkConfig: Pair<NetworkConfig, NetworkConfig>? = null + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater.inflate(R.layout.settings_networkconfig, container, false) @@ -85,7 +85,6 @@ class NetworkConfigFragment : SettingsFragment(), SettingsFragment.Savable, return view } - override fun onSave() = networkConfig?.let { (it, data) -> applyChanges(data) 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 f697f8a93..cf6c9aa4b 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 @@ -7,4 +7,4 @@ import dagger.android.ContributesAndroidInjector abstract class NetworkConfigFragmentProvider { @ContributesAndroidInjector abstract fun bindNetworkConfigFragment(): NetworkConfigFragment -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkserver/ProxyTypeAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkserver/ProxyTypeAdapter.kt index 378884151..adb22bf5d 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkserver/ProxyTypeAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkserver/ProxyTypeAdapter.kt @@ -64,4 +64,3 @@ class ProxyTypeAdapter(val data: List<ProxyTypeItem>) : } } } - diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/edit/AccountEditActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/edit/AccountEditActivity.kt index 02d965a96..e557b7c60 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/edit/AccountEditActivity.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/edit/AccountEditActivity.kt @@ -92,7 +92,7 @@ class AccountEditActivity : DaggerAppCompatActivity() { hostWrapper::setError, resources.getString(R.string.hint_invalid_host) ) { override fun validate(text: Editable) = - text.toString().matches(Patterns.DOMAIN_NAME.toRegex()) + text.toString().matches(Patterns.DOMAIN_NAME) } portValidator = object : TextValidator( 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 4953c9c77..c7739dac3 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 @@ -7,4 +7,4 @@ import dagger.android.ContributesAndroidInjector abstract class AccountSelectionFragmentProvider { @ContributesAndroidInjector abstract fun bindAccountSelectionSlide(): AccountSelectionSlide -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupConnectionSlide.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupConnectionSlide.kt index 670bb67b6..0ca13008f 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupConnectionSlide.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupConnectionSlide.kt @@ -17,6 +17,7 @@ import de.kuschku.quasseldroid.util.TextValidator class AccountSetupConnectionSlide : SlideFragment() { @BindView(R.id.hostWrapper) lateinit var hostWrapper: TextInputLayout + @BindView(R.id.host) lateinit var hostField: EditText @@ -54,7 +55,7 @@ class AccountSetupConnectionSlide : SlideFragment() { hostWrapper::setError, resources.getString(R.string.hint_invalid_host) ) { override fun validate(text: Editable) = - text.toString().matches(Patterns.DOMAIN_NAME.toRegex()) + text.toString().matches(Patterns.DOMAIN_NAME) override fun onChanged() = updateValidity() } 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 bd29c83f4..327b82803 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 @@ -13,4 +13,4 @@ abstract class AccountSetupFragmentProvider { @ContributesAndroidInjector abstract fun bindAccountSetupUserSlide(): AccountSetupUserSlide -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupUserSlide.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupUserSlide.kt index e21728510..8224efecc 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupUserSlide.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupUserSlide.kt @@ -16,11 +16,13 @@ import de.kuschku.quasseldroid.util.TextValidator class AccountSetupUserSlide : SlideFragment() { @BindView(R.id.userWrapper) lateinit var userWrapper: TextInputLayout + @BindView(R.id.user) lateinit var userField: EditText @BindView(R.id.passWrapper) lateinit var passWrapper: TextInputLayout + @BindView(R.id.pass) lateinit var passField: EditText diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/AvatarHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/AvatarHelper.kt index c949a544c..afccc5d16 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/AvatarHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/AvatarHelper.kt @@ -42,7 +42,7 @@ object AvatarHelper { ).flatten() private fun gravatarFallback(realname: String, size: Int?): List<String> { - return Regex(Patterns.AUTOLINK_EMAIL_ADDRESS_STR) + return Patterns.AUTOLINK_EMAIL_ADDRESS .findAll(realname) .mapNotNull { it.groups[1]?.value @@ -57,7 +57,7 @@ object AvatarHelper { } private fun ircCloudFallback(ident: String, size: Int?): List<String> { - val userId = Regex("(?:~?)[us]id(\\d+)").matchEntire(ident)?.groupValues?.lastOrNull() + val userId = Patterns.IRCCLOUD_IDENT.matchEntire(ident)?.groupValues?.lastOrNull() ?: return emptyList() if (size != null) { diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/Patterns.kt b/app/src/main/java/de/kuschku/quasseldroid/util/Patterns.kt index 69da950e2..85dd63f9b 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/Patterns.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/Patterns.kt @@ -1,7 +1,6 @@ package de.kuschku.quasseldroid.util import org.intellij.lang.annotations.Language -import java.util.regex.Pattern @SuppressWarnings("Access") object Patterns { @@ -51,8 +50,7 @@ object Patterns { @Language("RegExp") const val DOMAIN_NAME_STR = """(?:$LOCAL_HOST_NAME|$HOST_NAME|$IP_ADDRESS_STRING)""" - val DOMAIN_NAME: Pattern = Pattern.compile(DOMAIN_NAME_STR) - + val DOMAIN_NAME = Regex(DOMAIN_NAME_STR) /** * Regular expression for valid email characters. Does not include some of the valid characters * defined in RFC5321: #&~!^`{}/=$*?| @@ -79,5 +77,11 @@ object Patterns { * and the special characters #&~!^`{}/=$*?| that are included in RFC5321. */ const val AUTOLINK_EMAIL_ADDRESS_STR = """($WORD_BOUNDARY(?:$EMAIL_ADDRESS_LOCAL_PART@$EMAIL_ADDRESS_DOMAIN)$WORD_BOUNDARY)""" - val AUTOLINK_EMAIL_ADDRESS = Pattern.compile(AUTOLINK_EMAIL_ADDRESS_STR) + val AUTOLINK_EMAIL_ADDRESS = Regex(AUTOLINK_EMAIL_ADDRESS_STR) + + /** + * Regular expression pattern to match IRCCloud user idents. + */ + const val IRCCLOUD_IDENT_STR = """(?:~?)[us]id(\d+)""" + val IRCCLOUD_IDENT = Regex(IRCCLOUD_IDENT_STR) } diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/backport/AndroidThreeTenBackport.kt b/app/src/main/java/de/kuschku/quasseldroid/util/backport/AndroidThreeTenBackport.kt index 1e7087a50..09c79d9a8 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/backport/AndroidThreeTenBackport.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/backport/AndroidThreeTenBackport.kt @@ -7,7 +7,6 @@ import java.io.IOException import java.io.InputStream import java.util.concurrent.atomic.AtomicBoolean - object AndroidThreeTenBackport { private val initialized = AtomicBoolean() @@ -35,4 +34,4 @@ object AndroidThreeTenBackport { ZoneRulesProvider.registerProvider(provider) } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/backport/WritableWrappedChannel.kt b/app/src/main/java/de/kuschku/quasseldroid/util/backport/WritableWrappedChannel.kt index 091db6ab6..a3513baf1 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/backport/WritableWrappedChannel.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/backport/WritableWrappedChannel.kt @@ -5,7 +5,6 @@ import java.nio.ByteBuffer import java.nio.channels.WritableByteChannel import java.nio.channels.spi.AbstractInterruptibleChannel - class WritableWrappedChannel( private var backingStream: OutputStream ) : AbstractInterruptibleChannel(), WritableByteChannel { diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/compatibility/AndroidHandlerService.kt b/app/src/main/java/de/kuschku/quasseldroid/util/compatibility/AndroidHandlerService.kt index 3da80f703..01c9b848c 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/compatibility/AndroidHandlerService.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/compatibility/AndroidHandlerService.kt @@ -124,10 +124,10 @@ class AndroidHandlerService : HandlerService { } } - private class ScheduledRunnable internal constructor(private val handler: Handler, - private val delegate: Runnable) : Runnable, - Disposable { - + private class ScheduledRunnable internal constructor( + private val handler: Handler, + private val delegate: Runnable + ) : Runnable, Disposable { @Volatile private var disposed: Boolean = false diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/helper/BooleanHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/helper/BooleanHelper.kt index 8bb2713f0..bccc72ecf 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/helper/BooleanHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/helper/BooleanHelper.kt @@ -7,4 +7,3 @@ inline fun <R> Boolean.letIf(block: () -> R): R? { inline fun <R> Boolean.letUnless(block: () -> R): R? { return if (this) null else block() } - diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/helper/ContextHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/helper/ContextHelper.kt index b027f9d65..bcd39daae 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/helper/ContextHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/helper/ContextHelper.kt @@ -32,4 +32,4 @@ fun <T> Context.sharedPreferences(name: String? = null, mode: Int = 0, PreferenceManager.getDefaultSharedPreferences(this).f() } else { getSharedPreferences(name, mode).f() - } \ No newline at end of file + } diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/helper/DrawableHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/helper/DrawableHelper.kt index 90047347c..c993462c2 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/helper/DrawableHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/helper/DrawableHelper.kt @@ -4,4 +4,4 @@ import android.graphics.drawable.Drawable import android.support.annotation.ColorInt import android.support.v4.graphics.drawable.DrawableCompat -fun Drawable.tint(@ColorInt tint: Int) = DrawableCompat.setTint(this, tint) \ No newline at end of file +fun Drawable.tint(@ColorInt tint: Int) = DrawableCompat.setTint(this, tint) diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/helper/FloatingActionButtonHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/helper/FloatingActionButtonHelper.kt index e8842c408..4bacbb234 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/helper/FloatingActionButtonHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/helper/FloatingActionButtonHelper.kt @@ -5,4 +5,4 @@ import android.support.design.widget.FloatingActionButton fun FloatingActionButton.toggle(visible: Boolean) { if (visible) show() else hide() -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/helper/GsonHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/helper/GsonHelper.kt index c760c8a60..310f9f8ec 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/helper/GsonHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/helper/GsonHelper.kt @@ -4,4 +4,4 @@ import com.google.gson.Gson import java.io.File inline fun <reified T> Gson.fromJson(file: File) = this.fromJson(file.reader(), T::class.java) -inline fun <reified T> Gson.fromJson(text: String) = this.fromJson(text, T::class.java) \ No newline at end of file +inline fun <reified T> Gson.fromJson(text: String) = this.fromJson(text, T::class.java) diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/helper/IntProgressionHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/helper/IntProgressionHelper.kt index 69c467371..3d2b73091 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/helper/IntProgressionHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/helper/IntProgressionHelper.kt @@ -1,4 +1,4 @@ package de.kuschku.quasseldroid.util.helper val IntProgression.length: Int - get() = this.last + 1 - this.first \ No newline at end of file + get() = this.last + 1 - this.first diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/helper/IntRangeHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/helper/IntRangeHelper.kt index fc62e431e..e4b3ab54f 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/helper/IntRangeHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/helper/IntRangeHelper.kt @@ -10,4 +10,4 @@ infix fun IntRange.without(other: IntRange): Iterable<IntRange> { val endingFragment: IntRange = otherLast + 1 until this.last + 1 return listOf(startingFragment, endingFragment).filter { it.last >= it.start } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/helper/ListHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/helper/ListHelper.kt new file mode 100644 index 000000000..8c814bb10 --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid/util/helper/ListHelper.kt @@ -0,0 +1,9 @@ +package de.kuschku.quasseldroid.util.helper + +inline fun <T, U> List<T>.mapReverse(mapper: (T) -> U): List<U> { + val result = mutableListOf<U>() + for (i in size - 1 downTo 0) { + result.add(0, mapper(this[i])) + } + return result +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/helper/LruCacheHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/helper/LruCacheHelper.kt index 47e7447e3..aaa7306ac 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/helper/LruCacheHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/helper/LruCacheHelper.kt @@ -5,4 +5,4 @@ import android.util.LruCache inline fun <K, V> LruCache<K, V>.getOrPut(key: K, value: () -> V) = get(key) ?: value().let { put(key, it) it -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/helper/MenuHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/helper/MenuHelper.kt index 32a4c0e5b..eeb22f6b3 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/helper/MenuHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/helper/MenuHelper.kt @@ -16,4 +16,4 @@ fun Menu.retint(context: Context) { } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/helper/SelectionHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/helper/SelectionHelper.kt index 6d107d6f5..ee771dcb5 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/helper/SelectionHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/helper/SelectionHelper.kt @@ -12,4 +12,4 @@ val CharSequence.selection: IntRange } val EditText.selection: IntRange - get() = text.selection \ No newline at end of file + get() = text.selection diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/helper/SwitchCompatHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/helper/SwitchCompatHelper.kt index aff438caa..211c5f640 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/helper/SwitchCompatHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/helper/SwitchCompatHelper.kt @@ -12,4 +12,4 @@ fun SwitchCompat.setDependent(view: ViewGroup, reverse: Boolean = false) { AnimationHelper.collapse(view) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/helper/ThemeHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/helper/ThemeHelper.kt index c5f2724c6..abb9842a0 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/helper/ThemeHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/helper/ThemeHelper.kt @@ -12,4 +12,4 @@ inline fun <R> TypedArray.use(block: (TypedArray) -> R): R { val result = block(this) recycle() return result -} \ No newline at end of file +} 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 7c68c06c6..5bc19c013 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 @@ -65,4 +65,4 @@ class ContentFormatter @Inject constructor( return text } -} \ No newline at end of file +} 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 ea59e13db..e6957ebd5 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 @@ -1,27 +1,5 @@ -/* - * QuasselDroid - Quassel client for Android - * Copyright (C) 2016 Janne Koschinski - * Copyright (C) 2016 Ken Børge Viktil - * Copyright (C) 2016 Magnus Fjell - * Copyright (C) 2016 Martin Sandsmark <martin.sandsmark@kde.org> - * - * 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.util.irc.format - import android.content.Context import android.text.SpannableStringBuilder import android.text.Spanned @@ -309,7 +287,6 @@ class IrcFormatDeserializer @Inject constructor() { } private class FormatDescription<out U : IrcFormat>(val start: Int, val format: U) { - fun apply(editable: SpannableStringBuilder, end: Int) { format.applyTo(editable, start, end) } @@ -346,7 +323,6 @@ class IrcFormatDeserializer @Inject constructor() { } private inner class HexIrcFormat(val foreground: Int, val background: Int) : IrcFormat { - override fun applyTo(editable: SpannableStringBuilder, from: Int, to: Int) { if (foreground >= 0) { editable.setSpan( @@ -365,7 +341,6 @@ class IrcFormatDeserializer @Inject constructor() { private inner class ColorIrcFormat(val foreground: Byte, val background: Byte, val mircColors: IntArray) : IrcFormat { - override fun applyTo(editable: SpannableStringBuilder, from: Int, to: Int) { if (foreground.toInt() >= 0 && foreground.toInt() < mircColors.size) { editable.setSpan( diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt index 2fbed102a..15ee758d7 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt @@ -43,7 +43,6 @@ abstract class ServiceBoundActivity : AppCompatActivity(), protected val backend: BehaviorSubject<Optional<Backend>> get() = connection.backend - @Inject lateinit var supportFragmentInjector: DispatchingAndroidInjector<Fragment> diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/AnimationHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/AnimationHelper.kt index 0007abab4..9851180c7 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/AnimationHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/AnimationHelper.kt @@ -59,4 +59,4 @@ object AnimationHelper { } }) } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/AutoCompleteRecyclerView.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/AutoCompleteRecyclerView.kt index 2e82c5271..6a5ab0c6f 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/AutoCompleteRecyclerView.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/AutoCompleteRecyclerView.kt @@ -21,4 +21,4 @@ class AutoCompleteRecyclerView : RecyclerView { ) ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/MaterialContentLoadingProgressBar.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/MaterialContentLoadingProgressBar.kt index 6856596c4..36141fd17 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/MaterialContentLoadingProgressBar.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/MaterialContentLoadingProgressBar.kt @@ -1,5 +1,3 @@ -package de.kuschku.quasseldroid.util.ui - /* * Copyright (C) 2013 The Android Open Source Project * @@ -15,6 +13,7 @@ package de.kuschku.quasseldroid.util.ui * See the License for the specific language governing permissions and * limitations under the License. */ +package de.kuschku.quasseldroid.util.ui import android.content.Context import android.util.AttributeSet diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/RecyclerSpinnerAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/RecyclerSpinnerAdapter.kt index 3732bd811..53a3997c5 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/RecyclerSpinnerAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/RecyclerSpinnerAdapter.kt @@ -31,7 +31,6 @@ abstract class RecyclerSpinnerAdapter<VH : RecyclerView.ViewHolder> : BaseAdapte return holder.itemView } - protected abstract fun onBindViewHolder(holder: VH, position: Int) protected abstract fun onCreateViewHolder(parent: ViewGroup, dropDown: Boolean): VH } diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/SeekBarPreference.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/SeekBarPreference.kt index 003cf1c4b..390d097d3 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/SeekBarPreference.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/SeekBarPreference.kt @@ -1,18 +1,3 @@ -package de.kuschku.quasseldroid.util.ui - -import android.content.Context -import android.content.res.TypedArray -import android.support.v7.preference.Preference -import android.support.v7.preference.PreferenceViewHolder -import android.support.v7.widget.AppCompatSeekBar -import android.util.AttributeSet -import android.util.Log -import android.widget.SeekBar -import android.widget.TextView -import butterknife.BindView -import butterknife.ButterKnife -import de.kuschku.quasseldroid.R - /* * Copyright (c) 2015 IRCCloud, Ltd. * @@ -28,8 +13,22 @@ import de.kuschku.quasseldroid.R * See the License for the specific language governing permissions and * limitations under the License. */ -class SeekBarPreference : Preference, SeekBar.OnSeekBarChangeListener { +package de.kuschku.quasseldroid.util.ui +import android.content.Context +import android.content.res.TypedArray +import android.support.v7.preference.Preference +import android.support.v7.preference.PreferenceViewHolder +import android.support.v7.widget.AppCompatSeekBar +import android.util.AttributeSet +import android.util.Log +import android.widget.SeekBar +import android.widget.TextView +import butterknife.BindView +import butterknife.ButterKnife +import de.kuschku.quasseldroid.R + +class SeekBarPreference : Preference, SeekBar.OnSeekBarChangeListener { private val TAG = javaClass.name private var maxValue = 100 diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/SettingsActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/SettingsActivity.kt index 86ac9b86f..06d18039d 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/SettingsActivity.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/SettingsActivity.kt @@ -30,7 +30,6 @@ abstract class SettingsActivity(private val fragment: Fragment? = null) : Servic supportActionBar?.setDisplayHomeAsUpEnabled(true) val fragment = this.fragment ?: this.fragment() - if (fragment != null) { val transaction = supportFragmentManager.beginTransaction() fragment.arguments = arguments diff --git a/app/src/main/res/layout/widget_chatmessage_plain.xml b/app/src/main/res/layout/widget_chatmessage_plain.xml index 769d36af7..e92c0e0b5 100644 --- a/app/src/main/res/layout/widget_chatmessage_plain.xml +++ b/app/src/main/res/layout/widget_chatmessage_plain.xml @@ -54,10 +54,10 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" - android:textColor="?attr/colorForegroundSecondary" - android:visibility="gone" android:ellipsize="marquee" android:singleLine="true" + android:textColor="?attr/colorForegroundSecondary" + android:visibility="gone" tools:text="@sample/messages.json/data/sender" tools:visibility="visible" /> diff --git a/buildSrc/src/main/kotlin/ProjectHelper.kt b/buildSrc/src/main/kotlin/ProjectHelper.kt index a2c9119a7..26746aeaa 100644 --- a/buildSrc/src/main/kotlin/ProjectHelper.kt +++ b/buildSrc/src/main/kotlin/ProjectHelper.kt @@ -21,4 +21,4 @@ fun Project.properties(fileName: String): Properties? { val props = Properties() props.load(file.inputStream()) return props -} \ No newline at end of file +} diff --git a/buildSrc/src/main/kotlin/VersionContext.kt b/buildSrc/src/main/kotlin/VersionContext.kt index 806b41a63..8a5832913 100644 --- a/buildSrc/src/main/kotlin/VersionContext.kt +++ b/buildSrc/src/main/kotlin/VersionContext.kt @@ -4,4 +4,4 @@ inline fun withVersion(version: Any?, f: VersionContext.() -> Unit) { (version as? String)?.let { VersionContext(version).f() } -} \ No newline at end of file +} diff --git a/lib/src/main/java/de/kuschku/libquassel/protocol/QVariant.kt b/lib/src/main/java/de/kuschku/libquassel/protocol/QVariant.kt index 8018c79d7..97e074021 100644 --- a/lib/src/main/java/de/kuschku/libquassel/protocol/QVariant.kt +++ b/lib/src/main/java/de/kuschku/libquassel/protocol/QVariant.kt @@ -67,4 +67,4 @@ inline fun <reified U> QVariant_?.valueOrThrow(e: Throwable = NullPointerExcepti this?.data as? U ?: throw e inline fun <reified U> QVariant_?.valueOrThrow(e: () -> Throwable): U = - this?.data as? U ?: throw e() \ No newline at end of file + this?.data as? U ?: throw e() diff --git a/lib/src/main/java/de/kuschku/libquassel/protocol/Type.kt b/lib/src/main/java/de/kuschku/libquassel/protocol/Type.kt index 44a70bef0..9c293a96e 100644 --- a/lib/src/main/java/de/kuschku/libquassel/protocol/Type.kt +++ b/lib/src/main/java/de/kuschku/libquassel/protocol/Type.kt @@ -3,7 +3,6 @@ package de.kuschku.libquassel.protocol import de.kuschku.libquassel.protocol.primitive.serializer.* import java.util.* - enum class Type(val id: kotlin.Int, val serializer: Serializer<*>? = null) { Void(0, VoidSerializer), Bool(1, BoolSerializer), diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/LegacyFeature.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/LegacyFeature.kt index de9c099f9..203a15225 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/LegacyFeature.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/LegacyFeature.kt @@ -51,21 +51,21 @@ enum class LegacyFeature(override val bit: Int) : fun fromExtended(it: ExtendedFeature) = when (it) { ExtendedFeature.SynchronizedMarkerLine -> LegacyFeature.SynchronizedMarkerLine ExtendedFeature.SaslAuthentication -> LegacyFeature.SaslAuthentication - ExtendedFeature.SaslExternal -> LegacyFeature.SaslExternal - ExtendedFeature.HideInactiveNetworks -> LegacyFeature.HideInactiveNetworks - ExtendedFeature.PasswordChange -> LegacyFeature.PasswordChange - ExtendedFeature.CapNegotiation -> LegacyFeature.CapNegotiation - ExtendedFeature.VerifyServerSSL -> LegacyFeature.VerifyServerSSL - ExtendedFeature.CustomRateLimits -> LegacyFeature.CustomRateLimits - ExtendedFeature.DccFileTransfer -> LegacyFeature.DccFileTransfer - ExtendedFeature.AwayFormatTimestamp -> LegacyFeature.AwayFormatTimestamp - ExtendedFeature.Authenticators -> LegacyFeature.Authenticators - ExtendedFeature.BufferActivitySync -> LegacyFeature.BufferActivitySync - ExtendedFeature.CoreSideHighlights -> LegacyFeature.CoreSideHighlights - ExtendedFeature.SenderPrefixes -> LegacyFeature.SenderPrefixes - ExtendedFeature.RemoteDisconnect -> LegacyFeature.RemoteDisconnect - ExtendedFeature.ExtendedFeatures -> LegacyFeature.ExtendedFeatures - else -> null + ExtendedFeature.SaslExternal -> LegacyFeature.SaslExternal + ExtendedFeature.HideInactiveNetworks -> LegacyFeature.HideInactiveNetworks + ExtendedFeature.PasswordChange -> LegacyFeature.PasswordChange + ExtendedFeature.CapNegotiation -> LegacyFeature.CapNegotiation + ExtendedFeature.VerifyServerSSL -> LegacyFeature.VerifyServerSSL + ExtendedFeature.CustomRateLimits -> LegacyFeature.CustomRateLimits + ExtendedFeature.DccFileTransfer -> LegacyFeature.DccFileTransfer + ExtendedFeature.AwayFormatTimestamp -> LegacyFeature.AwayFormatTimestamp + ExtendedFeature.Authenticators -> LegacyFeature.Authenticators + ExtendedFeature.BufferActivitySync -> LegacyFeature.BufferActivitySync + ExtendedFeature.CoreSideHighlights -> LegacyFeature.CoreSideHighlights + ExtendedFeature.SenderPrefixes -> LegacyFeature.SenderPrefixes + ExtendedFeature.RemoteDisconnect -> LegacyFeature.RemoteDisconnect + ExtendedFeature.ExtendedFeatures -> LegacyFeature.ExtendedFeatures + else -> null } } diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/QuasselFeatures.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/QuasselFeatures.kt index 965f4905b..9a8b2b6e7 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/QuasselFeatures.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/QuasselFeatures.kt @@ -24,4 +24,3 @@ class QuasselFeatures( fun all() = QuasselFeatures(ExtendedFeature.values().toSet(), emptySet()) } } - diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/exceptions/DeserializationException.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/exceptions/DeserializationException.kt index e4fd7384f..aba33f238 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/exceptions/DeserializationException.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/exceptions/DeserializationException.kt @@ -6,4 +6,4 @@ class DeserializationException : Exception { constructor(p0: String?, p1: Throwable?) : super(p0, p1) constructor(p0: Throwable?) : super(p0) constructor(p0: String?, p1: Throwable?, p2: Boolean, p3: Boolean) : super(p0, p1, p2, p3) -} \ No newline at end of file +} diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/exceptions/MessageHandlingException.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/exceptions/MessageHandlingException.kt index 93f36ceee..f3032a1b3 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/exceptions/MessageHandlingException.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/exceptions/MessageHandlingException.kt @@ -13,4 +13,4 @@ sealed class MessageHandlingException(cause: Throwable?) : Exception(cause) { val source: HandshakeMessage, cause: Throwable? ) : MessageHandlingException(cause) -} \ No newline at end of file +} diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt index 737c47465..597090022 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt @@ -5,15 +5,13 @@ import de.kuschku.libquassel.protocol.Type import de.kuschku.libquassel.quassel.BufferInfo import de.kuschku.libquassel.quassel.syncables.interfaces.IBufferSyncer import de.kuschku.libquassel.session.ISession -import de.kuschku.libquassel.session.SignalProxy import de.kuschku.libquassel.util.irc.IrcCaseMappers import io.reactivex.Observable import io.reactivex.subjects.BehaviorSubject class BufferSyncer constructor( - proxy: SignalProxy, private val session: ISession -) : SyncableObject(proxy, "BufferSyncer"), IBufferSyncer { +) : SyncableObject(session.proxy, "BufferSyncer"), IBufferSyncer { fun lastSeenMsg(buffer: BufferId): MsgId = _lastSeenMsg[buffer] ?: 0 fun liveLastSeenMsg(buffer: BufferId): Observable<MsgId> = live_lastSeenMsg.map { markerLine(buffer) diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt index fc168007d..8ce519c61 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt @@ -22,7 +22,6 @@ class IrcUser( } override fun toVariantMap() = initProperties() - override fun fromVariantMap(properties: QVariantMap) { initSetProperties(properties) } @@ -64,7 +63,6 @@ class IrcUser( setWhoisServiceReply(properties["whoisServiceReply"].valueOr(this::whoisServiceReply)) setSuserHost(properties["suserHost"].valueOr(this::suserHost)) setEncrypted(properties["encrypted"].valueOr(this::encrypted)) - setUserModes(properties["userModes"].valueOr(this::userModes)) } @@ -253,106 +251,93 @@ class IrcUser( } private val hasChangedNotification = BehaviorSubject.createDefault(Unit) + private var _nick: String = HostmaskHelper.nick(hostmask) set(value) { field = value hasChangedNotification.onNext(Unit) } - private var _user: String = HostmaskHelper.user(hostmask) - + set(value) { + field = value + hasChangedNotification.onNext(Unit) + } private var _host: String = HostmaskHelper.host(hostmask) set(value) { field = value hasChangedNotification.onNext(Unit) } - private var _realName: String = "" set(value) { field = value hasChangedNotification.onNext(Unit) } - private var _account: String = "" set(value) { field = value hasChangedNotification.onNext(Unit) } - private var _awayMessage: String = "" set(value) { field = value hasChangedNotification.onNext(Unit) } - private var _away: Boolean = false set(value) { field = value hasChangedNotification.onNext(Unit) } - private var _server: String = "" set(value) { field = value hasChangedNotification.onNext(Unit) } - private var _idleTime: Instant = Instant.EPOCH set(value) { field = value hasChangedNotification.onNext(Unit) } - private var _idleTimeSet: Instant = Instant.EPOCH set(value) { field = value hasChangedNotification.onNext(Unit) } - private var _loginTime: Instant = Instant.EPOCH set(value) { field = value hasChangedNotification.onNext(Unit) } - private var _ircOperator: String = "" set(value) { field = value hasChangedNotification.onNext(Unit) } - private var _lastAwayMessage: Int = 0 set(value) { field = value hasChangedNotification.onNext(Unit) } - private var _whoisServiceReply: String = "" set(value) { field = value hasChangedNotification.onNext(Unit) } - private var _suserHost: String = "" set(value) { field = value hasChangedNotification.onNext(Unit) } - private var _encrypted: Boolean = false set(value) { field = value hasChangedNotification.onNext(Unit) } - private var _channels: MutableSet<IrcChannel> = mutableSetOf() - private var _userModes: String = "" set(value) { field = value hasChangedNotification.onNext(Unit) } - private var _network: Network = network private var _codecForEncoding: Charset? = null private var _codecForDecoding: Charset? = null @@ -361,4 +346,3 @@ class IrcUser( val NULL = IrcUser("", Network.NULL, SignalProxy.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 6e771258a..16d50a6f2 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 @@ -550,7 +550,6 @@ class Network constructor( * * @param useCustomRate If true, use custom rate limits, otherwise use Quassel defaults. */ - override fun setUseCustomMessageRate(useCustomRate: Boolean) { if (_useCustomMessageRate == useCustomRate) return diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/NetworkConfig.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/NetworkConfig.kt index 2332cef6b..65b5d0771 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/NetworkConfig.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/NetworkConfig.kt @@ -15,7 +15,6 @@ class NetworkConfig constructor( } override fun toVariantMap() = initProperties() - override fun fromVariantMap(properties: QVariantMap) { initSetProperties(properties) } diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/ISyncableObject.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/ISyncableObject.kt index aa7fe2473..3c5576843 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/ISyncableObject.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/ISyncableObject.kt @@ -28,13 +28,13 @@ interface ISyncableObject { fun toVariantMap(): QVariantMap = emptyMap() } -/*inline*/ fun ISyncableObject.SYNC(function: String, vararg arg: QVariant_) { +inline fun ISyncableObject.SYNC(function: String, vararg arg: QVariant_) { // Don’t transmit calls back that we just got from the network if (initialized && proxy.shouldSync(className, objectName, function)) proxy.callSync(className, objectName, function, arg.toList()) } -/*inline*/ fun ISyncableObject.REQUEST(function: String, vararg arg: QVariant_) { +inline fun ISyncableObject.REQUEST(function: String, vararg arg: QVariant_) { // Don’t transmit calls back that we just got from the network if (initialized && proxy.shouldSync(className, objectName, function)) proxy.callSync(className, objectName, function, arg.toList()) diff --git a/lib/src/main/java/de/kuschku/libquassel/session/CoreConnection.kt b/lib/src/main/java/de/kuschku/libquassel/session/CoreConnection.kt index 5b22f88e9..69b4dd3b0 100644 --- a/lib/src/main/java/de/kuschku/libquassel/session/CoreConnection.kt +++ b/lib/src/main/java/de/kuschku/libquassel/session/CoreConnection.kt @@ -124,6 +124,7 @@ class CoreConnection( override fun close() { try { setState(ConnectionState.CLOSED) + interrupt() } catch (e: Throwable) { log(WARN, TAG, "Error encountered while closing connection", e) } diff --git a/lib/src/main/java/de/kuschku/libquassel/session/Features.kt b/lib/src/main/java/de/kuschku/libquassel/session/Features.kt index ec68eac89..e8a1d04b0 100644 --- a/lib/src/main/java/de/kuschku/libquassel/session/Features.kt +++ b/lib/src/main/java/de/kuschku/libquassel/session/Features.kt @@ -11,4 +11,4 @@ data class Features( core.enabledFeatures intersect client.enabledFeatures, core.unknownFeatures union client.unknownFeatures ) -} \ No newline at end of file +} diff --git a/lib/src/main/java/de/kuschku/libquassel/session/ISession.kt b/lib/src/main/java/de/kuschku/libquassel/session/ISession.kt index d35de1f70..8e1762ebd 100644 --- a/lib/src/main/java/de/kuschku/libquassel/session/ISession.kt +++ b/lib/src/main/java/de/kuschku/libquassel/session/ISession.kt @@ -35,9 +35,7 @@ interface ISession : Closeable { val initStatus: Observable<Pair<Int, Int>> val proxy: SignalProxy - val error: Flowable<HandshakeMessage> - val lag: Observable<Long> fun login(user: String, pass: String) @@ -70,7 +68,6 @@ interface ISession : Closeable { override val lag: Observable<Long> = Observable.just(0L) override fun login(user: String, pass: String) = Unit - override fun close() = Unit } } diff --git a/lib/src/main/java/de/kuschku/libquassel/session/ProtocolHandler.kt b/lib/src/main/java/de/kuschku/libquassel/session/ProtocolHandler.kt index d6b239c38..f10d766b9 100644 --- a/lib/src/main/java/de/kuschku/libquassel/session/ProtocolHandler.kt +++ b/lib/src/main/java/de/kuschku/libquassel/session/ProtocolHandler.kt @@ -15,12 +15,10 @@ import java.io.Closeable @Suppress("LeakingThis") abstract class ProtocolHandler( - protected val exceptionHandler: (Throwable) -> Unit + private val exceptionHandler: (Throwable) -> Unit ) : SignalProxy, AuthHandler, Closeable { protected var closed = false - - private val objectStorage: ObjectStorage = ObjectStorage(this) - + protected abstract val objectStorage: ObjectStorage protected open var rpcHandler: RpcHandler? = null private val toInit = mutableMapOf<ISyncableObject, MutableList<SignalProxyMessage.SyncMessage>>() diff --git a/lib/src/main/java/de/kuschku/libquassel/session/Session.kt b/lib/src/main/java/de/kuschku/libquassel/session/Session.kt index ec0bb88ee..293c1f94a 100644 --- a/lib/src/main/java/de/kuschku/libquassel/session/Session.kt +++ b/lib/src/main/java/de/kuschku/libquassel/session/Session.kt @@ -24,6 +24,7 @@ class Session( val disconnectFromCore: () -> Unit, exceptionHandler: (Throwable) -> Unit ) : ProtocolHandler(exceptionHandler), ISession { + override val objectStorage: ObjectStorage = ObjectStorage(this) override val proxy: SignalProxy = this override val features = Features(clientData.clientFeatures, QuasselFeatures.empty()) @@ -41,7 +42,7 @@ class Session( override val aliasManager = AliasManager(this) override val backlogManager = BacklogManager(this, backlogStorage) override val bufferViewManager = BufferViewManager(this) - override val bufferSyncer = BufferSyncer(this, this) + override val bufferSyncer = BufferSyncer(this) override val certManagers = mutableMapOf<IdentityId, CertManager>() override val coreInfo = CoreInfo(this) override val dccConfig = DccConfig(this) @@ -210,7 +211,6 @@ class Session( override fun dispatch(message: SignalProxyMessage) { if (closed) return - coreConnection.dispatch(message) } diff --git a/lib/src/main/java/de/kuschku/libquassel/util/CRCUtils.kt b/lib/src/main/java/de/kuschku/libquassel/util/CRCUtils.kt index 998c248ad..aca8f7281 100644 --- a/lib/src/main/java/de/kuschku/libquassel/util/CRCUtils.kt +++ b/lib/src/main/java/de/kuschku/libquassel/util/CRCUtils.kt @@ -41,4 +41,4 @@ object CRCUtils { } return crcout } -} \ No newline at end of file +} diff --git a/lib/src/main/java/de/kuschku/libquassel/util/IrcUserUtils.kt b/lib/src/main/java/de/kuschku/libquassel/util/IrcUserUtils.kt index a2bf8f950..668b1462e 100644 --- a/lib/src/main/java/de/kuschku/libquassel/util/IrcUserUtils.kt +++ b/lib/src/main/java/de/kuschku/libquassel/util/IrcUserUtils.kt @@ -54,4 +54,4 @@ object IrcUserUtils { else lastIndex } -} \ No newline at end of file +} diff --git a/lib/src/main/java/de/kuschku/libquassel/util/flag/LongFlag.kt b/lib/src/main/java/de/kuschku/libquassel/util/flag/LongFlag.kt index 9081e1eef..fb5279105 100644 --- a/lib/src/main/java/de/kuschku/libquassel/util/flag/LongFlag.kt +++ b/lib/src/main/java/de/kuschku/libquassel/util/flag/LongFlag.kt @@ -126,4 +126,4 @@ infix operator fun <T> LongFlags<T>.minus(other: LongFlags<T>): LongFlags<T> infix fun <T> LongFlags<T>.unset(which: T): LongFlags<T> where T : Enum<T>, T : LongFlag<T> = LongFlags( - value xor which.bit) \ No newline at end of file + value xor which.bit) diff --git a/lib/src/main/java/de/kuschku/libquassel/util/flag/ShortFlag.kt b/lib/src/main/java/de/kuschku/libquassel/util/flag/ShortFlag.kt index 2ef747380..b7e4baed3 100644 --- a/lib/src/main/java/de/kuschku/libquassel/util/flag/ShortFlag.kt +++ b/lib/src/main/java/de/kuschku/libquassel/util/flag/ShortFlag.kt @@ -131,4 +131,4 @@ infix operator fun <T> ShortFlags<T>.minus(other: ShortFlags<T>): ShortFlags<T> infix fun <T> ShortFlags<T>.unset(which: T): ShortFlags<T> where T : Enum<T>, T : ShortFlag<T> = ShortFlags( - value xor which.bit) \ No newline at end of file + value xor which.bit) diff --git a/lib/src/main/java/de/kuschku/libquassel/util/helpers/MathHelper.kt b/lib/src/main/java/de/kuschku/libquassel/util/helpers/MathHelper.kt index 2335af048..86bff28e0 100644 --- a/lib/src/main/java/de/kuschku/libquassel/util/helpers/MathHelper.kt +++ b/lib/src/main/java/de/kuschku/libquassel/util/helpers/MathHelper.kt @@ -1,4 +1,4 @@ inline fun Int.clamp(lowerBound: Int, upperBound: Int): Int = maxOf(lowerBound, minOf(this, upperBound)) -inline fun Int.clamp(range: IntRange): Int = clamp(range.start, range.last) \ No newline at end of file +inline fun Int.clamp(range: IntRange): Int = clamp(range.start, range.last) diff --git a/lib/src/main/java/de/kuschku/libquassel/util/irc/IrcCaseMappers.kt b/lib/src/main/java/de/kuschku/libquassel/util/irc/IrcCaseMappers.kt index 037c61829..ab217dade 100644 --- a/lib/src/main/java/de/kuschku/libquassel/util/irc/IrcCaseMappers.kt +++ b/lib/src/main/java/de/kuschku/libquassel/util/irc/IrcCaseMappers.kt @@ -8,11 +8,11 @@ object IrcCaseMappers { interface IrcCaseMapper { fun equalsIgnoreCase(a: String, b: String): Boolean - fun equalsIgnoreCaseNullable(a: String?, b: String?) = when { + fun equalsIgnoreCaseNullable(a: String?, b: String?) = when { a === null && b === null -> true - a === null -> false - b === null -> false - else -> this.equalsIgnoreCase(a, b) + a === null -> false + b === null -> false + else -> this.equalsIgnoreCase(a, b) } fun toLowerCase(value: String): String diff --git a/lib/src/main/java/de/kuschku/libquassel/util/nio/ChainedByteBuffer.kt b/lib/src/main/java/de/kuschku/libquassel/util/nio/ChainedByteBuffer.kt index 26fe1d2d9..77916e146 100644 --- a/lib/src/main/java/de/kuschku/libquassel/util/nio/ChainedByteBuffer.kt +++ b/lib/src/main/java/de/kuschku/libquassel/util/nio/ChainedByteBuffer.kt @@ -4,7 +4,6 @@ import java.nio.ByteBuffer import java.nio.channels.WritableByteChannel import java.util.* - class ChainedByteBuffer(private val bufferSize: Int = 1024, private val direct: Boolean = false) { private val bufferList: MutableList<ByteBuffer> = ArrayList() diff --git a/lib/src/main/java/de/kuschku/libquassel/util/nio/WrappedChannel.kt b/lib/src/main/java/de/kuschku/libquassel/util/nio/WrappedChannel.kt index 50fefbed5..558603f36 100644 --- a/lib/src/main/java/de/kuschku/libquassel/util/nio/WrappedChannel.kt +++ b/lib/src/main/java/de/kuschku/libquassel/util/nio/WrappedChannel.kt @@ -20,7 +20,6 @@ import javax.net.ssl.SSLContext import javax.net.ssl.SSLSocket import javax.net.ssl.X509TrustManager - class WrappedChannel( private val socket: Socket, private var rawInStream: InputStream? = null, diff --git a/lib/src/test/java/de/kuschku/libquassel/ConnectionUnitTest.kt b/lib/src/test/java/de/kuschku/libquassel/ConnectionUnitTest.kt index a1292b3b6..f157fca99 100644 --- a/lib/src/test/java/de/kuschku/libquassel/ConnectionUnitTest.kt +++ b/lib/src/test/java/de/kuschku/libquassel/ConnectionUnitTest.kt @@ -3,7 +3,6 @@ package de.kuschku.libquassel import de.kuschku.libquassel.protocol.* import de.kuschku.libquassel.quassel.ProtocolFeature import de.kuschku.libquassel.quassel.QuasselFeatures -import de.kuschku.libquassel.quassel.syncables.interfaces.INetwork import de.kuschku.libquassel.session.BacklogStorage import de.kuschku.libquassel.session.ConnectionState import de.kuschku.libquassel.session.Session @@ -32,6 +31,7 @@ class ConnectionUnitTest { } private fun runTest(host: String, port: Int, user: String, pass: String) { + val start = System.currentTimeMillis() val session = Session( ClientData( identifier = "libquassel test", @@ -61,16 +61,9 @@ class ConnectionUnitTest { }, user to pass, {}, {}) session.state.subscribe { if (it == ConnectionState.CONNECTED) { - session.rpcHandler?.createNetwork(INetwork.NetworkInfo( - networkName = "QuakeNet", - identity = session.identities.values.firstOrNull()?.id()!!, - serverList = listOf( - INetwork.Server( - host = "irc.quakenet.org", - port = 6667 - ) - ) - ), emptyList()) + val end = System.currentTimeMillis() + println("Connection took ${0.001 * (end - start)} seconds") + session.close() } } session.join() diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/util/helper/LiveDataHelper.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/util/helper/LiveDataHelper.kt index 45f74e097..23049fc82 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/util/helper/LiveDataHelper.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/util/helper/LiveDataHelper.kt @@ -144,4 +144,4 @@ inline operator fun <T> LiveData<T>.invoke() = value inline operator fun <T, U> LiveData<T?>.invoke(f: (T) -> U?) = value?.let(f) -inline fun <T, U> LiveData<T>.let(f: (T) -> U?) = value?.let(f) \ No newline at end of file +inline fun <T, U> LiveData<T>.let(f: (T) -> U?) = value?.let(f) diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/util/helper/LiveDataZipHelper.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/util/helper/LiveDataZipHelper.kt index 192049fc9..83d3faa30 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/util/helper/LiveDataZipHelper.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/util/helper/LiveDataZipHelper.kt @@ -15,7 +15,6 @@ * 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.util.helper import android.arch.lifecycle.LiveData @@ -104,4 +103,4 @@ fun <A, B> LiveData<A>.zip(b: LiveData<B>): LiveData<Pair<A, B>> = */ fun <A, B, C> LiveData<A>.zip(b: LiveData<B>, c: LiveData<C>): LiveData<Triple<A, B, C>> = - zipLiveData(this, b, c) \ No newline at end of file + zipLiveData(this, b, c) diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferHiddenState.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferHiddenState.kt index c4a11b6ee..59672d921 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferHiddenState.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferHiddenState.kt @@ -5,4 +5,3 @@ enum class BufferHiddenState { HIDDEN_TEMPORARY, HIDDEN_PERMANENT } - diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferListItem.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferListItem.kt index 76f60e254..47499580b 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferListItem.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferListItem.kt @@ -3,4 +3,4 @@ package de.kuschku.quasseldroid.viewmodel.data data class BufferListItem( val props: BufferProps, val state: BufferState -) \ No newline at end of file +) 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 ccc6258dc..73d381b55 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 @@ -16,4 +16,4 @@ data class BufferProps( BufferInfo.Activity.NoActivity ), val hiddenState: BufferHiddenState -) \ No newline at end of file +) diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferState.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferState.kt index b95936c90..ddb6a7583 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferState.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferState.kt @@ -3,4 +3,4 @@ package de.kuschku.quasseldroid.viewmodel.data data class BufferState( val networkExpanded: Boolean, val selected: Boolean -) \ No newline at end of file +) diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferStatus.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferStatus.kt index a586e1eb3..b8dcdcd22 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferStatus.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferStatus.kt @@ -4,4 +4,4 @@ enum class BufferStatus { ONLINE, AWAY, OFFLINE -} \ No newline at end of file +} diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/SelectedBufferItem.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/SelectedBufferItem.kt index 21daf1af6..951e2fd70 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/SelectedBufferItem.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/SelectedBufferItem.kt @@ -8,4 +8,4 @@ data class SelectedBufferItem( val connectionState: INetwork.ConnectionState = INetwork.ConnectionState.Disconnected, val joined: Boolean = false, val hiddenState: BufferHiddenState = BufferHiddenState.VISIBLE -) \ No newline at end of file +) -- GitLab