build: migrate to androidx

* use androidx support library
* update gradle
* update dependencies

Change-Id: Iba7a2734e783a4ce0d5e6459dc33b9036e46d2a5
diff --git a/ring-android/app/src/main/res/layout/activity_account_settings.xml b/ring-android/app/src/main/res/layout/activity_account_settings.xml
index d2042d2..f410290 100644
--- a/ring-android/app/src/main/res/layout/activity_account_settings.xml
+++ b/ring-android/app/src/main/res/layout/activity_account_settings.xml
@@ -13,26 +13,24 @@
         android:elevation="4dp"
         android:orientation="vertical">
 
-        <android.support.v7.widget.Toolbar
+        <androidx.appcompat.widget.Toolbar
             android:id="@+id/main_toolbar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:background="@color/color_primary_light"
             android:minHeight="?attr/actionBarSize"
-            android:popupTheme="@style/Theme.AppCompat.Light.NoActionBar"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+            android:popupTheme="@style/Theme.MaterialComponents.Light.NoActionBar"
+            android:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar"
             android:titleTextAppearance="@style/ToolbarTitle"
             app:contentInsetStart="72dp"
             app:titleTextAppearance="@style/ToolbarTitle" />
 
-        <android.support.design.widget.TabLayout
+        <com.google.android.material.tabs.TabLayout
             android:id="@+id/sliding_tabs"
+            style="@style/Widget.MaterialComponents.TabLayout.Colored"
+            android:background="@color/color_primary_light"
             android:layout_width="match_parent"
-            android:layout_height="48dp"
-            android:textColor="@color/text_color_primary_dark"
-            app:tabIndicatorColor="@color/text_color_primary_dark"
-            app:tabSelectedTextColor="@color/text_color_primary_dark"
-            app:tabTextColor="@color/text_color_primary_dark" />
+            android:layout_height="48dp" />
 
     </LinearLayout>
 
@@ -46,7 +44,7 @@
             android:layout_centerInParent="true"
             app:bounded_width="600dp">
 
-            <android.support.v4.view.ViewPager
+            <androidx.viewpager.widget.ViewPager
                 android:id="@+id/pager"
                 android:layout_width="wrap_content"
                 android:layout_height="match_parent"
diff --git a/ring-android/app/src/main/res/layout/activity_conversation.xml b/ring-android/app/src/main/res/layout/activity_conversation.xml
index be163ed..7bbbb84 100644
--- a/ring-android/app/src/main/res/layout/activity_conversation.xml
+++ b/ring-android/app/src/main/res/layout/activity_conversation.xml
@@ -7,7 +7,7 @@
     android:background="#ebeff0"
     tools:context=".client.ConversationActivity">
 
-    <android.support.v7.widget.Toolbar
+    <androidx.appcompat.widget.Toolbar
         android:id="@+id/main_toolbar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -16,8 +16,8 @@
         android:background="@color/color_primary_light"
         android:elevation="4dp"
         android:minHeight="?attr/actionBarSize"
-        android:popupTheme="@style/Theme.AppCompat.Light.NoActionBar"
-        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+        android:popupTheme="@style/Theme.MaterialComponents.Light.NoActionBar"
+        android:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar"
         app:contentInsetStart="72dp"
         app:elevation="4dp"
         app:subtitleTextAppearance="@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle"
diff --git a/ring-android/app/src/main/res/layout/activity_home.xml b/ring-android/app/src/main/res/layout/activity_home.xml
index 749a503..39c21ce 100644
--- a/ring-android/app/src/main/res/layout/activity_home.xml
+++ b/ring-android/app/src/main/res/layout/activity_home.xml
@@ -19,7 +19,7 @@
  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.          
 -->
 
-<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:id="@+id/drawer_layout"
@@ -36,7 +36,7 @@
         android:paddingEnd="0dp"
         android:paddingStart="@dimen/drawer_content_padding">
 
-        <android.support.v7.widget.Toolbar
+        <androidx.appcompat.widget.Toolbar
             android:id="@+id/main_toolbar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -45,8 +45,8 @@
             android:background="@color/color_primary_light"
             android:elevation="@dimen/toolbar_elevation"
             android:minHeight="?attr/actionBarSize"
-            android:popupTheme="@style/Theme.AppCompat.Light.NoActionBar"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+            android:popupTheme="@style/Theme.MaterialComponents.Light.NoActionBar"
+            android:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar"
             android:titleTextAppearance="@style/ToolbarTitle"
             app:contentInsetStart="@dimen/toolbar_content_inset"
             app:elevation="@dimen/toolbar_elevation"
@@ -83,7 +83,7 @@
             android:layout_below="@+id/toolbar_spacer"
             android:orientation="vertical" />
 
-        <android.support.design.widget.FloatingActionButton
+        <com.google.android.material.floatingactionbutton.FloatingActionButton
             android:id="@+id/action_button"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
@@ -102,7 +102,7 @@
 
     </RelativeLayout>
 
