From 72818ec2a2a7826fb35fb4e8d23419f40b24c617 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Sun, 24 Mar 2019 18:38:19 +0100
Subject: [PATCH] Updated UI libraries

---
 app/build.gradle.kts                          |  2 +-
 .../quasseldroid/ui/chat/ChatActivity.kt      | 12 ++--
 .../client/ClientSettingsFragment.kt          |  6 +-
 .../ui/clientsettings/crash/CrashFragment.kt  |  6 +-
 .../info/channellist/ChannelListFragment.kt   |  8 +--
 .../missingfeatures/MissingFeaturesDialog.kt  |  2 +-
 .../DaggerPreferenceFragmentCompat.kt         |  2 +-
 .../fragment/ServiceBoundSettingsFragment.kt  |  4 +-
 .../ui/settings/fragment/SettingsFragment.kt  |  4 +-
 .../fragment/SettingsFragmentHelper.kt        | 10 ++--
 app/src/main/res/layout/activity_setup.xml    |  1 +
 app/src/main/res/layout/info_core.xml         |  4 +-
 .../res/layout/preferences_about_header.xml   |  8 +--
 .../main/res/layout/settings_aliasitem.xml    |  8 ++-
 app/src/main/res/layout/settings_chatlist.xml |  4 +-
 .../res/layout/settings_highlightlist.xml     | 10 ++--
 .../res/layout/settings_highlightrule.xml     | 12 +++-
 app/src/main/res/layout/settings_identity.xml | 37 ++++++++----
 .../main/res/layout/settings_ignoreitem.xml   |  8 ++-
 app/src/main/res/layout/settings_list.xml     | 15 +++--
 app/src/main/res/layout/settings_network.xml  | 60 ++++++++++++++-----
 .../res/layout/settings_networkconfig.xml     | 20 +++++--
 .../res/layout/settings_networkserver.xml     | 28 ++++++---
 .../res/layout/settings_passwordchange.xml    | 14 +++--
 .../res/layout/setup_account_connection.xml   |  6 +-
 .../main/res/layout/setup_account_edit.xml    | 15 +++--
 .../main/res/layout/setup_account_name.xml    |  3 +-
 .../main/res/layout/setup_account_user.xml    |  6 +-
 .../main/res/layout/setup_network_network.xml |  9 ++-
 .../main/res/layout/setup_user_channels.xml   |  3 +-
 .../main/res/layout/setup_user_identity.xml   |  6 +-
 .../main/res/layout/setup_user_network.xml    |  9 ++-
 app/src/main/res/layout/widget_client.xml     |  2 +-
 .../res/layout/widget_quassel_setup_entry.xml |  1 +
 .../main/res/values-v17/styles_widgets.xml    |  7 ---
 app/src/main/res/values-v21/themes_base.xml   |  4 +-
 app/src/main/res/values/styles_widgets.xml    | 14 ++---
 app/src/main/res/values/themes_base.xml       |  4 +-
 38 files changed, 238 insertions(+), 136 deletions(-)

diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 944c33031..ba0d5aec4 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 dde98d605..e8e6af01c 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 fdf47d911..30dc52eae 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 4ebec0f58..7e85fad2b 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 5ceb32c8f..7b37af701 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 82eed3a49..03382e7ee 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 944d838c5..903502666 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 82093d630..9dcfd0527 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 ed27924e4..1f03ec4d6 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 d54c8515e..3d9722ae7 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 0b43a4400..afa256e08 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 3fac5c09b..bc8bc52d5 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 e707e968c..6176a5840 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 80d903746..58d1a9064 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 06a17d4e3..62db4198b 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 98a68545c..6ae568f3a 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 325673620..2636be27b 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 91f061f26..193c403f4 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 0a07b697f..65108129c 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 bd04bb2f7..d31153d06 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 2b7eebc4f..587a9a732 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 acbfb0a1e..b60501388 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 03fa10245..0f2516fed 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 caac858f4..3cbbdf6ab 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 a559d3928..ca8dc500a 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 96860d854..8ef9ed22c 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 83671e1b1..d6a746daa 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 917225ccb..e340c247b 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 1a135c926..c4366d386 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 2c5d57c9f..2149436f0 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 aa3e90147..903898721 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 d77b57f2a..f81841e36 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 00b8c0ca3..32454d07b 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 315e87687..00ce1d089 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 e1face6db..26dcbc06b 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 b8a487fa6..17c4101ff 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 27b65b4be..b2f583a58 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 07d8e4f93..7dbae2973 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>
-- 
GitLab