diff --git a/app/src/main/java/de/kuschku/quasseldroid/QuasselDroid.kt b/app/src/main/java/de/kuschku/quasseldroid/QuasselDroid.kt
index 940023c90077a71153f54df7b0b3d91744da8aec..0d02ed87e2d1c0007eeb7f80896b9925d3ca46b4 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 f8d97c2df1cba58db55272190d9c139aaea907a8..f41427b9f75c2bb87406f268ac494b2a1673450f 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 d0e026b041f672829aa8cfcc4e68cb1f03b52ee9..763581c71c1bc6430c05213e310fc6c31c9d2585 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 f13fa558c8937b3113c4319c66d152fafbca93f9..442e59f37fe4997d7c2014436af6b0e52ed1b925 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 7fe62188d295505e5454b862209efa323dbaceaf..f49bc646e3056b316c92224125b09a6a70172e97 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 55a128e4404ab73a99fea5c127865d23dad4cf5d..a7b8355e2d80ee4c4080190a7d9884879119a116 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 68b945534e370b7f0273adc5dcb8e5a93961df67..044af32ac33dedf42851ee987b3f72119dcf1229 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 271f9c5cf8b71b0310eb94bd3ddcdf6d70805d6e..89cda2853a29d509ea03ba67638dd9234276c2d1 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 a4b20a53f0ec497384e4fd26b412be9176d8ea87..f0dcff4b0c376b0a176e39dc6af3ebd8312a8adb 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 8904d4ae1e909a1ffdb7704ad3459c4f33dd92ab..e61e558173b4a006349c64a8d7cc8d2deba1ee77 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 255e89229bc0da9f5e763613f9743eb0b96eeb12..3c28394720beb6098c6c6a8ca383f401d38962ee 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 68a1653c3c8547d11d5cfb64f40c68b14f3de512..f2537f1d15f0d21ec855ca062e5a3dc71fb7cfa7 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 6e53f1c924d2c560f83ce4fd353ecb1cc72f6d5e..b4e9e903ec14fdf9811b5255e672eb34e9944d13 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 f4c95212b34b69cc19c3e4138492ed3ce8197e1c..6a6be7434374a8fd244d1bb9d9e0e50d2504f1ad 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 3a34a3bc71cc9bf05aaa572c5d697c1d78ddc2a6..58b09710ee0ea7c4dad5cef808b2ead1ff1a19a7 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 3bfae2fa0befbc0067874fe99bfd7e403030f0cd..68408c557cb4cdb1d45c7e821b9c9aff89492a3d 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 7d3c08cd858fb523fa0c40270fec8d6f0ffc087e..bf935c2e649771db246373d467e47f79d7c36aad 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 29251635e7136978237b8971c1a3b306122eecdd..87c2b85f9460b781de15b34b73726f12ed3f22f7 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 d90d86e1c772914eee90af71217b5e8279f9a6ee..78bf7e6e28792dc1050219e34789b6451bcbe552 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 a5a3e7dfbbcb54437dc0d5de4d67baeb600446d6..9949b05bee03953bb07086fca0f424cf1b25b64a 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 21debd0ec63aa6b3527974bb9b4b6fcaee7235e3..1d63953b0ef82454b57697d838f3752fd43bbdf8 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 29e4db909c3685f22fb55c0629d030d1302fe41d..4a8077a14859f4ee2c2b1509d506e4bc5c599906 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 7981dc1f0808fa666ddc8a2246126fc63adfb070..1a0bb25ffb276d1e488d2fe57de8f07cf7a0d7c6 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 1c005598fa311b93ff02756790d158cb17b4edf4..237399cb3d49541ed1f54c96d5b5db9b7a05a73b 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 6c6ee0acca84ec803013cfd8645abdaddc516a19..eccdfb17b3ddb01a61cdcb8e02f20dd2cd913dc9 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 7d7c78eab97d8d01402d09d60d1d2e3545445e2b..8c54633c485599dd369b48038b4a06fa2fdcfaa3 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 0e9cfb75eca1460c1cbb67d236575f1c24a8a9d9..a13da28238986d931b7afedd5c1ab1ef74caa5a7 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 86cc6cff6a368e3d45326cbf36a88833ef2adc47..c1f2900461f7fede0f265423e213be0c11598667 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 2b0e5768aeeff6dab8ebdc5c9a75b6ffa89b7380..3892a6474f2004e61dd02c489943a555304bf864 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 939c36527458cf2dd7c865d294855e431c8e388b..7eba4efe0bc21647ee544774d72453d4a4af1162 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 ac181272004ece8b1f5fbd4d566b164a5dc51d24..ee58586636303782365f08db935b74150257ced3 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 d964fcfd37c3960ba219035964bbf9995505a70f..84f18336a6413f111e9287b5b1199f64c9779d1a 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 2a36ed6f67bf0e400362f661a40d348daf9fd94f..f32d01c1e16ec9e45aa5c7988432b4359ae6fa19 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 c70c42f331afb608cd1c00b512b03cecdb07864c..ec292d7ef1e1856dc494787a1ea7d6a5ea2c5b5f 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 ec80b42bdb2ccae459d9c56f52ea04ffbd573438..724f719e4e81d4cf17c9e8a6e4dadc05fdc991c4 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 d7a0bfde0d57cb9e8d579e645ca640fd64fcaed0..cdaef171b68710003aa26154c42dc01d73e6f16e 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 c95903662c1f861a896e74ae45178a4466fad350..4ba215fcd61f5ef8bf18194e380c919a1929febc 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 b86e2ee1677396a1745032bdb98a74cbf31b345a..c8ba877ace2ce861af82a5ad6ff61b6f5e8a741f 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 21eec1e61a77a38135caab9a3827312bf8e46a91..58762ec9d227bebc26609bb7a9de1b613eb264cf 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 a30682a3097a4cac3aadc6103680dda1699afc48..59712d6a8e5170f5983a6c12b6f487c0c03ad357 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 2340022027e55dde024f2a50b29c0696162e63b3..0af5ac7f57290f0aebff1e4a079f257cc0750c87 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 80d697bef075f1f5e537acd767284270b44197d9..2b1cb447307b7b25b1fb1297aad3959314abb7ee 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 e8c697a08a0dbc0dd8a24288cbba4fa5e000a52c..41019cd2d79cc37c4ae5c85760ecd6a3e11c7721 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 f697f8a9363a27c6b95b1af6d2461c40e28b214e..cf6c9aa4bd9debb819afaa9022ec26dd27711198 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 378884151c04c7a62e97868ebd0911d91139ab28..adb22bf5dbb3b7e975cf1e726d2c70db77dc9248 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 02d965a96647d78465324e7e0d94ee808b844d9e..e557b7c608d3b5564ca37fc9c94bf7bb611eb7e1 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 4953c9c774688eda3f16b54e6dc0f719b478d663..c7739dac31adce549eba78904e3cd845767099a1 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 670bb67b6dfc264c9c6c3332aa37547044f3831c..0ca13008f68103ab5add9c1987eeb1f3adb01e80 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 bd29c83f403db0de2a4329b14634ac1bdc55300a..327b82803d7f488f0e8eec14b60850f294bb805c 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 e21728510d4cb3f532632a247684b67366070dcd..8224efecc097acf6c2ccddb6155232e505997432 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 c949a544c263174985a8da3d4955aacc790b6b1d..afccc5d1627be0735750ac987344cb0eced0fe92 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 69da950e26f51bfea8370b2812722a3481bee054..85dd63f9bf231db06f4c3ae332cfa00c10b929cb 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 1e7087a50f4b0762e5180eecd8735608e1850d9d..09c79d9a86e99ed9d76c1d563ebdb6764cbeec86 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 091db6ab6323daf85c25ed75070b8f910c8b73df..a3513baf10d4d4c2a8f32dff5841449dbc6c484e 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 3da80f703d0f14d896a2239580330c50d760eff8..01c9b848c6bab72067501fd9fdb687b72bc0f798 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 8bb2713f0c827421c22f51e15a369a9959fa17b4..bccc72ecfd8f79fbed94b7ffa191dbf145251c06 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 b027f9d65595b6620ca3f78737012f7dee9b712b..bcd39daaeeac2aa76ffa8719971347c252d463a5 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 90047347c1ccb41d250f90de710b707b944fc151..c993462c2c6b2ea4c1324e73229a652256911ac3 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 e8842c408be5679e61385e75da261fa269decc1d..4bacbb234002215c85a73c46ca2106b78597e465 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 c760c8a60e4694b663f56751f63ce197696748a4..310f9f8ec47cfe7b937e93199f03dc9b807e66e1 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 69c46737144e39900de5d053726d4e5393f30245..3d2b73091fcebdc234dc24b11b44d0ebaa5b0ea3 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 fc62e431eb013fa6519c3e0cb6d91d550dda9763..e4b3ab54fce8141733e02af2b48b9cd7c17b3e97 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 0000000000000000000000000000000000000000..8c814bb1017953ae763d36c9c955b81329e039bb
--- /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 47e7447e3c93d7cafeba95c87dd346eeb17aed5e..aaa7306ac0583c92d3451fbbd3eb49626d0fe175 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 32a4c0e5b6fd229a88eed0eab774a0d7a47d6d1f..eeb22f6b32f5e3c5e366c79f84cefd2c34ed5f78 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 6d107d6f5ea6d515ae59a883ec7e8043ecb5cf8f..ee771dcb5d001e64ce5e9f52249e0e43f5e29532 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 aff438caa67c1edfb0346a1a91c60ac9b8f2290b..211c5f64077be7897f94200d83b7029fc0533f8f 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 c5f2724c668f53bd5244ee005e47a83743992f30..abb9842a053d980a6ea3f5017e444d1ab1398c5a 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 7c68c06c61c2f4eff419e48d4bd45095a5f70fb5..5bc19c0130e08dfae83c53d8fda26bb3b8f80cea 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 ea59e13db98b45458492893aac7480302ba94abb..e6957ebd525bd9a7a780e657136da724faf8f5b3 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 2fbed102af8580439342aef1091bcbc75927ad36..15ee758d74197754502810baf2d11ab2db6d03b8 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 0007abab4f83c1e3e9c42e6076ab8be9ac499ba2..9851180c7a128eed6b1dcf3d947f639ff93c4ec8 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 2e82c52716bc3a8700bff4e0afdd706d2146f8e4..6a5ab0c6f2b3b1b47b35b2b052a481fdb3a9a19c 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 6856596c424be0f48843c66e5f615229f25d6d4b..36141fd17da0511996c8d1fb80526ac9c65a1e41 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 3732bd81194b69c5f2eab09222ce78d2033183f6..53a3997c5b72ce5afdb883d996915580cd60c2d9 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 003cf1c4be6a67bdcbe8aa28e2fcde004fd1c3dd..390d097d354544156bdd63e5ed8256973cce04a0 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 86ac9b86f203dfce42f7dbc0225c30550efea83d..06d18039d13b3d65a889ad88fa1ae09e43971f10 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 769d36af7ab82afcebb059639263fd50160c2882..e92c0e0b550a9a6d2131bb9a1498ce492a9c6dfc 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 a2c9119a7322e0081dddc102cebb351bd7a2e92a..26746aeaa062e4ca8c74daf777685b45e4f41b86 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 806b41a630ddcbe8a2bf28128e0b478ca1f96e00..8a58329139d61a4df528920c169b21f06c198982 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 8018c79d71ef38a28b2a0de817900589f7e9ce75..97e074021af2e95d8c99d7f967b356b10a4a9919 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 44a70bef0cad4550792567facc82154320451dc6..9c293a96e10e97e6f121efb4c5a15b7d220f547b 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 de9c099f96cdf95c449274722c75cb98cd828533..203a1522596f64df3bc8c166b71be52025e4b4b6 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 965f4905bf47e19be8b2912390a4d992b58c84e1..9a8b2b6e729424f07409d7553f8183b5433c6639 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 e4fd7384fbc3ef6492e0f717c90028963c0497d2..aba33f2386a84103cb0fea81cea296460691af8f 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 93f36ceee12c19ba4dca07973389e68626ab83c8..f3032a1b3790e468488ba28cb8cec937f4d78c0a 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 737c474657705750f8d282f3de2e6e0ac7985eca..5970900228549a08de866ed6b6ef16d90bb1d400 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 fc168007dfd5e1a843549dbde838e571fcd52db9..8ce519c61efe272135733c148cd7b3152b46d04a 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 6e771258a6410ce04156a2addf38e617b137d81f..16d50a6f2b658b80f6db940a846d42fbb258f357 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 2332cef6bd825fe287259f5087e1cf9f04a286bd..65b5d0771300ff419ed8aac76e33d78e4da3a652 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 aa7fe24736825fee162689dba2a2c46321d2988c..3c557684324a3d5a21bff236b323700cdbc65645 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 5b22f88e98f9a5e55ea12dc23eafb69855898c7b..69b4dd3b0888da4c344b055788159359c0ca4bc9 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 ec68eac89a6d2745b8cefddb42d18195542b59bd..e8a1d04b04dda0e5c4f2bb6f627b7f39a7d9727e 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 d35de1f701827863abd7a37459ebd68688980650..8e1762ebd75344f9ac58ff0267d653b25cf6794e 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 d6b239c3808d8f5f36cb76b5851a5f17d36cb9bd..f10d766b9941a905704e3891ea093aab12e3ed28 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 ec0bb88eeea9c584eda08a7a37996da75b1da420..293c1f94a047c3ed13ceb3925e3ab1aed754d9b7 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 998c248ad26569b0bbee84f096afd0c547257bdc..aca8f72813cc47762ba427df9a28951508441edc 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 a2bf8f95035ed4afdec901728878974b4c6fb422..668b1462e744a4e22121a6f50bbbea2abd0e7510 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 9081e1eefbf724c16fc46d916edf302467d37ffa..fb527910539515fb99b890215f75b60e4d55d657 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 2ef747380e153b7c484b906dd7dbb518db8fd221..b7e4baed3d0ac9c9d414009407d2966c96358711 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 2335af048431608733b4229411a87f47ffdf3623..86bff28e074b831c63ba2f84191b14b120037962 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 037c618298d5ddcd54fb6e4b6a6940522cbb9606..ab217dade20821cac2fb91ca0548e8cedd6c09cc 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 26fe1d2d93cfc310f58efbcb0a145aca83f5876d..77916e146bed878d9d48802af5825e940e7e7000 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 50fefbed5a73c755b0f038e7b8360b537f380df2..558603f3670193d19bf388138684f820cb51f251 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 a1292b3b6dce4bb2f0bee608e7bf7589bd5c7e18..f157fca99a1f83ee377daa51c4adc3e68d980dd2 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 45f74e097ca1cf67ad204566fe9a94d1a858a84a..23049fc82dd573838db8984aaaac003fb969d808 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 192049fc96e26e89a65337c8d1482db4fef9cb01..83d3faa304b014ec220276a2733ba62398a5b44b 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 c4a11b6ee4d1f5e7d01d5ac3a527b8de20e2a407..59672d921c2dd07ccbf430a3b956853836107891 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 76f60e254e517ef84d1d2834faf3c6ddb1144574..47499580bca5024f8ffed53ee4bad97ef4d195c5 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 ccc6258dc60e697bfca911c3f6fc7ca1113d01f0..73d381b558ba4db0236ba5b146de9b7ce344bf5e 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 b95936c90fedcfd0d5dff8cf5572e9b67b52fd26..ddb6a7583eb273a2ea884b6ecd22587822d2e072 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 a586e1eb3937a25e50cb95c4c12e3ebe983cb1c5..b8dcdcd22c643ecfe2d6d45921aba8e875b238cf 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 21daf1af69cff7cecae1b5ea71b5a2361f4d1c6a..951e2fd7026242bcac800c8afaf3f705a0cbbd02 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
+)