-    <android.support.design.widget.NavigationView
+    <com.google.android.material.navigation.NavigationView
         android:id="@+id/left_drawer"
         android:layout_width="wrap_content"
         android:layout_height="match_parent"
@@ -117,6 +117,6 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content" />
 
-    </android.support.design.widget.NavigationView>
+    </com.google.android.material.navigation.NavigationView>
 
-</android.support.v4.widget.DrawerLayout>
\ No newline at end of file
+</androidx.drawerlayout.widget.DrawerLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/add_new_device_layout.xml b/ring-android/app/src/main/res/layout/add_new_device_layout.xml
index 7f617be..1617a71 100644
--- a/ring-android/app/src/main/res/layout/add_new_device_layout.xml
+++ b/ring-android/app/src/main/res/layout/add_new_device_layout.xml
@@ -34,14 +34,12 @@
         android:elevation="4dp"
         android:orientation="vertical">
 
-        <Button
+        <com.google.android.material.button.MaterialButton
             android:id="@+id/btn_add_device"
-            style="@style/Base.TextAppearance.AppCompat.Widget.Button.Borderless.Colored"
-            android:layout_width="match_parent"
+            style="@style/Widget.MaterialComponents.Button.TextButton"
+            android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:background="?attr/selectableItemBackground"
-            android:paddingBottom="5dp"
-            android:paddingTop="5dp"
+            android:layout_gravity="center_horizontal"
             android:text="@string/account_link_export_button"
             android:textColor="@color/white" />
 
@@ -52,7 +50,7 @@
             android:orientation="vertical">
 
             <ScrollView
-                android:layout_width="wrap_content"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content">
 
                 <LinearLayout
@@ -65,16 +63,16 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:gravity="top"
-                        android:paddingBottom="0dp"
                         android:paddingLeft="16dp"
-                        android:paddingRight="16dp"
                         android:paddingTop="5dp"
+                        android:paddingRight="16dp"
+                        android:paddingBottom="0dp"
                         android:text="@string/account_link_export_info"
                         android:textColor="@color/text_color_primary_dark"
                         android:textIsSelectable="true"
                         android:textSize="14sp" />
 
-                    <android.support.design.widget.TextInputLayout
+                    <com.google.android.material.textfield.TextInputLayout
                         android:id="@+id/password_layout"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
@@ -82,34 +80,29 @@
                         android:paddingRight="16dp"
                         app:passwordToggleEnabled="true">
 
-                        <android.support.design.widget.TextInputEditText
+                        <com.google.android.material.textfield.TextInputEditText
                             android:id="@+id/ring_password"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
                             android:hint="@string/account_enter_password"
                             android:imeOptions="actionDone"
                             android:inputType="textPassword" />
-                    </android.support.design.widget.TextInputLayout>
+                    </com.google.android.material.textfield.TextInputLayout>
 
-                    <Button
+                    <com.google.android.material.button.MaterialButton
                         android:id="@+id/btn_start_export"
-                        style="?attr/borderlessButtonStyle"
-                        android:layout_width="match_parent"
+                        android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:background="?attr/selectableItemBackground"
-                        android:paddingBottom="5dp"
-                        android:paddingTop="5dp"
+                        android:layout_gravity="center_horizontal"
                         android:text="@string/account_start_export_button"
                         android:textColor="@color/white" />
 
-                    <Button
+                    <com.google.android.material.button.MaterialButton
                         android:id="@+id/btn_end_export"
-                        style="?attr/borderlessButtonStyle"
-                        android:layout_width="match_parent"
+                        style="@style/Widget.MaterialComponents.Button.TextButton"
+                        android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:background="?attr/selectableItemBackground"
-                        android:paddingBottom="5dp"
-                        android:paddingTop="5dp"
+                        android:layout_gravity="center_horizontal"
                         android:text="@string/account_end_export_button"
                         android:textColor="@color/white"
                         android:visibility="gone" />
diff --git a/ring-android/app/src/main/res/layout/camerapicker.xml b/ring-android/app/src/main/res/layout/camerapicker.xml
index 0736652..006a8e7 100644
--- a/ring-android/app/src/main/res/layout/camerapicker.xml
+++ b/ring-android/app/src/main/res/layout/camerapicker.xml
@@ -9,7 +9,7 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent" />
 
-    <android.support.design.widget.FloatingActionButton
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
         android:id="@+id/button_capture"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/ring-android/app/src/main/res/layout/dialog_confirm_revocation.xml b/ring-android/app/src/main/res/layout/dialog_confirm_revocation.xml
index ad3c674..37959c3 100644
--- a/ring-android/app/src/main/res/layout/dialog_confirm_revocation.xml
+++ b/ring-android/app/src/main/res/layout/dialog_confirm_revocation.xml
@@ -5,7 +5,7 @@
     android:orientation="vertical"
     android:paddingTop="16dp">
 
-    <android.support.design.widget.TextInputLayout
+    <com.google.android.material.textfield.TextInputLayout
         android:id="@+id/ring_password_txt_box"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -13,7 +13,7 @@
         android:layout_marginLeft="12dp"
         android:layout_marginRight="12dp">
 
