diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 944c33031454debca124dcd6e65c16c7f460f29a..ba0d5aec4915784a25f5a9b027827d25717fd537 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -104,7 +104,7 @@ dependencies {
   implementation(kotlin("stdlib", "1.3.21"))
 
   // App Compat
-  implementation("com.google.android.material", "material", "1.0.0")
+  implementation("com.google.android.material", "material", "1.1.0-alpha04")
 
   implementation("androidx.appcompat", "appcompat", "1.0.0")
   implementation("androidx.browser", "browser", "1.0.0")
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt
index dde98d60515e0ab40a8c1e71558569dd0349787c..e8e6af01c0f3962ff1b6aaf79d1b61ce45751e92 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt
@@ -870,13 +870,13 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
     super.onStart()
   }
 
-  override fun onSaveInstanceState(outState: Bundle?) {
+  override fun onSaveInstanceState(outState: Bundle) {
     super.onSaveInstanceState(outState)
-    outState?.putInt(KEY_OPEN_BUFFER, viewModel.buffer.value.id)
-    outState?.putInt(KEY_OPEN_BUFFERVIEWCONFIG, viewModel.bufferViewConfigId.value ?: -1)
-    outState?.putLong(KEY_CONNECTED_ACCOUNT, connectedAccount)
-    outState?.putBoolean(KEY_OPEN_DRAWER_START, drawerLayout.isDrawerOpen(GravityCompat.START))
-    outState?.putBoolean(KEY_OPEN_DRAWER_END, drawerLayout.isDrawerOpen(GravityCompat.END))
+    outState.putInt(KEY_OPEN_BUFFER, viewModel.buffer.value.id)
+    outState.putInt(KEY_OPEN_BUFFERVIEWCONFIG, viewModel.bufferViewConfigId.value ?: -1)
+    outState.putLong(KEY_CONNECTED_ACCOUNT, connectedAccount)
+    outState.putBoolean(KEY_OPEN_DRAWER_START, drawerLayout.isDrawerOpen(GravityCompat.START))
+    outState.putBoolean(KEY_OPEN_DRAWER_END, drawerLayout.isDrawerOpen(GravityCompat.END))
   }
 
   override fun onRestoreInstanceState(savedInstanceState: Bundle?) {
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/client/ClientSettingsFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/client/ClientSettingsFragment.kt
index fdf47d9117dec853facb2077323e33a4564edd1f..30dc52eae73b50b1aa7950f00b8172580f5789d4 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/client/ClientSettingsFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/client/ClientSettingsFragment.kt
@@ -116,12 +116,12 @@ class ClientSettingsFragment : DaggerPreferenceFragmentCompat(),
     }
   }
 
-  override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
-    inflater?.inflate(R.menu.activity_settings, menu)
+  override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
+    inflater.inflate(R.menu.activity_settings, menu)
     super.onCreateOptionsMenu(menu, inflater)
   }
 
