Migrate from Android Support Library to AndroidX

Ferdinand PΓΆll created

Unignored gradle.properties since androidX requires additions there
See also https://developer.android.com/jetpack/androidx/migrate

Change summary

.gitignore                                                                          |  1 
build.gradle                                                                        | 24 
gradle.properties                                                                   |  2 
src/compat/java/eu/siacs/conversations/ui/widget/EmojiWrapperEditText.java          |  2 
src/compat/java/eu/siacs/conversations/utils/EmojiWrapper.java                      |  2 
src/conversations/java/eu/siacs/conversations/services/ImportBackupService.java     |  4 
src/conversations/java/eu/siacs/conversations/ui/EasyOnboardingInviteActivity.java  |  4 
src/conversations/java/eu/siacs/conversations/ui/ImportBackupActivity.java          | 10 
src/conversations/java/eu/siacs/conversations/ui/MagicCreateActivity.java           |  4 
src/conversations/java/eu/siacs/conversations/ui/ManageAccountActivity.java         |  6 
src/conversations/java/eu/siacs/conversations/ui/PickServerActivity.java            |  6 
src/conversations/java/eu/siacs/conversations/ui/WelcomeActivity.java               | 10 
src/conversations/java/eu/siacs/conversations/ui/adapter/BackupFileAdapter.java     |  6 
src/conversations/res/layout/activity_import_backup.xml                             |  8 
src/conversations/res/layout/dialog_enter_password.xml                              |  4 
src/freeCompat/java/eu/siacs/conversations/ui/service/EmojiService.java             | 11 
src/main/AndroidManifest.xml                                                        |  2 
src/main/java/eu/siacs/conversations/crypto/PgpEngine.java                          |  2 
src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java             |  4 
src/main/java/eu/siacs/conversations/crypto/axolotl/XmppAxolotlSession.java         |  4 
src/main/java/eu/siacs/conversations/entities/Bookmark.java                         |  4 
src/main/java/eu/siacs/conversations/entities/Contact.java                          |  2 
src/main/java/eu/siacs/conversations/entities/Conversation.java                     |  4 
src/main/java/eu/siacs/conversations/entities/MucOptions.java                       |  4 
src/main/java/eu/siacs/conversations/entities/Presence.java                         |  2 
src/main/java/eu/siacs/conversations/entities/RtpSessionStatus.java                 |  2 
src/main/java/eu/siacs/conversations/entities/ServiceDiscoveryResult.java           |  2 
src/main/java/eu/siacs/conversations/http/HttpDownloadConnection.java               |  2 
src/main/java/eu/siacs/conversations/parser/IqParser.java                           |  2 
src/main/java/eu/siacs/conversations/persistance/FileBackend.java                   |  4 
src/main/java/eu/siacs/conversations/services/AppRTCAudioManager.java               |  2 
src/main/java/eu/siacs/conversations/services/AppRTCBluetoothManager.java           |  2 
src/main/java/eu/siacs/conversations/services/AppRTCProximitySensor.java            |  2 
src/main/java/eu/siacs/conversations/services/AttachFileToConversationRunnable.java |  2 
src/main/java/eu/siacs/conversations/services/AvatarService.java                    |  6 
src/main/java/eu/siacs/conversations/services/BarcodeProvider.java                  |  2 
src/main/java/eu/siacs/conversations/services/ChannelDiscoveryService.java          |  2 
src/main/java/eu/siacs/conversations/services/EventReceiver.java                    |  2 
src/main/java/eu/siacs/conversations/services/ExportBackupService.java              |  2 
src/main/java/eu/siacs/conversations/services/MemorizingTrustManager.java           |  2 
src/main/java/eu/siacs/conversations/services/NotificationService.java              | 18 
src/main/java/eu/siacs/conversations/services/ShortcutService.java                  |  2 
src/main/java/eu/siacs/conversations/services/XmppConnectionService.java            |  8 
src/main/java/eu/siacs/conversations/ui/AboutActivity.java                          |  2 
src/main/java/eu/siacs/conversations/ui/AbstractSearchableListItemActivity.java     |  4 
src/main/java/eu/siacs/conversations/ui/ActionBarActivity.java                      |  4 
src/main/java/eu/siacs/conversations/ui/BlockContactDialog.java                     |  7 
src/main/java/eu/siacs/conversations/ui/BlocklistActivity.java                      |  4 
src/main/java/eu/siacs/conversations/ui/ChangePasswordActivity.java                 |  2 
src/main/java/eu/siacs/conversations/ui/ChannelDiscoveryActivity.java               |  4 
src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java                  | 10 
src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java              |  6 
src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java                 |  8 
src/main/java/eu/siacs/conversations/ui/ConversationActivity.java                   |  4 
src/main/java/eu/siacs/conversations/ui/ConversationFragment.java                   | 15 
src/main/java/eu/siacs/conversations/ui/ConversationsActivity.java                  | 13 
src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java          | 14 
src/main/java/eu/siacs/conversations/ui/CreatePrivateGroupChatDialog.java           |  8 
src/main/java/eu/siacs/conversations/ui/CreatePublicChannelDialog.java              |  8 
src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java                    | 14 
src/main/java/eu/siacs/conversations/ui/EnterJidDialog.java                         |  8 
src/main/java/eu/siacs/conversations/ui/JoinConferenceDialog.java                   | 10 
src/main/java/eu/siacs/conversations/ui/LocationActivity.java                       |  4 
src/main/java/eu/siacs/conversations/ui/MediaBrowserActivity.java                   |  4 
src/main/java/eu/siacs/conversations/ui/MemorizingActivity.java                     |  4 
src/main/java/eu/siacs/conversations/ui/MucUsersActivity.java                       |  4 
src/main/java/eu/siacs/conversations/ui/OmemoActivity.java                          | 12 
src/main/java/eu/siacs/conversations/ui/PublishGroupChatProfilePictureActivity.java |  6 
src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java          |  2 
src/main/java/eu/siacs/conversations/ui/RecordingActivity.java                      |  3 
src/main/java/eu/siacs/conversations/ui/RtpSessionActivity.java                     |  8 
src/main/java/eu/siacs/conversations/ui/ScanActivity.java                           |  4 
src/main/java/eu/siacs/conversations/ui/SearchActivity.java                         |  4 
src/main/java/eu/siacs/conversations/ui/SettingsActivity.java                       |  6 
src/main/java/eu/siacs/conversations/ui/ShareLocationActivity.java                  |  8 
src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java                      |  4 
src/main/java/eu/siacs/conversations/ui/ShortcutActivity.java                       |  2 
src/main/java/eu/siacs/conversations/ui/ShowLocationActivity.java                   |  6 
src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java              | 26 
src/main/java/eu/siacs/conversations/ui/TrustKeysActivity.java                      |  6 
src/main/java/eu/siacs/conversations/ui/UriHandlerActivity.java                     |  4 
src/main/java/eu/siacs/conversations/ui/XmppActivity.java                           | 14 
src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java                 | 14 
src/main/java/eu/siacs/conversations/ui/adapter/ChannelSearchResultAdapter.java     | 10 
src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java            |  6 
src/main/java/eu/siacs/conversations/ui/adapter/KnownHostsAdapter.java              |  2 
src/main/java/eu/siacs/conversations/ui/adapter/ListItemAdapter.java                |  2 
src/main/java/eu/siacs/conversations/ui/adapter/MediaAdapter.java                   | 10 
src/main/java/eu/siacs/conversations/ui/adapter/MediaPreviewAdapter.java            |  6 
src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java                 |  8 
src/main/java/eu/siacs/conversations/ui/adapter/PresenceTemplateAdapter.java        |  2 
src/main/java/eu/siacs/conversations/ui/adapter/UserAdapter.java                    | 10 
src/main/java/eu/siacs/conversations/ui/adapter/UserPreviewAdapter.java             |  8 
src/main/java/eu/siacs/conversations/ui/interfaces/OnAvatarPublication.java         |  2 
src/main/java/eu/siacs/conversations/ui/service/AudioPlayer.java                    |  4 
src/main/java/eu/siacs/conversations/ui/text/QuoteSpan.java                         |  2 
src/main/java/eu/siacs/conversations/ui/util/AvatarWorkerTask.java                  |  2 
src/main/java/eu/siacs/conversations/ui/util/ConversationMenuConfigurator.java      |  2 
src/main/java/eu/siacs/conversations/ui/util/DelayedHintHelper.java                 |  2 
src/main/java/eu/siacs/conversations/ui/util/GridManager.java                       |  6 
src/main/java/eu/siacs/conversations/ui/util/JidDialog.java                         |  2 
src/main/java/eu/siacs/conversations/ui/util/MucConfiguration.java                  |  2 
src/main/java/eu/siacs/conversations/ui/util/MucDetailsContextMenuHelper.java       |  2 
src/main/java/eu/siacs/conversations/ui/util/PresenceSelector.java                  |  2 
src/main/java/eu/siacs/conversations/ui/util/SoftKeyboardUtils.java                 |  2 
src/main/java/eu/siacs/conversations/ui/util/StyledAttributes.java                  |  4 
src/main/java/eu/siacs/conversations/ui/widget/EditMessage.java                     |  6 
src/main/java/eu/siacs/conversations/ui/widget/ImmediateAutoCompleteTextView.java   |  2 
src/main/java/eu/siacs/conversations/ui/widget/MyLocation.java                      |  5 
src/main/java/eu/siacs/conversations/ui/widget/SwipeRefreshListFragment.java        | 25 
src/main/java/eu/siacs/conversations/ui/widget/TextInputEditText.java               |  2 
src/main/java/eu/siacs/conversations/ui/widget/UnreadCountCustomView.java           |  2 
src/main/java/eu/siacs/conversations/utils/Android360pFormatStrategy.java           |  2 
src/main/java/eu/siacs/conversations/utils/Android720pFormatStrategy.java           |  2 
src/main/java/eu/siacs/conversations/utils/Compatibility.java                       |  5 
src/main/java/eu/siacs/conversations/utils/Emoticons.java                           |  2 
src/main/java/eu/siacs/conversations/utils/ExceptionHandler.java                    |  2 
src/main/java/eu/siacs/conversations/utils/ExceptionHelper.java                     |  2 
src/main/java/eu/siacs/conversations/utils/IrregularUnicodeDetector.java            |  2 
src/main/java/eu/siacs/conversations/utils/PermissionUtils.java                     |  2 
src/main/java/eu/siacs/conversations/utils/Resolver.java                            |  2 
src/main/java/eu/siacs/conversations/utils/SSLSocketHelper.java                     |  2 
src/main/java/eu/siacs/conversations/utils/StylingHelper.java                       |  4 
src/main/java/eu/siacs/conversations/utils/ThemeHelper.java                         | 10 
src/main/java/eu/siacs/conversations/utils/TimeFrameUtils.java                      |  2 
src/main/java/eu/siacs/conversations/utils/UIHelper.java                            |  2 
src/main/java/eu/siacs/conversations/utils/XmppUri.java                             |  2 
src/main/java/eu/siacs/conversations/xmpp/InvalidJid.java                           |  2 
src/main/java/eu/siacs/conversations/xmpp/WrappedJid.java                           |  2 
src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java                       |  2 
src/main/java/eu/siacs/conversations/xmpp/jingle/stanzas/Content.java               |  2 
src/main/java/eu/siacs/conversations/xmpp/jingle/stanzas/JinglePacket.java          |  2 
src/main/java/eu/siacs/conversations/xmpp/jingle/stanzas/Reason.java                |  2 
src/main/res/layout/account_row.xml                                                 |  2 
src/main/res/layout/activity_about.xml                                              |  4 
src/main/res/layout/activity_change_password.xml                                    | 12 
src/main/res/layout/activity_channel_discovery.xml                                  |  8 
src/main/res/layout/activity_choose_contact.xml                                     |  2 
src/main/res/layout/activity_contact_details.xml                                    | 14 
src/main/res/layout/activity_edit_account.xml                                       | 32 
src/main/res/layout/activity_media_browser.xml                                      |  2 
src/main/res/layout/activity_muc_details.xml                                        | 28 
src/main/res/layout/activity_muc_users.xml                                          |  8 
src/main/res/layout/activity_publish_profile_picture.xml                            |  4 
src/main/res/layout/activity_rtp_session.xml                                        | 18 
src/main/res/layout/activity_share_location.xml                                     |  6 
src/main/res/layout/activity_share_with.xml                                         |  2 
src/main/res/layout/activity_show_location.xml                                      |  2 
src/main/res/layout/activity_start_conversation.xml                                 |  6 
src/main/res/layout/activity_trust_keys.xml                                         |  8 
src/main/res/layout/contact_key.xml                                                 |  2 
src/main/res/layout/create_conference_dialog.xml                                    |  4 
src/main/res/layout/create_public_channel_dialog.xml                                |  8 
src/main/res/layout/dialog_join_conference.xml                                      |  4 
src/main/res/layout/dialog_presence.xml                                             |  4 
src/main/res/layout/dialog_quickedit.xml                                            |  4 
src/main/res/layout/enter_jid_dialog.xml                                            |  4 
src/main/res/layout/fragment_conversation.xml                                       |  8 
src/main/res/layout/fragment_conversations_overview.xml                             |  8 
src/main/res/layout/keys_card.xml                                                   |  4 
src/main/res/layout/toolbar.xml                                                     |  2 
src/playstore/java/eu/siacs/conversations/services/MaintenanceReceiver.java         |  2 
src/playstore/java/eu/siacs/conversations/services/PushMessageReceiver.java         |  2 
src/playstoreCompat/java/eu/siacs/conversations/ui/service/EmojiService.java        |  6 
src/quicksy/java/eu/siacs/conversations/ui/ChooseCountryActivity.java               |  6 
src/quicksy/java/eu/siacs/conversations/ui/EnterNameActivity.java                   |  4 
src/quicksy/java/eu/siacs/conversations/ui/EnterPhoneNumberActivity.java            |  4 
src/quicksy/java/eu/siacs/conversations/ui/TosActivity.java                         |  4 
src/quicksy/java/eu/siacs/conversations/ui/VerifyActivity.java                      |  6 
src/quicksy/java/eu/siacs/conversations/ui/adapter/CountryAdapter.java              |  6 
src/quicksy/java/eu/siacs/conversations/ui/util/ApiDialogHelper.java                |  2 
src/quicksy/res/layout/activity_choose_country.xml                                  |  4 
src/quicksy/res/layout/activity_enter_number.xml                                    |  4 
src/quicksy/res/layout/activity_verify.xml                                          |  6 
src/system/java/eu/siacs/conversations/ui/widget/EmojiWrapperEditText.java          |  2 
src/system/java/eu/siacs/conversations/utils/EmojiWrapper.java                      |  2 
176 files changed, 459 insertions(+), 492 deletions(-)