-        <android.support.design.widget.TextInputEditText
+        <com.google.android.material.textfield.TextInputEditText
             android:id="@+id/ring_password_txt"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -22,6 +22,6 @@
             android:inputType="textPassword"
             android:lines="1"
             android:maxLines="1" />
-    </android.support.design.widget.TextInputLayout>
+    </com.google.android.material.textfield.TextInputLayout>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/dialog_device_rename.xml b/ring-android/app/src/main/res/layout/dialog_device_rename.xml
index b7a04a3..4eb269b 100644
--- a/ring-android/app/src/main/res/layout/dialog_device_rename.xml
+++ b/ring-android/app/src/main/res/layout/dialog_device_rename.xml
@@ -5,7 +5,7 @@
     android:orientation="vertical"
     android:paddingTop="16dp">
 
-    <android.support.design.widget.TextInputLayout
+    <com.google.android.material.textfield.TextInputLayout
         android:id="@+id/ring_device_name_txt_box"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -13,7 +13,7 @@
         android:layout_marginLeft="12dp"
         android:layout_marginRight="12dp">
 
-        <android.support.design.widget.TextInputEditText
+        <com.google.android.material.textfield.TextInputEditText
             android:id="@+id/ring_device_name_txt"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -22,6 +22,6 @@
             android:inputType="textCapWords"
             android:lines="1"
             android:maxLines="1" />
-    </android.support.design.widget.TextInputLayout>
+    </com.google.android.material.textfield.TextInputLayout>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/dialog_profile.xml b/ring-android/app/src/main/res/layout/dialog_profile.xml
index b146220..29045a2 100644
--- a/ring-android/app/src/main/res/layout/dialog_profile.xml
+++ b/ring-android/app/src/main/res/layout/dialog_profile.xml
@@ -37,7 +37,7 @@
                 android:scaleType="fitCenter"
                 app:srcCompat="@drawable/ic_contact_picture_fallback" />
 
-            <android.support.design.widget.FloatingActionButton
+            <com.google.android.material.floatingactionbutton.FloatingActionButton
                 android:id="@+id/gallery"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
@@ -56,7 +56,7 @@
                 android:layout_alignBottom="@+id/profile_photo"
                 android:layout_centerHorizontal="true" />
 
-            <android.support.design.widget.FloatingActionButton
+            <com.google.android.material.floatingactionbutton.FloatingActionButton
                 android:id="@+id/camera"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
diff --git a/ring-android/app/src/main/res/layout/frag_about.xml b/ring-android/app/src/main/res/layout/frag_about.xml
index 5ea4bdd..c9caa06 100644
--- a/ring-android/app/src/main/res/layout/frag_about.xml
+++ b/ring-android/app/src/main/res/layout/frag_about.xml
@@ -220,7 +220,7 @@
 
         </LinearLayout>
 
-        <android.support.v7.widget.AppCompatButton
+        <androidx.appcompat.widget.AppCompatButton
             android:id="@+id/credits"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
diff --git a/ring-android/app/src/main/res/layout/frag_acc_home_create.xml b/ring-android/app/src/main/res/layout/frag_acc_home_create.xml
index a044ebc..8c47a94 100644
--- a/ring-android/app/src/main/res/layout/frag_acc_home_create.xml
+++ b/ring-android/app/src/main/res/layout/frag_acc_home_create.xml
@@ -45,7 +45,7 @@
             android:textSize="14sp"
             android:textColor="@color/text_color_primary_dark" />
 
-        <android.support.v7.widget.AppCompatButton
+        <androidx.appcompat.widget.AppCompatButton
             android:id="@+id/ring_add_account"
             android:theme="@style/ButtonColored"
             android:layout_width="300dp"
@@ -55,7 +55,7 @@
             android:text="@string/account_link_button" />
 
 
-        <android.support.v7.widget.AppCompatButton
+        <androidx.appcompat.widget.AppCompatButton
             android:id="@+id/ring_create_btn"
             android:theme="@style/ButtonColored"
             android:layout_width="300dp"
diff --git a/ring-android/app/src/main/res/layout/frag_acc_profile_create.xml b/ring-android/app/src/main/res/layout/frag_acc_profile_create.xml
index 1a636ef..87b9595 100644
--- a/ring-android/app/src/main/res/layout/frag_acc_profile_create.xml
+++ b/ring-android/app/src/main/res/layout/frag_acc_profile_create.xml
@@ -60,7 +60,7 @@
                     android:scaleType="fitCenter"
                     tools:src="@drawable/ic_contact_picture_fallback" />
 
-                <android.support.design.widget.FloatingActionButton
+                <com.google.android.material.floatingactionbutton.FloatingActionButton
                     android:id="@+id/camera"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
@@ -79,7 +79,7 @@
                     android:layout_alignBottom="@+id/profile_photo"
                     android:layout_centerHorizontal="true" />
 
-                <android.support.design.widget.FloatingActionButton
+                <com.google.android.material.floatingactionbutton.FloatingActionButton
                     android:id="@+id/gallery"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