-  override fun onOptionsItemSelected(item: MenuItem?) = when (item?.itemId) {
+  override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
     R.id.action_certificates -> {
       WhitelistActivity.launch(requireContext())
       true
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashFragment.kt
index 4ebec0f583473c835fbb284aaa1a0e48bb7ade13..7e85fad2b9998b3a38909bb4fcbdb1030f9955e9 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/crash/CrashFragment.kt
@@ -114,12 +114,12 @@ class CrashFragment : DaggerFragment() {
     return view
   }
 
-  override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
-    inflater?.inflate(R.menu.activity_crashes, menu)
+  override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
+    inflater.inflate(R.menu.activity_crashes, menu)
     super.onCreateOptionsMenu(menu, inflater)
   }
 
-  override fun onOptionsItemSelected(item: MenuItem?) = when (item?.itemId) {
+  override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
     R.id.action_delete_all -> {
       handler.post {
         crashDir?.mkdirs()
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/info/channellist/ChannelListFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/info/channellist/ChannelListFragment.kt
index 5ceb32c8f8f2d4cb1286896a2248012a8e969cfc..7b37af701d78e96aeb5eb771cbe4550e442f46fb 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/info/channellist/ChannelListFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/info/channellist/ChannelListFragment.kt
@@ -184,15 +184,15 @@ class ChannelListFragment : ServiceBoundSettingsFragment() {
     return view
   }
 
-  override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
-    inflater?.inflate(R.menu.activity_channellist, menu)
+  override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
+    inflater.inflate(R.menu.activity_channellist, menu)
     (activity as? AppCompatActivity)?.supportActionBar?.themedContext?.let {
-      menu?.retint(it)
+      menu.retint(it)
     }
     super.onCreateOptionsMenu(menu, inflater)
   }
 
-  override fun onOptionsItemSelected(item: MenuItem?) = when (item?.itemId) {
+  override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
     R.id.channel_name_asc  -> {
       sort.onNext(Sort(Sort.Field.CHANNEL_NAME, Sort.Direction.ASC))
       true
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/missingfeatures/MissingFeaturesDialog.kt b/app/src/main/java/de/kuschku/quasseldroid/util/missingfeatures/MissingFeaturesDialog.kt
index 82eed3a497a718715429a02e87a2e7fc68ab9b89..03382e7ee4312bc8a338b9b841bb70f20ef1bd8b 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/missingfeatures/MissingFeaturesDialog.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/missingfeatures/MissingFeaturesDialog.kt
@@ -69,7 +69,7 @@ class MissingFeaturesDialog : DialogFragment() {
     return dialog
   }
 
-  override fun onDismiss(dialog: DialogInterface?) {
+  override fun onDismiss(dialog: DialogInterface) {
     super.onDismiss(dialog)
     builder?.dismissListener?.onDismiss(this.dialog)
   }
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/DaggerPreferenceFragmentCompat.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/DaggerPreferenceFragmentCompat.kt
index 944d838c5ad68edbed241fcb1cf0962a99bd886c..9035026665f1ca1b2477bcbec3d6c04266e6e82e 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/DaggerPreferenceFragmentCompat.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/DaggerPreferenceFragmentCompat.kt
@@ -32,7 +32,7 @@ abstract class DaggerPreferenceFragmentCompat : AttachingPreferenceFragmentCompa
   @Inject
   lateinit var childFragmentInjector: DispatchingAndroidInjector<Fragment>
 
-  override fun onAttach(context: Context?) {
+  override fun onAttach(context: Context) {
     AndroidSupportInjection.inject(this)
     super.onAttach(context)
   }
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/fragment/ServiceBoundSettingsFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/fragment/ServiceBoundSettingsFragment.kt
index 82093d63045bf0231c0e8fe6a0f08351c928bce7..9dcfd0527c0e8f4c908d9b6d487052f55160140d 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/fragment/ServiceBoundSettingsFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/fragment/ServiceBoundSettingsFragment.kt
@@ -37,12 +37,12 @@ abstract class ServiceBoundSettingsFragment : ServiceBoundFragment() {
     )
   }
 
-  override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
+  override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
     helper.onCreateOptionsMenu(menu, inflater)
     super.onCreateOptionsMenu(menu, inflater)
   }
 
-  override fun onOptionsItemSelected(item: MenuItem?) =
+  override fun onOptionsItemSelected(item: MenuItem) =
     helper.onOptionsItemSelected(activity, item)
     ?: super.onOptionsItemSelected(item)
 }
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/fragment/SettingsFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/fragment/SettingsFragment.kt
index ed27924e4f9d91414e0735e06987d72e3797e300..1f03ec4d6de4784627a9bc10dd2648af4c78d1e6 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/fragment/SettingsFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/fragment/SettingsFragment.kt
@@ -37,12 +37,12 @@ abstract class SettingsFragment : DaggerFragment() {
     )
   }
 
-  override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
+  override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
     helper.onCreateOptionsMenu(menu, inflater)
     super.onCreateOptionsMenu(menu, inflater)
   }
 
-  override fun onOptionsItemSelected(item: MenuItem?) =
+  override fun onOptionsItemSelected(item: MenuItem) =
     helper.onOptionsItemSelected(activity, item)
     ?: super.onOptionsItemSelected(item)
 }
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/fragment/SettingsFragmentHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/fragment/SettingsFragmentHelper.kt
index d54c8515e27729dc1cc44e9c67bd4b1fdda01673..3d9722ae71e582031d95d36182393c8111ba0488 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/fragment/SettingsFragmentHelper.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/settings/fragment/SettingsFragmentHelper.kt
@@ -30,13 +30,13 @@ class SettingsFragmentHelper(
   private val saveable: Savable?,
   private val deletable: Deletable?
 ) {
-  fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
-    inflater?.inflate(R.menu.context_setting, menu)
-    menu?.findItem(R.id.action_save)?.isVisible = saveable != null
-    menu?.findItem(R.id.action_delete)?.isVisible = deletable != null
+  fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
+    inflater.inflate(R.menu.context_setting, menu)
+    menu.findItem(R.id.action_save)?.isVisible = saveable != null
+    menu.findItem(R.id.action_delete)?.isVisible = deletable != null
   }
 
-  fun onOptionsItemSelected(activity: Activity?, item: MenuItem?) = when (item?.itemId) {
+  fun onOptionsItemSelected(activity: Activity?, item: MenuItem) = when (item.itemId) {
     R.id.action_save   -> {
       saveable?.let {
         if (it.onSave()) activity?.finish()
diff --git a/app/src/main/res/layout/activity_setup.xml b/app/src/main/res/layout/activity_setup.xml
index 0b43a44005c4527243c90a3adc89f3ec6367821b..afa256e084aa793148917d45b1d864929d31c483 100644
--- a/app/src/main/res/layout/activity_setup.xml
+++ b/app/src/main/res/layout/activity_setup.xml
@@ -44,6 +44,7 @@
     android:layout_marginRight="16dp"
     android:layout_marginBottom="16dp"
     app:fabSize="normal"
+    app:backgroundTint="?colorAccent"
     app:srcCompat="@drawable/ic_forward"
     app:tint="#ffffffff"
     tools:ignore="RtlHardcoded"
diff --git a/app/src/main/res/layout/info_core.xml b/app/src/main/res/layout/info_core.xml
index 3fac5c09bdcd67e75cdd8ff6b28944f1ff213da8..bc8bc52d53c602b98b3c7d3d27a90233d7b838c8 100644
--- a/app/src/main/res/layout/info_core.xml
+++ b/app/src/main/res/layout/info_core.xml
@@ -48,7 +48,7 @@
         android:textIsSelectable="true"
         tools:text="June 8, 2018" />
 
-      <Button
+      <com.google.android.material.button.MaterialButton
         android:id="@+id/missing_features"
         style="@style/Widget.Button.Borderless.Colored"
         android:layout_width="wrap_content"
@@ -123,7 +123,7 @@
         style="@style/Widget.CoreSettings.TextView"
         tools:text="The connection is encrypted and authenticated using CHACHA20_POLY1305 and uses ECDHE_RSA as the key exchange mechanism" />
 
-      <Button
+      <com.google.android.material.button.MaterialButton
         android:id="@+id/secure_details"
         style="@style/Widget.Button.Borderless.Colored"
         android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/preferences_about_header.xml b/app/src/main/res/layout/preferences_about_header.xml
index e707e968cf7c454a4443c15b897272a8b0a0ce08..6176a5840579353e6fb0ebc143bea472695cd5a5 100644
--- a/app/src/main/res/layout/preferences_about_header.xml
+++ b/app/src/main/res/layout/preferences_about_header.xml
@@ -74,21 +74,21 @@
     android:layout_marginBottom="8dp"
     android:orientation="horizontal">
 
-    <Button
+    <com.google.android.material.button.MaterialButton
       android:id="@+id/action_website"
       style="@style/Widget.Button.Colored"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/label_website" />
 
-    <Button
+    <com.google.android.material.button.MaterialButton
       android:id="@+id/action_source"
       style="@style/Widget.Button"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/label_source" />
 
-    <Button
+    <com.google.android.material.button.MaterialButton
       android:id="@+id/action_donate"
       style="@style/Widget.Button"
       android:layout_width="wrap_content"
@@ -106,7 +106,7 @@
     android:text="@string/app_description_long"
     android:textAlignment="gravity" />
 
-  <Button
+  <com.google.android.material.button.MaterialButton
     android:id="@+id/action_privacy_policy"
     style="@style/Widget.Button.Borderless.Colored"
     android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/settings_aliasitem.xml b/app/src/main/res/layout/settings_aliasitem.xml
index 80d9037461b3c0b73bc2039f19ba803f97024638..58d1a906485867ddcfb62bc5f40d014a5ad159d7 100644
--- a/app/src/main/res/layout/settings_aliasitem.xml
+++ b/app/src/main/res/layout/settings_aliasitem.xml
@@ -47,7 +47,9 @@
             android:minHeight="48dp">
 
             <com.google.android.material.textfield.TextInputLayout
-              style="@style/Widget.CoreSettings.PrimaryItemSwitch"
+              style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+              android:layout_width="match_parent"
+              android:layout_height="wrap_content"
               android:hint="@string/settings_aliasitem_name">
 
               <com.google.android.material.textfield.TextInputEditText
@@ -61,7 +63,9 @@
         <LinearLayout style="@style/Widget.CoreSettings.Wrapper">
 
           <com.google.android.material.textfield.TextInputLayout
-            style="@style/Widget.CoreSettings.PrimaryItemSwitch"
+            style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
             android:hint="@string/settings_aliasitem_expansion">
 
             <de.kuschku.quasseldroid.ui.chat.input.RichEditText
diff --git a/app/src/main/res/layout/settings_chatlist.xml b/app/src/main/res/layout/settings_chatlist.xml
index 06a17d4e3ca834992e4af07971e75cb2927ce3fc..62db4198b82c2d16e70fc940f578c8142507dab0 100644
--- a/app/src/main/res/layout/settings_chatlist.xml
+++ b/app/src/main/res/layout/settings_chatlist.xml
@@ -45,7 +45,9 @@
       android:visibility="visible">
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_chatlist_buffer_view_name">
 
         <com.google.android.material.textfield.TextInputEditText
diff --git a/app/src/main/res/layout/settings_highlightlist.xml b/app/src/main/res/layout/settings_highlightlist.xml
index 98a68545c8ed2ca0175dc4a3bf987bdb1a9b61b4..6ae568f3af55309230c27c48a0be9878f3fbbf74 100644
--- a/app/src/main/res/layout/settings_highlightlist.xml
+++ b/app/src/main/res/layout/settings_highlightlist.xml
@@ -94,10 +94,11 @@
           tools:listitem="@layout/settings_highlightlist_rule" />
 
         <LinearLayout
-          style="@style/Widget.CoreSettings.EditTextLayout"
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
           android:orientation="horizontal">
 
-          <Button
+          <com.google.android.material.button.MaterialButton
             android:id="@+id/new_highlight_rule"
             style="@style/Widget.Button.Borderless.Colored"
             android:layout_width="wrap_content"
@@ -132,10 +133,11 @@
           tools:listitem="@layout/settings_highlightlist_rule" />
 
         <LinearLayout
-          style="@style/Widget.CoreSettings.EditTextLayout"
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
           android:orientation="horizontal">
 
-          <Button
+          <com.google.android.material.button.MaterialButton
             android:id="@+id/new_highlight_ignore_rule"
             style="@style/Widget.Button.Borderless.Colored"
             android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/settings_highlightrule.xml b/app/src/main/res/layout/settings_highlightrule.xml
index 325673620d40475d909d972c0c8a47df032da16f..2636be27bd1821a766f2574d80f8d53d464fd7c0 100644
--- a/app/src/main/res/layout/settings_highlightrule.xml
+++ b/app/src/main/res/layout/settings_highlightrule.xml
@@ -47,7 +47,9 @@
       android:visibility="visible">
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_highlightrule_name">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -67,7 +69,9 @@
         android:text="@string/settings_highlightrule_case_sensitive" />
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_highlightrule_sender">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -77,7 +81,9 @@
       </com.google.android.material.textfield.TextInputLayout>
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_highlightrule_channel">
 
         <com.google.android.material.textfield.TextInputEditText
diff --git a/app/src/main/res/layout/settings_identity.xml b/app/src/main/res/layout/settings_identity.xml
index 91f061f2671148d992fe2eabe077250c1d8bfea0..193c403f48272e9276919763fd24cf3fa1d4448c 100644
--- a/app/src/main/res/layout/settings_identity.xml
+++ b/app/src/main/res/layout/settings_identity.xml
@@ -45,7 +45,9 @@
       android:visibility="visible">
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_identity_identity_name">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -55,7 +57,9 @@
       </com.google.android.material.textfield.TextInputLayout>
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_identity_real_name">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -65,7 +69,9 @@
       </com.google.android.material.textfield.TextInputLayout>
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_identity_ident">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -100,10 +106,11 @@
         tools:listitem="@layout/settings_identity_nick" />
 
       <LinearLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:orientation="horizontal">
 
-        <Button
+        <com.google.android.material.button.MaterialButton
           android:id="@+id/new_nick"
           style="@style/Widget.Button.Borderless.Colored"
           android:layout_width="wrap_content"
@@ -131,7 +138,9 @@
       android:visibility="visible">
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_identity_kick_reason">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -141,7 +150,9 @@
       </com.google.android.material.textfield.TextInputLayout>
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_identity_part_reason">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -151,7 +162,9 @@
       </com.google.android.material.textfield.TextInputLayout>
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_identity_quit_reason">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -180,7 +193,9 @@
       android:visibility="visible">
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_identity_away_reason">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -200,7 +215,9 @@
         android:layout_height="wrap_content">
 
         <com.google.android.material.textfield.TextInputLayout
-          style="@style/Widget.CoreSettings.EditTextLayout"
+          style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
           android:hint="@string/settings_identity_detach_away_reason">
 
           <com.google.android.material.textfield.TextInputEditText
diff --git a/app/src/main/res/layout/settings_ignoreitem.xml b/app/src/main/res/layout/settings_ignoreitem.xml
index 0a07b697f2ce5785177c41d730b36fbe01aa2df6..65108129c8c87db822584617cb64dad6cbccfd05 100644
--- a/app/src/main/res/layout/settings_ignoreitem.xml
+++ b/app/src/main/res/layout/settings_ignoreitem.xml
@@ -47,7 +47,9 @@
       android:visibility="visible">
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_ignoreitem_ignorerule">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -110,7 +112,9 @@
       android:visibility="visible">
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_ignoreitem_scoperule">
 
         <com.google.android.material.textfield.TextInputEditText
diff --git a/app/src/main/res/layout/settings_list.xml b/app/src/main/res/layout/settings_list.xml
index bd04bb2f77df1560d6ab02509d3fe00dc7e68236..d31153d06b90ba5a1c56362347f9c81801c6bebb 100644
--- a/app/src/main/res/layout/settings_list.xml
+++ b/app/src/main/res/layout/settings_list.xml
@@ -59,10 +59,11 @@
         tools:listitem="@layout/settings_item" />
 
       <LinearLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:orientation="horizontal">
 
-        <Button
+        <com.google.android.material.button.MaterialButton
           android:id="@+id/new_network"
           style="@style/Widget.Button.Borderless.Colored"
           android:layout_width="wrap_content"
@@ -97,10 +98,11 @@
         tools:listitem="@layout/settings_item" />
 
       <LinearLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:orientation="horizontal">
 
-        <Button
+        <com.google.android.material.button.MaterialButton
           android:id="@+id/new_identity"
           style="@style/Widget.Button.Borderless.Colored"
           android:layout_width="wrap_content"
@@ -130,10 +132,11 @@
         tools:listitem="@layout/settings_item" />
 
       <LinearLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:orientation="horizontal">
 
-        <Button
+        <com.google.android.material.button.MaterialButton
           android:id="@+id/new_chatlist"
           style="@style/Widget.Button.Borderless.Colored"
           android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/settings_network.xml b/app/src/main/res/layout/settings_network.xml
index 2b7eebc4fa10c3ebb90f1a9a0a6d9bbc0c5fa912..587a9a732be541a501cfc8f1da34cf0a7ac17ba0 100644
--- a/app/src/main/res/layout/settings_network.xml
+++ b/app/src/main/res/layout/settings_network.xml
@@ -45,7 +45,9 @@
       android:visibility="visible">
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_network_network_name">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -64,14 +66,16 @@
         android:id="@+id/servers"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:layout_marginTop="8dp"
         tools:itemCount="4"
         tools:listitem="@layout/settings_network_server" />
 
       <LinearLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:orientation="horizontal">
 
-        <Button
+        <com.google.android.material.button.MaterialButton
           android:id="@+id/new_server"
           style="@style/Widget.Button.Borderless.Colored"
           android:layout_width="wrap_content"
@@ -98,10 +102,16 @@
       style="@style/Widget.CoreSettings.DependentGroup"
       android:visibility="visible">
 
-      <Spinner
-        android:id="@+id/identity"
-        style="@style/Widget.FullWidthSpinner"
-        tools:listitem="@layout/widget_spinner_item_inline" />
+      <com.google.android.material.textfield.TextInputLayout
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <Spinner
+          android:id="@+id/identity"
+          style="@style/Widget.FullWidthSpinner"
+          tools:listitem="@layout/widget_spinner_item_inline" />
+      </com.google.android.material.textfield.TextInputLayout>
     </LinearLayout>
 
     <LinearLayout
@@ -125,7 +135,9 @@
       tools:visibility="gone">
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_network_sasl_account">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -135,7 +147,9 @@
       </com.google.android.material.textfield.TextInputLayout>
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_network_sasl_password"
         app:passwordToggleEnabled="true">
 
@@ -170,7 +184,9 @@
       tools:visibility="gone">
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_network_autoidentify_service">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -180,7 +196,9 @@
       </com.google.android.material.textfield.TextInputLayout>
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_network_autoidentify_password"
         app:passwordToggleEnabled="true">
 
@@ -211,7 +229,9 @@
       android:visibility="visible">
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_network_perform">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -252,7 +272,9 @@
         android:layout_height="wrap_content">
 
         <com.google.android.material.textfield.TextInputLayout
-          style="@style/Widget.CoreSettings.EditTextLayout"
+          style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
           android:hint="@string/settings_network_autoreconnect_interval">
 
           <com.google.android.material.textfield.TextInputEditText
@@ -267,7 +289,9 @@
       </FrameLayout>
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_network_autoreconnect_attempts">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -308,7 +332,9 @@
         android:text="@string/settings_network_customratelimits_unlimited" />
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_network_customratelimits_burstsize">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -322,7 +348,9 @@
         android:layout_height="wrap_content">
 
         <com.google.android.material.textfield.TextInputLayout
-          style="@style/Widget.CoreSettings.EditTextLayout"
+          style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
           android:hint="@string/settings_network_customratelimits_delay">
 
           <com.google.android.material.textfield.TextInputEditText
diff --git a/app/src/main/res/layout/settings_networkconfig.xml b/app/src/main/res/layout/settings_networkconfig.xml
index acbfb0a1e2be98fdcb23ba97f5af60dc99fb98aa..b60501388698450aeb63c22a1c1fd3a8599ac3bc 100644
--- a/app/src/main/res/layout/settings_networkconfig.xml
+++ b/app/src/main/res/layout/settings_networkconfig.xml
@@ -51,7 +51,9 @@
         android:layout_height="wrap_content">
 
         <com.google.android.material.textfield.TextInputLayout
-          style="@style/Widget.CoreSettings.EditTextLayout"
+          style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
           android:hint="@string/settings_networkconfig_ping_interval">
 
           <com.google.android.material.textfield.TextInputEditText
@@ -71,7 +73,9 @@
         android:layout_height="wrap_content">
 
         <com.google.android.material.textfield.TextInputLayout
-          style="@style/Widget.CoreSettings.EditTextLayout"
+          style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
           android:hint="@string/settings_networkconfig_max_ping_count">
 
           <com.google.android.material.textfield.TextInputEditText
@@ -112,7 +116,9 @@
         android:layout_height="wrap_content">
 
         <com.google.android.material.textfield.TextInputLayout
-          style="@style/Widget.CoreSettings.EditTextLayout"
+          style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
           android:hint="@string/settings_networkconfig_auto_who_interval">
 
           <com.google.android.material.textfield.TextInputEditText
@@ -132,7 +138,9 @@
         android:layout_height="wrap_content">
 
         <com.google.android.material.textfield.TextInputLayout
-          style="@style/Widget.CoreSettings.EditTextLayout"
+          style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
           android:hint="@string/settings_networkconfig_auto_who_nick_limit">
 
           <com.google.android.material.textfield.TextInputEditText
@@ -152,7 +160,9 @@
         android:layout_height="wrap_content">
 
         <com.google.android.material.textfield.TextInputLayout
-          style="@style/Widget.CoreSettings.EditTextLayout"
+          style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
           android:hint="@string/settings_networkconfig_auto_who_delay">
 
           <com.google.android.material.textfield.TextInputEditText
diff --git a/app/src/main/res/layout/settings_networkserver.xml b/app/src/main/res/layout/settings_networkserver.xml
index 03fa102453740e6ad55011522461acad663fd725..0f2516fedbed15596c39758eba72787560cdea8a 100644
--- a/app/src/main/res/layout/settings_networkserver.xml
+++ b/app/src/main/res/layout/settings_networkserver.xml
@@ -45,7 +45,9 @@
       android:visibility="visible">
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_networkserver_host">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -55,7 +57,9 @@
       </com.google.android.material.textfield.TextInputLayout>
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_networkserver_port">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -76,7 +80,9 @@
         android:text="@string/settings_networkserver_ssl_verify" />
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_networkserver_password"
         app:passwordToggleEnabled="true">
 
@@ -118,7 +124,9 @@
         tools:listitem="@layout/widget_spinner_item_inline" />
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_networkserver_proxy_host">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -128,7 +136,9 @@
       </com.google.android.material.textfield.TextInputLayout>
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_networkserver_proxy_port">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -139,7 +149,9 @@
       </com.google.android.material.textfield.TextInputLayout>
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_networkserver_proxy_user">
 
         <com.google.android.material.textfield.TextInputEditText
@@ -149,7 +161,9 @@
       </com.google.android.material.textfield.TextInputLayout>
 
       <com.google.android.material.textfield.TextInputLayout
-        style="@style/Widget.CoreSettings.EditTextLayout"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         android:hint="@string/settings_networkserver_proxy_pass"
         app:passwordToggleEnabled="true">
 
diff --git a/app/src/main/res/layout/settings_passwordchange.xml b/app/src/main/res/layout/settings_passwordchange.xml
index caac858f4589bb0d96df44c80d41b612618a8cac..3cbbdf6ab4285edded2568b46a969f300dcf8de8 100644
--- a/app/src/main/res/layout/settings_passwordchange.xml
+++ b/app/src/main/res/layout/settings_passwordchange.xml
@@ -32,13 +32,14 @@
 
     <com.google.android.material.textfield.TextInputLayout
       android:id="@+id/userWrapper"
+      style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_marginBottom="16dp"
       android:hint="@string/label_account_user"
       tools:ignore="LabelFor">
 
-      <EditText
+      <com.google.android.material.textfield.TextInputEditText
         android:id="@+id/user"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -53,11 +54,12 @@
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_marginBottom="16dp"
+      style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
       android:hint="@string/label_password_old"
       app:passwordToggleEnabled="true"
       tools:ignore="LabelFor">
 
-      <EditText
+      <com.google.android.material.textfield.TextInputEditText
         android:id="@+id/password_old"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -69,10 +71,11 @@
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:hint="@string/label_password_new"
+      style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
       app:passwordToggleEnabled="true"
       tools:ignore="LabelFor">
 
-      <EditText
+      <com.google.android.material.textfield.TextInputEditText
         android:id="@+id/password_new"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -85,11 +88,12 @@
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_marginBottom="16dp"
+      style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
       android:hint="@string/label_password_repeat"
       app:passwordToggleEnabled="true"
       tools:ignore="LabelFor">
 
-      <EditText
+      <com.google.android.material.textfield.TextInputEditText
         android:id="@+id/password_repeat"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -115,7 +119,7 @@
       android:layout_height="wrap_content"
       android:orientation="horizontal">
 
-      <Button
+      <com.google.android.material.button.MaterialButton
         android:id="@+id/save"
         style="@style/Widget.Button.Colored"
         android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/setup_account_connection.xml b/app/src/main/res/layout/setup_account_connection.xml
index a559d3928834b2d08e885f846474c38adbdf8198..ca8dc500a39f1858944412bdb0672739d7a00c31 100644
--- a/app/src/main/res/layout/setup_account_connection.xml
+++ b/app/src/main/res/layout/setup_account_connection.xml
@@ -29,13 +29,14 @@
 
   <com.google.android.material.textfield.TextInputLayout
     android:id="@+id/hostWrapper"
+    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:hint="@string/label_connection_host"
     app:errorEnabled="true"
     tools:ignore="LabelFor">
 
-    <EditText
+    <com.google.android.material.textfield.TextInputEditText
       android:id="@+id/host"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
@@ -47,10 +48,11 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:hint="@string/label_connection_port"
+    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
     app:errorEnabled="true"
     tools:ignore="LabelFor">
 
-    <EditText
+    <com.google.android.material.textfield.TextInputEditText
       android:id="@+id/port"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/setup_account_edit.xml b/app/src/main/res/layout/setup_account_edit.xml
index 96860d8540598f0a69a303872ca36e5308a62f8e..8ef9ed22c8085f168bab2c5a30276e073f4cc54e 100644
--- a/app/src/main/res/layout/setup_account_edit.xml
+++ b/app/src/main/res/layout/setup_account_edit.xml
@@ -53,12 +53,13 @@
 
       <com.google.android.material.textfield.TextInputLayout
         android:id="@+id/nameWrapper"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:hint="@string/label_account_name"
         tools:ignore="LabelFor">
 
-        <EditText
+        <com.google.android.material.textfield.TextInputEditText
           android:id="@+id/name"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
@@ -97,12 +98,13 @@
 
         <com.google.android.material.textfield.TextInputLayout
           android:id="@+id/hostWrapper"
+          style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:hint="@string/label_connection_host"
           tools:ignore="LabelFor">
 
-          <EditText
+          <com.google.android.material.textfield.TextInputEditText
             android:id="@+id/host"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -112,12 +114,13 @@
 
         <com.google.android.material.textfield.TextInputLayout
           android:id="@+id/portWrapper"
+          style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:hint="@string/label_connection_port"
           tools:ignore="LabelFor">
 
-          <EditText
+          <com.google.android.material.textfield.TextInputEditText
             android:id="@+id/port"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -167,11 +170,12 @@
         <com.google.android.material.textfield.TextInputLayout
           android:id="@+id/userWrapper"
           android:layout_width="match_parent"
+          style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
           android:layout_height="wrap_content"
           android:hint="@string/label_account_user"
           tools:ignore="LabelFor">
 
-          <EditText
+          <com.google.android.material.textfield.TextInputEditText
             android:id="@+id/user"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -182,12 +186,13 @@
         <com.google.android.material.textfield.TextInputLayout
           android:id="@+id/passWrapper"
           android:layout_width="match_parent"
+          style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
           android:layout_height="wrap_content"
           android:hint="@string/label_account_pass"
           app:passwordToggleEnabled="true"
           tools:ignore="LabelFor">
 
-          <EditText
+          <com.google.android.material.textfield.TextInputEditText
             android:id="@+id/pass"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/setup_account_name.xml b/app/src/main/res/layout/setup_account_name.xml
index 83671e1b1938ea91bf3bcdea64bd82684a7830b9..d6a746daa553c1b4920b2576764f7f3a3f2f4400 100644
--- a/app/src/main/res/layout/setup_account_name.xml
+++ b/app/src/main/res/layout/setup_account_name.xml
@@ -29,11 +29,12 @@
     android:id="@+id/nameWrapper"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
     android:hint="@string/label_account_name"
     app:errorEnabled="true"
     tools:ignore="LabelFor">
 
-    <EditText
+    <com.google.android.material.textfield.TextInputEditText
       android:id="@+id/name"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/setup_account_user.xml b/app/src/main/res/layout/setup_account_user.xml
index 917225ccbd77f11432799c4a1681ce05cb5e74e8..e340c247b99693c20b05805b50cf201a036fffb8 100644
--- a/app/src/main/res/layout/setup_account_user.xml
+++ b/app/src/main/res/layout/setup_account_user.xml
@@ -30,9 +30,10 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:hint="@string/label_account_user"
+    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
     tools:ignore="LabelFor">
 
-    <EditText
+    <com.google.android.material.textfield.TextInputEditText
       android:id="@+id/user"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
@@ -45,10 +46,11 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:hint="@string/label_account_pass"
+    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
     app:passwordToggleEnabled="true"
     tools:ignore="LabelFor">
 
-    <EditText
+    <com.google.android.material.textfield.TextInputEditText
       android:id="@+id/pass"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/setup_network_network.xml b/app/src/main/res/layout/setup_network_network.xml
index 1a135c926479ed168f7f632ae8df09a6eb1cdb0e..c4366d386370569edab51d373594b5c50a63d7ef 100644
--- a/app/src/main/res/layout/setup_network_network.xml
+++ b/app/src/main/res/layout/setup_network_network.xml
@@ -55,12 +55,13 @@
 
     <com.google.android.material.textfield.TextInputLayout
       android:id="@+id/nameWrapper"
+      style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:hint="@string/settings_network_network_name"
       tools:ignore="LabelFor">
 
-      <EditText
+      <com.google.android.material.textfield.TextInputEditText
         android:id="@+id/name"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -73,9 +74,10 @@
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:hint="@string/settings_networkserver_host"
+      style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
       tools:ignore="LabelFor">
 
-      <EditText
+      <com.google.android.material.textfield.TextInputEditText
         android:id="@+id/host"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -88,10 +90,11 @@
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:hint="@string/settings_networkserver_port"
+      style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
       app:passwordToggleEnabled="true"
       tools:ignore="LabelFor">
 
-      <EditText
+      <com.google.android.material.textfield.TextInputEditText
         android:id="@+id/port"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/setup_user_channels.xml b/app/src/main/res/layout/setup_user_channels.xml
index 2c5d57c9f94f652d76270fee9fee359e62a9c699..2149436f066a9f92d14a9fad178df5672924ee99 100644
--- a/app/src/main/res/layout/setup_user_channels.xml
+++ b/app/src/main/res/layout/setup_user_channels.xml
@@ -28,11 +28,12 @@
   <com.google.android.material.textfield.TextInputLayout
     android:id="@+id/channelsWrapper"
     android:layout_width="match_parent"
+    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
     android:layout_height="wrap_content"
     android:hint="@string/label_channels"
     tools:ignore="LabelFor">
 
-    <EditText
+    <com.google.android.material.textfield.TextInputEditText
       android:id="@+id/channels"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/setup_user_identity.xml b/app/src/main/res/layout/setup_user_identity.xml
index aa3e90147efa9d5916a922807b7d37fc14ecefd3..903898721b74b33b50e8cd4aaf616cd37fdaa57c 100644
--- a/app/src/main/res/layout/setup_user_identity.xml
+++ b/app/src/main/res/layout/setup_user_identity.xml
@@ -30,9 +30,10 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:hint="@string/settings_identity_nick"
+    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
     tools:ignore="LabelFor">
 
-    <EditText
+    <com.google.android.material.textfield.TextInputEditText
       android:id="@+id/nick"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
@@ -45,10 +46,11 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:hint="@string/settings_identity_real_name"
+    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
     app:passwordToggleEnabled="true"
     tools:ignore="LabelFor">
 
-    <EditText
+    <com.google.android.material.textfield.TextInputEditText
       android:id="@+id/realname"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/setup_user_network.xml b/app/src/main/res/layout/setup_user_network.xml
index d77b57f2ab04bdf60cf0f61519da16e278f71f62..f81841e365c173af9eebffc14f6edac6f5205c70 100644
--- a/app/src/main/res/layout/setup_user_network.xml
+++ b/app/src/main/res/layout/setup_user_network.xml
@@ -47,9 +47,10 @@
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:hint="@string/settings_network_network_name"
+      style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
       tools:ignore="LabelFor">
 
-      <EditText
+      <com.google.android.material.textfield.TextInputEditText
         android:id="@+id/name"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -62,9 +63,10 @@
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:hint="@string/settings_networkserver_host"
+      style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
       tools:ignore="LabelFor">
 
-      <EditText
+      <com.google.android.material.textfield.TextInputEditText
         android:id="@+id/host"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -78,9 +80,10 @@
       android:layout_height="wrap_content"
       android:hint="@string/settings_networkserver_port"
       app:passwordToggleEnabled="true"
+      style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
       tools:ignore="LabelFor">
 
-      <EditText
+      <com.google.android.material.textfield.TextInputEditText
         android:id="@+id/port"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/widget_client.xml b/app/src/main/res/layout/widget_client.xml
index 00b8c0ca3463e66405769da2b5880875b75c9637..32454d07b6ac60e5e67cc9a8c06f034d6a3f485f 100644
--- a/app/src/main/res/layout/widget_client.xml
+++ b/app/src/main/res/layout/widget_client.xml
@@ -53,7 +53,7 @@
       android:textIsSelectable="true"
       tools:text="Kiel, Germany" />
 
-    <Button
+    <com.google.android.material.button.MaterialButton
       android:id="@+id/disconnect"
       style="@style/Widget.Button.Borderless.Colored"
       android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/widget_quassel_setup_entry.xml b/app/src/main/res/layout/widget_quassel_setup_entry.xml
index 315e876877359e485172a93cfee4b8f5418d9582..00ce1d089f277aaf061293d8d169904302dae350 100644
--- a/app/src/main/res/layout/widget_quassel_setup_entry.xml
+++ b/app/src/main/res/layout/widget_quassel_setup_entry.xml
@@ -21,6 +21,7 @@
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/wrapper"
+  style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   tools:ignore="LabelFor">
diff --git a/app/src/main/res/values-v17/styles_widgets.xml b/app/src/main/res/values-v17/styles_widgets.xml
index e1face6db81b482d5ebee19101b005054c870b8a..26dcbc06bdd6caa0d6152c87685dc1b204038e63 100644
--- a/app/src/main/res/values-v17/styles_widgets.xml
+++ b/app/src/main/res/values-v17/styles_widgets.xml
@@ -72,13 +72,6 @@
     <item name="android:layout_marginStart">56dp</item>
   </style>
 
-  <style name="Widget.CoreSettings.EditTextLayout" parent="Widget.RtlConformTextView">
-    <item name="android:layout_width">match_parent</item>
-    <item name="android:layout_height">wrap_content</item>
-    <item name="android:layout_marginLeft">-4dp</item>
-    <item name="android:layout_marginStart">-4dp</item>
-  </style>
-
   <style name="Widget.CoreSettings.EditTextSuffix" parent="Widget.RtlConformTextView">
     <item name="android:layout_width">wrap_content</item>
     <item name="android:layout_height">wrap_content</item>
diff --git a/app/src/main/res/values-v21/themes_base.xml b/app/src/main/res/values-v21/themes_base.xml
index b8a487fa6d8f7646e9bf1660f0116679617c3b0b..17c4101ff27c8eef001aa9759929f9f39ae6cee8 100644
--- a/app/src/main/res/values-v21/themes_base.xml
+++ b/app/src/main/res/values-v21/themes_base.xml
@@ -19,7 +19,7 @@
 
 <resources>
 
-  <style name="Theme.AppTheme.NoActionBar" parent="Theme.AppCompat.NoActionBar">
+  <style name="Theme.AppTheme.NoActionBar" parent="Theme.MaterialComponents.NoActionBar.Bridge">
     <item name="colorPrimary">@color/colorPrimary</item>
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
     <item name="colorAccent">@color/colorAccent</item>
@@ -27,7 +27,7 @@
     <item name="android:statusBarColor">?attr/colorPrimaryDark</item>
   </style>
 
-  <style name="Theme.AppTheme.Light.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
+  <style name="Theme.AppTheme.Light.NoActionBar" parent="Theme.MaterialComponents.Light.NoActionBar.Bridge">
     <item name="colorPrimary">@color/colorPrimary</item>
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
     <item name="colorAccent">@color/colorAccent</item>
diff --git a/app/src/main/res/values/styles_widgets.xml b/app/src/main/res/values/styles_widgets.xml
index 27b65b4be44ce7e285d753a184d6a507eb1d56c3..b2f583a5863a96d7d3b3e6a6ce129b22d5634446 100644
--- a/app/src/main/res/values/styles_widgets.xml
+++ b/app/src/main/res/values/styles_widgets.xml
@@ -23,20 +23,20 @@
 
   <style name="Widget.RtlConformTextView" parent="" />
 
-  <style name="Widget.Button.Borderless" parent="Widget.AppCompat.Button.Borderless">
+  <style name="Widget.Button.Borderless" parent="Widget.MaterialComponents.Button.TextButton">
     <item name="android:textColor">?attr/colorTextPrimary</item>
   </style>
 
-  <style name="Widget.Button.Borderless.Colored" parent="Widget.AppCompat.Button.Borderless.Colored">
+  <style name="Widget.Button.Borderless.Colored" parent="Widget.MaterialComponents.Button.TextButton">
     <item name="android:textColor">?attr/colorAccent</item>
   </style>
 
-  <style name="Widget.Button" parent="Widget.AppCompat.Button">
+  <style name="Widget.Button" parent="Widget.MaterialComponents.Button">
     <item name="backgroundTint">?attr/colorBackgroundCard</item>
     <item name="android:textColor">?attr/colorTextPrimary</item>
   </style>
 
-  <style name="Widget.Button.Colored" parent="Widget.AppCompat.Button.Colored">
+  <style name="Widget.Button.Colored" parent="Widget.MaterialComponents.Button">
     <item name="android:textColor">?attr/colorTextPrimaryInverse</item>
   </style>
 
@@ -180,12 +180,6 @@
     <item name="android:layout_marginLeft">56dp</item>
   </style>
 
-  <style name="Widget.CoreSettings.EditTextLayout" parent="Widget.RtlConformTextView">
-    <item name="android:layout_width">match_parent</item>
-    <item name="android:layout_height">wrap_content</item>
-    <item name="android:layout_marginLeft">-4dp</item>
-  </style>
-
   <style name="Widget.CoreSettings.EditText" parent="Widget.RtlConformTextView">
     <item name="android:layout_width">match_parent</item>
     <item name="android:layout_height">wrap_content</item>
diff --git a/app/src/main/res/values/themes_base.xml b/app/src/main/res/values/themes_base.xml
index 07d8e4f93310de82eefcc9a93c88a7057018505a..7dbae297314ea6d49a9feb247064c6454145aacd 100644
--- a/app/src/main/res/values/themes_base.xml
+++ b/app/src/main/res/values/themes_base.xml
@@ -19,7 +19,7 @@
 
 <resources>
 
-  <style name="Theme.AppTheme" parent="Theme.AppCompat">
+  <style name="Theme.AppTheme" parent="Theme.MaterialComponents.Bridge">
     <item name="colorPrimary">@color/colorPrimary</item>
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
     <item name="colorAccent">@color/colorAccent</item>
@@ -28,7 +28,7 @@
     <item name="backgroundMenuItemRounded">@drawable/bg_menuitem_rounded_dark</item>
   </style>
 
-  <style name="Theme.AppTheme.Light" parent="Theme.AppCompat.Light.DarkActionBar">
+  <style name="Theme.AppTheme.Light" parent="Theme.MaterialComponents.Light.DarkActionBar.Bridge">
     <item name="colorPrimary">@color/colorPrimary</item>
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
     <item name="colorAccent">@color/colorAccent</item>