Detailed changes

.gitignore πŸ”—

@@ -9,7 +9,6 @@ src/quicksyPlaystore/res/values/push.xml
 # https://github.com/github/gitignore/blob/master/Gradle.gitignore
 .gradle/
 build/
-gradle.properties
 captures/
 signing.properties
 # Ignore Gradle GUI config

build.gradle πŸ”—

@@ -30,11 +30,9 @@ configurations {
     quicksyImplementation
 }
 
-ext {
-    supportLibVersion = '28.0.0'
-}
-
 dependencies {
+    implementation 'androidx.viewpager:viewpager:1.0.0'
+
     //should remain that low because later versions introduce dependency to androidx (not sure exactly from what version)
     playstoreImplementation('com.google.firebase:firebase-messaging:17.3.4') {
         exclude group: 'com.google.firebase', module: 'firebase-core'
@@ -48,15 +46,15 @@ dependencies {
         exclude group: 'com.android.support', module: 'appcompat-v7'
         exclude group: 'com.android.support', module: 'exifinterface'
     }
-    implementation "com.android.support:support-v13:$supportLibVersion"
-    implementation "com.android.support:appcompat-v7:$supportLibVersion"
-    implementation "com.android.support:exifinterface:$supportLibVersion"
-    implementation "com.android.support:cardview-v7:$supportLibVersion"
-    implementation "com.android.support:support-emoji:$supportLibVersion"
-    implementation "com.android.support:design:$supportLibVersion"
-    compatImplementation "com.android.support:support-emoji-appcompat:$supportLibVersion"
-    conversationsFreeCompatImplementation "com.android.support:support-emoji-bundled:$supportLibVersion"
-    quicksyFreeCompatImplementation "com.android.support:support-emoji-bundled:$supportLibVersion"
+    //implementation 'androidx.legacy:legacy-support-v13:1.0.0'
+    implementation 'androidx.appcompat:appcompat:1.0.0'
+    implementation 'androidx.exifinterface:exifinterface:1.0.0'
+    implementation 'androidx.cardview:cardview:1.0.0'
+    implementation 'androidx.emoji:emoji:1.0.0'
+    implementation 'com.google.android.material:material:1.0.0'
+    compatImplementation 'androidx.emoji:emoji-appcompat:1.0.0'
+    conversationsFreeCompatImplementation 'androidx.emoji:emoji-bundled:1.0.0'
+    quicksyFreeCompatImplementation 'androidx.emoji:emoji-bundled:1.0.0'
     implementation 'org.bouncycastle:bcmail-jdk15on:1.64'
     //zxing stopped supporting Java 7 so we have to stick with 3.3.3
     //https://github.com/zxing/zxing/issues/1170

src/conversations/java/eu/siacs/conversations/services/ImportBackupService.java πŸ”—

@@ -12,8 +12,8 @@ import android.net.Uri;
 import android.os.Binder;
 import android.os.IBinder;
 import android.provider.OpenableColumns;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.app.NotificationManagerCompat;
+import androidx.core.app.NotificationCompat;
+import androidx.core.app.NotificationManagerCompat;
 import android.util.Log;
 
 import com.google.common.base.Charsets;

src/conversations/java/eu/siacs/conversations/ui/EasyOnboardingInviteActivity.java πŸ”—

@@ -2,11 +2,11 @@ package eu.siacs.conversations.ui;
 
 import android.app.Activity;
 import android.content.Intent;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.graphics.Bitmap;
 import android.graphics.Point;
 import android.os.Bundle;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar;
 import android.util.Log;
 import android.view.Menu;
 import android.view.MenuItem;

src/conversations/java/eu/siacs/conversations/ui/ImportBackupActivity.java πŸ”—

@@ -5,15 +5,15 @@ import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.ServiceConnection;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.IBinder;
-import android.support.design.widget.Snackbar;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.widget.Toolbar;
+import com.google.android.material.snackbar.Snackbar;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.widget.Toolbar;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;

src/conversations/java/eu/siacs/conversations/ui/MagicCreateActivity.java πŸ”—

@@ -2,9 +2,9 @@ package eu.siacs.conversations.ui;
 
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.os.Bundle;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar;
 import android.text.Editable;
 import android.text.TextWatcher;
 import android.view.View;

src/conversations/java/eu/siacs/conversations/ui/ManageAccountActivity.java πŸ”—

@@ -5,9 +5,9 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.security.KeyChain;
 import android.security.KeyChainAliasCallback;
-import android.support.annotation.NonNull;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AlertDialog;
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AlertDialog;
 import android.util.Pair;
 import android.view.ContextMenu;
 import android.view.ContextMenu.ContextMenuInfo;

src/conversations/java/eu/siacs/conversations/ui/PickServerActivity.java πŸ”—

@@ -2,10 +2,10 @@ package eu.siacs.conversations.ui;
 
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
 import android.view.MenuItem;
 
 import java.util.List;

src/conversations/java/eu/siacs/conversations/ui/WelcomeActivity.java πŸ”—

@@ -4,15 +4,15 @@ import android.Manifest;
 import android.content.ActivityNotFoundException;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
-import android.content.pm.PackageManager;
-import android.databinding.DataBindingUtil;
+
+import androidx.databinding.DataBindingUtil;
 import android.net.Uri;
 import android.os.Bundle;
 import android.security.KeyChain;
 import android.security.KeyChainAliasCallback;
-import android.support.annotation.NonNull;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
 import android.util.Log;
 import android.view.Menu;
 import android.view.MenuItem;

src/conversations/java/eu/siacs/conversations/ui/adapter/BackupFileAdapter.java πŸ”—

@@ -1,13 +1,13 @@
 package eu.siacs.conversations.ui.adapter;
 
 import android.content.res.Resources;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.graphics.Bitmap;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.os.AsyncTask;
-import android.support.annotation.NonNull;
-import android.support.v7.widget.RecyclerView;
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
 import android.text.format.DateUtils;
 import android.util.DisplayMetrics;
 import android.view.LayoutInflater;

src/conversations/res/layout/activity_import_backup.xml πŸ”—

@@ -26,20 +26,20 @@
 
 
 
-        <android.support.design.widget.CoordinatorLayout
+        <androidx.coordinatorlayout.widget.CoordinatorLayout
             android:id="@+id/coordinator"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:background="?attr/color_background_primary">
 
-            <android.support.v7.widget.RecyclerView
+            <androidx.recyclerview.widget.RecyclerView
                 android:id="@+id/list"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:background="?attr/color_background_primary"
                 android:orientation="vertical"
-                app:layoutManager="android.support.v7.widget.LinearLayoutManager" />
-        </android.support.design.widget.CoordinatorLayout>
+                app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
+        </androidx.coordinatorlayout.widget.CoordinatorLayout>
 
     </LinearLayout>
 </layout>

src/conversations/res/layout/dialog_enter_password.xml πŸ”—

@@ -22,7 +22,7 @@
             android:text="@string/restore_warning"
             android:textAppearance="@style/TextAppearance.Conversations.Body1"/>
 
-        <android.support.design.widget.TextInputLayout
+        <com.google.android.material.textfield.TextInputLayout
             android:id="@+id/account_password_layout"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -42,6 +42,6 @@
             android:textColor="?attr/edit_text_color"
             style="@style/Widget.Conversations.EditText"/>
 
-        </android.support.design.widget.TextInputLayout>
+        </com.google.android.material.textfield.TextInputLayout>
     </LinearLayout>
 </layout>

src/freeCompat/java/eu/siacs/conversations/ui/service/EmojiService.java πŸ”—

@@ -2,14 +2,9 @@ package eu.siacs.conversations.ui.service;
 
 import android.content.Context;
 import android.os.Build;
-import android.support.text.emoji.EmojiCompat;
-import android.support.text.emoji.FontRequestEmojiCompatConfig;
-import android.support.text.emoji.bundled.BundledEmojiCompatConfig;
-import android.support.v4.provider.FontRequest;
-import android.util.Log;
-
-import eu.siacs.conversations.Config;
-import eu.siacs.conversations.R;
+import androidx.emoji.text.EmojiCompat;
+import androidx.emoji.text.FontRequestEmojiCompatConfig;
+import androidx.emoji.bundled.BundledEmojiCompatConfig;
 
 public class EmojiService {
 

src/main/AndroidManifest.xml πŸ”—

@@ -266,7 +266,7 @@
         </service>
 
         <provider
-            android:name="android.support.v4.content.FileProvider"
+            android:name="androidx.core.content.FileProvider"
             android:authorities="${applicationId}.files"
             android:exported="false"
             android:grantUriPermissions="true">

src/main/java/eu/siacs/conversations/crypto/PgpEngine.java πŸ”—

@@ -2,7 +2,7 @@ package eu.siacs.conversations.crypto;
 
 import android.app.PendingIntent;
 import android.content.Intent;
-import android.support.annotation.StringRes;
+import androidx.annotation.StringRes;
 import android.util.Log;
 
 import org.openintents.openpgp.OpenPgpError;

src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java πŸ”—

@@ -2,8 +2,8 @@ package eu.siacs.conversations.crypto.axolotl;
 
 import android.os.Bundle;
 import android.security.KeyChain;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import android.util.Log;
 import android.util.Pair;
 

src/main/java/eu/siacs/conversations/entities/Bookmark.java πŸ”—

@@ -1,8 +1,8 @@
 package eu.siacs.conversations.entities;
 
 import android.content.Context;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 
 import java.lang.ref.WeakReference;
 import java.util.ArrayList;

src/main/java/eu/siacs/conversations/entities/Contact.java πŸ”—

@@ -4,7 +4,7 @@ import android.content.ContentValues;
 import android.content.Context;
 import android.database.Cursor;
 import android.net.Uri;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
 import android.text.TextUtils;
 
 import org.json.JSONArray;

src/main/java/eu/siacs/conversations/entities/Conversation.java πŸ”—

@@ -2,8 +2,8 @@ package eu.siacs.conversations.entities;
 
 import android.content.ContentValues;
 import android.database.Cursor;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import android.text.TextUtils;
 
 import com.google.common.collect.ComparisonChain;

src/main/java/eu/siacs/conversations/entities/MucOptions.java πŸ”—

@@ -1,7 +1,7 @@
 package eu.siacs.conversations.entities;
 
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import android.text.TextUtils;
 
 import java.util.ArrayList;

src/main/java/eu/siacs/conversations/persistance/FileBackend.java πŸ”—

@@ -20,8 +20,8 @@ import android.os.Environment;
 import android.os.ParcelFileDescriptor;
 import android.provider.MediaStore;
 import android.provider.OpenableColumns;
-import android.support.annotation.RequiresApi;
-import android.support.v4.content.FileProvider;
+import androidx.annotation.RequiresApi;
+import androidx.core.content.FileProvider;
 import android.system.Os;
 import android.system.StructStat;
 import android.util.Base64;

src/main/java/eu/siacs/conversations/services/AvatarService.java πŸ”—

@@ -12,9 +12,9 @@ import android.graphics.Typeface;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
-import android.support.annotation.ColorInt;
-import android.support.annotation.Nullable;
-import android.support.v4.content.res.ResourcesCompat;
+import androidx.annotation.ColorInt;
+import androidx.annotation.Nullable;
+import androidx.core.content.res.ResourcesCompat;
 import android.text.TextUtils;
 import android.util.DisplayMetrics;
 import android.util.Log;

src/main/java/eu/siacs/conversations/services/BarcodeProvider.java πŸ”—

@@ -13,7 +13,7 @@ import android.net.Uri;
 import android.os.CancellationSignal;
 import android.os.IBinder;
 import android.os.ParcelFileDescriptor;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 import android.util.Log;
 
 import com.google.zxing.BarcodeFormat;

src/main/java/eu/siacs/conversations/services/EventReceiver.java πŸ”—

@@ -5,7 +5,7 @@ import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
-import android.support.v4.content.ContextCompat;
+import androidx.core.content.ContextCompat;
 import android.util.Log;
 
 import com.google.common.base.Strings;

src/main/java/eu/siacs/conversations/services/ExportBackupService.java πŸ”—

@@ -11,7 +11,7 @@ import android.database.DatabaseUtils;
 import android.database.sqlite.SQLiteDatabase;
 import android.net.Uri;
 import android.os.IBinder;
-import android.support.v4.app.NotificationCompat;
+import androidx.core.app.NotificationCompat;
 import android.util.Log;
 
 import com.google.common.base.Strings;

src/main/java/eu/siacs/conversations/services/MemorizingTrustManager.java πŸ”—

@@ -34,7 +34,7 @@ import android.content.Intent;
 import android.net.Uri;
 import android.os.Handler;
 import android.preference.PreferenceManager;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
 import android.util.Base64;
 import android.util.Log;
 import android.util.SparseArray;

src/main/java/eu/siacs/conversations/services/NotificationService.java πŸ”—

@@ -17,15 +17,15 @@ import android.net.Uri;
 import android.os.Build;
 import android.os.SystemClock;
 import android.preference.PreferenceManager;
-import android.support.annotation.RequiresApi;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.app.NotificationCompat.BigPictureStyle;
-import android.support.v4.app.NotificationCompat.Builder;
-import android.support.v4.app.NotificationManagerCompat;
-import android.support.v4.app.Person;
-import android.support.v4.app.RemoteInput;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.graphics.drawable.IconCompat;
+import androidx.annotation.RequiresApi;
+import androidx.core.app.NotificationCompat;
+import androidx.core.app.NotificationCompat.BigPictureStyle;
+import androidx.core.app.NotificationCompat.Builder;
+import androidx.core.app.NotificationManagerCompat;
+import androidx.core.app.Person;
+import androidx.core.app.RemoteInput;
+import androidx.core.content.ContextCompat;
+import androidx.core.graphics.drawable.IconCompat;
 import android.text.SpannableString;
 import android.text.style.StyleSpan;
 import android.util.DisplayMetrics;

src/main/java/eu/siacs/conversations/services/XmppConnectionService.java πŸ”—

@@ -32,10 +32,10 @@ import android.os.SystemClock;
 import android.preference.PreferenceManager;
 import android.provider.ContactsContract;
 import android.security.KeyChain;
-import android.support.annotation.BoolRes;
-import android.support.annotation.IntegerRes;
-import android.support.v4.app.RemoteInput;
-import android.support.v4.content.ContextCompat;
+import androidx.annotation.BoolRes;
+import androidx.annotation.IntegerRes;
+import androidx.core.app.RemoteInput;
+import androidx.core.content.ContextCompat;
 import android.telephony.PhoneStateListener;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;

src/main/java/eu/siacs/conversations/ui/AboutActivity.java πŸ”—

@@ -2,7 +2,7 @@ package eu.siacs.conversations.ui;
 
 import android.os.Bundle;
 import android.preference.PreferenceManager;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
 
 import eu.siacs.conversations.R;
 import eu.siacs.conversations.utils.ThemeHelper;

src/main/java/eu/siacs/conversations/ui/AbstractSearchableListItemActivity.java πŸ”—

@@ -1,9 +1,9 @@
 package eu.siacs.conversations.ui;
 
 import android.content.Context;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.os.Bundle;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar;
 import android.text.Editable;
 import android.text.TextWatcher;
 import android.view.KeyEvent;

src/main/java/eu/siacs/conversations/ui/BlockContactDialog.java πŸ”—

@@ -1,8 +1,8 @@
 package eu.siacs.conversations.ui;
 
-import android.databinding.DataBindingUtil;
-import android.support.annotation.StringRes;
-import android.support.v7.app.AlertDialog;
+import androidx.databinding.DataBindingUtil;
+import androidx.annotation.StringRes;
+import androidx.appcompat.app.AlertDialog;
 import android.view.View;
 import android.widget.Toast;
 
@@ -11,7 +11,6 @@ import eu.siacs.conversations.databinding.DialogBlockContactBinding;
 import eu.siacs.conversations.entities.Blockable;
 import eu.siacs.conversations.entities.Conversation;
 import eu.siacs.conversations.ui.util.JidDialog;
-import eu.siacs.conversations.xmpp.Jid;
 
 public final class BlockContactDialog {
 	public static void show(final XmppActivity xmppActivity, final Blockable blockable) {

src/main/java/eu/siacs/conversations/ui/BlocklistActivity.java πŸ”—

@@ -1,8 +1,8 @@
 package eu.siacs.conversations.ui;
 
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentTransaction;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentTransaction;
 import android.text.Editable;
 import android.widget.Toast;
 

src/main/java/eu/siacs/conversations/ui/ChangePasswordActivity.java πŸ”—

@@ -2,7 +2,7 @@ package eu.siacs.conversations.ui;
 
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.design.widget.TextInputLayout;
+import com.google.android.material.textfield.TextInputLayout;
 import android.view.View;
 import android.widget.Button;
 import android.widget.EditText;

src/main/java/eu/siacs/conversations/ui/ChannelDiscoveryActivity.java πŸ”—

@@ -4,11 +4,11 @@ import android.app.AlertDialog;
 import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.net.Uri;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar;
 import android.text.Html;
 import android.text.method.LinkMovementMethod;
 import android.view.KeyEvent;

src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java πŸ”—

@@ -5,11 +5,11 @@ import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.StringRes;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentTransaction;
-import android.support.v7.app.ActionBar;
+import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentTransaction;
+import androidx.appcompat.app.ActionBar;
 import android.view.ActionMode;
 import android.view.KeyEvent;
 import android.view.Menu;

src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java πŸ”—

@@ -3,10 +3,10 @@ package eu.siacs.conversations.ui;
 import android.app.PendingIntent;
 import android.content.Context;
 import android.content.Intent;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.os.Bundle;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.widget.Toolbar;
 import android.text.Editable;
 import android.text.SpannableStringBuilder;
 import android.text.TextWatcher;

src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java πŸ”—

@@ -6,7 +6,7 @@ import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
@@ -14,9 +14,9 @@ import android.preference.PreferenceManager;
 import android.provider.ContactsContract.CommonDataKinds;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Intents;
-import android.support.annotation.NonNull;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.widget.Toolbar;
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.widget.Toolbar;
 import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.style.RelativeSizeSpan;

src/main/java/eu/siacs/conversations/ui/ConversationActivity.java πŸ”—

@@ -2,8 +2,8 @@ package eu.siacs.conversations.ui;
 
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v7.app.AppCompatActivity;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
 
 public class ConversationActivity extends AppCompatActivity {
 

src/main/java/eu/siacs/conversations/ui/ConversationFragment.java πŸ”—

@@ -6,15 +6,15 @@ import android.app.Activity;
 import android.app.FragmentManager;
 import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.net.Uri;
 import android.os.Build;
 import android.preference.PreferenceManager;
 import android.provider.MediaStore;
-import android.support.annotation.IdRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.StringRes;
-import android.support.v7.app.AlertDialog;
+import androidx.annotation.IdRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
+import androidx.appcompat.app.AlertDialog;
 import android.app.Fragment;
 import android.app.PendingIntent;
 import android.content.Context;
@@ -24,15 +24,14 @@ import android.content.IntentSender.SendIntentException;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.SystemClock;
-import android.support.v13.view.inputmethod.InputConnectionCompat;
-import android.support.v13.view.inputmethod.InputContentInfoCompat;
+import androidx.core.view.inputmethod.InputConnectionCompat;
+import androidx.core.view.inputmethod.InputContentInfoCompat;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.ContextMenu;
 import android.view.ContextMenu.ContextMenuInfo;
 import android.view.Gravity;
-import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;

src/main/java/eu/siacs/conversations/ui/ConversationsActivity.java πŸ”—

@@ -39,15 +39,15 @@ import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.net.Uri;
 import android.os.Bundle;
 import android.provider.Settings;
-import android.support.annotation.IdRes;
-import android.support.annotation.NonNull;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.widget.Toolbar;
+import androidx.annotation.IdRes;
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.widget.Toolbar;
 import android.util.Log;
 import android.view.KeyEvent;
 import android.view.Menu;
@@ -76,7 +76,6 @@ import eu.siacs.conversations.ui.util.ActivityResult;
 import eu.siacs.conversations.ui.util.ConversationMenuConfigurator;
 import eu.siacs.conversations.ui.util.MenuDoubleTabUtil;
 import eu.siacs.conversations.ui.util.PendingItem;
-import eu.siacs.conversations.utils.AccountUtils;
 import eu.siacs.conversations.utils.EmojiWrapper;
 import eu.siacs.conversations.utils.ExceptionHelper;
 import eu.siacs.conversations.utils.SignupUtils;

src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java πŸ”—

@@ -33,14 +33,14 @@ import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Fragment;
 import android.content.Intent;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.graphics.Canvas;
 import android.graphics.Paint;
 import android.os.Bundle;
-import android.support.design.widget.Snackbar;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.helper.ItemTouchHelper;
+import com.google.android.material.snackbar.Snackbar;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.ItemTouchHelper;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -74,8 +74,8 @@ import eu.siacs.conversations.utils.AccountUtils;
 import eu.siacs.conversations.utils.EasyOnboardingInvite;
 import eu.siacs.conversations.utils.ThemeHelper;
 
-import static android.support.v7.widget.helper.ItemTouchHelper.LEFT;
-import static android.support.v7.widget.helper.ItemTouchHelper.RIGHT;
+import static androidx.recyclerview.widget.ItemTouchHelper.LEFT;
+import static androidx.recyclerview.widget.ItemTouchHelper.RIGHT;
 
 public class ConversationsOverviewFragment extends XmppFragment {
 

src/main/java/eu/siacs/conversations/ui/CreatePrivateGroupChatDialog.java πŸ”—

@@ -2,11 +2,11 @@ package eu.siacs.conversations.ui;
 
 import android.app.Dialog;
 import android.content.Context;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v4.app.DialogFragment;
-import android.support.v7.app.AlertDialog;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.DialogFragment;
+import androidx.appcompat.app.AlertDialog;
 import android.widget.Spinner;
 
 import java.util.ArrayList;

src/main/java/eu/siacs/conversations/ui/CreatePublicChannelDialog.java πŸ”—

@@ -4,11 +4,11 @@ import android.app.Activity;
 import android.app.Dialog;
 import android.content.Context;
 import android.content.DialogInterface;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v4.app.DialogFragment;
-import android.support.v7.app.AlertDialog;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.DialogFragment;
+import androidx.appcompat.app.AlertDialog;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;

src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java πŸ”—

@@ -6,7 +6,7 @@ import android.content.ActivityNotFoundException;
 import android.content.Intent;
 import android.content.IntentSender;
 import android.content.SharedPreferences;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.graphics.Bitmap;
 import android.net.Uri;
 import android.os.Build;
@@ -16,11 +16,11 @@ import android.preference.PreferenceManager;
 import android.provider.Settings;
 import android.security.KeyChain;
 import android.security.KeyChainAliasCallback;
-import android.support.design.widget.TextInputLayout;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AlertDialog.Builder;
-import android.support.v7.widget.Toolbar;
+import com.google.android.material.textfield.TextInputLayout;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AlertDialog.Builder;
+import androidx.appcompat.widget.Toolbar;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;
@@ -42,7 +42,6 @@ import java.net.URL;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import eu.siacs.conversations.Config;
@@ -65,7 +64,6 @@ import eu.siacs.conversations.ui.util.AvatarWorkerTask;
 import eu.siacs.conversations.ui.util.MenuDoubleTabUtil;
 import eu.siacs.conversations.ui.util.PendingItem;
 import eu.siacs.conversations.ui.util.SoftKeyboardUtils;
-import eu.siacs.conversations.utils.CharSequenceUtils;
 import eu.siacs.conversations.utils.CryptoHelper;
 import eu.siacs.conversations.utils.Resolver;
 import eu.siacs.conversations.utils.SignupUtils;

src/main/java/eu/siacs/conversations/ui/EnterJidDialog.java πŸ”—

@@ -2,11 +2,11 @@ package eu.siacs.conversations.ui;
 
 import android.app.Activity;
 import android.app.Dialog;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v4.app.DialogFragment;
-import android.support.v7.app.AlertDialog;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.DialogFragment;
+import androidx.appcompat.app.AlertDialog;
 import android.text.Editable;
 import android.text.TextWatcher;
 import android.view.View;

src/main/java/eu/siacs/conversations/ui/JoinConferenceDialog.java πŸ”—

@@ -2,14 +2,14 @@ package eu.siacs.conversations.ui;
 
 import android.app.Activity;
 import android.app.Dialog;
-import android.databinding.DataBindingUtil;
-import android.support.annotation.NonNull;
-import android.support.design.widget.TextInputLayout;
-import android.support.v4.app.DialogFragment;
+import androidx.databinding.DataBindingUtil;
+import androidx.annotation.NonNull;
+import com.google.android.material.textfield.TextInputLayout;
+import androidx.fragment.app.DialogFragment;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.os.Bundle;
-import android.support.v7.app.AlertDialog;
+import androidx.appcompat.app.AlertDialog;
 import android.view.KeyEvent;
 import android.widget.AutoCompleteTextView;
 import android.widget.Spinner;

src/main/java/eu/siacs/conversations/ui/LocationActivity.java πŸ”—

@@ -14,8 +14,8 @@ import android.os.Build;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
 import android.provider.Settings;
-import android.support.annotation.BoolRes;
-import android.support.annotation.NonNull;
+import androidx.annotation.BoolRes;
+import androidx.annotation.NonNull;
 import android.util.Log;
 import android.view.MenuItem;
 

src/main/java/eu/siacs/conversations/ui/MediaBrowserActivity.java πŸ”—

@@ -2,9 +2,9 @@ package eu.siacs.conversations.ui;
 
 import android.content.Context;
 import android.content.Intent;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.os.Bundle;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar;
 
 import java.util.List;
 

src/main/java/eu/siacs/conversations/ui/MemorizingActivity.java πŸ”—

@@ -31,8 +31,8 @@ import android.content.Intent;
 import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AppCompatActivity;
 
 import java.util.logging.Level;
 import java.util.logging.Logger;

src/main/java/eu/siacs/conversations/ui/MucUsersActivity.java πŸ”—

@@ -2,9 +2,9 @@ package eu.siacs.conversations.ui;
 
 import android.content.Context;
 import android.content.Intent;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.os.Bundle;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;

src/main/java/eu/siacs/conversations/ui/OmemoActivity.java πŸ”—

@@ -1,23 +1,17 @@
 package eu.siacs.conversations.ui;
 
-import android.databinding.DataBindingUtil;
-import android.net.Uri;
-import android.support.v7.app.AlertDialog;
+import androidx.databinding.DataBindingUtil;
+
+import androidx.appcompat.app.AlertDialog;
 import android.content.Intent;
-import android.os.Bundle;
-import android.support.v4.content.ContextCompat;
 import android.view.ContextMenu;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.CompoundButton;
 
 import android.widget.LinearLayout;
-import android.widget.TextView;
 import android.widget.Toast;
 
-import java.security.cert.X509Certificate;
-import java.util.Arrays;
-
 import eu.siacs.conversations.Config;
 import eu.siacs.conversations.R;
 import eu.siacs.conversations.crypto.axolotl.FingerprintStatus;

src/main/java/eu/siacs/conversations/ui/PublishGroupChatProfilePictureActivity.java πŸ”—

@@ -30,12 +30,12 @@
 package eu.siacs.conversations.ui;
 
 import android.content.Intent;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.graphics.Bitmap;
 import android.net.Uri;
 import android.os.Bundle;
-import android.support.annotation.StringRes;
-import android.support.v7.widget.Toolbar;
+import androidx.annotation.StringRes;
+import androidx.appcompat.widget.Toolbar;
 import android.util.Log;
 import android.view.View;
 import android.widget.Toast;

src/main/java/eu/siacs/conversations/ui/RecordingActivity.java πŸ”—

@@ -1,10 +1,9 @@
 package eu.siacs.conversations.ui;
 
-import android.annotation.SuppressLint;
 import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.media.MediaRecorder;
 import android.net.Uri;
 import android.os.Bundle;

src/main/java/eu/siacs/conversations/ui/RtpSessionActivity.java πŸ”—

@@ -7,15 +7,15 @@ import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.PowerManager;
 import android.os.SystemClock;
-import android.support.annotation.NonNull;
-import android.support.annotation.RequiresApi;
-import android.support.annotation.StringRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+import androidx.annotation.StringRes;
 import android.util.Log;
 import android.util.Rational;
 import android.view.Menu;

src/main/java/eu/siacs/conversations/ui/ScanActivity.java πŸ”—

@@ -45,8 +45,8 @@ import android.os.Handler;
 import android.os.HandlerThread;
 import android.os.Process;
 import android.os.Vibrator;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.content.ContextCompat;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
 import android.util.Log;
 import android.view.KeyEvent;
 import android.view.Surface;

src/main/java/eu/siacs/conversations/ui/SearchActivity.java πŸ”—

@@ -30,9 +30,9 @@
 package eu.siacs.conversations.ui;
 
 import android.content.Intent;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.os.Bundle;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar;
 import android.text.Editable;
 import android.text.InputType;
 import android.text.TextWatcher;

src/main/java/eu/siacs/conversations/ui/SettingsActivity.java πŸ”—

@@ -1,9 +1,9 @@
 package eu.siacs.conversations.ui;
 
 import android.preference.CheckBoxPreference;
-import android.support.annotation.NonNull;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.app.AlertDialog;
+import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.app.AlertDialog;
 import android.app.FragmentManager;
 import android.content.DialogInterface;
 import android.content.Intent;

src/main/java/eu/siacs/conversations/ui/ShareLocationActivity.java πŸ”—

@@ -3,14 +3,14 @@ package eu.siacs.conversations.ui;
 import android.Manifest;
 import android.content.Intent;
 import android.content.pm.PackageManager;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.location.Location;
 import android.location.LocationListener;
 import android.os.Build;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.design.widget.Snackbar;
-import android.support.v7.widget.Toolbar;
+import androidx.annotation.NonNull;
+import com.google.android.material.snackbar.Snackbar;
+import androidx.appcompat.widget.Toolbar;
 import android.view.View;
 
 import org.osmdroid.api.IGeoPoint;

src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java πŸ”—

@@ -4,8 +4,8 @@ import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.net.Uri;
 import android.os.Bundle;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 import android.util.Log;
 import android.view.Menu;
 import android.view.MenuItem;

src/main/java/eu/siacs/conversations/ui/ShortcutActivity.java πŸ”—

@@ -4,7 +4,7 @@ import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.v7.app.ActionBar;
+import androidx.appcompat.app.ActionBar;
 import android.util.Log;
 import android.view.View;
 import android.view.inputmethod.InputMethodManager;

src/main/java/eu/siacs/conversations/ui/ShowLocationActivity.java πŸ”—

@@ -5,13 +5,13 @@ import android.content.ClipData;
 import android.content.ClipboardManager;
 import android.content.ComponentName;
 import android.content.Intent;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.location.Location;
 import android.location.LocationListener;
 import android.net.Uri;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v7.widget.Toolbar;
+import androidx.annotation.NonNull;
+import androidx.appcompat.widget.Toolbar;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;

src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java πŸ”—

@@ -9,22 +9,22 @@ import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.design.widget.TextInputLayout;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentTransaction;
-import android.support.v4.view.PagerAdapter;
-import android.support.v4.view.ViewPager;
-import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.widget.Toolbar;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import com.google.android.material.textfield.TextInputLayout;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+import androidx.viewpager.widget.PagerAdapter;
+import androidx.viewpager.widget.ViewPager;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.widget.Toolbar;
 import android.text.Editable;
 import android.text.Html;
 import android.text.TextWatcher;

src/main/java/eu/siacs/conversations/ui/TrustKeysActivity.java πŸ”—

@@ -2,10 +2,10 @@ package eu.siacs.conversations.ui;
 
 import android.app.AlertDialog;
 import android.content.Intent;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.os.Bundle;
-import android.support.v7.app.ActionBar;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.widget.Toolbar;
 import android.util.Log;
 import android.view.Gravity;
 import android.view.Menu;

src/main/java/eu/siacs/conversations/ui/UriHandlerActivity.java πŸ”—

@@ -7,8 +7,8 @@ import android.content.pm.PackageManager;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.app.AppCompatActivity;
 import android.widget.Toast;
 
 import com.google.common.base.Strings;

src/main/java/eu/siacs/conversations/ui/XmppActivity.java πŸ”—

@@ -19,7 +19,7 @@ import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.content.res.Resources;
 import android.content.res.TypedArray;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.graphics.Bitmap;
 import android.graphics.Color;
 import android.graphics.Point;
@@ -35,12 +35,12 @@ import android.os.IBinder;
 import android.os.PowerManager;
 import android.os.SystemClock;
 import android.preference.PreferenceManager;
-import android.support.annotation.BoolRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.StringRes;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AlertDialog.Builder;
-import android.support.v7.app.AppCompatDelegate;
+import androidx.annotation.BoolRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AlertDialog.Builder;
+import androidx.appcompat.app.AppCompatDelegate;
 import android.text.InputType;
 import android.util.DisplayMetrics;
 import android.util.Log;

src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java πŸ”—

@@ -1,21 +1,14 @@
 package eu.siacs.conversations.ui.adapter;
 
-import android.content.res.Resources;
-import android.databinding.DataBindingUtil;
-import android.graphics.Bitmap;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
-import android.os.AsyncTask;
-import android.support.annotation.NonNull;
+import androidx.databinding.DataBindingUtil;
+
+import androidx.annotation.NonNull;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ArrayAdapter;
-import android.widget.ImageView;
 
-import java.lang.ref.WeakReference;
 import java.util.List;
-import java.util.concurrent.RejectedExecutionException;
 
 import eu.siacs.conversations.Config;
 import eu.siacs.conversations.R;
@@ -24,7 +17,6 @@ import eu.siacs.conversations.entities.Account;
 import eu.siacs.conversations.ui.XmppActivity;
 import eu.siacs.conversations.ui.util.AvatarWorkerTask;
 import eu.siacs.conversations.ui.util.StyledAttributes;
-import eu.siacs.conversations.utils.UIHelper;
 
 public class AccountAdapter extends ArrayAdapter<Account> {
 

src/main/java/eu/siacs/conversations/ui/adapter/ChannelSearchResultAdapter.java πŸ”—

@@ -1,11 +1,11 @@
 package eu.siacs.conversations.ui.adapter;
 
 import android.app.Activity;
-import android.databinding.DataBindingUtil;
-import android.support.annotation.NonNull;
-import android.support.v7.recyclerview.extensions.ListAdapter;
-import android.support.v7.util.DiffUtil;
-import android.support.v7.widget.RecyclerView;
+import androidx.databinding.DataBindingUtil;
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.ListAdapter;
+import androidx.recyclerview.widget.DiffUtil;
+import androidx.recyclerview.widget.RecyclerView;
 import android.text.TextUtils;
 import android.view.ContextMenu;
 import android.view.LayoutInflater;

src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java πŸ”—

@@ -1,9 +1,9 @@
 package eu.siacs.conversations.ui.adapter;
 
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.graphics.Typeface;
-import android.support.annotation.NonNull;
-import android.support.v7.widget.RecyclerView;
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
 import android.util.Pair;
 import android.view.LayoutInflater;
 import android.view.View;

src/main/java/eu/siacs/conversations/ui/adapter/MediaAdapter.java πŸ”—

@@ -2,15 +2,15 @@ package eu.siacs.conversations.ui.adapter;
 
 import android.content.Context;
 import android.content.res.Resources;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.graphics.Bitmap;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.os.AsyncTask;
-import android.support.annotation.AttrRes;
-import android.support.annotation.DimenRes;
-import android.support.annotation.NonNull;
-import android.support.v7.widget.RecyclerView;
+import androidx.annotation.AttrRes;
+import androidx.annotation.DimenRes;
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.ViewGroup;

src/main/java/eu/siacs/conversations/ui/adapter/MediaPreviewAdapter.java πŸ”—

@@ -4,14 +4,14 @@ import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Resources;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.graphics.Bitmap;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.AsyncTask;
-import android.support.annotation.NonNull;
-import android.support.v7.widget.RecyclerView;
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
 import android.view.LayoutInflater;
 import android.view.ViewGroup;
 import android.widget.ImageView;

src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java πŸ”—

@@ -7,20 +7,16 @@ import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
 import android.graphics.Typeface;
 import android.preference.PreferenceManager;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.content.ContextCompat;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
 import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.SpannableStringBuilder;
-import android.text.Spanned;
 import android.text.format.DateUtils;
 import android.text.style.ForegroundColorSpan;
 import android.text.style.RelativeSizeSpan;
 import android.text.style.StyleSpan;
 import android.util.DisplayMetrics;
-import android.view.ActionMode;
-import android.view.Menu;
-import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.WindowManager;

src/main/java/eu/siacs/conversations/ui/adapter/UserAdapter.java πŸ”—

@@ -2,11 +2,11 @@ package eu.siacs.conversations.ui.adapter;
 
 import android.app.PendingIntent;
 import android.content.IntentSender;
-import android.databinding.DataBindingUtil;
-import android.support.annotation.NonNull;
-import android.support.v7.recyclerview.extensions.ListAdapter;
-import android.support.v7.util.DiffUtil;
-import android.support.v7.widget.RecyclerView;
+import androidx.databinding.DataBindingUtil;
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.ListAdapter;
+import androidx.recyclerview.widget.DiffUtil;
+import androidx.recyclerview.widget.RecyclerView;
 import android.view.ContextMenu;
 import android.view.LayoutInflater;
 import android.view.View;

src/main/java/eu/siacs/conversations/ui/adapter/UserPreviewAdapter.java πŸ”—

@@ -1,9 +1,9 @@
 package eu.siacs.conversations.ui.adapter;
 
-import android.databinding.DataBindingUtil;
-import android.support.annotation.NonNull;
-import android.support.v7.recyclerview.extensions.ListAdapter;
-import android.support.v7.widget.RecyclerView;
+import androidx.databinding.DataBindingUtil;
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.ListAdapter;
+import androidx.recyclerview.widget.RecyclerView;
 import android.view.ContextMenu;
 import android.view.LayoutInflater;
 import android.view.View;

src/main/java/eu/siacs/conversations/ui/service/AudioPlayer.java πŸ”—

@@ -12,8 +12,8 @@ import android.media.AudioManager;
 import android.os.Build;
 import android.os.Handler;
 import android.os.PowerManager;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.content.ContextCompat;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
 import android.util.Log;
 import android.view.View;
 import android.widget.ImageButton;

src/main/java/eu/siacs/conversations/ui/text/QuoteSpan.java πŸ”—

@@ -2,7 +2,7 @@ package eu.siacs.conversations.ui.text;
 
 import android.graphics.Canvas;
 import android.graphics.Paint;
-import android.support.annotation.ColorInt;
+import androidx.annotation.ColorInt;
 import android.text.Layout;
 import android.text.TextPaint;
 import android.text.style.CharacterStyle;

src/main/java/eu/siacs/conversations/ui/util/AvatarWorkerTask.java πŸ”—

@@ -6,7 +6,7 @@ import android.graphics.Bitmap;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.os.AsyncTask;
-import android.support.annotation.DimenRes;
+import androidx.annotation.DimenRes;
 import android.widget.ImageView;
 
 import java.lang.ref.WeakReference;

src/main/java/eu/siacs/conversations/ui/util/GridManager.java πŸ”—

@@ -1,9 +1,9 @@
 package eu.siacs.conversations.ui.util;
 
 import android.content.Context;
-import android.support.annotation.DimenRes;
-import android.support.v7.widget.GridLayoutManager;
-import android.support.v7.widget.RecyclerView;
+import androidx.annotation.DimenRes;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 import android.util.Log;
 import android.view.ViewTreeObserver;
 

src/main/java/eu/siacs/conversations/ui/util/JidDialog.java πŸ”—

@@ -1,7 +1,7 @@
 package eu.siacs.conversations.ui.util;
 
 import android.content.Context;
-import android.support.annotation.StringRes;
+import androidx.annotation.StringRes;
 import android.text.SpannableString;
 import android.text.Spanned;
 import android.text.style.TypefaceSpan;

src/main/java/eu/siacs/conversations/ui/util/SoftKeyboardUtils.java πŸ”—

@@ -31,7 +31,7 @@ package eu.siacs.conversations.ui.util;
 
 import android.app.Activity;
 import android.content.Context;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
 import android.view.View;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.EditText;

src/main/java/eu/siacs/conversations/ui/util/StyledAttributes.java πŸ”—

@@ -31,8 +31,8 @@ package eu.siacs.conversations.ui.util;
 
 import android.content.Context;
 import android.content.res.TypedArray;
-import android.support.annotation.AttrRes;
-import android.support.annotation.ColorInt;
+import androidx.annotation.AttrRes;
+import androidx.annotation.ColorInt;
 
 public class StyledAttributes {
 	public static android.graphics.drawable.Drawable getDrawable(Context context, @AttrRes int id) {

src/main/java/eu/siacs/conversations/ui/widget/EditMessage.java πŸ”—

@@ -2,9 +2,9 @@ package eu.siacs.conversations.ui.widget;
 
 import android.content.SharedPreferences;
 import android.preference.PreferenceManager;
-import android.support.v13.view.inputmethod.EditorInfoCompat;
-import android.support.v13.view.inputmethod.InputConnectionCompat;
-import android.support.v13.view.inputmethod.InputContentInfoCompat;
+import androidx.core.view.inputmethod.EditorInfoCompat;
+import androidx.core.view.inputmethod.InputConnectionCompat;
+import androidx.core.view.inputmethod.InputContentInfoCompat;
 
 import android.content.Context;
 import android.os.Build;

src/main/java/eu/siacs/conversations/ui/widget/ImmediateAutoCompleteTextView.java πŸ”—

@@ -32,7 +32,7 @@ package eu.siacs.conversations.ui.widget;
 import android.content.Context;
 import android.util.AttributeSet;
 
-public class ImmediateAutoCompleteTextView extends android.support.v7.widget.AppCompatAutoCompleteTextView {
+public class ImmediateAutoCompleteTextView extends androidx.appcompat.widget.AppCompatAutoCompleteTextView {
 
 	public ImmediateAutoCompleteTextView(Context context, AttributeSet attrs) {
 		super(context, attrs);

src/main/java/eu/siacs/conversations/ui/widget/MyLocation.java πŸ”—

@@ -1,14 +1,13 @@
 package eu.siacs.conversations.ui.widget;
 
-import android.annotation.TargetApi;
 import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
 import android.graphics.Paint;
 import android.graphics.Point;
 import android.location.Location;
-import android.os.Build;
-import android.support.v4.content.ContextCompat;
+
+import androidx.core.content.ContextCompat;
 
 import org.osmdroid.util.GeoPoint;
 import org.osmdroid.util.TileSystem;

src/main/java/eu/siacs/conversations/ui/widget/SwipeRefreshListFragment.java πŸ”—

@@ -18,9 +18,8 @@ package eu.siacs.conversations.ui.widget;
 
 import android.content.Context;
 import android.os.Bundle;
-import android.support.v4.app.ListFragment;
-import android.support.v4.view.ViewCompat;
-import android.support.v4.widget.SwipeRefreshLayout;
+import androidx.fragment.app.ListFragment;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -30,9 +29,9 @@ import eu.siacs.conversations.R;
 import eu.siacs.conversations.ui.util.StyledAttributes;
 
 /**
- * Subclass of {@link android.support.v4.app.ListFragment} which provides automatic support for
+ * Subclass of {@link androidx.fragment.app.ListFragment} which provides automatic support for
  * providing the 'swipe-to-refresh' UX gesture by wrapping the the content view in a
- * {@link android.support.v4.widget.SwipeRefreshLayout}.
+ * {@link androidx.swiperefreshlayout.widget.SwipeRefreshLayout}.
  */
 public class SwipeRefreshListFragment extends ListFragment {
 
@@ -80,10 +79,10 @@ public class SwipeRefreshListFragment extends ListFragment {
     }
 
     /**
-     * Set the {@link android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener} to listen for
+     * Set the {@link androidx.core.widget.SwipeRefreshLayout.OnRefreshListener} to listen for
      * initiated refreshes.
      *
-     * @see android.support.v4.widget.SwipeRefreshLayout#setOnRefreshListener(android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener)
+     * @see androidx.core.widget.SwipeRefreshLayout#setOnRefreshListener(androidx.core.widget.SwipeRefreshLayout.OnRefreshListener)
      */
     public void setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener listener) {
         onRefreshListener = listener;
@@ -95,10 +94,10 @@ public class SwipeRefreshListFragment extends ListFragment {
     }
 
     /**
-     * Set whether the {@link android.support.v4.widget.SwipeRefreshLayout} should be displaying
+     * Set whether the {@link androidx.core.widget.SwipeRefreshLayout} should be displaying
      * that it is refreshing or not.
      *
-     * @see android.support.v4.widget.SwipeRefreshLayout#setRefreshing(boolean)
+     * @see androidx.core.widget.SwipeRefreshLayout#setRefreshing(boolean)
      */
     public void setRefreshing(boolean refreshing) {
         this.refreshing = refreshing;
@@ -109,12 +108,12 @@ public class SwipeRefreshListFragment extends ListFragment {
 
 
     /**
-     * Sub-class of {@link android.support.v4.widget.SwipeRefreshLayout} for use in this
-     * {@link android.support.v4.app.ListFragment}. The reason that this is needed is because
-     * {@link android.support.v4.widget.SwipeRefreshLayout} only supports a single child, which it
+     * Sub-class of {@link androidx.core.widget.SwipeRefreshLayout} for use in this
+     * {@link androidx.core.app.ListFragment}. The reason that this is needed is because
+     * {@link androidx.core.widget.SwipeRefreshLayout} only supports a single child, which it
      * expects to be the one which triggers refreshes. In our case the layout's child is the content
      * view returned from
-     * {@link android.support.v4.app.ListFragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)}
+     * {@link androidx.core.app.ListFragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)}
      * which is a {@link android.view.ViewGroup}.
      *
      * <p>To enable 'swipe-to-refresh' support via the {@link android.widget.ListView} we need to

src/main/java/eu/siacs/conversations/ui/widget/TextInputEditText.java πŸ”—

@@ -12,7 +12,7 @@ import java.lang.reflect.Field;
  * A wrapper class to fix some weird fuck ups on Meizu devices
  * credit goes to the people in this thread https://github.com/android-in-china/Compatibility/issues/11
  */
-public class TextInputEditText extends android.support.design.widget.TextInputEditText {
+public class TextInputEditText extends com.google.android.material.textfield.TextInputEditText {
 
     public TextInputEditText(Context context) {
         super(context);

src/main/java/eu/siacs/conversations/utils/Android360pFormatStrategy.java πŸ”—

@@ -3,7 +3,7 @@ package eu.siacs.conversations.utils;
 import android.media.MediaCodecInfo;
 import android.media.MediaFormat;
 import android.os.Build;
-import android.support.annotation.RequiresApi;
+import androidx.annotation.RequiresApi;
 import android.util.Log;
 
 import net.ypresto.androidtranscoder.format.MediaFormatExtraConstants;

src/main/java/eu/siacs/conversations/utils/Android720pFormatStrategy.java πŸ”—

@@ -3,7 +3,7 @@ package eu.siacs.conversations.utils;
 import android.media.MediaCodecInfo;
 import android.media.MediaFormat;
 import android.os.Build;
-import android.support.annotation.RequiresApi;
+import androidx.annotation.RequiresApi;
 import android.util.Log;
 
 import net.ypresto.androidtranscoder.format.MediaFormatExtraConstants;

src/main/java/eu/siacs/conversations/utils/Compatibility.java πŸ”—

@@ -10,12 +10,11 @@ import android.os.Build;
 import android.preference.Preference;
 import android.preference.PreferenceCategory;
 import android.preference.PreferenceManager;
-import android.support.annotation.BoolRes;
-import android.support.v4.content.ContextCompat;
+import androidx.annotation.BoolRes;
+import androidx.core.content.ContextCompat;
 import android.util.Log;
 
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 
 import eu.siacs.conversations.Config;

src/main/java/eu/siacs/conversations/utils/ExceptionHelper.java πŸ”—

@@ -6,7 +6,7 @@ import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.Signature;
 import android.preference.PreferenceManager;
-import android.support.v7.app.AlertDialog;
+import androidx.appcompat.app.AlertDialog;
 import android.util.Log;
 
 import java.io.BufferedReader;

src/main/java/eu/siacs/conversations/utils/IrregularUnicodeDetector.java πŸ”—

@@ -32,7 +32,7 @@ package eu.siacs.conversations.utils;
 import android.annotation.TargetApi;
 import android.content.Context;
 import android.os.Build;
-import android.support.annotation.ColorInt;
+import androidx.annotation.ColorInt;
 import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.SpannableStringBuilder;

src/main/java/eu/siacs/conversations/utils/Resolver.java πŸ”—

@@ -2,7 +2,7 @@ package eu.siacs.conversations.utils;
 
 import android.content.ContentValues;
 import android.database.Cursor;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
 import android.util.Log;
 
 import java.io.IOException;

src/main/java/eu/siacs/conversations/utils/StylingHelper.java πŸ”—

@@ -32,8 +32,8 @@ package eu.siacs.conversations.utils;
 import android.content.Context;
 import android.graphics.Color;
 import android.graphics.Typeface;
-import android.support.annotation.ColorInt;
-import android.support.v4.content.ContextCompat;
+import androidx.annotation.ColorInt;
+import androidx.core.content.ContextCompat;
 import android.text.Editable;
 import android.text.ParcelableSpan;
 import android.text.Spannable;

src/main/java/eu/siacs/conversations/utils/ThemeHelper.java πŸ”—

@@ -36,9 +36,9 @@ import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.os.Build;
 import android.preference.PreferenceManager;
-import android.support.annotation.StyleRes;
-import android.support.design.widget.Snackbar;
-import android.support.v4.content.ContextCompat;
+import androidx.annotation.StyleRes;
+import com.google.android.material.snackbar.Snackbar;
+import androidx.core.content.ContextCompat;
 import android.util.TypedValue;
 import android.widget.TextView;
 
@@ -103,8 +103,8 @@ public class ThemeHelper {
 		final float size = typedArray.getDimension(0,0f);
 		typedArray.recycle();
 		if (size != 0f) {
-			final TextView text = snackbar.getView().findViewById(android.support.design.R.id.snackbar_text);
-			final TextView action = snackbar.getView().findViewById(android.support.design.R.id.snackbar_action);
+			final TextView text = snackbar.getView().findViewById(com.google.android.material.R.id.snackbar_text);
+			final TextView action = snackbar.getView().findViewById(com.google.android.material.R.id.snackbar_action);
 			if (text != null && action != null) {
 				text.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);
 				action.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);

src/main/java/eu/siacs/conversations/utils/UIHelper.java πŸ”—

@@ -1,7 +1,7 @@
 package eu.siacs.conversations.utils;
 
 import android.content.Context;
-import android.support.annotation.ColorInt;
+import androidx.annotation.ColorInt;
 import android.text.SpannableStringBuilder;
 import android.text.format.DateFormat;
 import android.text.format.DateUtils;

src/main/java/eu/siacs/conversations/utils/XmppUri.java πŸ”—

@@ -1,7 +1,7 @@
 package eu.siacs.conversations.utils;
 
 import android.net.Uri;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;

src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java πŸ”—

@@ -5,7 +5,7 @@ import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.os.SystemClock;
 import android.security.KeyChain;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
 import android.util.Base64;
 import android.util.Log;
 import android.util.Pair;

src/main/res/layout/account_row.xml πŸ”—

@@ -44,7 +44,7 @@
                 android:textAppearance="@style/TextAppearance.Conversations.Body2" />
         </LinearLayout>
 
-        <android.support.v7.widget.SwitchCompat
+        <androidx.appcompat.widget.SwitchCompat
             android:id="@+id/tgl_account_status"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"

src/main/res/layout/activity_about.xml πŸ”—

@@ -16,7 +16,7 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content">
 
-            <android.support.v7.widget.CardView
+            <androidx.cardview.widget.CardView
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginBottom="@dimen/activity_vertical_margin"
@@ -34,7 +34,7 @@
                     android:text="@string/pref_about_message"
                     android:textAppearance="@style/TextAppearance.Conversations.Body1"
                     android:typeface="monospace"/>
-            </android.support.v7.widget.CardView>
+            </androidx.cardview.widget.CardView>
         </LinearLayout>
     </ScrollView>
 </LinearLayout>

src/main/res/layout/activity_change_password.xml πŸ”—

@@ -13,7 +13,7 @@
         android:layout_above="@+id/button_bar"
         android:layout_below="@id/toolbar">
 
-        <android.support.v7.widget.CardView
+        <androidx.cardview.widget.CardView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginBottom="@dimen/activity_vertical_margin"
@@ -28,7 +28,7 @@
                 android:padding="@dimen/card_padding_regular">
 
 
-                <android.support.design.widget.TextInputLayout
+                <com.google.android.material.textfield.TextInputLayout
                     android:id="@+id/current_password_layout"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -46,9 +46,9 @@
                         android:layout_alignParentTop="true"
                         android:hint="@string/current_password"
                         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/new_password_layout"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -66,9 +66,9 @@
                         android:layout_alignParentTop="true"
                         android:hint="@string/new_password"
                         android:inputType="textPassword"/>
-                </android.support.design.widget.TextInputLayout>
+                </com.google.android.material.textfield.TextInputLayout>
             </LinearLayout>
-        </android.support.v7.widget.CardView>
+        </androidx.cardview.widget.CardView>
     </ScrollView>
 
     <LinearLayout

src/main/res/layout/activity_channel_discovery.xml πŸ”—

@@ -21,21 +21,21 @@
             android:layout_gravity="center_horizontal"
             app:layout_anchor="@+id/list" />
 
-        <android.support.design.widget.CoordinatorLayout
+        <androidx.coordinatorlayout.widget.CoordinatorLayout
             android:id="@+id/coordinator"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:background="?attr/color_background_primary">
 
-            <android.support.v7.widget.RecyclerView
+            <androidx.recyclerview.widget.RecyclerView
                 android:id="@+id/list"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:background="?attr/color_background_primary"
                 android:orientation="vertical"
                 android:scrollbars="vertical"
-                app:layoutManager="android.support.v7.widget.LinearLayoutManager" />
-        </android.support.design.widget.CoordinatorLayout>
+                app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
+        </androidx.coordinatorlayout.widget.CoordinatorLayout>
 
     </LinearLayout>
 </layout>

src/main/res/layout/activity_choose_contact.xml πŸ”—

@@ -22,7 +22,7 @@
                 android:divider="@android:color/transparent"
                 android:dividerHeight="0dp"/>
 
-            <android.support.design.widget.FloatingActionButton
+            <com.google.android.material.floatingactionbutton.FloatingActionButton
                 android:id="@+id/fab"
                 android:visibility="gone"
                 app:backgroundTint="?colorPrimary"

src/main/res/layout/activity_contact_details.xml πŸ”—

@@ -23,7 +23,7 @@
                 android:layout_height="wrap_content"
                 android:orientation="vertical">
 
-                <android.support.v7.widget.CardView
+                <androidx.cardview.widget.CardView
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginBottom="@dimen/activity_vertical_margin"
@@ -116,9 +116,9 @@
                             android:text="@string/using_account"
                             android:textAppearance="@style/TextAppearance.Conversations.Caption" />
                     </RelativeLayout>
-                </android.support.v7.widget.CardView>
+                </androidx.cardview.widget.CardView>
 
-                <android.support.v7.widget.CardView
+                <androidx.cardview.widget.CardView
                     android:id="@+id/media_wrapper"
                     android:layout_width="fill_parent"
                     android:layout_height="wrap_content"
@@ -132,7 +132,7 @@
                         android:layout_height="wrap_content"
                         android:orientation="vertical">
 
-                        <android.support.v7.widget.RecyclerView
+                        <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/media"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
@@ -162,9 +162,9 @@
                                 android:textColor="?attr/colorAccent" />
                         </LinearLayout>
                     </LinearLayout>
-                </android.support.v7.widget.CardView>
+                </androidx.cardview.widget.CardView>
 
-                <android.support.v7.widget.CardView
+                <androidx.cardview.widget.CardView
                     android:id="@+id/keys_wrapper"
                     android:layout_width="fill_parent"
                     android:layout_height="wrap_content"
@@ -215,7 +215,7 @@
                                 android:textColor="?attr/colorAccent" />
                         </LinearLayout>
                     </LinearLayout>
-                </android.support.v7.widget.CardView>
+                </androidx.cardview.widget.CardView>
             </LinearLayout>
         </ScrollView>
     </LinearLayout>

src/main/res/layout/activity_edit_account.xml πŸ”—

@@ -24,7 +24,7 @@
                 android:orientation="vertical">
 
 
-                <android.support.v7.widget.CardView
+                <androidx.cardview.widget.CardView
                     android:id="@+id/editor"
                     android:layout_width="fill_parent"
                     android:layout_height="wrap_content"
@@ -53,7 +53,7 @@
                             android:layout_toRightOf="@+id/avater"
                             android:orientation="vertical">
 
-                            <android.support.design.widget.TextInputLayout
+                            <com.google.android.material.textfield.TextInputLayout
                                 android:id="@+id/account_jid_layout"
                                 android:layout_width="match_parent"
                                 android:layout_height="wrap_content"
@@ -69,10 +69,10 @@
                                     android:inputType="textEmailAddress"
                                     android:textColor="?attr/edit_text_color"
                                     style="@style/Widget.Conversations.EditText"/>
-                            </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/account_password_layout"
                                 android:layout_width="match_parent"
                                 android:layout_height="wrap_content"
@@ -91,7 +91,7 @@
                                     android:inputType="textPassword"
                                     android:textColor="?attr/edit_text_color"
                                     style="@style/Widget.Conversations.EditText"/>
-                            </android.support.design.widget.TextInputLayout>
+                            </com.google.android.material.textfield.TextInputLayout>
 
                             <LinearLayout
                                 android:id="@+id/name_port"
@@ -107,7 +107,7 @@
                                     android:layout_weight="0.8"
                                     android:orientation="vertical">
 
-                                    <android.support.design.widget.TextInputLayout
+                                    <com.google.android.material.textfield.TextInputLayout
                                         android:id="@+id/hostname_layout"
                                         android:layout_width="match_parent"
                                         android:layout_height="wrap_content"
@@ -121,7 +121,7 @@
                                             android:layout_height="wrap_content"
                                             android:inputType="textWebEmailAddress"
                                             style="@style/Widget.Conversations.EditText"/>
-                                    </android.support.design.widget.TextInputLayout>
+                                    </com.google.android.material.textfield.TextInputLayout>
                                 </LinearLayout>
 
                                 <LinearLayout
@@ -130,7 +130,7 @@
                                     android:layout_weight="0.2"
                                     android:orientation="vertical">
 
-                                    <android.support.design.widget.TextInputLayout
+                                    <com.google.android.material.textfield.TextInputLayout
                                         android:id="@+id/port_layout"
                                         android:layout_width="match_parent"
                                         android:layout_height="wrap_content"
@@ -145,7 +145,7 @@
                                             android:inputType="number"
                                             android:maxLength="5"
                                             style="@style/Widget.Conversations.EditText"/>
-                                    </android.support.design.widget.TextInputLayout>
+                                    </com.google.android.material.textfield.TextInputLayout>
                                 </LinearLayout>
                             </LinearLayout>
 
@@ -158,9 +158,9 @@
                                 android:text="@string/register_account"/>
                         </LinearLayout>
                     </RelativeLayout>
-                </android.support.v7.widget.CardView>
+                </androidx.cardview.widget.CardView>
 
-                <android.support.v7.widget.CardView
+                <androidx.cardview.widget.CardView
                     android:id="@+id/os_optimization"
                     android:layout_width="fill_parent"
                     android:layout_height="wrap_content"
@@ -215,10 +215,10 @@
                                 android:textColor="?colorAccent"/>
                         </LinearLayout>
                     </LinearLayout>
-                </android.support.v7.widget.CardView>
+                </androidx.cardview.widget.CardView>
 
 
-                <android.support.v7.widget.CardView
+                <androidx.cardview.widget.CardView
                     android:id="@+id/stats"
                     android:layout_width="fill_parent"
                     android:layout_height="fill_parent"
@@ -636,9 +636,9 @@
                             </LinearLayout>
                         </RelativeLayout>
                     </LinearLayout>
-                </android.support.v7.widget.CardView>
+                </androidx.cardview.widget.CardView>
 
-                <android.support.v7.widget.CardView
+                <androidx.cardview.widget.CardView
                     android:id="@+id/other_device_keys_card"
                     android:layout_width="fill_parent"
                     android:layout_height="wrap_content"
@@ -677,7 +677,7 @@
                             android:text="@string/clear_other_devices"
                             android:textColor="?colorAccent"/>
                     </LinearLayout>
-                </android.support.v7.widget.CardView>
+                </androidx.cardview.widget.CardView>
             </LinearLayout>
         </ScrollView>
 

src/main/res/layout/activity_media_browser.xml πŸ”—

@@ -11,7 +11,7 @@
             android:id="@+id/toolbar"
             layout="@layout/toolbar"/>
 
-        <android.support.v7.widget.RecyclerView
+        <androidx.recyclerview.widget.RecyclerView
             android:id="@+id/media"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"

src/main/res/layout/activity_muc_details.xml πŸ”—

@@ -23,7 +23,7 @@
                 android:layout_height="wrap_content"
                 android:orientation="vertical">
 
-                <android.support.v7.widget.CardView
+                <androidx.cardview.widget.CardView
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginBottom="@dimen/activity_vertical_margin"
@@ -100,7 +100,7 @@
                                         android:layout_alignParentLeft="true"
                                         android:layout_toLeftOf="@+id/edit_muc_name_button">
 
-                                        <android.support.design.widget.TextInputLayout
+                                        <com.google.android.material.textfield.TextInputLayout
                                             android:layout_width="match_parent"
                                             android:layout_height="wrap_content"
                                             app:errorTextAppearance="@style/TextAppearance.Conversations.Design.Error"
@@ -112,9 +112,9 @@
                                                 android:layout_height="wrap_content"
                                                 android:hint="@string/group_chat_name"
                                                 android:textAppearance="@style/Widget.Conversations.EditText"/>
-                                        </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:errorTextAppearance="@style/TextAppearance.Conversations.Design.Error"
@@ -126,7 +126,7 @@
                                                 android:layout_height="wrap_content"
                                                 android:hint="@string/topic"
                                                 android:textAppearance="@style/Widget.Conversations.EditText"/>
-                                        </android.support.design.widget.TextInputLayout>
+                                        </com.google.android.material.textfield.TextInputLayout>
 
                                     </LinearLayout>
 
@@ -216,9 +216,9 @@
                             android:layout_marginTop="32dp"
                             android:textAppearance="@style/TextAppearance.Conversations.Caption"/>
                     </LinearLayout>
-                </android.support.v7.widget.CardView>
+                </androidx.cardview.widget.CardView>
 
-                <android.support.v7.widget.CardView
+                <androidx.cardview.widget.CardView
                     android:id="@+id/users_wrapper"
                     android:layout_width="fill_parent"
                     android:layout_height="wrap_content"
@@ -242,7 +242,7 @@
                             android:text="@string/no_users_hint_channel"
                             android:textAppearance="@style/TextAppearance.Conversations.Body2"/>
 
-                        <android.support.v7.widget.RecyclerView
+                        <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/users"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
@@ -283,9 +283,9 @@
                                 android:textColor="?attr/colorAccent" />
                         </LinearLayout>
                     </LinearLayout>
-                </android.support.v7.widget.CardView>
+                </androidx.cardview.widget.CardView>
 
-                <android.support.v7.widget.CardView
+                <androidx.cardview.widget.CardView
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginBottom="@dimen/activity_vertical_margin"
@@ -377,8 +377,8 @@
                             android:text="@string/using_account"
                             android:textAppearance="@style/TextAppearance.Conversations.Caption"/>
                     </LinearLayout>
-                </android.support.v7.widget.CardView>
-                <android.support.v7.widget.CardView
+                </androidx.cardview.widget.CardView>
+                <androidx.cardview.widget.CardView
                     android:id="@+id/media_wrapper"
                     android:layout_width="fill_parent"
                     android:layout_height="wrap_content"
@@ -392,7 +392,7 @@
                         android:layout_height="wrap_content"
                         android:orientation="vertical">
 
-                        <android.support.v7.widget.RecyclerView
+                        <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/media"
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
@@ -422,7 +422,7 @@
                                 android:textColor="?attr/colorAccent" />
                         </LinearLayout>
                     </LinearLayout>
-                </android.support.v7.widget.CardView>
+                </androidx.cardview.widget.CardView>
 
             </LinearLayout>
         </ScrollView>

src/main/res/layout/activity_muc_users.xml πŸ”—

@@ -14,21 +14,21 @@
             layout="@layout/toolbar" />
 
 
-        <android.support.design.widget.CoordinatorLayout
+        <androidx.coordinatorlayout.widget.CoordinatorLayout
             android:id="@+id/coordinator"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:background="?attr/color_background_primary">
 
-            <android.support.v7.widget.RecyclerView
+            <androidx.recyclerview.widget.RecyclerView
                 android:id="@+id/list"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:background="?attr/color_background_primary"
                 android:orientation="vertical"
                 android:scrollbars="vertical"
-                app:layoutManager="android.support.v7.widget.LinearLayoutManager" />
-        </android.support.design.widget.CoordinatorLayout>
+                app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
+        </androidx.coordinatorlayout.widget.CoordinatorLayout>
 
     </LinearLayout>
 </layout>

src/main/res/layout/activity_publish_profile_picture.xml πŸ”—

@@ -8,7 +8,7 @@
 
         <include android:id="@+id/toolbar" layout="@layout/toolbar"/>
 
-        <android.support.v7.widget.CardView
+        <androidx.cardview.widget.CardView
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:layout_below="@id/toolbar"
@@ -60,7 +60,7 @@
                     android:textAppearance="@style/TextAppearance.Conversations.Body1"/>
 
             </LinearLayout>
-        </android.support.v7.widget.CardView>
+        </androidx.cardview.widget.CardView>
 
         <LinearLayout
             android:id="@+id/button_bar"

src/main/res/layout/activity_rtp_session.xml πŸ”—

@@ -34,13 +34,13 @@
                 android:visibility="gone" />
         </LinearLayout>
 
-        <android.support.design.widget.AppBarLayout
+        <com.google.android.material.appbar.AppBarLayout
             android:id="@+id/app_bar_layout"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:visibility="visible">
 
-            <android.support.v7.widget.Toolbar
+            <androidx.appcompat.widget.Toolbar
                 android:id="@+id/toolbar"
                 android:layout_width="match_parent"
                 android:layout_height="?attr/actionBarSize"
@@ -60,7 +60,7 @@
                 android:textColor="@color/white"
                 tools:text="Juliet Capulet" />
 
-        </android.support.design.widget.AppBarLayout>
+        </com.google.android.material.appbar.AppBarLayout>
 
         <RelativeLayout
             android:layout_width="match_parent"
@@ -136,7 +136,7 @@
                 android:layout_height="wrap_content"
                 android:layout_centerInParent="true">
 
-                <android.support.design.widget.FloatingActionButton
+                <com.google.android.material.floatingactionbutton.FloatingActionButton
                     android:id="@+id/reject_call"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
@@ -151,7 +151,7 @@
                     app:maxImageSize="36dp"
                     tools:visibility="visible" />
 
-                <android.support.design.widget.FloatingActionButton
+                <com.google.android.material.floatingactionbutton.FloatingActionButton
                     android:id="@+id/accept_call"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
@@ -169,7 +169,7 @@
 
             </RelativeLayout>
 
-            <android.support.design.widget.FloatingActionButton
+            <com.google.android.material.floatingactionbutton.FloatingActionButton
                 android:id="@+id/in_call_action_left"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
@@ -183,7 +183,7 @@
                 app:fabSize="mini"
                 app:tint="?attr/icon_tint" />
 
-            <android.support.design.widget.FloatingActionButton
+            <com.google.android.material.floatingactionbutton.FloatingActionButton
                 android:id="@+id/end_call"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
@@ -196,7 +196,7 @@
                 app:fabCustomSize="72dp"
                 app:maxImageSize="36dp" />
 
-            <android.support.design.widget.FloatingActionButton
+            <com.google.android.material.floatingactionbutton.FloatingActionButton
                 android:id="@+id/in_call_action_right"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
@@ -210,7 +210,7 @@
                 app:fabSize="mini"
                 app:tint="?attr/icon_tint" />
 
-            <android.support.design.widget.FloatingActionButton
+            <com.google.android.material.floatingactionbutton.FloatingActionButton
                 android:id="@+id/in_call_action_far_right"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"

src/main/res/layout/activity_share_location.xml πŸ”—

@@ -12,7 +12,7 @@
             android:id="@+id/toolbar"
             layout="@layout/toolbar" />
 
-        <android.support.design.widget.CoordinatorLayout
+        <androidx.coordinatorlayout.widget.CoordinatorLayout
 
             android:id="@+id/snackbar_coordinator"
             android:layout_width="match_parent"
@@ -26,7 +26,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/fab"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
@@ -40,7 +40,7 @@
                 android:src="?attr/icon_gps_fixed"
                 app:backgroundTint="?colorPrimary" />
 
-        </android.support.design.widget.CoordinatorLayout>
+        </androidx.coordinatorlayout.widget.CoordinatorLayout>
 
         <LinearLayout
             android:id="@+id/button_bar"

src/main/res/layout/activity_share_with.xml πŸ”—

@@ -8,7 +8,7 @@
 
     <include layout="@layout/toolbar" />
 
-    <android.support.v7.widget.RecyclerView
+    <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/choose_conversation_list"
         android:layout_width="match_parent"
         android:layout_height="match_parent"

src/main/res/layout/activity_show_location.xml πŸ”—

@@ -18,7 +18,7 @@
             android:layout_height="fill_parent"
             android:layout_below="@id/toolbar" />
 
-        <android.support.design.widget.FloatingActionButton
+        <com.google.android.material.floatingactionbutton.FloatingActionButton
             android:id="@+id/fab"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"

src/main/res/layout/activity_start_conversation.xml πŸ”—

@@ -6,7 +6,7 @@
         android:layout_height="match_parent">
         <include android:id="@+id/toolbar"
             layout="@layout/toolbar" />
-        <android.support.design.widget.TabLayout
+        <com.google.android.material.tabs.TabLayout
             android:id="@+id/tab_layout"
             android:layout_below="@id/toolbar"
             android:layout_width="match_parent"
@@ -20,7 +20,7 @@
             app:tabSelectedTextColor="@color/white"
             app:tabIndicatorColor="@color/white87"
             android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
-        <android.support.v4.view.ViewPager
+        <androidx.viewpager.widget.ViewPager
             android:id="@+id/start_conversation_view_pager"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
@@ -28,7 +28,7 @@
             android:background="?attr/color_background_primary">
 
 
-        </android.support.v4.view.ViewPager>
+        </androidx.viewpager.widget.ViewPager>
 
         <com.leinardi.android.speeddial.SpeedDialOverlayLayout
             android:id="@+id/overlay"

src/main/res/layout/activity_trust_keys.xml πŸ”—

@@ -21,7 +21,7 @@
                 android:layout_height="wrap_content"
                 android:orientation="vertical">
 
-                <android.support.v7.widget.CardView
+                <androidx.cardview.widget.CardView
                     android:id="@+id/key_error_message_card"
                     android:layout_width="fill_parent"
                     android:layout_height="wrap_content"
@@ -86,9 +86,9 @@
                     </LinearLayout>
                     </LinearLayout>
 
-                </android.support.v7.widget.CardView>
+                </androidx.cardview.widget.CardView>
 
-                <android.support.v7.widget.CardView
+                <androidx.cardview.widget.CardView
                     android:id="@+id/own_keys_card"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -118,7 +118,7 @@
                             android:orientation="vertical"/>
                     </LinearLayout>
 
-                </android.support.v7.widget.CardView>
+                </androidx.cardview.widget.CardView>
 
                 <LinearLayout
                     android:id="@+id/foreign_keys"

src/main/res/layout/contact_key.xml πŸ”—

@@ -69,7 +69,7 @@
                 android:src="@drawable/ic_verified_fingerprint"
                 android:visibility="gone"/>
 
-            <android.support.v7.widget.SwitchCompat
+            <androidx.appcompat.widget.SwitchCompat
                 android:id="@+id/tgl_trust"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"

src/main/res/layout/create_conference_dialog.xml πŸ”—

@@ -22,7 +22,7 @@
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"/>
 
-        <android.support.design.widget.TextInputLayout
+        <com.google.android.material.textfield.TextInputLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             app:errorTextAppearance="@style/TextAppearance.Conversations.Design.Error"
@@ -35,6 +35,6 @@
                 android:layout_height="wrap_content"
                 android:hint="@string/create_dialog_group_chat_name"
                 android:imeOptions="actionNext|flagNoExtractUi"/>
-        </android.support.design.widget.TextInputLayout>
+        </com.google.android.material.textfield.TextInputLayout>
     </LinearLayout>
 </layout>

src/main/res/layout/create_public_channel_dialog.xml πŸ”—

@@ -19,7 +19,7 @@
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"/>
 
-        <android.support.design.widget.TextInputLayout
+        <com.google.android.material.textfield.TextInputLayout
             android:id="@+id/name_layout"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -33,8 +33,8 @@
                 android:layout_height="wrap_content"
                 android:hint="@string/create_dialog_channel_name"
                 android:imeOptions="actionNext|flagNoExtractUi"/>
-        </android.support.design.widget.TextInputLayout>
-        <android.support.design.widget.TextInputLayout
+        </com.google.android.material.textfield.TextInputLayout>
+        <com.google.android.material.textfield.TextInputLayout
             android:id="@+id/xmpp_address_layout"
             android:visibility="gone"
             android:layout_width="match_parent"
@@ -50,6 +50,6 @@
                 android:layout_height="wrap_content"
                 android:inputType="textEmailAddress"
                 android:imeOptions="actionDone|flagNoExtractUi"/>
-        </android.support.design.widget.TextInputLayout>
+        </com.google.android.material.textfield.TextInputLayout>
     </LinearLayout>
 </layout>

src/main/res/layout/dialog_join_conference.xml πŸ”—

@@ -22,7 +22,7 @@
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"/>
 
-        <android.support.design.widget.TextInputLayout
+        <com.google.android.material.textfield.TextInputLayout
             android:id="@+id/account_jid_layout"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -37,7 +37,7 @@
                 android:layout_height="wrap_content"
                 android:inputType="textEmailAddress"
                 android:imeOptions="actionDone|flagNoExtractUi"/>
-        </android.support.design.widget.TextInputLayout>
+        </com.google.android.material.textfield.TextInputLayout>
 
         <CheckBox
             android:id="@+id/bookmark"

src/main/res/layout/dialog_presence.xml πŸ”—

@@ -46,7 +46,7 @@
                 android:text="@string/presence_dnd"/>
         </RadioGroup>
 
-        <android.support.design.widget.TextInputLayout
+        <com.google.android.material.textfield.TextInputLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             app:errorTextAppearance="@style/TextAppearance.Conversations.Design.Error"
@@ -60,7 +60,7 @@
                 android:ems="10"
                 android:hint="@string/status_message"
                 android:inputType="textShortMessage"/>
-        </android.support.design.widget.TextInputLayout>
+        </com.google.android.material.textfield.TextInputLayout>
 
     </LinearLayout>
 </layout>

src/main/res/layout/dialog_quickedit.xml πŸ”—

@@ -8,7 +8,7 @@
         android:orientation="vertical"
         android:padding="?dialogPreferredPadding">
 
-        <android.support.design.widget.TextInputLayout
+        <com.google.android.material.textfield.TextInputLayout
             android:id="@+id/input_layout"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -27,6 +27,6 @@
                 <requestFocus/>
             </eu.siacs.conversations.ui.widget.EmojiWrapperEditText>
 
-        </android.support.design.widget.TextInputLayout>
+        </com.google.android.material.textfield.TextInputLayout>
     </LinearLayout>
 </layout>

src/main/res/layout/enter_jid_dialog.xml πŸ”—

@@ -22,7 +22,7 @@
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"/>
 
-        <android.support.design.widget.TextInputLayout
+        <com.google.android.material.textfield.TextInputLayout
             android:id="@+id/jid_layout"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -37,6 +37,6 @@
                 android:layout_height="wrap_content"
                 android:imeOptions="actionDone|flagNoExtractUi"
                 android:inputType="textEmailAddress" />
-        </android.support.design.widget.TextInputLayout>
+        </com.google.android.material.textfield.TextInputLayout>
     </LinearLayout>
 </layout>

src/main/res/layout/fragment_conversation.xml πŸ”—

@@ -23,7 +23,7 @@
             android:transcriptMode="normal"
             tools:listitem="@layout/message_sent"></ListView>
 
-        <android.support.design.widget.FloatingActionButton
+        <com.google.android.material.floatingactionbutton.FloatingActionButton
             android:id="@+id/scroll_to_bottom_button"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
@@ -81,7 +81,7 @@
                     android:textAppearance="@style/TextAppearance.Conversations.Caption.Highlight"
                     android:visibility="gone" />
 
-                <android.support.v7.widget.RecyclerView
+                <androidx.recyclerview.widget.RecyclerView
                     android:id="@+id/media_preview"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
@@ -89,10 +89,10 @@
                     android:paddingTop="8dp"
                     android:requiresFadingEdge="horizontal"
                     android:visibility="gone"
-                    app:layoutManager="android.support.v7.widget.LinearLayoutManager"
+                    app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
                     tools:listitem="@layout/media_preview">
 
-                </android.support.v7.widget.RecyclerView>
+                </androidx.recyclerview.widget.RecyclerView>
 
                 <eu.siacs.conversations.ui.widget.EditMessage
                     android:id="@+id/textinput"

src/main/res/layout/fragment_conversations_overview.xml πŸ”—

@@ -1,13 +1,13 @@
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res-auto">
 
-    <android.support.design.widget.CoordinatorLayout
+    <androidx.coordinatorlayout.widget.CoordinatorLayout
         android:background="?attr/color_background_primary"
         android:layout_width="match_parent"
         android:layout_height="match_parent">
 
 
-        <android.support.v7.widget.RecyclerView
+        <androidx.recyclerview.widget.RecyclerView
             android:id="@+id/list"
             android:scrollbars="vertical"
             android:layout_width="match_parent"
@@ -15,7 +15,7 @@
             android:background="?attr/color_background_primary"
            />
 
-        <android.support.design.widget.FloatingActionButton
+        <com.google.android.material.floatingactionbutton.FloatingActionButton
             android:id="@+id/fab"
             app:backgroundTint="?colorPrimary"
             android:layout_width="wrap_content"
@@ -23,5 +23,5 @@
             android:layout_gravity="end|bottom"
             android:layout_margin="16dp"
             android:src="@drawable/ic_chat_white_24dp"/>
-    </android.support.design.widget.CoordinatorLayout>
+    </androidx.coordinatorlayout.widget.CoordinatorLayout>
 </layout>

src/main/res/layout/keys_card.xml πŸ”—

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <android.support.v7.widget.CardView
+    <androidx.cardview.widget.CardView
         android:id="@+id/foreign_keys_card"
 
         android:layout_width="fill_parent"
@@ -39,5 +39,5 @@
                 android:textAppearance="@style/TextAppearance.Conversations.Body1"
                 android:layout_margin="@dimen/list_padding"/>
         </LinearLayout>
-    </android.support.v7.widget.CardView>
+    </androidx.cardview.widget.CardView>
 </layout>

src/main/res/layout/toolbar.xml πŸ”—

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.v7.widget.Toolbar android:id="@+id/toolbar"
+<androidx.appcompat.widget.Toolbar android:id="@+id/toolbar"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:background="?attr/colorPrimary"

src/playstore/java/eu/siacs/conversations/services/MaintenanceReceiver.java πŸ”—

@@ -3,7 +3,7 @@ package eu.siacs.conversations.services;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
-import android.support.v4.content.ContextCompat;
+import androidx.core.content.ContextCompat;
 import android.util.Log;
 
 import com.google.firebase.iid.FirebaseInstanceId;

src/playstoreCompat/java/eu/siacs/conversations/ui/service/EmojiService.java πŸ”—

@@ -2,9 +2,9 @@ package eu.siacs.conversations.ui.service;
 
 import android.content.Context;
 import android.os.Build;
-import android.support.text.emoji.EmojiCompat;
-import android.support.text.emoji.FontRequestEmojiCompatConfig;
-import android.support.v4.provider.FontRequest;
+import androidx.emoji.text.EmojiCompat;
+import androidx.emoji.text.FontRequestEmojiCompatConfig;
+import androidx.core.provider.FontRequest;
 import android.util.Log;
 
 import eu.siacs.conversations.Config;

src/quicksy/java/eu/siacs/conversations/ui/ChooseCountryActivity.java πŸ”—

@@ -2,10 +2,10 @@ package eu.siacs.conversations.ui;
 
 import android.content.Context;
 import android.content.Intent;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.os.Bundle;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.Toolbar;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.appcompat.widget.Toolbar;
 import android.text.Editable;
 import android.text.TextWatcher;
 import android.view.Menu;

src/quicksy/java/eu/siacs/conversations/ui/EnterNameActivity.java πŸ”—

@@ -1,9 +1,9 @@
 package eu.siacs.conversations.ui;
 
 import android.content.Intent;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.os.Bundle;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar;
 import android.view.View;
 
 import java.util.concurrent.atomic.AtomicBoolean;

src/quicksy/java/eu/siacs/conversations/ui/EnterPhoneNumberActivity.java πŸ”—

@@ -2,9 +2,9 @@ package eu.siacs.conversations.ui;
 
 import android.app.AlertDialog;
 import android.content.Intent;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.os.Bundle;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar;
 import android.text.Editable;
 import android.text.Html;
 import android.text.TextUtils;

src/quicksy/java/eu/siacs/conversations/ui/TosActivity.java πŸ”—

@@ -5,8 +5,8 @@ import android.content.SharedPreferences;
 import android.content.pm.ActivityInfo;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AppCompatActivity;
 import android.text.Html;
 import android.text.method.LinkMovementMethod;
 import android.widget.Button;

src/quicksy/java/eu/siacs/conversations/ui/VerifyActivity.java πŸ”—

@@ -6,12 +6,12 @@ import android.content.ClipDescription;
 import android.content.ClipboardManager;
 import android.content.Context;
 import android.content.Intent;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.SystemClock;
-import android.support.design.widget.Snackbar;
-import android.support.v7.widget.Toolbar;
+import com.google.android.material.snackbar.Snackbar;
+import androidx.appcompat.widget.Toolbar;
 import android.text.Html;
 import android.view.View;
 

src/quicksy/java/eu/siacs/conversations/ui/adapter/CountryAdapter.java πŸ”—

@@ -1,8 +1,8 @@
 package eu.siacs.conversations.ui.adapter;
 
-import android.databinding.DataBindingUtil;
-import android.support.annotation.NonNull;
-import android.support.v7.widget.RecyclerView;
+import androidx.databinding.DataBindingUtil;
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
 import android.view.LayoutInflater;
 import android.view.ViewGroup;
 

src/quicksy/java/eu/siacs/conversations/ui/util/ApiDialogHelper.java πŸ”—

@@ -7,7 +7,7 @@ import android.content.DialogInterface;
 import android.content.Intent;
 import android.net.Uri;
 import android.os.SystemClock;
-import android.support.annotation.StringRes;
+import androidx.annotation.StringRes;
 
 import eu.siacs.conversations.R;
 import eu.siacs.conversations.services.QuickConversationsService;

src/quicksy/res/layout/activity_choose_country.xml πŸ”—

@@ -11,7 +11,7 @@
             android:id="@+id/toolbar"
             layout="@layout/toolbar"/>
 
-        <android.support.v7.widget.RecyclerView
+        <androidx.recyclerview.widget.RecyclerView
             android:id="@+id/countries"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -21,4 +21,4 @@
             android:scrollbars="vertical"/>
 
     </LinearLayout>
-</layout>
+</layout>

src/quicksy/res/layout/activity_enter_number.xml πŸ”—

@@ -10,7 +10,7 @@
             android:id="@+id/toolbar"
             layout="@layout/toolbar" />
 
-        <android.support.design.widget.CoordinatorLayout
+        <androidx.coordinatorlayout.widget.CoordinatorLayout
             android:id="@+id/coordinator"
             android:layout_width="match_parent"
             android:layout_height="match_parent">
@@ -108,6 +108,6 @@
                         android:textColor="?colorAccent" />
                 </RelativeLayout>
             </ScrollView>
-        </android.support.design.widget.CoordinatorLayout>
+	</androidx.coordinatorlayout.widget.CoordinatorLayout>
     </LinearLayout>
 </layout>

src/quicksy/res/layout/activity_verify.xml πŸ”—

@@ -11,7 +11,7 @@
             android:id="@+id/toolbar"
             layout="@layout/toolbar" />
 
-        <android.support.design.widget.CoordinatorLayout
+        <androidx.coordinatorlayout.widget.CoordinatorLayout
             android:id="@+id/coordinator"
             android:layout_width="match_parent"
             android:layout_height="match_parent">
@@ -188,6 +188,6 @@
                         android:layout_centerHorizontal="true" />
                 </RelativeLayout>
             </ScrollView>
-        </android.support.design.widget.CoordinatorLayout>
+        </androidx.coordinatorlayout.widget.CoordinatorLayout>
     </LinearLayout>
-</layout>
+</layout>