diff --git a/ring-android/app/src/main/res/layout/frag_acc_ring_create.xml b/ring-android/app/src/main/res/layout/frag_acc_ring_create.xml
index bc2fcd6..3b259f8 100644
--- a/ring-android/app/src/main/res/layout/frag_acc_ring_create.xml
+++ b/ring-android/app/src/main/res/layout/frag_acc_ring_create.xml
@@ -49,7 +49,7 @@
                 android:layout_height="wrap_content"
                 android:orientation="vertical">
 
-                <android.support.design.widget.TextInputLayout
+                <com.google.android.material.textfield.TextInputLayout
                     android:id="@+id/ring_username_txt_box"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -57,7 +57,7 @@
                     android:layout_marginLeft="12dp"
                     android:layout_marginRight="12dp">
 
-                    <android.support.design.widget.TextInputEditText
+                    <com.google.android.material.textfield.TextInputEditText
                         android:id="@+id/ring_username"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
@@ -67,7 +67,7 @@
                         android:inputType="text"
                         android:lines="1"
                         android:maxLines="1" />
-                </android.support.design.widget.TextInputLayout>
+                </com.google.android.material.textfield.TextInputLayout>
 
             </LinearLayout>
 
@@ -81,7 +81,7 @@
                 android:text="@string/help_password_choose"
                 android:textColor="@color/text_color_primary_dark" />
 
-            <android.support.design.widget.TextInputLayout
+            <com.google.android.material.textfield.TextInputLayout
                 android:id="@+id/ring_password_txt_box"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
@@ -89,16 +89,16 @@
                 android:layout_marginRight="12dp"
                 app:passwordToggleEnabled="true">
 
-                <android.support.design.widget.TextInputEditText
+                <com.google.android.material.textfield.TextInputEditText
                     android:id="@+id/ring_password"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:hint="@string/prompt_new_password"
                     android:imeOptions="actionNext"
                     android:inputType="textPassword" />
-            </android.support.design.widget.TextInputLayout>
+            </com.google.android.material.textfield.TextInputLayout>
 
-            <android.support.design.widget.TextInputLayout
+            <com.google.android.material.textfield.TextInputLayout
                 android:id="@+id/ring_password_repeat_txt_box"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
@@ -106,7 +106,7 @@
                 android:layout_marginRight="12dp"
                 app:passwordToggleEnabled="true">
 
-                <android.support.design.widget.TextInputEditText
+                <com.google.android.material.textfield.TextInputEditText
                     android:id="@+id/ring_password_repeat"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -114,7 +114,7 @@
                     android:imeActionLabel="@string/action_create_short"
                     android:imeOptions="actionDone"
                     android:inputType="textPassword" />
-            </android.support.design.widget.TextInputLayout>
+            </com.google.android.material.textfield.TextInputLayout>
 
         </LinearLayout>
 
diff --git a/ring-android/app/src/main/res/layout/frag_acc_ring_link.xml b/ring-android/app/src/main/res/layout/frag_acc_ring_link.xml
index 5f8b54d..92f77de 100644
--- a/ring-android/app/src/main/res/layout/frag_acc_ring_link.xml
+++ b/ring-android/app/src/main/res/layout/frag_acc_ring_link.xml
@@ -45,7 +45,7 @@
                 android:textColor="@color/text_color_primary_dark"
                 android:textSize="14sp" />
 
-            <android.support.design.widget.TextInputLayout
+            <com.google.android.material.textfield.TextInputLayout
                 android:id="@+id/ring_password_txt_box"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
@@ -53,14 +53,14 @@
                 android:layout_marginRight="12dp"
                 app:passwordToggleEnabled="true">
 
-                <android.support.design.widget.TextInputEditText
+                <com.google.android.material.textfield.TextInputEditText
                     android:id="@+id/ring_existing_password"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:hint="@string/prompt_password"
                     android:imeOptions="actionNext"
                     android:inputType="textPassword" />
-            </android.support.design.widget.TextInputLayout>
+            </com.google.android.material.textfield.TextInputLayout>
 
             <TextView
                 android:layout_width="match_parent"
@@ -73,14 +73,14 @@
                 android:textColor="@color/text_color_primary_dark"
                 android:textSize="14sp" />
 
-            <android.support.design.widget.TextInputLayout
+            <com.google.android.material.textfield.TextInputLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginLeft="12dp"
                 android:layout_marginRight="12dp"
                 app:passwordToggleEnabled="true">
 
-                <android.support.design.widget.TextInputEditText
+                <com.google.android.material.textfield.TextInputEditText
                     android:id="@+id/ring_add_pin"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -89,7 +89,7 @@
                     android:inputType="textNoSuggestions"
                     android:singleLine="true"/>
 
-            </android.support.design.widget.TextInputLayout>
+            </com.google.android.material.textfield.TextInputLayout>
 
         </LinearLayout>
 
