diff --git a/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityBaseModule.kt b/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityBaseModule.kt
new file mode 100644
index 0000000000000000000000000000000000000000..44e5bbead722e1c15cab6cdf3c10709312349d18
--- /dev/null
+++ b/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityBaseModule.kt
@@ -0,0 +1,37 @@
+package de.kuschku.quasseldroid.dagger
+
+import android.arch.lifecycle.ViewModelProvider
+import android.arch.lifecycle.ViewModelProviders
+import android.content.Context
+import android.support.v4.app.FragmentActivity
+import dagger.Module
+import dagger.Provides
+import de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountViewModel
+import de.kuschku.quasseldroid.viewmodel.EditorViewModel
+import de.kuschku.quasseldroid.viewmodel.QuasselViewModel
+
+@Module
+object ActivityBaseModule {
+  @Provides
+  @JvmStatic
+  fun bindContext(activity: FragmentActivity): Context = activity
+
+  @Provides
+  @JvmStatic
+  fun provideViewModelProvider(activity: FragmentActivity) = ViewModelProviders.of(activity)
+
+  @Provides
+  @JvmStatic
+  fun provideQuasselViewModel(viewModelProvider: ViewModelProvider) =
+    viewModelProvider[QuasselViewModel::class.java]
+
+  @Provides
+  @JvmStatic
+  fun provideAccountViewModel(viewModelProvider: ViewModelProvider) =
+    viewModelProvider[AccountViewModel::class.java]
+
+  @Provides
+  @JvmStatic
+  fun provideEditorViewModel(viewModelProvider: ViewModelProvider) =
+    viewModelProvider[EditorViewModel::class.java]
+}
diff --git a/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt b/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt
index daef1c0e8cab1a0558b97f4e3ceddc6ac0e3b6ce..9b59628b8da091e5a42e73118fc5d6e51e65722d 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt
@@ -85,111 +85,111 @@ import de.kuschku.quasseldroid.ui.setup.accounts.setup.AccountSetupFragmentProvi
 @Module
 abstract class ActivityModule {
   @ActivityScope
-  @ContributesAndroidInjector(modules = [ChatActivityModule::class, ChatFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [ChatActivityModule::class, ChatFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindChatActivity(): ChatActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [UserInfoFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [UserInfoFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindUserInfoActivity(): UserInfoActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [ChannelInfoFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [ChannelInfoFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindChannelInfoActivity(): ChannelInfoActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [TopicFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [TopicFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindTopicActivity(): TopicActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [ClientSettingsFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [ClientSettingsFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindClientSettingsActivity(): ClientSettingsActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [WhitelistFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [WhitelistFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindWhitelistActivity(): WhitelistActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [CrashFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [CrashFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindCrashActivity(): CrashActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [AboutFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [AboutFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindAboutActivity(): AboutActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [LicenseFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [LicenseFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindLicenseActivity(): LicenseActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [CoreSettingsFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [CoreSettingsFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindCoreSettingsActivity(): CoreSettingsActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [NetworkCreateFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [NetworkCreateFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindNetworkCreateActivity(): NetworkCreateActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [NetworkEditFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [NetworkEditFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindNetworkEditActivity(): NetworkEditActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [NetworkServerFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [NetworkServerFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindNetworkServerActivity(): NetworkServerActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [IdentityCreateFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [IdentityCreateFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindIdentityCreateActivity(): IdentityCreateActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [IdentityEditFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [IdentityEditFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindIdentityEditActivity(): IdentityEditActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [ChatlistCreateFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [ChatlistCreateFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindChatListCreateActivity(): ChatlistCreateActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [ChatlistEditFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [ChatlistEditFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindChatListEditActivity(): ChatlistEditActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [IgnoreListFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [IgnoreListFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindIgnoreListActivity(): IgnoreListActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [IgnoreItemFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [IgnoreItemFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindIgnoreItemActivity(): IgnoreItemActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [HighlightListFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [HighlightListFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindHighlightListActivity(): HighlightListActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [HighlightRuleFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [HighlightRuleFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindHighlightRuleActivity(): HighlightRuleActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [AliasListFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [AliasListFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindAliasListActivity(): AliasListActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [AliasItemFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [AliasItemFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindAliasItemActivity(): AliasItemActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [NetworkConfigFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [NetworkConfigFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindNetworkConfigActivity(): NetworkConfigActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [AccountSetupFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [AccountSetupFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindAccountSetupActivity(): AccountSetupActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [AccountSelectionFragmentProvider::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [AccountSelectionFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindAccountSelectionActivity(): AccountSelectionActivity
 
   @ActivityScope
-  @ContributesAndroidInjector(modules = [AccountEditModule::class, SettingsModule::class, DatabaseModule::class])
+  @ContributesAndroidInjector(modules = [AccountEditModule::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class])
   abstract fun bindAccountEditActivity(): AccountEditActivity
 
   @ActivityScope
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatFragmentProvider.kt
index 35d091d905a5d077d363dfcd4536d99b7881b340..ce591728a52bef0c556640269f563631fd6bd2a0 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.chat
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -34,7 +34,7 @@ import de.kuschku.quasseldroid.ui.chat.nicks.NickListFragment
 @Module
 abstract class ChatFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: ChatActivity): Context
+  abstract fun bindFragmentActivity(activity: ChatActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindBufferViewConfigFragment(): BufferViewConfigFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoFragmentProvider.kt
index ee329dbb97cb6458fe9a3ef612170f2c04122224..876d1c6b6e96007f94e26c811dfdd47fe026d86c 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.chat.info.channel
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class ChannelInfoFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: ChannelInfoActivity): Context
+  abstract fun bindFragmentActivity(activity: ChannelInfoActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindChannelInfoFragment(): ChannelInfoFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/user/UserInfoFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/user/UserInfoFragmentProvider.kt
index 06167bc89cef4b94df31c6926600d1634ba8ef62..225171f124ed5f833da1020cbdf989c6f2a3befc 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/user/UserInfoFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/user/UserInfoFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.chat.info.user
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class UserInfoFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: UserInfoActivity): Context
+  abstract fun bindFragmentActivity(activity: UserInfoActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindUserInfoFragment(): UserInfoFragment
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 b9f56f829ae5215814729c60612b675a9d504fa0..9e2eaae8c9e8f25fd6ef22749cd3e2888792b548 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
@@ -23,7 +23,6 @@
 package de.kuschku.quasseldroid.ui.chat.input
 
 import android.arch.lifecycle.Observer
-import android.arch.lifecycle.ViewModelProviders
 import android.os.Bundle
 import android.support.v7.widget.AppCompatImageButton
 import android.support.v7.widget.DefaultItemAnimator
@@ -88,6 +87,9 @@ class ChatlineFragment : ServiceBoundFragment() {
   @Inject
   lateinit var autoCompleteAdapter: AutoCompleteAdapter
 
+  @Inject
+  lateinit var editorViewModel: EditorViewModel
+
   lateinit var editorHelper: EditorHelper
 
   lateinit var autoCompleteHelper: AutoCompleteHelper
@@ -107,7 +109,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)
 
     autoCompleteHelper = AutoCompleteHelper(
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragment.kt
index 4ae8faaa71852908c49eab261f520857fe9bd504..152acefcc2fbe8f54f376da03d18c93606287be2 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragment.kt
@@ -23,7 +23,6 @@
 package de.kuschku.quasseldroid.ui.chat.topic
 
 import android.arch.lifecycle.Observer
-import android.arch.lifecycle.ViewModelProviders
 import android.os.Bundle
 import android.support.v7.widget.DefaultItemAnimator
 import android.support.v7.widget.LinearLayoutManager
@@ -74,6 +73,9 @@ class TopicFragment : SettingsFragment(), SettingsFragment.Savable {
   @Inject
   lateinit var autoCompleteAdapter: AutoCompleteAdapter
 
+  @Inject
+  lateinit var editorViewModel: EditorViewModel
+
   private lateinit var editorHelper: EditorHelper
 
   override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
@@ -81,7 +83,6 @@ class TopicFragment : SettingsFragment(), SettingsFragment.Savable {
     val view = inflater.inflate(R.layout.fragment_topic, container, false)
     ButterKnife.bind(this, view)
 
-    val editorViewModel = ViewModelProviders.of(this).get(EditorViewModel::class.java)
     editorViewModel.quasselViewModel.onNext(viewModel)
 
     val autoCompleteHelper = AutoCompleteHelper(
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragmentProvider.kt
index aaa5c157c4425f1251cf16b92d499ae6db99af56..45d32d9ebf96aec401db8de95c2d40840587212d 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.chat.topic
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class TopicFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: TopicActivity): Context
+  abstract fun bindFragmentActivity(activity: TopicActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindTopicFragment(): TopicFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutFragmentProvider.kt
index 68f43c6818c0e8240b8cafcb420aa328e7692ef6..40f529ceddffbc0258e9b19abd7d4dddafc04852 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.clientsettings.about
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class AboutFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: AboutActivity): Context
+  abstract fun bindFragmentActivity(activity: AboutActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindAboutFragment(): AboutFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/client/ClientSettingsFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/client/ClientSettingsFragmentProvider.kt
index 674c9d72000745d5f966c59460953832af81805c..304b22e6223e49278d427e6d4550ccd341cb218d 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/client/ClientSettingsFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/client/ClientSettingsFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.clientsettings.client
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class ClientSettingsFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: ClientSettingsActivity): Context
+  abstract fun bindFragmentActivity(activity: ClientSettingsActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindClientSettingsFragment(): ClientSettingsFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashFragmentProvider.kt
index db045a545b1e4f52a6e654909d28cc3b58159df2..3be00ebb5bf950c338a2a43b10673be3c248a503 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.clientsettings.crash
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class CrashFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: CrashActivity): Context
+  abstract fun bindFragmentActivity(activity: CrashActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindClientSettingsFragment(): CrashFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/license/LicenseFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/license/LicenseFragmentProvider.kt
index f8107fb53a63304b2047d12690ab7dc3f8aed25a..14758b222cde8c6b533005e4d6f08fdf8272dc6d 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/license/LicenseFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/license/LicenseFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.clientsettings.license
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class LicenseFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: LicenseActivity): Context
+  abstract fun bindFragmentActivity(activity: LicenseActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindLicenseFragment(): LicenseFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/whitelist/WhitelistFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/whitelist/WhitelistFragmentProvider.kt
index 0f6f181bd2c122ec98e22903170b2b7787eef7cb..ef07f186ff23d075f2159261fc1d8118c3643af3 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/whitelist/WhitelistFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/whitelist/WhitelistFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.clientsettings.whitelist
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class WhitelistFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: WhitelistActivity): Context
+  abstract fun bindFragmentActivity(activity: WhitelistActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindWhitelistFragment(): WhitelistFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/CoreSettingsFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/CoreSettingsFragmentProvider.kt
index 000ac271c6d7b79bc12cc126bc7f1885c9d6b1ed..09bd1f71985335b0ce0b8366c3705ab8ef0246e9 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/CoreSettingsFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/CoreSettingsFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.coresettings
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class CoreSettingsFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: CoreSettingsActivity): Context
+  abstract fun bindFragmentActivity(activity: CoreSettingsActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindCoreSettingsFragment(): CoreSettingsFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragment.kt
index 253d2dc7ab493295ce076c6e7a44bec3580bf178..22b6499cd2330e5220cfb2c47ab0b7e07014dd3a 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragment.kt
@@ -23,7 +23,6 @@
 package de.kuschku.quasseldroid.ui.coresettings.aliasitem
 
 import android.app.Activity
-import android.arch.lifecycle.ViewModelProviders
 import android.content.Intent
 import android.os.Bundle
 import android.support.v7.widget.DefaultItemAnimator
@@ -80,6 +79,9 @@ class AliasItemFragment : SettingsFragment(), SettingsFragment.Savable,
   @Inject
   lateinit var autoCompleteAdapter: AutoCompleteAdapter
 
+  @Inject
+  lateinit var editorViewModel: EditorViewModel
+
   private lateinit var editorHelper: EditorHelper
 
   private var rule: IAliasManager.Alias? = null
@@ -94,7 +96,6 @@ class AliasItemFragment : SettingsFragment(), SettingsFragment.Savable,
       rule = it
     }
 
-    val editorViewModel = ViewModelProviders.of(this).get(EditorViewModel::class.java)
     editorViewModel.quasselViewModel.onNext(viewModel)
 
     val autoCompleteHelper = AutoCompleteHelper(
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragmentProvider.kt
index bfbeb036886b8ac545fc9ec2c1907ffcdb324bfa..c9c882f045a6abf40d97122aaa5c830c7e8bc2a5 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.coresettings.aliasitem
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class AliasItemFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: AliasItemActivity): Context
+  abstract fun bindFragmentActivity(activity: AliasItemActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindAliasItemFragment(): AliasItemFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListFragmentProvider.kt
index 129e7bdea92c3fd90d563337bb235d53d01462ba..100e7b34292c3fc3e106fcc2db4078628b2ac8b3 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.coresettings.aliaslist
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class AliasListFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: AliasListActivity): Context
+  abstract fun bindFragmentActivity(activity: AliasListActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindAliasListFragment(): AliasListFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatlistCreateFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatlistCreateFragmentProvider.kt
index a17d733b7079840b487466bb21dc3bc0dfb0e1d7..3c8aa28acc3025f5996c491eed0c0b751de8ac96 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatlistCreateFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatlistCreateFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.coresettings.chatlist
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class ChatlistCreateFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: ChatlistCreateActivity): Context
+  abstract fun bindFragmentActivity(activity: ChatlistCreateActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindChatListCreateFragment(): ChatListCreateFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatlistEditFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatlistEditFragmentProvider.kt
index c3c578ccb18ed5f8b1b88b71b240bf2b5d7eace4..938c3f195e13aefac3fcf2549f6662818c917d56 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatlistEditFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatlistEditFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.coresettings.chatlist
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class ChatlistEditFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: ChatlistEditActivity): Context
+  abstract fun bindFragmentActivity(activity: ChatlistEditActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindChatListEditFragment(): ChatListEditFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightlist/HighlightListFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightlist/HighlightListFragmentProvider.kt
index 9aeeec1e9a37e183dd3cdd2d559fd48f14144a85..685c3b0b4ace90d280b6d52b0731fd09670c70f6 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightlist/HighlightListFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightlist/HighlightListFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.coresettings.highlightlist
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class HighlightListFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: HighlightListActivity): Context
+  abstract fun bindFragmentActivity(activity: HighlightListActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindHighlightListFragment(): HighlightListFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragmentProvider.kt
index f051118dda2fd833a31c6865b03cc9521c56d74e..62db0e492ed6fb91bba7350427d5a470ab6bd522 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.coresettings.highlightrule
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class HighlightRuleFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: HighlightRuleActivity): Context
+  abstract fun bindFragmentActivity(activity: HighlightRuleActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindHighlightRuleFragment(): HighlightRuleFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityCreateFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityCreateFragmentProvider.kt
index a42c6ebd67ce958adbacef36e3091d4619e1922d..00695aca8544e5b0a3e7d885bca71abee5c6a08f 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityCreateFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityCreateFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.coresettings.identity
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class IdentityCreateFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: IdentityCreateActivity): Context
+  abstract fun bindFragmentActivity(activity: IdentityCreateActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindIdentityCreateFragment(): IdentityCreateFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityEditFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityEditFragmentProvider.kt
index 767a699825e783abd4b2a68bf659896f0ea7dfd8..23ae48862b81c48ca032ee4930054a0b05976f91 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityEditFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityEditFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.coresettings.identity
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class IdentityEditFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: IdentityEditActivity): Context
+  abstract fun bindFragmentActivity(activity: IdentityEditActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindIdentityEditFragment(): IdentityEditFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/IgnoreItemFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/IgnoreItemFragmentProvider.kt
index abc12c455b5579ebd23c07baf13bdf68d8c3246b..642cc5136072fd6176f64850293ef72155979c66 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/IgnoreItemFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/IgnoreItemFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.coresettings.ignoreitem
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class IgnoreItemFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: IgnoreItemActivity): Context
+  abstract fun bindFragmentActivity(activity: IgnoreItemActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindIgnoreItemFragment(): IgnoreItemFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignorelist/IgnoreListFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignorelist/IgnoreListFragmentProvider.kt
index 00d0d4c2dcaaf51ef9b597742d029376f3fdc0ea..676de8beb792a2c4f76247fd9f9b63f0961d8c6a 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignorelist/IgnoreListFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignorelist/IgnoreListFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.coresettings.ignorelist
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class IgnoreListFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: IgnoreListActivity): Context
+  abstract fun bindFragmentActivity(activity: IgnoreListActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindIgnoreFragment(): IgnoreListFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkCreateFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkCreateFragmentProvider.kt
index 012bd1f9f5ea071f3beea2cfcdb820478e712d19..5a3299ba4f13677319a72e1a31c5a19411ce19ff 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkCreateFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkCreateFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.coresettings.network
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class NetworkCreateFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: NetworkCreateActivity): Context
+  abstract fun bindFragmentActivity(activity: NetworkCreateActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindNetworkCreateFragment(): NetworkCreateFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkEditFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkEditFragmentProvider.kt
index b79250c5aedcad55351b87e3698825086f6967b5..c845858546c93514c34ff6bb7d37ffe58a1cb21d 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkEditFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkEditFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.coresettings.network
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class NetworkEditFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: NetworkEditActivity): Context
+  abstract fun bindFragmentActivity(activity: NetworkEditActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindNetworkEditFragment(): NetworkEditFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkconfig/NetworkConfigFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkconfig/NetworkConfigFragmentProvider.kt
index 20b85552dbf0dd29217ea7b7d497895f1db44f37..33993d9f5ffb2c43e053b4eb372176a09d956613 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkconfig/NetworkConfigFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkconfig/NetworkConfigFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.coresettings.networkconfig
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class NetworkConfigFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: NetworkConfigActivity): Context
+  abstract fun bindFragmentActivity(activity: NetworkConfigActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindNetworkConfigFragment(): NetworkConfigFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkserver/NetworkServerFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkserver/NetworkServerFragmentProvider.kt
index 38191184eeb08acb589735fbb65167462eaf8a28..9886571b1c3fede8764e7cb58d1ee8cb748a80cd 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkserver/NetworkServerFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkserver/NetworkServerFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.coresettings.networkserver
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class NetworkServerFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: NetworkServerActivity): Context
+  abstract fun bindFragmentActivity(activity: NetworkServerActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindNetworkServerFragment(): NetworkServerFragment
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/edit/AccountEditModule.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/edit/AccountEditModule.kt
index 8e7e688c0f9651aa17d899230b72d169a0eba2da..5d2e19c9c75a02dcf3a01c70b1b0ea890eb75491 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/edit/AccountEditModule.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/edit/AccountEditModule.kt
@@ -22,12 +22,12 @@
 
 package de.kuschku.quasseldroid.ui.setup.accounts.edit
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 
 @Module
 abstract class AccountEditModule {
   @Binds
-  abstract fun bindContext(activity: AccountEditActivity): Context
+  abstract fun bindFragmentActivity(activity: AccountEditActivity): FragmentActivity
 }
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 f85903e6211af81c3feec63d0e5d84922ee12197..ef739d9a317529655494d9da29f53ebe5ee80ea3 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/selection/AccountSelectionFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/selection/AccountSelectionFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.setup.accounts.selection
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class AccountSelectionFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: AccountSelectionActivity): Context
+  abstract fun bindFragmentActivity(activity: AccountSelectionActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindAccountSelectionSlide(): AccountSelectionSlide
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/selection/AccountSelectionSlide.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/selection/AccountSelectionSlide.kt
index 1a7b81b65de7a24509245fa87b9c11a06f27e27e..901b96c0a2579e7b415ddb0cd4d5efe14774aa1f 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/selection/AccountSelectionSlide.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/selection/AccountSelectionSlide.kt
@@ -24,7 +24,6 @@ package de.kuschku.quasseldroid.ui.setup.accounts.selection
 
 import android.app.Activity
 import android.arch.lifecycle.Observer
-import android.arch.lifecycle.ViewModelProviders
 import android.content.Intent
 import android.os.Bundle
 import android.support.v7.widget.DefaultItemAnimator
@@ -42,11 +41,15 @@ import de.kuschku.quasseldroid.ui.setup.accounts.edit.AccountEditActivity
 import de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionActivity.Companion.REQUEST_CREATE_FIRST
 import de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionActivity.Companion.REQUEST_CREATE_NEW
 import de.kuschku.quasseldroid.ui.setup.accounts.setup.AccountSetupActivity
+import javax.inject.Inject
 
 class AccountSelectionSlide : SlideFragment() {
   @BindView(R.id.account_list)
   lateinit var accountList: RecyclerView
 
+  @Inject
+  lateinit var accountViewModel: AccountViewModel
+
   override fun isValid() = adapter?.selectedItemId ?: -1L != -1L
 
   override val title = R.string.slide_account_select_title
@@ -66,7 +69,6 @@ class AccountSelectionSlide : SlideFragment() {
                                savedInstanceState: Bundle?): View {
     val view = inflater.inflate(R.layout.setup_select_account, container, false)
     ButterKnife.bind(this, view)
-    val accountViewModel = ViewModelProviders.of(this).get(AccountViewModel::class.java)
     val firstObserver = object : Observer<List<AccountDatabase.Account>?> {
       override fun onChanged(t: List<AccountDatabase.Account>?) {
         if (t?.isEmpty() != false)
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 21c910409dd0a0791a526848d6dd8b6837027357..1a24f9b9077576fa0df54360f54b3cb02e39d6d0 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupFragmentProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/accounts/setup/AccountSetupFragmentProvider.kt
@@ -22,7 +22,7 @@
 
 package de.kuschku.quasseldroid.ui.setup.accounts.setup
 
-import android.content.Context
+import android.support.v4.app.FragmentActivity
 import dagger.Binds
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
@@ -30,7 +30,7 @@ import dagger.android.ContributesAndroidInjector
 @Module
 abstract class AccountSetupFragmentProvider {
   @Binds
-  abstract fun bindContext(activity: AccountSetupActivity): Context
+  abstract fun bindFragmentActivity(activity: AccountSetupActivity): FragmentActivity
 
   @ContributesAndroidInjector
   abstract fun bindAccountSetupConnectionSlide(): AccountSetupConnectionSlide
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 821eb6f25cfe92019c77a2657f76e86833f300dd..5da403c0ab445e62e24d684a770b649b6230336c 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
@@ -23,7 +23,6 @@
 package de.kuschku.quasseldroid.util.service
 
 import android.app.Activity
-import android.arch.lifecycle.ViewModelProviders
 import android.content.Context
 import android.content.Intent
 import android.content.SharedPreferences
@@ -74,7 +73,8 @@ abstract class ServiceBoundActivity : ThemedActivity(),
   @Inject
   lateinit var connectionSettings: ConnectionSettings
 
-  protected lateinit var viewModel: QuasselViewModel
+  @Inject
+  lateinit var viewModel: QuasselViewModel
 
   protected var accountId: Long = -1
 
@@ -84,7 +84,6 @@ abstract class ServiceBoundActivity : ThemedActivity(),
     connection.context = this
     checkConnection()
     super.onCreate(savedInstanceState)
-    viewModel = ViewModelProviders.of(this)[QuasselViewModel::class.java]
     viewModel.backendWrapper.onNext(this.backend)
     updateRecentsHeader()
   }
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundFragment.kt
index 76946a8d11fad5c4016f8e4b118a835b8b1b180e..ed86c01374a441f22f2abd9f18d60ea2bc66c495 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundFragment.kt
@@ -22,7 +22,6 @@
 
 package de.kuschku.quasseldroid.util.service
 
-import android.arch.lifecycle.ViewModelProviders
 import android.content.Context
 import android.os.Bundle
 import dagger.android.support.DaggerFragment
@@ -31,14 +30,16 @@ import de.kuschku.libquassel.util.Optional
 import de.kuschku.quasseldroid.Keys
 import de.kuschku.quasseldroid.viewmodel.QuasselViewModel
 import io.reactivex.subjects.BehaviorSubject
+import javax.inject.Inject
 
 abstract class ServiceBoundFragment : DaggerFragment() {
+  @Inject
+  lateinit var viewModel: QuasselViewModel
+
   private val connection = BackendServiceConnection()
   protected val backend: BehaviorSubject<Optional<Backend>>
     get() = connection.backend
 
-  protected lateinit var viewModel: QuasselViewModel
-
   protected fun runInBackground(f: () -> Unit) {
     connection.backend.value.ifPresent {
       it.sessionManager().handlerService.backend(f)
@@ -60,8 +61,6 @@ abstract class ServiceBoundFragment : DaggerFragment() {
     connection.context = context
     super.onCreate(savedInstanceState)
     connection.start()
-
-    viewModel = ViewModelProviders.of(requireActivity())[QuasselViewModel::class.java]
   }
 
   override fun onStart() {