diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000000000000000000000000000000000000..e83413e68ffbc8ba4f78a9550cc473eaad85a3f6
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,10 @@
+#
+# Copyright (c) 2010-2018, openHAB.org and others.
+#
+# All rights reserved. This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available
+# at https://www.eclipse.org/legal/epl-v10.html
+#
+
+android.enableJetifier=true
+android.useAndroidX=true
\ No newline at end of file
diff --git a/mobile/build.gradle b/mobile/build.gradle
index 2a6e190f12538cbb76f0c345cf370041f0d78815..cb81e052aa420dc31334d0b995e8b4de3976b430 100644
--- a/mobile/build.gradle
+++ b/mobile/build.gradle
@@ -25,8 +25,8 @@ if(!isFoss) {
 apply plugin: 'witness'
 
 android {
-    buildToolsVersion '27.0.3'
-    compileSdkVersion 27
+    buildToolsVersion '28.0.3'
+    compileSdkVersion 28
     useLibrary 'org.apache.http.legacy'
 
     defaultConfig {
@@ -36,7 +36,7 @@ android {
         versionCode 85
         versionName "2.3.3-beta"
         multiDexEnabled true
-        testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
+        testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
     }
     buildTypes {
         def IS_DEVELOPER = "IS_DEVELOPER"
@@ -99,11 +99,11 @@ repositories {
 }
 
 dependencies {
-    implementation "com.android.support:appcompat-v7:27.1.1"
-    implementation "com.android.support:support-v4:27.1.1"
-    implementation "com.android.support:recyclerview-v7:27.1.1"
-    implementation "com.android.support:design:27.1.1"
-    implementation 'com.android.support:multidex:1.0.3'
+    implementation "androidx.appcompat:appcompat:1.0.0"
+    implementation "androidx.legacy:legacy-support-v4:1.0.0"
+    implementation "androidx.recyclerview:recyclerview:1.0.0"
+    implementation "com.google.android.material:material:1.0.0"
+    implementation 'androidx.multidex:multidex:2.0.0'
     implementation 'org.jmdns:jmdns:3.5.4'
     implementation 'com.squareup.okhttp3:okhttp:3.11.0'
     implementation 'com.github.heremaps:oksse:0.9.0'
@@ -145,13 +145,13 @@ dependencies {
     testImplementation 'org.powermock:powermock-module-junit4:1.7.4'
 
     // Espresso UI tests
-    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2', {
+    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-beta01', {
         exclude group: 'com.android.support', module: 'support-annotations'
     }
-    androidTestImplementation 'com.android.support.test:runner:1.0.2'
-    androidTestImplementation 'com.android.support.test:rules:1.0.2'
-    androidTestImplementation 'com.android.support.test.espresso:espresso-intents:3.0.2'
-    androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.2', {
+    androidTestImplementation 'androidx.test:runner:1.1.0-beta01'
+    androidTestImplementation 'androidx.test:rules:1.1.0-beta01'
+    androidTestImplementation 'androidx.test.espresso:espresso-intents:3.1.0-beta01'
+    androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.1.0-beta01', {
         exclude group: 'com.android.support', module: 'support-annotations'
     }
 
diff --git a/mobile/src/androidTest/java/org/openhab/habdroid/ApplicationTest.java b/mobile/src/androidTest/java/org/openhab/habdroid/ApplicationTest.java
deleted file mode 100644
index ef4e65365cfc49e760bbe21232be7ec383ac68e2..0000000000000000000000000000000000000000
--- a/mobile/src/androidTest/java/org/openhab/habdroid/ApplicationTest.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (c) 2010-2016, openHAB.org and others.
- *
- *   All rights reserved. This program and the accompanying materials
- *   are made available under the terms of the Eclipse Public License v1.0
- *   which accompanies this distribution, and is available at
- *   http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.openhab.habdroid;
-
-import android.app.Application;
-import android.test.ApplicationTestCase;
-
-/*
- * <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
- */
-public class ApplicationTest extends ApplicationTestCase<Application> {
-    public ApplicationTest() {
-        super(Application.class);
-    }
-}
\ No newline at end of file
diff --git a/mobile/src/androidTest/java/org/openhab/habdroid/FragmentStatusIdlingResource.java b/mobile/src/androidTest/java/org/openhab/habdroid/FragmentStatusIdlingResource.java
index 249132d3be6596ebbf713f8af6d0315ab1020232..dda5c96b897cd0ce4ce3e5a99993c2b7615837d2 100644
--- a/mobile/src/androidTest/java/org/openhab/habdroid/FragmentStatusIdlingResource.java
+++ b/mobile/src/androidTest/java/org/openhab/habdroid/FragmentStatusIdlingResource.java
@@ -1,9 +1,9 @@
 package org.openhab.habdroid;
 
-import android.support.annotation.NonNull;
-import android.support.test.espresso.IdlingResource;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.test.espresso.IdlingResource;
 
 import org.openhab.habdroid.ui.WidgetListFragment;
 import org.openhab.habdroid.ui.activity.ContentController;
diff --git a/mobile/src/androidTest/java/org/openhab/habdroid/ProgressbarAwareTest.java b/mobile/src/androidTest/java/org/openhab/habdroid/ProgressbarAwareTest.java
index 6fb0d1308dcd75b3e351f15906d1b0088abd93b2..e7ec20bc569eb34c34c96f02ea395da88e43c1c9 100644
--- a/mobile/src/androidTest/java/org/openhab/habdroid/ProgressbarAwareTest.java
+++ b/mobile/src/androidTest/java/org/openhab/habdroid/ProgressbarAwareTest.java
@@ -1,9 +1,9 @@
 package org.openhab.habdroid;
 
-import android.support.test.espresso.IdlingRegistry;
-import android.support.test.espresso.IdlingResource;
-import android.support.test.espresso.intent.rule.IntentsTestRule;
 import android.view.View;
+import androidx.test.espresso.IdlingRegistry;
+import androidx.test.espresso.IdlingResource;
+import androidx.test.espresso.intent.rule.IntentsTestRule;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/mobile/src/androidTest/java/org/openhab/habdroid/ProgressbarIdlingResource.java b/mobile/src/androidTest/java/org/openhab/habdroid/ProgressbarIdlingResource.java
index 1e8a88745e52f9f889230a35a196a7037a34206e..8bdab47375d8a6c039555677c65a5dfb154e54d5 100644
--- a/mobile/src/androidTest/java/org/openhab/habdroid/ProgressbarIdlingResource.java
+++ b/mobile/src/androidTest/java/org/openhab/habdroid/ProgressbarIdlingResource.java
@@ -1,8 +1,8 @@
 package org.openhab.habdroid;
 
-import android.support.annotation.NonNull;
-import android.support.test.espresso.IdlingResource;
 import android.view.View;
+import androidx.annotation.NonNull;
+import androidx.test.espresso.IdlingResource;
 
 public class ProgressbarIdlingResource implements IdlingResource {
     private String mName;
diff --git a/mobile/src/androidTest/java/org/openhab/habdroid/TestWithIntro.java b/mobile/src/androidTest/java/org/openhab/habdroid/TestWithIntro.java
index 30a7103e7094fa4132dd832d4c82ddd329f1038b..bd67e10dd89dd8763b0854d48001d789bbe65318 100644
--- a/mobile/src/androidTest/java/org/openhab/habdroid/TestWithIntro.java
+++ b/mobile/src/androidTest/java/org/openhab/habdroid/TestWithIntro.java
@@ -1,7 +1,7 @@
 package org.openhab.habdroid;
 
 import android.preference.PreferenceManager;
-import android.support.test.InstrumentationRegistry;
+import androidx.test.InstrumentationRegistry;
 
 import org.openhab.habdroid.util.Constants;
 
diff --git a/mobile/src/androidTest/java/org/openhab/habdroid/TestWithoutIntro.java b/mobile/src/androidTest/java/org/openhab/habdroid/TestWithoutIntro.java
index 6d9abccf81e61d7faf79c6450e3a90ddced6a50d..ef7748b1e29f063101cb96f86f740493e4aead3b 100644
--- a/mobile/src/androidTest/java/org/openhab/habdroid/TestWithoutIntro.java
+++ b/mobile/src/androidTest/java/org/openhab/habdroid/TestWithoutIntro.java
@@ -2,7 +2,7 @@ package org.openhab.habdroid;
 
 import android.content.SharedPreferences;
 import android.preference.PreferenceManager;
-import android.support.test.InstrumentationRegistry;
+import androidx.test.InstrumentationRegistry;
 
 import org.junit.Before;
 import org.openhab.habdroid.util.Constants;
diff --git a/mobile/src/androidTest/java/org/openhab/habdroid/screengrab/ScreengrabTest.java b/mobile/src/androidTest/java/org/openhab/habdroid/screengrab/ScreengrabTest.java
index 002b944515532941ce8eef3d84a007445f420b38..e94853d472624ddd09fa3416cee6e380b61b33db 100644
--- a/mobile/src/androidTest/java/org/openhab/habdroid/screengrab/ScreengrabTest.java
+++ b/mobile/src/androidTest/java/org/openhab/habdroid/screengrab/ScreengrabTest.java
@@ -1,22 +1,21 @@
 package org.openhab.habdroid.screengrab;
 
-import android.support.test.espresso.ViewInteraction;
-import android.support.test.espresso.contrib.RecyclerViewActions;
-import android.support.test.runner.AndroidJUnit4;
-import android.test.suitebuilder.annotation.LargeTest;
+import androidx.test.espresso.ViewInteraction;
+import androidx.test.espresso.contrib.RecyclerViewActions;
+import androidx.test.filters.LargeTest;
+import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.ClassRule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.TestWithoutIntro;
-
 import tools.fastlane.screengrab.locale.LocaleTestRule;
 
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.Espresso.pressBack;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.Espresso.pressBack;
+import static androidx.test.espresso.action.ViewActions.click;
+import static androidx.test.espresso.matcher.ViewMatchers.withId;
 import static tools.fastlane.screengrab.Screengrab.screenshot;
 
 @LargeTest
diff --git a/mobile/src/androidTest/java/org/openhab/habdroid/ui/BasicWidgetTest.java b/mobile/src/androidTest/java/org/openhab/habdroid/ui/BasicWidgetTest.java
index 1d3086c65209f006ccdac8dd47efebf6bdb29025..c3e6a50e71b49d1167597181f963e143874ef979 100644
--- a/mobile/src/androidTest/java/org/openhab/habdroid/ui/BasicWidgetTest.java
+++ b/mobile/src/androidTest/java/org/openhab/habdroid/ui/BasicWidgetTest.java
@@ -1,16 +1,15 @@
 package org.openhab.habdroid.ui;
 
-import android.support.annotation.IdRes;
-import android.support.test.espresso.DataInteraction;
-import android.support.test.espresso.UiController;
-import android.support.test.espresso.ViewAction;
-import android.support.test.espresso.ViewInteraction;
-import android.support.test.espresso.contrib.RecyclerViewActions;
-import android.support.test.espresso.matcher.BoundedMatcher;
-import android.support.test.runner.AndroidJUnit4;
-import android.support.v7.widget.RecyclerView;
-import android.test.suitebuilder.annotation.LargeTest;
 import android.view.View;
+import androidx.annotation.IdRes;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.test.espresso.DataInteraction;
+import androidx.test.espresso.UiController;
+import androidx.test.espresso.ViewAction;
+import androidx.test.espresso.ViewInteraction;
+import androidx.test.espresso.matcher.BoundedMatcher;
+import androidx.test.filters.LargeTest;
+import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.Description;
 import org.hamcrest.Matcher;
@@ -20,16 +19,16 @@ import org.openhab.habdroid.BuildConfig;
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.TestWithoutIntro;
 
-import static android.support.test.espresso.Espresso.onData;
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.contrib.RecyclerViewActions.actionOnItemAtPosition;
-import static android.support.test.espresso.contrib.RecyclerViewActions.scrollToPosition;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.withClassName;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
+import static androidx.test.espresso.Espresso.onData;
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.action.ViewActions.click;
+import static androidx.test.espresso.assertion.ViewAssertions.matches;
+import static androidx.test.espresso.contrib.RecyclerViewActions.actionOnItemAtPosition;
+import static androidx.test.espresso.contrib.RecyclerViewActions.scrollToPosition;
+import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.withClassName;
+import static androidx.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.espresso.matcher.ViewMatchers.withText;
 import static org.hamcrest.Matchers.anything;
 import static org.hamcrest.Matchers.is;
 
diff --git a/mobile/src/androidTest/java/org/openhab/habdroid/ui/IntroActivityTest.java b/mobile/src/androidTest/java/org/openhab/habdroid/ui/IntroActivityTest.java
index 5c8eb5564eb7d4dda9f59252824b9aa32a312638..cbef7352daddb704f9ab9eb1bdefe8bee3eee4ad 100644
--- a/mobile/src/androidTest/java/org/openhab/habdroid/ui/IntroActivityTest.java
+++ b/mobile/src/androidTest/java/org/openhab/habdroid/ui/IntroActivityTest.java
@@ -1,25 +1,23 @@
 package org.openhab.habdroid.ui;
 
-import android.support.test.espresso.ViewInteraction;
-import android.support.test.runner.AndroidJUnit4;
-import android.test.suitebuilder.annotation.LargeTest;
+import androidx.test.espresso.ViewInteraction;
+import androidx.test.filters.LargeTest;
+import androidx.test.runner.AndroidJUnit4;
 
-import org.hamcrest.CoreMatchers;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.TestWithIntro;
 
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
-import static android.support.test.espresso.matcher.ViewMatchers.withParent;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.action.ViewActions.click;
+import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist;
+import static androidx.test.espresso.assertion.ViewAssertions.matches;
+import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.espresso.matcher.ViewMatchers.withParent;
+import static androidx.test.espresso.matcher.ViewMatchers.withText;
 import static org.hamcrest.Matchers.allOf;
-
 import static org.openhab.habdroid.TestUtils.childAtPosition;
 
 @LargeTest
diff --git a/mobile/src/androidTest/java/org/openhab/habdroid/ui/NfcTest.java b/mobile/src/androidTest/java/org/openhab/habdroid/ui/NfcTest.java
index 71fca77972afbb26e474881b6fb6c9595ad7602d..d8853fd2668aba1c70fba961ff3e3c5232d70d3e 100644
--- a/mobile/src/androidTest/java/org/openhab/habdroid/ui/NfcTest.java
+++ b/mobile/src/androidTest/java/org/openhab/habdroid/ui/NfcTest.java
@@ -1,12 +1,12 @@
 package org.openhab.habdroid.ui;
 
 import android.content.Context;
-import android.support.annotation.StringRes;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.espresso.ViewInteraction;
-import android.support.test.espresso.contrib.RecyclerViewActions;
-import android.support.test.runner.AndroidJUnit4;
-import android.test.suitebuilder.annotation.LargeTest;
+import androidx.annotation.StringRes;
+import androidx.test.InstrumentationRegistry;
+import androidx.test.espresso.ViewInteraction;
+import androidx.test.espresso.contrib.RecyclerViewActions;
+import androidx.test.filters.LargeTest;
+import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.core.IsInstanceOf;
 import org.junit.Test;
@@ -14,14 +14,14 @@ import org.junit.runner.RunWith;
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.TestWithoutIntro;
 
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.action.ViewActions.longClick;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.contrib.RecyclerViewActions.actionOnItemAtPosition;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.action.ViewActions.click;
+import static androidx.test.espresso.action.ViewActions.longClick;
+import static androidx.test.espresso.assertion.ViewAssertions.matches;
+import static androidx.test.espresso.contrib.RecyclerViewActions.actionOnItemAtPosition;
+import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.espresso.matcher.ViewMatchers.withText;
 import static org.hamcrest.Matchers.allOf;
 
 @LargeTest
diff --git a/mobile/src/androidTest/java/org/openhab/habdroid/ui/VoiceRecognitionTest.java b/mobile/src/androidTest/java/org/openhab/habdroid/ui/VoiceRecognitionTest.java
index 3e711f1b58beef3b175a5ff34f241aed110ee85d..f89257dce155c83e04e03c2a3d403e1c077ef404 100644
--- a/mobile/src/androidTest/java/org/openhab/habdroid/ui/VoiceRecognitionTest.java
+++ b/mobile/src/androidTest/java/org/openhab/habdroid/ui/VoiceRecognitionTest.java
@@ -2,9 +2,9 @@ package org.openhab.habdroid.ui;
 
 import android.content.Context;
 import android.speech.SpeechRecognizer;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.espresso.ViewInteraction;
-import android.support.test.rule.ActivityTestRule;
+import androidx.test.InstrumentationRegistry;
+import androidx.test.espresso.ViewInteraction;
+import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -12,11 +12,11 @@ import org.junit.Test;
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.TestWithoutIntro;
 
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.withContentDescription;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.assertion.ViewAssertions.matches;
+import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.withContentDescription;
+import static androidx.test.espresso.matcher.ViewMatchers.withId;
 import static org.hamcrest.CoreMatchers.allOf;
 import static org.junit.Assume.assumeTrue;
 
diff --git a/mobile/src/androidTest/java/org/openhab/habdroid/ui/WidgetAdapterTest.java b/mobile/src/androidTest/java/org/openhab/habdroid/ui/WidgetAdapterTest.java
index e68cfa574eea255c88daeb786771528b44cccc26..c6430cb67451631afe7a21d7e37a0e2a37786e44 100644
--- a/mobile/src/androidTest/java/org/openhab/habdroid/ui/WidgetAdapterTest.java
+++ b/mobile/src/androidTest/java/org/openhab/habdroid/ui/WidgetAdapterTest.java
@@ -1,8 +1,8 @@
 package org.openhab.habdroid.ui;
 
 import android.content.Context;
-import android.support.test.InstrumentationRegistry;
-import android.support.v7.view.ContextThemeWrapper;
+import androidx.appcompat.view.ContextThemeWrapper;
+import androidx.test.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.openhab.habdroid.R;
diff --git a/mobile/src/foss/java/org/openhab/habdroid/core/CloudMessagingHelper.java b/mobile/src/foss/java/org/openhab/habdroid/core/CloudMessagingHelper.java
index e8c8fb9f17415d16dd2be82c5020459dc7838c34..c0978f4accb0f9c7a51dd6b62a23a0138d853606 100644
--- a/mobile/src/foss/java/org/openhab/habdroid/core/CloudMessagingHelper.java
+++ b/mobile/src/foss/java/org/openhab/habdroid/core/CloudMessagingHelper.java
@@ -11,7 +11,7 @@ package org.openhab.habdroid.core;
 
 import android.content.Context;
 import android.content.Intent;
-import android.support.annotation.StringRes;
+import androidx.annotation.StringRes;
 
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.core.connection.CloudConnection;
diff --git a/mobile/src/full/java/org/openhab/habdroid/core/CloudMessagingHelper.java b/mobile/src/full/java/org/openhab/habdroid/core/CloudMessagingHelper.java
index a8f361df65e572790e348222dfc07350b4be9d05..c25af4d1c69f7fb410da54be7508b5f78f553db1 100644
--- a/mobile/src/full/java/org/openhab/habdroid/core/CloudMessagingHelper.java
+++ b/mobile/src/full/java/org/openhab/habdroid/core/CloudMessagingHelper.java
@@ -11,7 +11,7 @@ package org.openhab.habdroid.core;
 
 import android.content.Context;
 import android.content.Intent;
-import android.support.annotation.StringRes;
+import androidx.annotation.StringRes;
 
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.core.connection.CloudConnection;
diff --git a/mobile/src/full/java/org/openhab/habdroid/core/GcmMessageListenerService.java b/mobile/src/full/java/org/openhab/habdroid/core/GcmMessageListenerService.java
index 1db99ff8880691da1f68f9dda7e317634efb86f0..1d31a7785e0f0abdc3ad00de372ccac1c8e7c69a 100644
--- a/mobile/src/full/java/org/openhab/habdroid/core/GcmMessageListenerService.java
+++ b/mobile/src/full/java/org/openhab/habdroid/core/GcmMessageListenerService.java
@@ -23,12 +23,11 @@ import android.os.Build;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
 import android.service.notification.StatusBarNotification;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.content.ContextCompat;
 import android.text.TextUtils;
+import androidx.core.app.NotificationCompat;
+import androidx.core.content.ContextCompat;
 
 import com.google.android.gms.gcm.GcmListenerService;
-
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.core.connection.Connection;
 import org.openhab.habdroid.core.connection.ConnectionFactory;
diff --git a/mobile/src/full/java/org/openhab/habdroid/core/GcmRegistrationService.java b/mobile/src/full/java/org/openhab/habdroid/core/GcmRegistrationService.java
index 516d6fcb46b0eb7811dfe6d522878cf748c61e21..657b0d5db00ac7e08e21e35787c21a36c4be444d 100644
--- a/mobile/src/full/java/org/openhab/habdroid/core/GcmRegistrationService.java
+++ b/mobile/src/full/java/org/openhab/habdroid/core/GcmRegistrationService.java
@@ -16,13 +16,12 @@ import android.content.Intent;
 import android.os.Build;
 import android.os.Bundle;
 import android.provider.Settings;
-import android.support.annotation.NonNull;
-import android.support.v4.app.JobIntentService;
 import android.util.Log;
+import androidx.annotation.NonNull;
+import androidx.core.app.JobIntentService;
 
 import com.google.android.gms.gcm.GoogleCloudMessaging;
 import com.google.android.gms.iid.InstanceID;
-
 import org.openhab.habdroid.core.connection.CloudConnection;
 import org.openhab.habdroid.core.connection.Connection;
 import org.openhab.habdroid.core.connection.ConnectionFactory;
diff --git a/mobile/src/full/java/org/openhab/habdroid/ui/MapViewHelper.java b/mobile/src/full/java/org/openhab/habdroid/ui/MapViewHelper.java
index 33bf0d64fb56e998964a2dccdc5bd700d63b6e4d..71670038bfa787207b076ca0017132dbaedca3bd 100644
--- a/mobile/src/full/java/org/openhab/habdroid/ui/MapViewHelper.java
+++ b/mobile/src/full/java/org/openhab/habdroid/ui/MapViewHelper.java
@@ -14,7 +14,6 @@ import com.google.android.gms.maps.model.LatLng;
 import com.google.android.gms.maps.model.LatLngBounds;
 import com.google.android.gms.maps.model.Marker;
 import com.google.android.gms.maps.model.MarkerOptions;
-
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.core.connection.Connection;
 import org.openhab.habdroid.model.Item;
diff --git a/mobile/src/main/java/de/duenndns/ssl/MemorizingActivity.java b/mobile/src/main/java/de/duenndns/ssl/MemorizingActivity.java
index 7de0d0a6d2a13a62ef5f2583b131d4c763d0e194..36194023f39401f3fee0f57e697737b6d91d691a 100644
--- a/mobile/src/main/java/de/duenndns/ssl/MemorizingActivity.java
+++ b/mobile/src/main/java/de/duenndns/ssl/MemorizingActivity.java
@@ -24,23 +24,24 @@
 package de.duenndns.ssl;
 
 
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
 import android.app.Activity;
 import android.app.ActivityManager;
 import android.content.DialogInterface;
-import android.content.DialogInterface.*;
+import android.content.DialogInterface.OnCancelListener;
+import android.content.DialogInterface.OnClickListener;
 import android.content.Intent;
 import android.os.Build;
 import android.os.Bundle;
-import android.support.v7.app.AlertDialog;
 import android.util.TypedValue;
 import android.view.ContextThemeWrapper;
+import androidx.appcompat.app.AlertDialog;
 
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.util.Util;
 
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
 public class MemorizingActivity extends Activity
 		implements OnClickListener,OnCancelListener {
 
diff --git a/mobile/src/main/java/de/duenndns/ssl/MemorizingTrustManager.java b/mobile/src/main/java/de/duenndns/ssl/MemorizingTrustManager.java
index 388e0a205285d0948440e510d01fafa5bfeb894f..ea24ac1fc61c0ab2f224b391bc5b5be30627a42b 100644
--- a/mobile/src/main/java/de/duenndns/ssl/MemorizingTrustManager.java
+++ b/mobile/src/main/java/de/duenndns/ssl/MemorizingTrustManager.java
@@ -31,16 +31,16 @@ import android.app.Activity;
 import android.app.Application;
 import android.app.Notification;
 import android.app.NotificationManager;
-import android.app.Service;
 import android.app.PendingIntent;
+import android.app.Service;
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
+import android.os.Build;
+import android.os.Handler;
 import android.text.SpannableStringBuilder;
 import android.text.style.RelativeSizeSpan;
 import android.util.SparseArray;
-import android.os.Build;
-import android.os.Handler;
 
 import org.openhab.habdroid.R;
 
@@ -49,18 +49,23 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.security.cert.*;
 import java.security.KeyStore;
 import java.security.KeyStoreException;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import java.security.cert.CertPathValidatorException;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateException;
+import java.security.cert.CertificateExpiredException;
+import java.security.cert.CertificateParsingException;
+import java.security.cert.X509Certificate;
 import java.text.SimpleDateFormat;
 import java.util.Collection;
 import java.util.Enumeration;
 import java.util.List;
 import java.util.Locale;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 import javax.net.ssl.HostnameVerifier;
 import javax.net.ssl.SSLSession;
diff --git a/mobile/src/main/java/org/openhab/habdroid/core/HabDroidApplication.java b/mobile/src/main/java/org/openhab/habdroid/core/HabDroidApplication.java
index 784dc0a243db5dfb37b86c847635a6aaaaad89b0..b40c8bc216df5bfc2f7aad07d4ec4504976d6bc0 100644
--- a/mobile/src/main/java/org/openhab/habdroid/core/HabDroidApplication.java
+++ b/mobile/src/main/java/org/openhab/habdroid/core/HabDroidApplication.java
@@ -1,6 +1,6 @@
 package org.openhab.habdroid.core;
 
-import android.support.multidex.MultiDexApplication;
+import androidx.multidex.MultiDexApplication;
 
 import org.openhab.habdroid.core.connection.ConnectionFactory;
 
diff --git a/mobile/src/main/java/org/openhab/habdroid/core/VoiceService.java b/mobile/src/main/java/org/openhab/habdroid/core/VoiceService.java
index 7f48b82914fc3c86478b74425e36d5616061e3b2..952d0c388238306c39bdb143f03e0db0b574c3c7 100644
--- a/mobile/src/main/java/org/openhab/habdroid/core/VoiceService.java
+++ b/mobile/src/main/java/org/openhab/habdroid/core/VoiceService.java
@@ -14,13 +14,12 @@ import android.content.Intent;
 import android.os.Handler;
 import android.os.Looper;
 import android.speech.RecognizerIntent;
-import android.support.annotation.Nullable;
-import android.support.v4.content.ContextCompat;
 import android.util.Log;
 import android.widget.Toast;
+import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
 
 import es.dmoral.toasty.Toasty;
-
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.core.connection.Connection;
 import org.openhab.habdroid.core.connection.ConnectionFactory;
diff --git a/mobile/src/main/java/org/openhab/habdroid/core/connection/AbstractConnection.java b/mobile/src/main/java/org/openhab/habdroid/core/connection/AbstractConnection.java
index 612df0d1a16d67663d4919dff4e3197ff30b8e75..e64d166a58b3255f9fc5236ede276569481eaf07 100644
--- a/mobile/src/main/java/org/openhab/habdroid/core/connection/AbstractConnection.java
+++ b/mobile/src/main/java/org/openhab/habdroid/core/connection/AbstractConnection.java
@@ -1,10 +1,9 @@
 package org.openhab.habdroid.core.connection;
 
-import android.support.annotation.NonNull;
 import android.util.Log;
+import androidx.annotation.NonNull;
 
 import okhttp3.OkHttpClient;
-
 import org.openhab.habdroid.util.AsyncHttpClient;
 import org.openhab.habdroid.util.SyncHttpClient;
 
diff --git a/mobile/src/main/java/org/openhab/habdroid/core/connection/CloudConnection.java b/mobile/src/main/java/org/openhab/habdroid/core/connection/CloudConnection.java
index dae1890e971dc0160153f6fdd71f8d8559752eda..641b5379f02fadd7f27457cdb31998f40fce8e57 100644
--- a/mobile/src/main/java/org/openhab/habdroid/core/connection/CloudConnection.java
+++ b/mobile/src/main/java/org/openhab/habdroid/core/connection/CloudConnection.java
@@ -1,7 +1,7 @@
 package org.openhab.habdroid.core.connection;
 
-import android.support.annotation.NonNull;
 import android.util.Log;
+import androidx.annotation.NonNull;
 
 import org.json.JSONException;
 import org.json.JSONObject;
diff --git a/mobile/src/main/java/org/openhab/habdroid/core/connection/Connection.java b/mobile/src/main/java/org/openhab/habdroid/core/connection/Connection.java
index 7fbe65562737204372b1b81bc59f981bc7a01c94..7dbf530e4f325d3ee645d4f8b264e25856939b34 100644
--- a/mobile/src/main/java/org/openhab/habdroid/core/connection/Connection.java
+++ b/mobile/src/main/java/org/openhab/habdroid/core/connection/Connection.java
@@ -1,6 +1,6 @@
 package org.openhab.habdroid.core.connection;
 
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 
 import org.openhab.habdroid.util.AsyncHttpClient;
 import org.openhab.habdroid.util.SyncHttpClient;
diff --git a/mobile/src/main/java/org/openhab/habdroid/core/connection/ConnectionFactory.java b/mobile/src/main/java/org/openhab/habdroid/core/connection/ConnectionFactory.java
index 4cf8288357d40af5619dba44615f73f64573fb2f..74b060a07af365dedd05df8c5461772680aa6e33 100644
--- a/mobile/src/main/java/org/openhab/habdroid/core/connection/ConnectionFactory.java
+++ b/mobile/src/main/java/org/openhab/habdroid/core/connection/ConnectionFactory.java
@@ -15,14 +15,13 @@ import android.os.Message;
 import android.preference.PreferenceManager;
 import android.security.KeyChain;
 import android.security.KeyChainException;
-import android.support.annotation.VisibleForTesting;
-import android.support.v4.util.Pair;
 import android.util.Log;
+import androidx.annotation.VisibleForTesting;
+import androidx.core.util.Pair;
 
 import de.duenndns.ssl.MemorizingTrustManager;
 import okhttp3.OkHttpClient;
 import okhttp3.internal.tls.OkHostnameVerifier;
-
 import org.openhab.habdroid.core.CloudMessagingHelper;
 import org.openhab.habdroid.core.connection.exception.ConnectionException;
 import org.openhab.habdroid.core.connection.exception.NetworkNotAvailableException;
diff --git a/mobile/src/main/java/org/openhab/habdroid/core/connection/DefaultConnection.java b/mobile/src/main/java/org/openhab/habdroid/core/connection/DefaultConnection.java
index 0e5aeb84ead13090f0ef1fe247e445f11313747f..297c6f55be74d05c0c1c1115d2aa3040f9843061 100644
--- a/mobile/src/main/java/org/openhab/habdroid/core/connection/DefaultConnection.java
+++ b/mobile/src/main/java/org/openhab/habdroid/core/connection/DefaultConnection.java
@@ -1,6 +1,6 @@
 package org.openhab.habdroid.core.connection;
 
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
 
 import okhttp3.OkHttpClient;
 
diff --git a/mobile/src/main/java/org/openhab/habdroid/model/CloudNotification.java b/mobile/src/main/java/org/openhab/habdroid/model/CloudNotification.java
index c0d0fb94d7b61030ed537acdfb9bedc3260ce8d7..767cdae8576c8cc545f27c4035d0bb3da89f884a 100644
--- a/mobile/src/main/java/org/openhab/habdroid/model/CloudNotification.java
+++ b/mobile/src/main/java/org/openhab/habdroid/model/CloudNotification.java
@@ -9,10 +9,9 @@
 
 package org.openhab.habdroid.model;
 
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 
 import com.google.auto.value.AutoValue;
-
 import org.json.JSONException;
 import org.json.JSONObject;
 
diff --git a/mobile/src/main/java/org/openhab/habdroid/model/Item.java b/mobile/src/main/java/org/openhab/habdroid/model/Item.java
index 44224c8a2ee57d190df3d7b117397dfe98be9500..2481e4919273616ff06d26125e7ce7012b88c5e9 100644
--- a/mobile/src/main/java/org/openhab/habdroid/model/Item.java
+++ b/mobile/src/main/java/org/openhab/habdroid/model/Item.java
@@ -10,10 +10,9 @@
 package org.openhab.habdroid.model;
 
 import android.os.Parcelable;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 
 import com.google.auto.value.AutoValue;
-
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
diff --git a/mobile/src/main/java/org/openhab/habdroid/model/LinkedPage.java b/mobile/src/main/java/org/openhab/habdroid/model/LinkedPage.java
index 3743fbe547a5b323ff75ce8e3cf78b8ac03fcb27..ecc0bd3ebc50a42f58176a47087d7908a03bf2ab 100644
--- a/mobile/src/main/java/org/openhab/habdroid/model/LinkedPage.java
+++ b/mobile/src/main/java/org/openhab/habdroid/model/LinkedPage.java
@@ -12,7 +12,6 @@ package org.openhab.habdroid.model;
 import android.os.Parcelable;
 
 import com.google.auto.value.AutoValue;
-
 import org.json.JSONObject;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
diff --git a/mobile/src/main/java/org/openhab/habdroid/model/ServerProperties.java b/mobile/src/main/java/org/openhab/habdroid/model/ServerProperties.java
index 52cd83164115f1f29474f701d06af18e1b03fb6d..480ce49c8313dee07b62875f00997ebf7c2e2d73 100644
--- a/mobile/src/main/java/org/openhab/habdroid/model/ServerProperties.java
+++ b/mobile/src/main/java/org/openhab/habdroid/model/ServerProperties.java
@@ -4,11 +4,9 @@ import android.os.Parcelable;
 import android.util.Log;
 
 import com.google.auto.value.AutoValue;
-
 import okhttp3.Call;
 import okhttp3.Headers;
 import okhttp3.Request;
-
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
diff --git a/mobile/src/main/java/org/openhab/habdroid/model/Sitemap.java b/mobile/src/main/java/org/openhab/habdroid/model/Sitemap.java
index 4efe841ef69d114034a27127441d53921a16e6c1..b78f02a05d9b03df5563b94049f6d16de1e44d2d 100644
--- a/mobile/src/main/java/org/openhab/habdroid/model/Sitemap.java
+++ b/mobile/src/main/java/org/openhab/habdroid/model/Sitemap.java
@@ -10,10 +10,9 @@
 package org.openhab.habdroid.model;
 
 import android.os.Parcelable;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 
 import com.google.auto.value.AutoValue;
-
 import org.json.JSONObject;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
diff --git a/mobile/src/main/java/org/openhab/habdroid/model/Widget.java b/mobile/src/main/java/org/openhab/habdroid/model/Widget.java
index 6b8cba8dd45c0af2b0ff8cdb4206f2e6f07bbfb4..6c485ee66623a99bd221837fe391c5ef28fc68c4 100644
--- a/mobile/src/main/java/org/openhab/habdroid/model/Widget.java
+++ b/mobile/src/main/java/org/openhab/habdroid/model/Widget.java
@@ -11,10 +11,9 @@ package org.openhab.habdroid.model;
 
 import android.graphics.Color;
 import android.os.Parcelable;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 
 import com.google.auto.value.AutoValue;
-
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/AboutActivity.java b/mobile/src/main/java/org/openhab/habdroid/ui/AboutActivity.java
index 522fe50f9f9cec50fd64fe7a585d412253e381b7..b721921c91997d16e3b6756e592482f6c07d3dda 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/AboutActivity.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/AboutActivity.java
@@ -4,18 +4,18 @@ import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
 import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.annotation.StringRes;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
+import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
 
 import com.danielstone.materialaboutlibrary.MaterialAboutFragment;
 import com.danielstone.materialaboutlibrary.items.MaterialAboutActionItem;
@@ -24,7 +24,6 @@ import com.danielstone.materialaboutlibrary.items.MaterialAboutTitleItem;
 import com.danielstone.materialaboutlibrary.model.MaterialAboutCard;
 import com.danielstone.materialaboutlibrary.model.MaterialAboutList;
 import com.mikepenz.aboutlibraries.LibsBuilder;
-
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.openhab.habdroid.BuildConfig;
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/CloudNotificationAdapter.java b/mobile/src/main/java/org/openhab/habdroid/ui/CloudNotificationAdapter.java
index 02321cd7fa38f966bb426f211c9aefb22ef887d4..6b73403305714aec6441c7bf38ea75cb16ef80d2 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/CloudNotificationAdapter.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/CloudNotificationAdapter.java
@@ -11,15 +11,15 @@ package org.openhab.habdroid.ui;
 
 import android.content.Context;
 import android.net.Uri;
-import android.support.annotation.NonNull;
-import android.support.v4.graphics.drawable.DrawableCompat;
-import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.text.format.DateUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.TextView;
+import androidx.annotation.NonNull;
+import androidx.core.graphics.drawable.DrawableCompat;
+import androidx.recyclerview.widget.RecyclerView;
 
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.core.connection.Connection;
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/CloudNotificationListFragment.java b/mobile/src/main/java/org/openhab/habdroid/ui/CloudNotificationListFragment.java
index f0b12ef61f59e99d585c9f7c10685484350ec2bc..8e30ffdc289c5fcd1cff815af939afa313c90a93 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/CloudNotificationListFragment.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/CloudNotificationListFragment.java
@@ -10,12 +10,6 @@
 package org.openhab.habdroid.ui;
 
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -23,11 +17,16 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.TextView;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
 
 import okhttp3.Call;
 import okhttp3.Headers;
 import okhttp3.Request;
-
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/IntroActivity.java b/mobile/src/main/java/org/openhab/habdroid/ui/IntroActivity.java
index eff2a7216fa40cb69fedcbce6794b77e0ff5a0b7..d97325196d97386f46095edf2dba38fac86bc812 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/IntroActivity.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/IntroActivity.java
@@ -1,16 +1,15 @@
 package org.openhab.habdroid.ui;
 
 import android.os.Bundle;
-import android.support.annotation.ColorInt;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.Nullable;
-import android.support.annotation.StringRes;
-import android.support.v4.app.Fragment;
-import android.support.v4.content.ContextCompat;
+import androidx.annotation.ColorInt;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
+import androidx.core.content.ContextCompat;
+import androidx.fragment.app.Fragment;
 
 import com.github.paolorotolo.appintro.AppIntro;
 import com.github.paolorotolo.appintro.AppIntroFragment;
-
 import org.openhab.habdroid.R;
 
 public class IntroActivity extends AppIntro {
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/MainActivity.java b/mobile/src/main/java/org/openhab/habdroid/ui/MainActivity.java
index 2f9ae6d82a49e867165b2294cf603d7dfc5ddbd2..702c55897d2f5c18f2132264323631fd90bcf8b8 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/MainActivity.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/MainActivity.java
@@ -33,19 +33,6 @@ import android.os.Bundle;
 import android.preference.PreferenceManager;
 import android.speech.RecognizerIntent;
 import android.speech.SpeechRecognizer;
-import android.support.annotation.ColorInt;
-import android.support.annotation.Nullable;
-import android.support.annotation.StringRes;
-import android.support.design.widget.NavigationView;
-import android.support.design.widget.Snackbar;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.graphics.drawable.DrawableCompat;
-import android.support.v4.view.GravityCompat;
-import android.support.v4.widget.DrawerLayout;
-import android.support.v7.app.ActionBarDrawerToggle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.Toolbar;
 import android.text.SpannableStringBuilder;
 import android.text.TextUtils;
 import android.text.style.RelativeSizeSpan;
@@ -61,11 +48,23 @@ import android.view.ViewStub;
 import android.view.WindowManager;
 import android.widget.ProgressBar;
 import android.widget.Toast;
-
+import androidx.annotation.ColorInt;
+import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
+import androidx.appcompat.app.ActionBarDrawerToggle;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.core.content.ContextCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
+import androidx.core.view.GravityCompat;
+import androidx.drawerlayout.widget.DrawerLayout;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.google.android.material.navigation.NavigationView;
+import com.google.android.material.snackbar.Snackbar;
 import es.dmoral.toasty.Toasty;
 import okhttp3.Headers;
 import okhttp3.Request;
-
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.core.CloudMessagingHelper;
 import org.openhab.habdroid.core.OnUpdateBroadcastReceiver;
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/PreferencesActivity.java b/mobile/src/main/java/org/openhab/habdroid/ui/PreferencesActivity.java
index eb737fa0421517bfea49879b46a4b8d16ff9220e..91b0d124a7c9d280f4e77fc71528d2678e5483cd 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/PreferencesActivity.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/PreferencesActivity.java
@@ -22,18 +22,18 @@ import android.preference.Preference;
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceGroup;
 import android.preference.PreferenceScreen;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.Nullable;
-import android.support.annotation.StringRes;
-import android.support.annotation.VisibleForTesting;
-import android.support.v4.app.NavUtils;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.graphics.drawable.DrawableCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.MenuItem;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
+import androidx.annotation.VisibleForTesting;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.core.app.NavUtils;
+import androidx.core.content.ContextCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
 
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.core.CloudMessagingHelper;
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/WidgetAdapter.java b/mobile/src/main/java/org/openhab/habdroid/ui/WidgetAdapter.java
index dae4c587b69e4d040c522f14c96f4a3c0ab644c9..e8a36b6a73db93b1f0949d85d2ee73d14a0d6918 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/WidgetAdapter.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/WidgetAdapter.java
@@ -22,13 +22,6 @@ import android.net.Uri;
 import android.os.Handler;
 import android.os.Message;
 import android.preference.PreferenceManager;
-import android.support.annotation.IdRes;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.VisibleForTesting;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.SwitchCompat;
 import android.text.TextUtils;
 import android.util.Base64;
 import android.util.DisplayMetrics;
@@ -48,13 +41,18 @@ import android.widget.RadioGroup;
 import android.widget.SeekBar;
 import android.widget.TextView;
 import android.widget.VideoView;
+import androidx.annotation.IdRes;
+import androidx.annotation.LayoutRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.widget.SwitchCompat;
+import androidx.recyclerview.widget.RecyclerView;
 
 import com.larswerkman.holocolorpicker.ColorPicker;
 import com.larswerkman.holocolorpicker.SaturationBar;
 import com.larswerkman.holocolorpicker.ValueBar;
-
 import okhttp3.HttpUrl;
-
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.core.connection.Connection;
 import org.openhab.habdroid.model.Item;
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/WidgetListFragment.java b/mobile/src/main/java/org/openhab/habdroid/ui/WidgetListFragment.java
index f45ab43cc549c704319563f27afb745a99ef4555..e95946d5beb99c39518caccb3228077f65e239ca 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/WidgetListFragment.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/WidgetListFragment.java
@@ -12,16 +12,16 @@ package org.openhab.habdroid.ui;
 import android.app.AlertDialog;
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.VisibleForTesting;
-import android.support.v4.app.Fragment;
-import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
 
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.model.Item;
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/WriteTagActivity.java b/mobile/src/main/java/org/openhab/habdroid/ui/WriteTagActivity.java
index 21a403dd292d20384e0a75cfad270d17ce85d8ca..8ae20a84917a6e79479c0ef7e6fca13ed58ff419 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/WriteTagActivity.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/WriteTagActivity.java
@@ -26,12 +26,6 @@ import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.provider.Settings;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -40,6 +34,12 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.TextView;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.core.content.ContextCompat;
+import androidx.fragment.app.Fragment;
 
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.util.Util;
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/activity/ContentController.java b/mobile/src/main/java/org/openhab/habdroid/ui/activity/ContentController.java
index bd3c9dbce0cb8b4697fea9e1a3ecda7d7e1d2a8c..470cfb279769fa1a27edbf41fbb79fb5f4674e44 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/activity/ContentController.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/activity/ContentController.java
@@ -16,16 +16,6 @@ import android.graphics.PorterDuff;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
-import android.support.annotation.AnimRes;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.annotation.StringRes;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentTransaction;
-import android.support.v4.app.TaskStackBuilder;
-import android.support.v4.content.ContextCompat;
 import android.text.TextUtils;
 import android.util.Log;
 import android.util.Pair;
@@ -36,6 +26,16 @@ import android.view.ViewStub;
 import android.widget.Button;
 import android.widget.ImageView;
 import android.widget.TextView;
+import androidx.annotation.AnimRes;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
+import androidx.core.app.TaskStackBuilder;
+import androidx.core.content.ContextCompat;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
 
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.core.connection.Connection;
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/activity/ContentControllerOnePane.java b/mobile/src/main/java/org/openhab/habdroid/ui/activity/ContentControllerOnePane.java
index 1121c0ab49882bd0ea9e088c44a310d668a03360..a62715bce587d553e0a2fa712bc8b0499c4f12b7 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/activity/ContentControllerOnePane.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/activity/ContentControllerOnePane.java
@@ -9,9 +9,9 @@
 
 package org.openhab.habdroid.ui.activity;
 
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentTransaction;
 import android.view.ViewStub;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentTransaction;
 
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.ui.MainActivity;
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/activity/ContentControllerTwoPane.java b/mobile/src/main/java/org/openhab/habdroid/ui/activity/ContentControllerTwoPane.java
index 233fabc82db359e4e22ace35af42ea4d383d2b51..f3eab95ec1bbbd00fd2e3dd6d246d228572d9b90 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/activity/ContentControllerTwoPane.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/activity/ContentControllerTwoPane.java
@@ -10,11 +10,11 @@
 package org.openhab.habdroid.ui.activity;
 
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentTransaction;
 import android.util.Pair;
 import android.view.View;
 import android.view.ViewStub;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentTransaction;
 
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.model.LinkedPage;
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/activity/PageConnectionHolderFragment.java b/mobile/src/main/java/org/openhab/habdroid/ui/activity/PageConnectionHolderFragment.java
index b7b4a1976bba55c708513ee8b4e87cafc3475427..855555e899bfc21d4e6e316e3a01e4bcf2153a7d 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/activity/PageConnectionHolderFragment.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/activity/PageConnectionHolderFragment.java
@@ -4,19 +4,17 @@ import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
 import android.text.TextUtils;
 import android.util.Log;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
 
 import com.here.oksse.ServerSentEvent;
-
 import okhttp3.Call;
 import okhttp3.Headers;
 import okhttp3.HttpUrl;
 import okhttp3.Request;
 import okhttp3.Response;
-
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.openhab.habdroid.core.connection.Connection;
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/widget/DividerItemDecoration.java b/mobile/src/main/java/org/openhab/habdroid/ui/widget/DividerItemDecoration.java
index 99c4a8624fee5e419a09baf7b08a85af5bdeb32e..589dcc59ae6a57b006f00bd658b44f576b90b834 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/widget/DividerItemDecoration.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/widget/DividerItemDecoration.java
@@ -5,8 +5,8 @@ import android.content.res.TypedArray;
 import android.graphics.Canvas;
 import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
-import android.support.v7.widget.RecyclerView;
 import android.view.View;
+import androidx.recyclerview.widget.RecyclerView;
 
 public class DividerItemDecoration extends RecyclerView.ItemDecoration {
     private final Drawable mDivider;
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/widget/ExtendedSpinner.java b/mobile/src/main/java/org/openhab/habdroid/ui/widget/ExtendedSpinner.java
index a9623e76ac53f95a6f369d59df0bcf6659c28315..4b1e10580bd2bee12383a191f6341bf517a76da2 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/widget/ExtendedSpinner.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/widget/ExtendedSpinner.java
@@ -1,8 +1,8 @@
 package org.openhab.habdroid.ui.widget;
 
 import android.content.Context;
-import android.support.v7.widget.AppCompatSpinner;
 import android.util.AttributeSet;
+import androidx.appcompat.widget.AppCompatSpinner;
 
 /*
  * An extended version of the Spinner class, which allows getting
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/widget/SegmentedControlButton.java b/mobile/src/main/java/org/openhab/habdroid/ui/widget/SegmentedControlButton.java
index 95142c6c9c7460885bb07ebd25c08a9399ab346f..d721dbb2ea27641c281fd0ba2b713715db2b4f5d 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/widget/SegmentedControlButton.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/widget/SegmentedControlButton.java
@@ -22,9 +22,9 @@ import android.graphics.Canvas;
 import android.graphics.Paint;
 import android.graphics.Paint.Style;
 import android.graphics.drawable.Drawable;
-import android.support.v7.content.res.AppCompatResources;
-import android.support.v7.widget.AppCompatRadioButton;
 import android.util.AttributeSet;
+import androidx.appcompat.content.res.AppCompatResources;
+import androidx.appcompat.widget.AppCompatRadioButton;
 
 import org.openhab.habdroid.R;
 
diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/widget/WidgetImageView.java b/mobile/src/main/java/org/openhab/habdroid/ui/widget/WidgetImageView.java
index f39498caf66a45a0e5689ffa52b0129375c92274..683c7dcb593c790f7008ae256d40c72a3136671d 100644
--- a/mobile/src/main/java/org/openhab/habdroid/ui/widget/WidgetImageView.java
+++ b/mobile/src/main/java/org/openhab/habdroid/ui/widget/WidgetImageView.java
@@ -16,16 +16,15 @@ import android.graphics.drawable.Drawable;
 import android.os.Handler;
 import android.os.Message;
 import android.os.SystemClock;
-import android.support.annotation.Nullable;
-import android.support.v7.widget.AppCompatImageView;
 import android.util.AttributeSet;
 import android.util.Log;
+import androidx.annotation.Nullable;
+import androidx.appcompat.widget.AppCompatImageView;
 
 import okhttp3.Call;
 import okhttp3.Headers;
 import okhttp3.HttpUrl;
 import okhttp3.Request;
-
 import org.openhab.habdroid.R;
 import org.openhab.habdroid.core.connection.Connection;
 import org.openhab.habdroid.util.AsyncHttpClient;
diff --git a/mobile/src/main/java/org/openhab/habdroid/util/AsyncHttpClient.java b/mobile/src/main/java/org/openhab/habdroid/util/AsyncHttpClient.java
index e6a665685c878679cd08b24de4bcc3b5f4c313aa..a0815183cbb70cbbe9bc5e5a769655472f9a2616 100644
--- a/mobile/src/main/java/org/openhab/habdroid/util/AsyncHttpClient.java
+++ b/mobile/src/main/java/org/openhab/habdroid/util/AsyncHttpClient.java
@@ -17,11 +17,10 @@ import android.graphics.PorterDuff;
 import android.graphics.RectF;
 import android.os.Handler;
 import android.os.Looper;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
 
 import com.caverock.androidsvg.SVG;
 import com.caverock.androidsvg.SVGParseException;
-
 import okhttp3.Call;
 import okhttp3.Callback;
 import okhttp3.Headers;
diff --git a/mobile/src/main/java/org/openhab/habdroid/util/HttpClient.java b/mobile/src/main/java/org/openhab/habdroid/util/HttpClient.java
index afb62e3c7f95403fc597122bed1076c5569882d2..82e85629d9abdd3676493b1c59cde711df767527 100644
--- a/mobile/src/main/java/org/openhab/habdroid/util/HttpClient.java
+++ b/mobile/src/main/java/org/openhab/habdroid/util/HttpClient.java
@@ -9,10 +9,9 @@
 
 package org.openhab.habdroid.util;
 
-import android.support.annotation.VisibleForTesting;
+import androidx.annotation.VisibleForTesting;
 
 import com.here.oksse.OkSse;
-
 import okhttp3.CacheControl;
 import okhttp3.Call;
 import okhttp3.Credentials;
diff --git a/mobile/src/main/java/org/openhab/habdroid/util/MjpegStreamer.java b/mobile/src/main/java/org/openhab/habdroid/util/MjpegStreamer.java
index 8a36902b9f8a67f82ea5e556db4a87ba2b72993b..c0c31af2079c5beeaa24ab19480a7c66a78a49dd 100644
--- a/mobile/src/main/java/org/openhab/habdroid/util/MjpegStreamer.java
+++ b/mobile/src/main/java/org/openhab/habdroid/util/MjpegStreamer.java
@@ -12,9 +12,9 @@ package org.openhab.habdroid.util;
 import android.graphics.Bitmap;
 import android.os.AsyncTask;
 import android.os.Handler;
-import android.support.annotation.NonNull;
 import android.util.Log;
 import android.widget.ImageView;
+import androidx.annotation.NonNull;
 
 import org.openhab.habdroid.core.connection.Connection;
 
diff --git a/mobile/src/main/java/org/openhab/habdroid/util/Util.java b/mobile/src/main/java/org/openhab/habdroid/util/Util.java
index c9fd628d72a923fa059f0ba31b04b46b4f2636fb..7bdd8393b392c5f19418e3d89b09e16c54c1caee 100644
--- a/mobile/src/main/java/org/openhab/habdroid/util/Util.java
+++ b/mobile/src/main/java/org/openhab/habdroid/util/Util.java
@@ -17,17 +17,16 @@ import android.graphics.BitmapFactory;
 import android.net.Uri;
 import android.os.Build;
 import android.preference.PreferenceManager;
-import android.support.annotation.AnimRes;
-import android.support.annotation.AttrRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.StyleRes;
-import android.support.v4.widget.SwipeRefreshLayout;
 import android.util.Log;
 import android.util.TypedValue;
+import androidx.annotation.AnimRes;
+import androidx.annotation.AttrRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.StyleRes;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
 
 import okhttp3.Headers;
 import okhttp3.Request;
-
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
@@ -238,7 +237,7 @@ public class Util {
     }
 
     /**
-     * Sets {@link android.support.v4.widget.SwipeRefreshLayout} color scheme from
+     * Sets {@link SwipeRefreshLayout} color scheme from
      * a list of attributes pointing to color resources
      *
      * @param colorAttrIds color attributes to create color scheme from
diff --git a/mobile/src/main/res/layout/activity_about.xml b/mobile/src/main/res/layout/activity_about.xml
index 81554e61d30fff7edb683ccfa4deda674eb988e6..9a4039d44c49a8e2a01018ad1b52e583ee33a186 100644
--- a/mobile/src/main/res/layout/activity_about.xml
+++ b/mobile/src/main/res/layout/activity_about.xml
@@ -5,7 +5,7 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:orientation="vertical">
 
-    <android.support.v7.widget.Toolbar
+    <androidx.appcompat.widget.Toolbar
         android:id="@+id/openhab_toolbar"
         android:layout_width="match_parent"
         android:layout_height="?attr/actionBarSize"
diff --git a/mobile/src/main/res/layout/activity_main.xml b/mobile/src/main/res/layout/activity_main.xml
index e1a9cc5a923c86c25d2d4b024f8043b5ce66ee91..a7673d366e8b7c70bea210b34c70ad15ca94f67b 100644
--- a/mobile/src/main/res/layout/activity_main.xml
+++ b/mobile/src/main/res/layout/activity_main.xml
@@ -4,7 +4,7 @@
     android:layout_height="match_parent"
     android:orientation="vertical">
 
-    <android.support.v7.widget.Toolbar
+    <androidx.appcompat.widget.Toolbar
         android:id="@+id/openhab_toolbar"
         android:layout_width="fill_parent"
         android:layout_height="?attr/actionBarSize"
@@ -20,9 +20,9 @@
             android:layout_margin="16dp"
             android:indeterminateTint="#ffffff"
             android:indeterminateTintMode="src_in" />
-    </android.support.v7.widget.Toolbar>
+    </androidx.appcompat.widget.Toolbar>
 
-    <android.support.v4.widget.DrawerLayout
+    <androidx.drawerlayout.widget.DrawerLayout
         android:id="@+id/drawer_layout"
         android:layout_width="match_parent"
         android:layout_height="match_parent">
@@ -32,12 +32,12 @@
             android:layout_width="match_parent"
             android:layout_height="match_parent" />
 
-        <android.support.design.widget.NavigationView
+        <com.google.android.material.navigation.NavigationView
             android:id="@+id/left_drawer"
             android:layout_width="320dp"
             android:layout_height="match_parent"
             android:layout_gravity="start"
             android:background="?attr/themedDrawerBackground" />
 
-    </android.support.v4.widget.DrawerLayout>
+    </androidx.drawerlayout.widget.DrawerLayout>
 </LinearLayout>
diff --git a/mobile/src/main/res/layout/activity_prefs.xml b/mobile/src/main/res/layout/activity_prefs.xml
index fd5de55ef6b1745739ac50dedc385c415e84f769..f41b12ef8ee2cf81626e31a4fb8b8718cc69197f 100644
--- a/mobile/src/main/res/layout/activity_prefs.xml
+++ b/mobile/src/main/res/layout/activity_prefs.xml
@@ -5,7 +5,7 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:orientation="vertical">
 
-    <android.support.v7.widget.Toolbar
+    <androidx.appcompat.widget.Toolbar
         android:id="@+id/openhab_toolbar"
         android:layout_width="match_parent"
         android:layout_height="?attr/actionBarSize"
diff --git a/mobile/src/main/res/layout/openhabnotificationlist_fragment.xml b/mobile/src/main/res/layout/openhabnotificationlist_fragment.xml
index e98013c9b70b3bc78eceb981c281cfc8d4180d52..3d680975d655221d1d1ed68fa17c083f76364a97 100644
--- a/mobile/src/main/res/layout/openhabnotificationlist_fragment.xml
+++ b/mobile/src/main/res/layout/openhabnotificationlist_fragment.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/swipe_container"
@@ -10,7 +10,7 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent">
 
-        <android.support.v7.widget.RecyclerView
+        <androidx.recyclerview.widget.RecyclerView
             android:id="@android:id/list"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
@@ -24,7 +24,7 @@
             android:orientation="vertical"
             tools:visibility="visible">
 
-            <android.support.v7.widget.AppCompatImageView
+            <androidx.appcompat.widget.AppCompatImageView
                 android:id="@+id/watermark"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
@@ -56,4 +56,4 @@
 
     </FrameLayout>
 
-</android.support.v4.widget.SwipeRefreshLayout>
+</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
diff --git a/mobile/src/main/res/layout/openhabwidgetlist_fragment.xml b/mobile/src/main/res/layout/openhabwidgetlist_fragment.xml
index 9ea9b6c5e556ebf84261382bf9ddd28c302e98a4..a51313217168800c223e43527c8b9b2f5905b6d9 100644
--- a/mobile/src/main/res/layout/openhabwidgetlist_fragment.xml
+++ b/mobile/src/main/res/layout/openhabwidgetlist_fragment.xml
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.v4.widget.SwipeRefreshLayout
+<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/swiperefresh"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
-    <android.support.v7.widget.RecyclerView
+    <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/recyclerview"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />
 
-</android.support.v4.widget.SwipeRefreshLayout>
+</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
diff --git a/mobile/src/main/res/layout/openhabwidgetlist_frameitem.xml b/mobile/src/main/res/layout/openhabwidgetlist_frameitem.xml
index 8bc180a8ed948a76343d7bcc147da943ff7d1ede..bfae81068a3f8bbbaac1c31b1fcaef0729523a09 100644
--- a/mobile/src/main/res/layout/openhabwidgetlist_frameitem.xml
+++ b/mobile/src/main/res/layout/openhabwidgetlist_frameitem.xml
@@ -9,7 +9,7 @@
     android:paddingStart="@dimen/widgetlist_item_left_margin"
     android:paddingEnd="@dimen/widgetlist_item_right_margin">
 
-    <android.support.v4.widget.Space
+    <androidx.legacy.widget.Space
         android:id="@+id/spacer"
         android:layout_width="match_parent"
         android:layout_height="8dp"
diff --git a/mobile/src/main/res/layout/openhabwidgetlist_switchitem.xml b/mobile/src/main/res/layout/openhabwidgetlist_switchitem.xml
index d766212eac0fd110765a1ccb36289f8dced048e9..9189852d9c23c84f4d1deb1ea676a2a209d9bc4e 100644
--- a/mobile/src/main/res/layout/openhabwidgetlist_switchitem.xml
+++ b/mobile/src/main/res/layout/openhabwidgetlist_switchitem.xml
@@ -6,7 +6,7 @@
 
     <include layout="@layout/openhabwidgetlist_iconsmallvaluetext" />
 
-    <android.support.v7.widget.SwitchCompat
+    <androidx.appcompat.widget.SwitchCompat
         android:id="@+id/toggle"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/mobile/src/main/res/layout/openhabwritetag.xml b/mobile/src/main/res/layout/openhabwritetag.xml
index 23eef454fd2e02736ac96688b2be45bd96c1e6d7..0ca9794c287539599a4094008a057ac06bc6f43e 100644
--- a/mobile/src/main/res/layout/openhabwritetag.xml
+++ b/mobile/src/main/res/layout/openhabwritetag.xml
@@ -7,7 +7,7 @@
               android:orientation="vertical"
               tools:context="org.openhab.habdroid.ui.WriteTagActivity">
 
-    <android.support.v7.widget.Toolbar
+    <androidx.appcompat.widget.Toolbar
         android:id="@+id/openhab_toolbar"
         android:layout_width="match_parent"
         android:layout_height="?attr/actionBarSize"
diff --git a/mobile/src/test/java/org/openhab/habdroid/core/CloudMessagingHelper.java b/mobile/src/test/java/org/openhab/habdroid/core/CloudMessagingHelper.java
index ef54577ac237d811ba42e841dc40a5379ca309cb..92199d952409fc861c55b5683f3cf59cd99703d4 100644
--- a/mobile/src/test/java/org/openhab/habdroid/core/CloudMessagingHelper.java
+++ b/mobile/src/test/java/org/openhab/habdroid/core/CloudMessagingHelper.java
@@ -11,7 +11,7 @@ package org.openhab.habdroid.core;
 
 import android.content.Context;
 import android.content.Intent;
-import android.support.annotation.StringRes;
+import androidx.annotation.StringRes;
 
 import org.openhab.habdroid.core.connection.CloudConnection;
 
diff --git a/mobile/src/test/java/org/openhab/habdroid/core/connection/ConnectionFactoryTest.java b/mobile/src/test/java/org/openhab/habdroid/core/connection/ConnectionFactoryTest.java
index 3a5f2c2efdbafb051b4cf10a5a035ad9e8cd317a..18f1b90ff9bdc6f9b8983f6a0b0f4c6fb7107401 100644
--- a/mobile/src/test/java/org/openhab/habdroid/core/connection/ConnectionFactoryTest.java
+++ b/mobile/src/test/java/org/openhab/habdroid/core/connection/ConnectionFactoryTest.java
@@ -12,7 +12,6 @@ import android.os.Message;
 
 import okhttp3.mockwebserver.MockResponse;
 import okhttp3.mockwebserver.MockWebServer;
-
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/mobile/src/test/java/org/openhab/habdroid/core/connection/DefaultConnectionTest.java b/mobile/src/test/java/org/openhab/habdroid/core/connection/DefaultConnectionTest.java
index b0c6464aabde0bacf4da55f876fe57fcf3f263cd..c67039f657851979a5597d7f36c9f5ba28202b68 100644
--- a/mobile/src/test/java/org/openhab/habdroid/core/connection/DefaultConnectionTest.java
+++ b/mobile/src/test/java/org/openhab/habdroid/core/connection/DefaultConnectionTest.java
@@ -2,7 +2,6 @@ package org.openhab.habdroid.core.connection;
 
 import okhttp3.Credentials;
 import okhttp3.OkHttpClient;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.openhab.habdroid.util.AsyncHttpClient;
diff --git a/mobile/src/test/java/org/openhab/habdroid/core/connection/DemoConnectionTest.java b/mobile/src/test/java/org/openhab/habdroid/core/connection/DemoConnectionTest.java
index f791ab8e518e0612f850c27c56856109534f1de0..060152ef9d6f86730838f9b448f5491d65224b5b 100644
--- a/mobile/src/test/java/org/openhab/habdroid/core/connection/DemoConnectionTest.java
+++ b/mobile/src/test/java/org/openhab/habdroid/core/connection/DemoConnectionTest.java
@@ -1,7 +1,6 @@
 package org.openhab.habdroid.core.connection;
 
 import okhttp3.OkHttpClient;
-
 import org.junit.Before;
 import org.junit.Test;
 
diff --git a/mobile/src/test/java/org/openhab/habdroid/util/SyncHttpClientTest.java b/mobile/src/test/java/org/openhab/habdroid/util/SyncHttpClientTest.java
index 00c1cde98cdfe197f2bd8510749dfc6ae4d90811..040aab5e5a4db0ce607e4cf9fd702f4265eb31a9 100644
--- a/mobile/src/test/java/org/openhab/habdroid/util/SyncHttpClientTest.java
+++ b/mobile/src/test/java/org/openhab/habdroid/util/SyncHttpClientTest.java
@@ -1,7 +1,6 @@
 package org.openhab.habdroid.util;
 
 import okhttp3.OkHttpClient;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/stickler/checkstyle.xml b/stickler/checkstyle.xml
index 2dc5a010b0aed6522c192663b0fd3c773b19c8f6..0cc41a698cc448a47ee2006e36a7246bf54f2227 100644
--- a/stickler/checkstyle.xml
+++ b/stickler/checkstyle.xml
@@ -185,7 +185,7 @@
         <module name="CustomImportOrder">
             <property name="sortImportsInGroupAlphabetically" value="true"/>
             <property name="separateLineBetweenGroups" value="true"/>
-            <property name="specialImportsRegExp" value="^android \."/>
+            <property name="specialImportsRegExp" value="^(android|androidx)\."/>
             <property name="customImportOrderRules" value="SPECIAL_IMPORTS###THIRD_PARTY_PACKAGE###STANDARD_JAVA_PACKAGE###STATIC"/>
         </module>
         <module name="MethodParamPad"/>