diff --git a/ring-android/app/src/main/res/layout/frag_acc_sip_create.xml b/ring-android/app/src/main/res/layout/frag_acc_sip_create.xml
index f03aec7..69776d0 100644
--- a/ring-android/app/src/main/res/layout/frag_acc_sip_create.xml
+++ b/ring-android/app/src/main/res/layout/frag_acc_sip_create.xml
@@ -60,11 +60,11 @@
                 android:text="@string/help_sip"
                 android:textSize="14sp" />
 
-            <android.support.design.widget.TextInputLayout
+            <com.google.android.material.textfield.TextInputLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content">
 
-                <android.support.design.widget.TextInputEditText
+                <com.google.android.material.textfield.TextInputEditText
                     android:id="@+id/alias"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -73,13 +73,13 @@
                     android:imeOptions="flagNoExtractUi"
                     android:maxLines="1"
                     android:singleLine="true" />
-            </android.support.design.widget.TextInputLayout>
+            </com.google.android.material.textfield.TextInputLayout>
 
-            <android.support.design.widget.TextInputLayout
+            <com.google.android.material.textfield.TextInputLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content">
 
-                <android.support.design.widget.TextInputEditText
+                <com.google.android.material.textfield.TextInputEditText
                     android:id="@+id/hostname"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -89,13 +89,13 @@
                     android:maxLines="1"
                     android:singleLine="true"
                     android:typeface="monospace" />
-            </android.support.design.widget.TextInputLayout>
+            </com.google.android.material.textfield.TextInputLayout>
 
-            <android.support.design.widget.TextInputLayout
+            <com.google.android.material.textfield.TextInputLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content">
 
-                <android.support.design.widget.TextInputEditText
+                <com.google.android.material.textfield.TextInputEditText
                     android:id="@+id/username"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -105,14 +105,14 @@
                     android:maxLines="1"
                     android:singleLine="true"
                     android:typeface="monospace" />
-            </android.support.design.widget.TextInputLayout>
+            </com.google.android.material.textfield.TextInputLayout>
 
-            <android.support.design.widget.TextInputLayout
+            <com.google.android.material.textfield.TextInputLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 app:passwordToggleEnabled="true">
 
-                <android.support.design.widget.TextInputEditText
+                <com.google.android.material.textfield.TextInputEditText
                     android:id="@+id/password"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -124,7 +124,7 @@
                     android:maxLines="1"
                     android:singleLine="true"
                     android:typeface="monospace" />
-            </android.support.design.widget.TextInputLayout>
+            </com.google.android.material.textfield.TextInputLayout>
 
         </LinearLayout>
     </cx.ring.views.BoundedScrollView>
diff --git a/ring-android/app/src/main/res/layout/frag_account_migration.xml b/ring-android/app/src/main/res/layout/frag_account_migration.xml
index 96364ee..e267268 100644
--- a/ring-android/app/src/main/res/layout/frag_account_migration.xml
+++ b/ring-android/app/src/main/res/layout/frag_account_migration.xml
@@ -34,7 +34,7 @@
         android:orientation="vertical"
         app:bounded_width="320dp">
 
-        <android.support.v7.widget.CardView
+        <androidx.cardview.widget.CardView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginBottom="16dp"
@@ -97,12 +97,12 @@
                         android:background="@color/color_primary_light"
                         android:orientation="vertical">
 
-                        <android.support.design.widget.TextInputLayout
+                        <com.google.android.material.textfield.TextInputLayout
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
                             app:passwordToggleEnabled="true">
 
-                            <android.support.design.widget.TextInputEditText
+                            <com.google.android.material.textfield.TextInputEditText
                                 android:id="@+id/ring_password"
                                 android:layout_width="match_parent"
                                 android:layout_height="wrap_content"
@@ -112,7 +112,7 @@
                                 android:hint="@string/prompt_password"
                                 android:imeOptions="actionNext"
                                 android:inputType="textPassword" />
-                        </android.support.design.widget.TextInputLayout>
+                        </com.google.android.material.textfield.TextInputLayout>
 
                     </LinearLayout>
 
@@ -129,7 +129,7 @@
 
             </RelativeLayout>
 
-        </android.support.v7.widget.CardView>
+        </androidx.cardview.widget.CardView>
 
     </cx.ring.views.BoundedLinearLayout>
 
diff --git a/ring-android/app/src/main/res/layout/frag_accounts_list.xml b/ring-android/app/src/main/res/layout/frag_accounts_list.xml
index 2806cd6..39a5bbe 100644
--- a/ring-android/app/src/main/res/layout/frag_accounts_list.xml
+++ b/ring-android/app/src/main/res/layout/frag_accounts_list.xml
@@ -15,7 +15,7 @@
 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
@@ -44,7 +44,7 @@
             android:clipToPadding="false"
             android:elevation="2dp">
 
-            <android.support.v7.widget.RecyclerView
+            <androidx.recyclerview.widget.RecyclerView
                 android:id="@+id/accounts_list"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
@@ -67,4 +67,4 @@
 
         </FrameLayout>
     </LinearLayout>
-</android.support.v4.widget.NestedScrollView>
\ No newline at end of file
+</androidx.core.widget.NestedScrollView>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/frag_blacklist.xml b/ring-android/app/src/main/res/layout/frag_blacklist.xml
index 5e3b2c0..bd43ee9 100644
--- a/ring-android/app/src/main/res/layout/frag_blacklist.xml
+++ b/ring-android/app/src/main/res/layout/frag_blacklist.xml
@@ -6,7 +6,7 @@
     android:animateLayoutChanges="true"
     tools:context=".client.HomeActivity">
 
-    <android.support.v7.widget.RecyclerView
+    <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/blacklist"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
diff --git a/ring-android/app/src/main/res/layout/frag_call.xml b/ring-android/app/src/main/res/layout/frag_call.xml
index 44ab682..a54b416 100644
--- a/ring-android/app/src/main/res/layout/frag_call.xml
+++ b/ring-android/app/src/main/res/layout/frag_call.xml
@@ -134,7 +134,7 @@
             android:orientation="horizontal"
             tools:visibility="gone">
 
-            <android.support.design.widget.FloatingActionButton
+            <com.google.android.material.floatingactionbutton.FloatingActionButton
                 android:id="@+id/call_refuse_btn"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
@@ -148,7 +148,7 @@
                 app:srcCompat="@drawable/ic_call_end_white"
                 app:useCompatPadding="true" />
 
-            <android.support.design.widget.FloatingActionButton
+            <com.google.android.material.floatingactionbutton.FloatingActionButton
                 android:id="@+id/call_accept_btn"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
@@ -221,7 +221,7 @@
             android:inputType="phone"
             android:visibility="visible" />
 
-        <android.support.design.widget.FloatingActionButton
+        <com.google.android.material.floatingactionbutton.FloatingActionButton
             android:id="@+id/call_hangup_btn"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
diff --git a/ring-android/app/src/main/res/layout/frag_conversation.xml b/ring-android/app/src/main/res/layout/frag_conversation.xml
index eb072b5..26903a1 100644
--- a/ring-android/app/src/main/res/layout/frag_conversation.xml
+++ b/ring-android/app/src/main/res/layout/frag_conversation.xml
@@ -37,7 +37,7 @@
 
     </LinearLayout>
 
-    <android.support.v7.widget.RecyclerView
+    <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/hist_list"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
@@ -73,7 +73,7 @@
             android:textColor="@color/text_color_primary" />
     </LinearLayout>
 
-    <android.support.v7.widget.CardView
+    <androidx.cardview.widget.CardView
         android:id="@+id/unknownContactPrompt"
         style="?android:attr/buttonBarStyle"
         android:layout_width="match_parent"
@@ -89,7 +89,7 @@
 
         <Button
             android:id="@+id/btnAddContact"
-            style="?attr/buttonBarButtonStyle"
+            style="@style/Widget.MaterialComponents.Button.TextButton"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:layout_margin="0dp"
@@ -98,9 +98,9 @@
             android:padding="0dp"
             android:text="@string/ab_action_contact_add"
             android:textColor="@color/white" />
-    </android.support.v7.widget.CardView>
+    </androidx.cardview.widget.CardView>
 
-    <android.support.v7.widget.CardView
+    <androidx.cardview.widget.CardView
         android:id="@+id/trustRequestPrompt"
         style="?android:attr/buttonBarStyle"
         android:layout_width="match_parent"
@@ -124,7 +124,7 @@
 
             <Button
                 android:id="@+id/btnBlock"
-                style="?android:attr/buttonBarButtonStyle"
+                style="@style/Widget.MaterialComponents.Button.TextButton"
                 android:layout_width="0dp"
                 android:layout_height="match_parent"
                 android:layout_weight="1"
@@ -135,7 +135,7 @@
 
             <Button
                 android:id="@+id/btnRefuse"
-                style="?android:attr/buttonBarButtonStyle"
+                style="@style/Widget.MaterialComponents.Button.TextButton"
                 android:layout_width="0dp"
                 android:layout_height="match_parent"
                 android:layout_weight="1"
@@ -146,7 +146,7 @@
 
             <Button
                 android:id="@+id/btnAccept"
-                style="?android:attr/buttonBarButtonStyle"
+                style="@style/Widget.MaterialComponents.Button.TextButton"
                 android:layout_width="0dp"
                 android:layout_height="match_parent"
                 android:layout_weight="1"
@@ -155,9 +155,9 @@
                 android:text="@string/accept"
                 android:textColor="#4CAF50" />
         </LinearLayout>
-    </android.support.v7.widget.CardView>
+    </androidx.cardview.widget.CardView>
 
-    <android.support.v7.widget.CardView
+    <androidx.cardview.widget.CardView
         android:id="@+id/cvMessageInput"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -234,5 +234,5 @@
                 android:tint="@android:color/darker_gray"
                 app:srcCompat="@drawable/ic_send_black" />
         </LinearLayout>
-    </android.support.v7.widget.CardView>
+    </androidx.cardview.widget.CardView>
 </RelativeLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/frag_device_list.xml b/ring-android/app/src/main/res/layout/frag_device_list.xml
index 82d6cc1..0334809 100644
--- a/ring-android/app/src/main/res/layout/frag_device_list.xml
+++ b/ring-android/app/src/main/res/layout/frag_device_list.xml
@@ -60,7 +60,7 @@
                     tools:text="Registered" />
 
 
-                <android.support.v7.widget.SwitchCompat
+                <androidx.appcompat.widget.SwitchCompat
                     android:id="@+id/account_switch"
                     android:layout_width="50dp"
                     android:layout_height="wrap_content"
@@ -118,9 +118,9 @@
                         android:text="@string/no_registered_name_for_account"
                         android:textAlignment="center" />
 
-                    <Button
+                    <com.google.android.material.button.MaterialButton
                         android:id="@+id/register_name_btn"
-                        style="@style/Widget.AppCompat.Button.Colored"
+                        style="@style/Widget.MaterialComponents.Button"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:paddingEnd="16dp"
diff --git a/ring-android/app/src/main/res/layout/frag_navigation.xml b/ring-android/app/src/main/res/layout/frag_navigation.xml
index 61968b6..c36dd2d 100644
--- a/ring-android/app/src/main/res/layout/frag_navigation.xml
+++ b/ring-android/app/src/main/res/layout/frag_navigation.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
@@ -40,7 +40,7 @@
                     android:layout_alignBottom="@+id/user_photo"
                     android:layout_centerHorizontal="true" />
 
-                <android.support.design.widget.FloatingActionButton
+                <com.google.android.material.floatingactionbutton.FloatingActionButton
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_alignTop="@+id/anchor"
@@ -68,7 +68,7 @@
 
             </RelativeLayout>
 
-            <android.support.v7.widget.AppCompatButton
+            <androidx.appcompat.widget.AppCompatButton
                 android:id="@+id/addaccount_btn"
                 style="@style/Widget.AppCompat.Button.Borderless"
                 android:layout_width="wrap_content"
@@ -88,14 +88,14 @@
             android:layout_height="wrap_content"
             android:paddingTop="8dp">
 
-            <android.support.v7.widget.RecyclerView
+            <androidx.recyclerview.widget.RecyclerView
                 android:id="@+id/drawer_menu"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:nestedScrollingEnabled="false"
                 tools:targetApi="lollipop" />
 
-            <android.support.v7.widget.RecyclerView
+            <androidx.recyclerview.widget.RecyclerView
                 android:id="@+id/drawer_accounts"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
@@ -105,6 +105,6 @@
         </FrameLayout>
 
     </LinearLayout>
-</android.support.v4.widget.NestedScrollView>
+</androidx.core.widget.NestedScrollView>
 
 
diff --git a/ring-android/app/src/main/res/layout/frag_pending_contact_requests.xml b/ring-android/app/src/main/res/layout/frag_pending_contact_requests.xml
index 2d9b676..0527b99 100644
--- a/ring-android/app/src/main/res/layout/frag_pending_contact_requests.xml
+++ b/ring-android/app/src/main/res/layout/frag_pending_contact_requests.xml
@@ -20,7 +20,7 @@
         android:textColor="@color/text_color_primary"
         android:visibility="gone" />
 
-    <android.support.v7.widget.RecyclerView
+    <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/requests_list"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
diff --git a/ring-android/app/src/main/res/layout/frag_register_name.xml b/ring-android/app/src/main/res/layout/frag_register_name.xml
index f03ce48..37bcce4 100644
--- a/ring-android/app/src/main/res/layout/frag_register_name.xml
+++ b/ring-android/app/src/main/res/layout/frag_register_name.xml
@@ -5,7 +5,7 @@
     android:orientation="vertical"
     android:paddingTop="16dp">
 
-    <android.support.design.widget.TextInputLayout
+    <com.google.android.material.textfield.TextInputLayout
         android:id="@+id/ring_username_txt_box"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -13,7 +13,7 @@
         android:layout_marginLeft="12dp"
         android:layout_marginRight="12dp">
 
-        <android.support.design.widget.TextInputEditText
+        <com.google.android.material.textfield.TextInputEditText
             android:id="@+id/ring_username"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -22,9 +22,9 @@
             android:inputType="text"
             android:lines="1"
             android:maxLines="1" />
-    </android.support.design.widget.TextInputLayout>
+    </com.google.android.material.textfield.TextInputLayout>
 
-    <android.support.design.widget.TextInputLayout
+    <com.google.android.material.textfield.TextInputLayout
         android:id="@+id/ring_password_txt_box"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -32,7 +32,7 @@
         android:layout_marginLeft="12dp"
         android:layout_marginRight="12dp">
 
-        <android.support.design.widget.TextInputEditText
+        <com.google.android.material.textfield.TextInputEditText
             android:id="@+id/ring_password_txt"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -41,6 +41,6 @@
             android:inputType="textPassword"
             android:lines="1"
             android:maxLines="1" />
-    </android.support.design.widget.TextInputLayout>
+    </com.google.android.material.textfield.TextInputLayout>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/frag_share.xml b/ring-android/app/src/main/res/layout/frag_share.xml
index 8d37e81..d6ff163 100644
--- a/ring-android/app/src/main/res/layout/frag_share.xml
+++ b/ring-android/app/src/main/res/layout/frag_share.xml
@@ -10,7 +10,7 @@
         android:layout_alignParentBottom="true"
         android:background="@color/color_primary_dark">
 
-        <android.support.v7.widget.AppCompatButton
+        <androidx.appcompat.widget.AppCompatButton
             android:id="@+id/share_button"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
diff --git a/ring-android/app/src/main/res/layout/frag_sharewith.xml b/ring-android/app/src/main/res/layout/frag_sharewith.xml
index e41b063..7693789 100644
--- a/ring-android/app/src/main/res/layout/frag_sharewith.xml
+++ b/ring-android/app/src/main/res/layout/frag_sharewith.xml
@@ -7,7 +7,7 @@
     android:layout_height="match_parent"
     android:orientation="vertical">
 
-    <android.support.v7.widget.Toolbar
+    <androidx.appcompat.widget.Toolbar
         android:id="@+id/toolbar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -52,7 +52,7 @@
 
     </FrameLayout>
 
-    <android.support.v7.widget.RecyclerView
+    <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/shareList"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
diff --git a/ring-android/app/src/main/res/layout/frag_smartlist.xml b/ring-android/app/src/main/res/layout/frag_smartlist.xml
index 1c815c3..8e3353a 100644
--- a/ring-android/app/src/main/res/layout/frag_smartlist.xml
+++ b/ring-android/app/src/main/res/layout/frag_smartlist.xml
@@ -83,7 +83,7 @@
         android:layout_height="match_parent"
         android:layout_below="@id/newcontact_element">
 
-        <android.support.v7.widget.RecyclerView
+        <androidx.recyclerview.widget.RecyclerView
             android:id="@+id/confs_list"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
@@ -113,7 +113,7 @@
             android:layout_centerInParent="true" />
     </RelativeLayout>
 
-    <android.support.design.widget.FloatingActionButton
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
         android:id="@+id/newconv_fab"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/ring-android/app/src/main/res/layout/item_account.xml b/ring-android/app/src/main/res/layout/item_account.xml
index 5daec42..a58f344 100644
--- a/ring-android/app/src/main/res/layout/item_account.xml
+++ b/ring-android/app/src/main/res/layout/item_account.xml
@@ -47,7 +47,7 @@
 
     <TextView
         android:id="@+id/account_disabled"
-        style="@style/TextAppearance.AppCompat.Small"
+        style="@style/TextAppearance.MaterialComponents.Subtitle2"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignBaseline="@+id/account_alias"
diff --git a/ring-android/app/src/main/res/layout/item_menu.xml b/ring-android/app/src/main/res/layout/item_menu.xml
index 5103ed6..a928581 100644
--- a/ring-android/app/src/main/res/layout/item_menu.xml
+++ b/ring-android/app/src/main/res/layout/item_menu.xml
@@ -7,7 +7,7 @@
     android:background="?android:attr/selectableItemBackground"
     android:drawSelectorOnTop="true">
 
-    <android.support.v7.widget.AppCompatImageView
+    <androidx.appcompat.widget.AppCompatImageView
         android:id="@+id/navigation_item_icon"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/ring-android/app/src/main/res/layout/tv_frag_call.xml b/ring-android/app/src/main/res/layout/tv_frag_call.xml
index a39edc1..53662a6 100644
--- a/ring-android/app/src/main/res/layout/tv_frag_call.xml
+++ b/ring-android/app/src/main/res/layout/tv_frag_call.xml
@@ -127,7 +127,7 @@
                 android:layout_margin="12dp"
                 android:orientation="horizontal">
 
-                <android.support.design.widget.FloatingActionButton
+                <com.google.android.material.floatingactionbutton.FloatingActionButton
                     android:id="@+id/call_refuse_btn"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
@@ -140,7 +140,7 @@
                     app:srcCompat="@drawable/ic_call_end_white"
                     app:useCompatPadding="true" />
 
-                <android.support.design.widget.FloatingActionButton
+                <com.google.android.material.floatingactionbutton.FloatingActionButton
                     android:id="@+id/call_accept_btn"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
@@ -157,7 +157,7 @@
         </LinearLayout>
     </LinearLayout>
 
-    <android.support.design.widget.FloatingActionButton
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
         android:id="@+id/call_hangup_btn"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/ring-android/app/src/main/res/layout/tv_titleview.xml b/ring-android/app/src/main/res/layout/tv_titleview.xml
index ca51798..3dc85a4 100644
--- a/ring-android/app/src/main/res/layout/tv_titleview.xml
+++ b/ring-android/app/src/main/res/layout/tv_titleview.xml
@@ -3,7 +3,7 @@
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:app="http://schemas.android.com/apk/res-auto">
 
-    <android.support.v17.leanback.widget.SearchOrbView
+    <androidx.leanback.widget.SearchOrbView
         android:id="@+id/title_orb"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"