diff --git a/app/build.gradle b/app/build.gradle
index 52f513c8b..498416210 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,7 +23,7 @@ android {
versionName "6.1.3"
targetSdkVersion 28
minSdkVersion 15
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
javaCompileOptions {
annotationProcessorOptions {
@@ -107,11 +107,8 @@ configurations {
}
final DAGGER_VERSION = '2.16'
-final BUTTERKNIFE_VERSION = '8.8.1'
-final SUPPORT_VERSION = '28.0.0'
-final ROOM_VERSION = '1.1.1'
+final BUTTERKNIFE_VERSION = '9.0.0-rc1'
final STETHO_VERSION = '1.5.0'
-final TESTING_SUPPORT_VERSION = '1.0.0'
final WORK_VERSION = '1.0.0-alpha10'
final LEAKCANARY_VERSION = '1.6.1'
@@ -122,11 +119,11 @@ dependencies {
annotationProcessor "com.google.dagger:dagger-compiler:${DAGGER_VERSION}"
implementation "com.google.dagger:dagger:${DAGGER_VERSION}"
- implementation "android.arch.persistence.room:rxjava2:${ROOM_VERSION}"
- annotationProcessor "android.arch.persistence.room:compiler:${ROOM_VERSION}"
- implementation "android.arch.lifecycle:extensions:1.1.1"
+ implementation 'androidx.room:room-rxjava2:2.1.0-alpha01'
+ annotationProcessor 'androidx.room:room-compiler:2.1.0-alpha01'
+ implementation "androidx.lifecycle:lifecycle-extensions:2.0.0"
implementation "io.reactivex.rxjava2:rxandroid:2.0.2"
- implementation "android.arch.paging:runtime:1.0.1"
+ implementation "androidx.paging:paging-runtime:2.1.0-alpha01"
annotationProcessor "com.jakewharton:butterknife-compiler:${BUTTERKNIFE_VERSION}"
implementation "com.jakewharton:butterknife:${BUTTERKNIFE_VERSION}"
@@ -138,17 +135,17 @@ dependencies {
//noinspection GradleDependency
debugImplementation "com.squareup.leakcanary:leakcanary-android:${LEAKCANARY_VERSION}"
debugImplementation "com.squareup.leakcanary:leakcanary-support-fragment:${LEAKCANARY_VERSION}"
- debugImplementation 'com.android.support:multidex:1.0.3'
+ debugImplementation 'androidx.multidex:multidex:2.0.0'
implementation 'com.squareup.okhttp3:okhttp:3.11.0'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.github.rey5137:material:1.2.5'
implementation 'com.nononsenseapps:filepicker:4.2.1'
- implementation "com.android.support:design:${SUPPORT_VERSION}"
- implementation "com.android.support:support-annotations:${SUPPORT_VERSION}"
- implementation "com.android.support:support-v13:${SUPPORT_VERSION}"
- implementation "com.android.support:cardview-v7:${SUPPORT_VERSION}"
- implementation 'com.android.support.constraint:constraint-layout:1.1.3'
+ implementation 'com.google.android.material:material:1.0.0'
+ implementation 'androidx.annotation:annotation:1.0.0'
+ implementation 'androidx.legacy:legacy-support-v13:1.0.0'
+ implementation 'androidx.cardview:cardview:1.0.0'
+ implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha2'
implementation 'com.jakewharton.timber:timber:4.7.1'
implementation 'com.jakewharton.threetenabp:threetenabp:1.1.0'
//noinspection GradleDependency
@@ -190,9 +187,9 @@ dependencies {
androidTestAnnotationProcessor "com.jakewharton:butterknife-compiler:${BUTTERKNIFE_VERSION}"
androidTestImplementation 'com.google.dexmaker:dexmaker-mockito:1.2'
androidTestImplementation 'com.natpryce:make-it-easy:4.0.1'
- androidTestImplementation "com.android.support.test:runner:${TESTING_SUPPORT_VERSION}"
- androidTestImplementation "com.android.support.test:rules:${TESTING_SUPPORT_VERSION}"
- androidTestImplementation "com.android.support:support-annotations:${SUPPORT_VERSION}"
+ androidTestImplementation 'androidx.test:runner:1.1.0-beta02'
+ androidTestImplementation 'androidx.test:rules:1.1.0-beta02'
+ androidTestImplementation 'androidx.annotation:annotation:1.0.0'
}
apply plugin: 'com.google.gms.google-services'
diff --git a/app/src/androidTest/java/com/todoroo/andlib/test/TranslationTests.java b/app/src/androidTest/java/com/todoroo/andlib/test/TranslationTests.java
index dc6942e7d..56cd7d056 100644
--- a/app/src/androidTest/java/com/todoroo/andlib/test/TranslationTests.java
+++ b/app/src/androidTest/java/com/todoroo/andlib/test/TranslationTests.java
@@ -5,14 +5,14 @@
*/
package com.todoroo.andlib.test;
-import static android.support.test.InstrumentationRegistry.getTargetContext;
+import static androidx.test.InstrumentationRegistry.getTargetContext;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
import android.content.res.Configuration;
import android.content.res.Resources;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
diff --git a/app/src/androidTest/java/com/todoroo/andlib/utility/DateUtilitiesTest.java b/app/src/androidTest/java/com/todoroo/andlib/utility/DateUtilitiesTest.java
index 54d8c9ed2..fbef06980 100644
--- a/app/src/androidTest/java/com/todoroo/andlib/utility/DateUtilitiesTest.java
+++ b/app/src/androidTest/java/com/todoroo/andlib/utility/DateUtilitiesTest.java
@@ -5,7 +5,7 @@
*/
package com.todoroo.andlib.utility;
-import static android.support.test.InstrumentationRegistry.getTargetContext;
+import static androidx.test.InstrumentationRegistry.getTargetContext;
import static com.todoroo.andlib.utility.DateUtilities.addCalendarMonthsToUnixtime;
import static com.todoroo.andlib.utility.DateUtilities.getDateString;
import static com.todoroo.andlib.utility.DateUtilities.getStartOfDay;
@@ -19,7 +19,7 @@ import static org.tasks.date.DateTimeUtils.newDate;
import static org.tasks.date.DateTimeUtils.newDateTime;
import android.content.res.Configuration;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import android.util.DisplayMetrics;
import java.util.Locale;
import org.junit.After;
diff --git a/app/src/androidTest/java/com/todoroo/andlib/utility/RelativeDayTest.java b/app/src/androidTest/java/com/todoroo/andlib/utility/RelativeDayTest.java
index db21687b8..b490ea051 100644
--- a/app/src/androidTest/java/com/todoroo/andlib/utility/RelativeDayTest.java
+++ b/app/src/androidTest/java/com/todoroo/andlib/utility/RelativeDayTest.java
@@ -1,12 +1,12 @@
package com.todoroo.andlib.utility;
-import static android.support.test.InstrumentationRegistry.getTargetContext;
+import static androidx.test.InstrumentationRegistry.getTargetContext;
import static com.todoroo.andlib.utility.DateUtilities.getRelativeDay;
import static junit.framework.Assert.assertEquals;
import static org.tasks.Freeze.freezeAt;
import static org.tasks.Freeze.thaw;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import java.util.Locale;
import org.junit.After;
import org.junit.Before;
diff --git a/app/src/androidTest/java/com/todoroo/astrid/alarms/AlarmJobServiceTest.java b/app/src/androidTest/java/com/todoroo/astrid/alarms/AlarmJobServiceTest.java
index 1ac184860..9e2de4542 100644
--- a/app/src/androidTest/java/com/todoroo/astrid/alarms/AlarmJobServiceTest.java
+++ b/app/src/androidTest/java/com/todoroo/astrid/alarms/AlarmJobServiceTest.java
@@ -7,7 +7,7 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.tasks.makers.TaskMaker.REMINDER_LAST;
import static org.tasks.makers.TaskMaker.newTask;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import javax.inject.Inject;
diff --git a/app/src/androidTest/java/com/todoroo/astrid/dao/TaskDaoTests.java b/app/src/androidTest/java/com/todoroo/astrid/dao/TaskDaoTests.java
index 427baa7ec..bdaac66eb 100644
--- a/app/src/androidTest/java/com/todoroo/astrid/dao/TaskDaoTests.java
+++ b/app/src/androidTest/java/com/todoroo/astrid/dao/TaskDaoTests.java
@@ -9,7 +9,7 @@ import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotSame;
import static junit.framework.Assert.assertNull;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.google.common.collect.ImmutableList;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.data.Task;
diff --git a/app/src/androidTest/java/com/todoroo/astrid/data/TaskTest.java b/app/src/androidTest/java/com/todoroo/astrid/data/TaskTest.java
index 4f793cb5b..82c5df4c6 100644
--- a/app/src/androidTest/java/com/todoroo/astrid/data/TaskTest.java
+++ b/app/src/androidTest/java/com/todoroo/astrid/data/TaskTest.java
@@ -19,7 +19,7 @@ import static org.tasks.Freeze.thaw;
import static org.tasks.date.DateTimeUtils.newDateTime;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.todoroo.astrid.data.Task.Priority;
import java.util.ArrayList;
import java.util.TreeSet;
diff --git a/app/src/androidTest/java/com/todoroo/astrid/model/TaskTest.java b/app/src/androidTest/java/com/todoroo/astrid/model/TaskTest.java
index ac152c440..0e7935faf 100644
--- a/app/src/androidTest/java/com/todoroo/astrid/model/TaskTest.java
+++ b/app/src/androidTest/java/com/todoroo/astrid/model/TaskTest.java
@@ -4,7 +4,7 @@ import static junit.framework.Assert.assertEquals;
import static org.tasks.Freeze.freezeClock;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import javax.inject.Inject;
diff --git a/app/src/androidTest/java/com/todoroo/astrid/reminders/ReminderServiceTest.java b/app/src/androidTest/java/com/todoroo/astrid/reminders/ReminderServiceTest.java
index c55ac21a1..f59f00409 100644
--- a/app/src/androidTest/java/com/todoroo/astrid/reminders/ReminderServiceTest.java
+++ b/app/src/androidTest/java/com/todoroo/astrid/reminders/ReminderServiceTest.java
@@ -24,7 +24,7 @@ import static org.tasks.makers.TaskMaker.REMINDER_LAST;
import static org.tasks.makers.TaskMaker.SNOOZE_TIME;
import static org.tasks.makers.TaskMaker.newTask;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import java.util.concurrent.TimeUnit;
diff --git a/app/src/androidTest/java/com/todoroo/astrid/repeats/AdvancedRepeatTest.java b/app/src/androidTest/java/com/todoroo/astrid/repeats/AdvancedRepeatTest.java
index 76cb42917..57d49ff40 100644
--- a/app/src/androidTest/java/com/todoroo/astrid/repeats/AdvancedRepeatTest.java
+++ b/app/src/androidTest/java/com/todoroo/astrid/repeats/AdvancedRepeatTest.java
@@ -8,7 +8,7 @@ package com.todoroo.astrid.repeats;
import static junit.framework.Assert.assertEquals;
import static org.tasks.date.DateTimeUtils.newDateTime;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.google.ical.values.Frequency;
import com.google.ical.values.RRule;
import com.google.ical.values.Weekday;
diff --git a/app/src/androidTest/java/com/todoroo/astrid/repeats/NewRepeatTests.java b/app/src/androidTest/java/com/todoroo/astrid/repeats/NewRepeatTests.java
index b08182667..d3f7694a9 100644
--- a/app/src/androidTest/java/com/todoroo/astrid/repeats/NewRepeatTests.java
+++ b/app/src/androidTest/java/com/todoroo/astrid/repeats/NewRepeatTests.java
@@ -4,7 +4,7 @@ import static com.todoroo.astrid.repeats.RepeatTaskHelper.computeNextDueDate;
import static java.util.Arrays.asList;
import static junit.framework.Assert.assertEquals;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.google.ical.values.Frequency;
import com.google.ical.values.RRule;
import com.google.ical.values.Weekday;
diff --git a/app/src/androidTest/java/com/todoroo/astrid/repeats/RepeatTaskHelperTest.java b/app/src/androidTest/java/com/todoroo/astrid/repeats/RepeatTaskHelperTest.java
index b5eb605a1..d6cd117aa 100644
--- a/app/src/androidTest/java/com/todoroo/astrid/repeats/RepeatTaskHelperTest.java
+++ b/app/src/androidTest/java/com/todoroo/astrid/repeats/RepeatTaskHelperTest.java
@@ -13,7 +13,7 @@ import static org.tasks.makers.TaskMaker.RRULE;
import static org.tasks.makers.TaskMaker.newTask;
import android.annotation.SuppressLint;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.google.ical.values.RRule;
import com.todoroo.astrid.alarms.AlarmService;
import com.todoroo.astrid.dao.TaskDao;
diff --git a/app/src/androidTest/java/com/todoroo/astrid/service/QuickAddMarkupTest.java b/app/src/androidTest/java/com/todoroo/astrid/service/QuickAddMarkupTest.java
index 36b32a8ea..e59c59faa 100644
--- a/app/src/androidTest/java/com/todoroo/astrid/service/QuickAddMarkupTest.java
+++ b/app/src/androidTest/java/com/todoroo/astrid/service/QuickAddMarkupTest.java
@@ -7,7 +7,7 @@ package com.todoroo.astrid.service;
import static junit.framework.Assert.assertEquals;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.Task.Priority;
import com.todoroo.astrid.tags.TagService;
diff --git a/app/src/androidTest/java/com/todoroo/astrid/service/TitleParserTest.java b/app/src/androidTest/java/com/todoroo/astrid/service/TitleParserTest.java
index 87460613e..948e37236 100644
--- a/app/src/androidTest/java/com/todoroo/astrid/service/TitleParserTest.java
+++ b/app/src/androidTest/java/com/todoroo/astrid/service/TitleParserTest.java
@@ -11,7 +11,7 @@ import static junit.framework.Assert.assertNotSame;
import static junit.framework.Assert.assertTrue;
import static org.tasks.date.DateTimeUtils.newDateTime;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.google.ical.values.Frequency;
import com.google.ical.values.RRule;
import com.todoroo.astrid.data.Task;
diff --git a/app/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksHelperTest.java b/app/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksHelperTest.java
index 0b8f6b0bf..fd65e5613 100644
--- a/app/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksHelperTest.java
+++ b/app/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksHelperTest.java
@@ -2,7 +2,7 @@ package com.todoroo.astrid.subtasks;
import static junit.framework.Assert.assertEquals;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import javax.inject.Inject;
diff --git a/app/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksMovingTest.java b/app/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksMovingTest.java
index 700e9f496..ebdfb241b 100644
--- a/app/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksMovingTest.java
+++ b/app/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksMovingTest.java
@@ -1,6 +1,6 @@
package com.todoroo.astrid.subtasks;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import javax.inject.Inject;
diff --git a/app/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksTestCase.java b/app/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksTestCase.java
index 9cfbec5d1..f503aac9c 100644
--- a/app/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksTestCase.java
+++ b/app/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksTestCase.java
@@ -1,6 +1,6 @@
package com.todoroo.astrid.subtasks;
-import static android.support.test.InstrumentationRegistry.getTargetContext;
+import static androidx.test.InstrumentationRegistry.getTargetContext;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
diff --git a/app/src/androidTest/java/com/todoroo/astrid/sync/SyncModelTest.java b/app/src/androidTest/java/com/todoroo/astrid/sync/SyncModelTest.java
index ae28d354a..7f72d63ae 100644
--- a/app/src/androidTest/java/com/todoroo/astrid/sync/SyncModelTest.java
+++ b/app/src/androidTest/java/com/todoroo/astrid/sync/SyncModelTest.java
@@ -2,7 +2,7 @@ package com.todoroo.astrid.sync;
import static junit.framework.Assert.assertFalse;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.todoroo.astrid.data.Task;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/app/src/androidTest/java/org/tasks/TestUtilities.java b/app/src/androidTest/java/org/tasks/TestUtilities.java
index 41e89acf0..bcae02589 100644
--- a/app/src/androidTest/java/org/tasks/TestUtilities.java
+++ b/app/src/androidTest/java/org/tasks/TestUtilities.java
@@ -1,7 +1,7 @@
package org.tasks;
import android.content.Context;
-import android.support.test.InstrumentationRegistry;
+import androidx.test.InstrumentationRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.CharStreams;
import com.todoroo.astrid.data.Task;
diff --git a/app/src/androidTest/java/org/tasks/caldav/AppleRemindersTests.java b/app/src/androidTest/java/org/tasks/caldav/AppleRemindersTests.java
index 2d479aed3..3605482c3 100644
--- a/app/src/androidTest/java/org/tasks/caldav/AppleRemindersTests.java
+++ b/app/src/androidTest/java/org/tasks/caldav/AppleRemindersTests.java
@@ -3,7 +3,7 @@ package org.tasks.caldav;
import static junit.framework.Assert.assertEquals;
import static org.tasks.TestUtilities.vtodo;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.todoroo.astrid.data.Task.Priority;
import java.util.TimeZone;
import org.junit.After;
diff --git a/app/src/androidTest/java/org/tasks/caldav/CaldavClientTest.java b/app/src/androidTest/java/org/tasks/caldav/CaldavClientTest.java
index 20abd1dec..4d8e58c17 100644
--- a/app/src/androidTest/java/org/tasks/caldav/CaldavClientTest.java
+++ b/app/src/androidTest/java/org/tasks/caldav/CaldavClientTest.java
@@ -1,6 +1,6 @@
package org.tasks.caldav;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/app/src/androidTest/java/org/tasks/caldav/NextCloudTests.java b/app/src/androidTest/java/org/tasks/caldav/NextCloudTests.java
index 052b0c124..9ee3bbc83 100644
--- a/app/src/androidTest/java/org/tasks/caldav/NextCloudTests.java
+++ b/app/src/androidTest/java/org/tasks/caldav/NextCloudTests.java
@@ -3,7 +3,7 @@ package org.tasks.caldav;
import static junit.framework.Assert.assertEquals;
import static org.tasks.TestUtilities.vtodo;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.todoroo.astrid.data.Task.Priority;
import java.util.TimeZone;
import org.junit.After;
diff --git a/app/src/androidTest/java/org/tasks/caldav/ThunderbirdTests.java b/app/src/androidTest/java/org/tasks/caldav/ThunderbirdTests.java
index 7e53cb499..ec7231daf 100644
--- a/app/src/androidTest/java/org/tasks/caldav/ThunderbirdTests.java
+++ b/app/src/androidTest/java/org/tasks/caldav/ThunderbirdTests.java
@@ -3,7 +3,7 @@ package org.tasks.caldav;
import static junit.framework.Assert.assertEquals;
import static org.tasks.TestUtilities.vtodo;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.todoroo.astrid.data.Task.Priority;
import java.util.TimeZone;
import org.junit.After;
diff --git a/app/src/androidTest/java/org/tasks/data/DeletionDaoTests.java b/app/src/androidTest/java/org/tasks/data/DeletionDaoTests.java
index cec55211c..8d9dfbccf 100644
--- a/app/src/androidTest/java/org/tasks/data/DeletionDaoTests.java
+++ b/app/src/androidTest/java/org/tasks/data/DeletionDaoTests.java
@@ -2,7 +2,7 @@ package org.tasks.data;
import static com.google.common.collect.Lists.newArrayList;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.google.common.collect.ContiguousSet;
import com.google.common.collect.DiscreteDomain;
import com.google.common.collect.Range;
diff --git a/app/src/androidTest/java/org/tasks/date/DateTimeUtilsTest.java b/app/src/androidTest/java/org/tasks/date/DateTimeUtilsTest.java
index 36d0c83ed..54db0d0a3 100644
--- a/app/src/androidTest/java/org/tasks/date/DateTimeUtilsTest.java
+++ b/app/src/androidTest/java/org/tasks/date/DateTimeUtilsTest.java
@@ -5,7 +5,7 @@ import static org.tasks.Freeze.freezeAt;
import static org.tasks.date.DateTimeUtils.newDateUtc;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import java.util.TimeZone;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/app/src/androidTest/java/org/tasks/injection/InjectingTestCase.java b/app/src/androidTest/java/org/tasks/injection/InjectingTestCase.java
index f8d645e66..d67699b89 100644
--- a/app/src/androidTest/java/org/tasks/injection/InjectingTestCase.java
+++ b/app/src/androidTest/java/org/tasks/injection/InjectingTestCase.java
@@ -1,6 +1,6 @@
package org.tasks.injection;
-import static android.support.test.InstrumentationRegistry.getTargetContext;
+import static androidx.test.InstrumentationRegistry.getTargetContext;
import static org.tasks.TestUtilities.initializeMockito;
import org.junit.Before;
diff --git a/app/src/androidTest/java/org/tasks/injection/TestModule.java b/app/src/androidTest/java/org/tasks/injection/TestModule.java
index 119d4a96f..15ef5bc2c 100644
--- a/app/src/androidTest/java/org/tasks/injection/TestModule.java
+++ b/app/src/androidTest/java/org/tasks/injection/TestModule.java
@@ -1,6 +1,6 @@
package org.tasks.injection;
-import android.arch.persistence.room.Room;
+import androidx.room.Room;
import android.content.Context;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.TaskDao;
diff --git a/app/src/androidTest/java/org/tasks/jobs/BackupServiceTests.java b/app/src/androidTest/java/org/tasks/jobs/BackupServiceTests.java
index 8c52c527a..71b329415 100644
--- a/app/src/androidTest/java/org/tasks/jobs/BackupServiceTests.java
+++ b/app/src/androidTest/java/org/tasks/jobs/BackupServiceTests.java
@@ -5,11 +5,11 @@
*/
package org.tasks.jobs;
-import static android.support.test.InstrumentationRegistry.getTargetContext;
+import static androidx.test.InstrumentationRegistry.getTargetContext;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import java.io.File;
diff --git a/app/src/androidTest/java/org/tasks/jobs/BackupWorkTest.java b/app/src/androidTest/java/org/tasks/jobs/BackupWorkTest.java
index 4f5f999aa..472f61727 100644
--- a/app/src/androidTest/java/org/tasks/jobs/BackupWorkTest.java
+++ b/app/src/androidTest/java/org/tasks/jobs/BackupWorkTest.java
@@ -9,7 +9,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.stub;
import static org.tasks.date.DateTimeUtils.newDate;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import java.io.File;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/app/src/androidTest/java/org/tasks/jobs/NotificationQueueTest.java b/app/src/androidTest/java/org/tasks/jobs/NotificationQueueTest.java
index 11f239e05..0d07efcfb 100644
--- a/app/src/androidTest/java/org/tasks/jobs/NotificationQueueTest.java
+++ b/app/src/androidTest/java/org/tasks/jobs/NotificationQueueTest.java
@@ -15,7 +15,7 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.junit.After;
diff --git a/app/src/androidTest/java/org/tasks/preferences/PreferenceTests.java b/app/src/androidTest/java/org/tasks/preferences/PreferenceTests.java
index 6d2dcfa71..7dfb5b092 100644
--- a/app/src/androidTest/java/org/tasks/preferences/PreferenceTests.java
+++ b/app/src/androidTest/java/org/tasks/preferences/PreferenceTests.java
@@ -1,10 +1,10 @@
package org.tasks.preferences;
-import static android.support.test.InstrumentationRegistry.getTargetContext;
+import static androidx.test.InstrumentationRegistry.getTargetContext;
import static junit.framework.Assert.assertEquals;
import android.annotation.SuppressLint;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import java.util.concurrent.TimeUnit;
import org.junit.Before;
import org.junit.Test;
diff --git a/app/src/androidTest/java/org/tasks/repeats/RepeatRuleToStringTest.java b/app/src/androidTest/java/org/tasks/repeats/RepeatRuleToStringTest.java
index 496fb1abe..29e3e041c 100644
--- a/app/src/androidTest/java/org/tasks/repeats/RepeatRuleToStringTest.java
+++ b/app/src/androidTest/java/org/tasks/repeats/RepeatRuleToStringTest.java
@@ -1,9 +1,9 @@
package org.tasks.repeats;
-import static android.support.test.InstrumentationRegistry.getTargetContext;
+import static androidx.test.InstrumentationRegistry.getTargetContext;
import static junit.framework.Assert.assertEquals;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.google.ical.values.RRule;
import java.text.ParseException;
import org.junit.Test;
diff --git a/app/src/androidTest/java/org/tasks/time/DateTimeTest.java b/app/src/androidTest/java/org/tasks/time/DateTimeTest.java
index 48e8c78bc..6dbf14168 100644
--- a/app/src/androidTest/java/org/tasks/time/DateTimeTest.java
+++ b/app/src/androidTest/java/org/tasks/time/DateTimeTest.java
@@ -4,7 +4,7 @@ import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import java.util.TimeZone;
import java.util.concurrent.TimeUnit;
import org.junit.Test;
diff --git a/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksIndentActionTest.java b/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksIndentActionTest.java
index d6e3f8ec9..6b2309696 100644
--- a/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksIndentActionTest.java
+++ b/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksIndentActionTest.java
@@ -8,7 +8,7 @@ package com.todoroo.astrid.gtasks;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertTrue;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.google.api.services.tasks.model.TaskList;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
diff --git a/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksListServiceTest.java b/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksListServiceTest.java
index a902cee37..26bdcaddd 100644
--- a/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksListServiceTest.java
+++ b/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksListServiceTest.java
@@ -13,7 +13,7 @@ import static org.tasks.makers.GtaskListMaker.newGtaskList;
import static org.tasks.makers.RemoteGtaskListMaker.newRemoteList;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.google.api.client.util.DateTime;
import com.google.api.services.tasks.model.TaskList;
import com.todoroo.astrid.dao.TaskDao;
diff --git a/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksMetadataServiceTest.java b/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksMetadataServiceTest.java
index 6ef51d75b..b638d07c5 100644
--- a/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksMetadataServiceTest.java
+++ b/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksMetadataServiceTest.java
@@ -8,7 +8,7 @@ package com.todoroo.astrid.gtasks;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertNull;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import javax.inject.Inject;
diff --git a/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdaterTest.java b/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdaterTest.java
index 44fb9a7f0..7caeb1a3d 100644
--- a/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdaterTest.java
+++ b/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdaterTest.java
@@ -8,7 +8,7 @@ package com.todoroo.astrid.gtasks;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.google.api.services.tasks.model.TaskList;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
diff --git a/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksTaskMovingTest.java b/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksTaskMovingTest.java
index 509a6dbe3..f2cb747ef 100644
--- a/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksTaskMovingTest.java
+++ b/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksTaskMovingTest.java
@@ -8,7 +8,7 @@ package com.todoroo.astrid.gtasks;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.google.api.services.tasks.model.TaskList;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
diff --git a/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilitiesTest.java b/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilitiesTest.java
index 1159e9570..0d2b0e43f 100644
--- a/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilitiesTest.java
+++ b/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilitiesTest.java
@@ -7,7 +7,7 @@ import static com.todoroo.astrid.gtasks.api.GtasksApiUtilities.unixTimeToGtasksD
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNull;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
diff --git a/app/src/androidTestGoogleplay/java/org/tasks/gtasks/GoogleTaskSynchronizerTest.java b/app/src/androidTestGoogleplay/java/org/tasks/gtasks/GoogleTaskSynchronizerTest.java
index e596e8644..90a361c80 100644
--- a/app/src/androidTestGoogleplay/java/org/tasks/gtasks/GoogleTaskSynchronizerTest.java
+++ b/app/src/androidTestGoogleplay/java/org/tasks/gtasks/GoogleTaskSynchronizerTest.java
@@ -10,7 +10,7 @@ import static org.tasks.makers.TaskMaker.DUE_TIME;
import static org.tasks.makers.TaskMaker.HIDE_TYPE;
import static org.tasks.makers.TaskMaker.newTask;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.runner.AndroidJUnit4;
import com.todoroo.astrid.data.Task;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/app/src/debug/java/org/tasks/BaseApplication.java b/app/src/debug/java/org/tasks/BaseApplication.java
index 653a14b7d..293df08c8 100644
--- a/app/src/debug/java/org/tasks/BaseApplication.java
+++ b/app/src/debug/java/org/tasks/BaseApplication.java
@@ -1,5 +1,5 @@
package org.tasks;
-import android.support.multidex.MultiDexApplication;
+import androidx.multidex.MultiDexApplication;
public abstract class BaseApplication extends MultiDexApplication {}
diff --git a/app/src/googleplay/java/org/tasks/location/GeofenceTransitionsIntentService.java b/app/src/googleplay/java/org/tasks/location/GeofenceTransitionsIntentService.java
index 07da39520..8e4b34106 100644
--- a/app/src/googleplay/java/org/tasks/location/GeofenceTransitionsIntentService.java
+++ b/app/src/googleplay/java/org/tasks/location/GeofenceTransitionsIntentService.java
@@ -3,7 +3,7 @@ package org.tasks.location;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
-import android.support.v4.app.JobIntentService;
+import androidx.core.app.JobIntentService;
import com.google.android.gms.location.GeofencingEvent;
import com.todoroo.astrid.reminders.ReminderService;
import java.util.List;
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9bd5e0471..f428a5211 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -223,7 +223,7 @@
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true"
- android:name="android.support.v4.content.FileProvider">
+ android:name="androidx.core.content.FileProvider">
diff --git a/app/src/main/java/com/todoroo/astrid/activity/BeastModePreferences.java b/app/src/main/java/com/todoroo/astrid/activity/BeastModePreferences.java
index 55609bd9b..970ef3e80 100644
--- a/app/src/main/java/com/todoroo/astrid/activity/BeastModePreferences.java
+++ b/app/src/main/java/com/todoroo/astrid/activity/BeastModePreferences.java
@@ -9,10 +9,10 @@ import static java.util.Arrays.asList;
import android.content.Context;
import android.os.Bundle;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.Toolbar;
+import androidx.core.content.ContextCompat;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.appcompat.widget.Toolbar;
import android.view.MenuItem;
import butterknife.BindView;
import butterknife.ButterKnife;
diff --git a/app/src/main/java/com/todoroo/astrid/activity/MainActivity.java b/app/src/main/java/com/todoroo/astrid/activity/MainActivity.java
index 645bcff79..824e1122a 100644
--- a/app/src/main/java/com/todoroo/astrid/activity/MainActivity.java
+++ b/app/src/main/java/com/todoroo/astrid/activity/MainActivity.java
@@ -11,14 +11,14 @@ import static org.tasks.tasklist.ActionUtils.applySupportActionModeColor;
import static org.tasks.ui.NavigationDrawerFragment.OnFilterItemClickedListener;
import android.annotation.SuppressLint;
-import android.arch.lifecycle.ViewModelProviders;
+import androidx.lifecycle.ViewModelProviders;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.widget.DrawerLayout;
-import android.support.v7.view.ActionMode;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.FragmentManager;
+import androidx.drawerlayout.widget.DrawerLayout;
+import androidx.appcompat.view.ActionMode;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.FrameLayout;
diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java b/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java
index 9303258a2..1a0bc0361 100755
--- a/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java
+++ b/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java
@@ -10,10 +10,10 @@ import static org.tasks.date.DateTimeUtils.newDateTime;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentTransaction;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.widget.Toolbar;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.widget.Toolbar;
import android.text.format.DateUtils;
import android.view.LayoutInflater;
import android.view.MenuItem;
diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java
index b410da041..ed1582ce6 100644
--- a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java
+++ b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java
@@ -6,25 +6,25 @@
package com.todoroo.astrid.activity;
import static android.app.Activity.RESULT_OK;
-import static android.support.v4.content.ContextCompat.getColor;
+import static androidx.core.content.ContextCompat.getColor;
import android.app.Activity;
-import android.arch.lifecycle.ViewModelProviders;
+import androidx.lifecycle.ViewModelProviders;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.speech.RecognizerIntent;
-import android.support.annotation.Nullable;
-import android.support.design.widget.CoordinatorLayout;
-import android.support.design.widget.Snackbar;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v7.widget.DefaultItemAnimator;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.SearchView;
-import android.support.v7.widget.Toolbar;
+import androidx.annotation.Nullable;
+import androidx.coordinatorlayout.widget.CoordinatorLayout;
+import com.google.android.material.snackbar.Snackbar;
+import androidx.core.view.MenuItemCompat;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import androidx.recyclerview.widget.DefaultItemAnimator;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.appcompat.widget.SearchView;
+import androidx.appcompat.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
diff --git a/app/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java b/app/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java
index d4cd7ff44..e86c247da 100644
--- a/app/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java
+++ b/app/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java
@@ -5,7 +5,7 @@
*/
package com.todoroo.astrid.adapter;
-import static android.support.v4.content.ContextCompat.getColor;
+import static androidx.core.content.ContextCompat.getColor;
import static com.google.common.base.Strings.isNullOrEmpty;
import static com.todoroo.andlib.utility.AndroidUtilities.preLollipop;
import static org.tasks.caldav.CaldavCalendarSettingsActivity.EXTRA_CALDAV_ACCOUNT;
@@ -17,11 +17,11 @@ import android.content.Intent;
import android.content.res.ColorStateList;
import android.graphics.drawable.Drawable;
import android.net.Uri;
-import android.support.annotation.NonNull;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.content.res.ResourcesCompat;
-import android.support.v4.graphics.drawable.DrawableCompat;
-import android.support.v4.util.Pair;
+import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
+import androidx.core.content.res.ResourcesCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
+import androidx.core.util.Pair;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java b/app/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java
index 33a3397a4..e112bae21 100644
--- a/app/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java
+++ b/app/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java
@@ -8,7 +8,7 @@ package com.todoroo.astrid.adapter;
import static com.google.common.collect.Lists.newArrayList;
import static com.google.common.primitives.Longs.asList;
-import android.arch.paging.AsyncPagedListDiffer;
+import androidx.paging.AsyncPagedListDiffer;
import com.google.common.collect.ObjectArrays;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.Property.LongProperty;
diff --git a/app/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java b/app/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java
index 591155407..10d2363ee 100644
--- a/app/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java
+++ b/app/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java
@@ -12,8 +12,8 @@ import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.widget.Toolbar;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.widget.Toolbar;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuItem;
diff --git a/app/src/main/java/com/todoroo/astrid/core/CustomFilterAdapter.java b/app/src/main/java/com/todoroo/astrid/core/CustomFilterAdapter.java
index f9916d87e..ee0602aee 100644
--- a/app/src/main/java/com/todoroo/astrid/core/CustomFilterAdapter.java
+++ b/app/src/main/java/com/todoroo/astrid/core/CustomFilterAdapter.java
@@ -6,7 +6,7 @@
package com.todoroo.astrid.core;
import android.content.DialogInterface;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.MenuItem;
diff --git a/app/src/main/java/com/todoroo/astrid/core/DefaultsPreferences.java b/app/src/main/java/com/todoroo/astrid/core/DefaultsPreferences.java
index fdcecb59f..301ac6327 100644
--- a/app/src/main/java/com/todoroo/astrid/core/DefaultsPreferences.java
+++ b/app/src/main/java/com/todoroo/astrid/core/DefaultsPreferences.java
@@ -11,7 +11,7 @@ import static org.tasks.activities.RemoteListNativePicker.newRemoteListNativePic
import android.content.Intent;
import android.os.Bundle;
import android.preference.Preference;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import com.todoroo.astrid.api.CaldavFilter;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.GtasksFilter;
diff --git a/app/src/main/java/com/todoroo/astrid/dao/Database.java b/app/src/main/java/com/todoroo/astrid/dao/Database.java
index 2c7fc8270..8d9c436dd 100644
--- a/app/src/main/java/com/todoroo/astrid/dao/Database.java
+++ b/app/src/main/java/com/todoroo/astrid/dao/Database.java
@@ -5,8 +5,8 @@
*/
package com.todoroo.astrid.dao;
-import android.arch.persistence.db.SupportSQLiteDatabase;
-import android.arch.persistence.room.RoomDatabase;
+import androidx.sqlite.db.SupportSQLiteDatabase;
+import androidx.room.RoomDatabase;
import android.database.Cursor;
import com.todoroo.astrid.data.Task;
import java.io.IOException;
@@ -41,7 +41,7 @@ import org.tasks.notifications.Notification;
import org.tasks.notifications.NotificationDao;
import timber.log.Timber;
-@android.arch.persistence.room.Database(
+@androidx.room.Database(
entities = {
Notification.class,
TagData.class,
diff --git a/app/src/main/java/com/todoroo/astrid/dao/TaskDao.java b/app/src/main/java/com/todoroo/astrid/dao/TaskDao.java
index 0e8a53eff..1df646cfb 100644
--- a/app/src/main/java/com/todoroo/astrid/dao/TaskDao.java
+++ b/app/src/main/java/com/todoroo/astrid/dao/TaskDao.java
@@ -7,9 +7,9 @@ package com.todoroo.astrid.dao;
import static com.todoroo.andlib.utility.DateUtilities.now;
-import android.arch.persistence.room.Dao;
-import android.arch.persistence.room.Insert;
-import android.arch.persistence.room.Update;
+import androidx.room.Dao;
+import androidx.room.Insert;
+import androidx.room.Update;
import android.content.Context;
import android.database.Cursor;
import com.todoroo.andlib.data.Property;
@@ -47,48 +47,48 @@ public abstract class TaskDao {
return needsRefresh(now());
}
- @android.arch.persistence.room.Query(
+ @androidx.room.Query(
"SELECT * FROM tasks WHERE completed = 0 AND deleted = 0 AND (hideUntil > :now OR dueDate > :now)")
abstract List needsRefresh(long now);
- @android.arch.persistence.room.Query("SELECT * FROM tasks WHERE _id = :id LIMIT 1")
+ @androidx.room.Query("SELECT * FROM tasks WHERE _id = :id LIMIT 1")
public abstract Task fetch(long id);
- @android.arch.persistence.room.Query("SELECT * FROM tasks WHERE _id IN (:taskIds)")
+ @androidx.room.Query("SELECT * FROM tasks WHERE _id IN (:taskIds)")
public abstract List fetch(List taskIds);
- @android.arch.persistence.room.Query(
+ @androidx.room.Query(
"SELECT COUNT(1) FROM tasks WHERE timerStart > 0 AND deleted = 0")
public abstract int activeTimers();
- @android.arch.persistence.room.Query(
+ @androidx.room.Query(
"SELECT tasks.* FROM tasks INNER JOIN notification ON tasks._id = notification.task")
public abstract List activeNotifications();
- @android.arch.persistence.room.Query("SELECT * FROM tasks WHERE remoteId = :remoteId")
+ @androidx.room.Query("SELECT * FROM tasks WHERE remoteId = :remoteId")
public abstract Task fetch(String remoteId);
- @android.arch.persistence.room.Query("SELECT * FROM tasks WHERE completed = 0 AND deleted = 0")
+ @androidx.room.Query("SELECT * FROM tasks WHERE completed = 0 AND deleted = 0")
abstract List getActiveTasks();
- @android.arch.persistence.room.Query(
+ @androidx.room.Query(
"SELECT * FROM tasks WHERE hideUntil < (strftime('%s','now')*1000)")
abstract List getVisibleTasks();
- @android.arch.persistence.room.Query(
+ @androidx.room.Query(
"SELECT * FROM tasks WHERE remoteId IN (:remoteIds) "
+ "AND recurrence NOT NULL AND LENGTH(recurrence) > 0")
public abstract List getRecurringTasks(List remoteIds);
- @android.arch.persistence.room.Query(
+ @androidx.room.Query(
"UPDATE tasks SET completed = :completionDate " + "WHERE remoteId = :remoteId")
public abstract void setCompletionDate(String remoteId, long completionDate);
- @android.arch.persistence.room.Query(
+ @androidx.room.Query(
"UPDATE tasks SET snoozeTime = :millis WHERE _id in (:taskIds)")
public abstract void snooze(List taskIds, long millis);
- @android.arch.persistence.room.Query(
+ @androidx.room.Query(
"SELECT tasks.* FROM tasks "
+ "LEFT JOIN google_tasks ON tasks._id = google_tasks.task "
+ "WHERE list_id IN (SELECT remote_id FROM google_task_lists WHERE account = :account)"
@@ -96,37 +96,37 @@ public abstract class TaskDao {
+ "OR google_tasks.remote_id = '')")
public abstract List getGoogleTasksToPush(String account);
- @android.arch.persistence.room.Query(
+ @androidx.room.Query(
"SELECT tasks.* FROM tasks "
+ "LEFT JOIN caldav_tasks ON tasks._id = caldav_tasks.task "
+ "WHERE caldav_tasks.calendar = :calendar "
+ "AND tasks.modified > caldav_tasks.last_sync")
public abstract List getCaldavTasksToPush(String calendar);
- @android.arch.persistence.room.Query(
+ @androidx.room.Query(
"SELECT * FROM TASKS "
+ "WHERE completed = 0 AND deleted = 0 AND (notificationFlags > 0 OR notifications > 0)")
public abstract List getTasksWithReminders();
// --- SQL clause generators
- @android.arch.persistence.room.Query("SELECT * FROM tasks")
+ @androidx.room.Query("SELECT * FROM tasks")
public abstract List getAll();
- @android.arch.persistence.room.Query(
+ @androidx.room.Query(
"SELECT calendarUri FROM tasks " + "WHERE calendarUri NOT NULL AND calendarUri != ''")
public abstract List getAllCalendarEvents();
- @android.arch.persistence.room.Query(
+ @androidx.room.Query(
"UPDATE tasks SET calendarUri = '' " + "WHERE calendarUri NOT NULL AND calendarUri != ''")
public abstract int clearAllCalendarEvents();
- @android.arch.persistence.room.Query(
+ @androidx.room.Query(
"SELECT calendarUri FROM tasks "
+ "WHERE completed > 0 AND calendarUri NOT NULL AND calendarUri != ''")
public abstract List getCompletedCalendarEvents();
- @android.arch.persistence.room.Query(
+ @androidx.room.Query(
"UPDATE tasks SET calendarUri = '' "
+ "WHERE completed > 0 AND calendarUri NOT NULL AND calendarUri != ''")
public abstract int clearCompletedCalendarEvents();
@@ -178,7 +178,7 @@ public abstract class TaskDao {
return false;
}
- @android.arch.persistence.room.Query(
+ @androidx.room.Query(
"SELECT * FROM tasks "
+ "WHERE completed = 0 AND deleted = 0 AND hideUntil < (strftime('%s','now')*1000) "
+ "ORDER BY (CASE WHEN (dueDate=0) THEN (strftime('%s','now')*1000)*2 ELSE ((CASE WHEN (dueDate / 60000) > 0 THEN dueDate ELSE (dueDate + 43140000) END)) END) + 172800000 * importance ASC "
diff --git a/app/src/main/java/com/todoroo/astrid/data/Task.java b/app/src/main/java/com/todoroo/astrid/data/Task.java
index cd617d662..c503d8140 100644
--- a/app/src/main/java/com/todoroo/astrid/data/Task.java
+++ b/app/src/main/java/com/todoroo/astrid/data/Task.java
@@ -8,16 +8,16 @@ package com.todoroo.astrid.data;
import static java.lang.annotation.RetentionPolicy.SOURCE;
import static org.tasks.date.DateTimeUtils.newDateTime;
-import android.arch.persistence.room.ColumnInfo;
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.Ignore;
-import android.arch.persistence.room.Index;
-import android.arch.persistence.room.PrimaryKey;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.Ignore;
+import androidx.room.Index;
+import androidx.room.PrimaryKey;
import android.content.ContentValues;
import android.database.Cursor;
import android.os.Parcel;
import android.os.Parcelable;
-import android.support.annotation.IntDef;
+import androidx.annotation.IntDef;
import android.text.TextUtils;
import com.google.common.base.Strings;
import com.google.ical.values.RRule;
diff --git a/app/src/main/java/com/todoroo/astrid/files/FilesControlSet.java b/app/src/main/java/com/todoroo/astrid/files/FilesControlSet.java
index 3d424d121..95a31b28b 100644
--- a/app/src/main/java/com/todoroo/astrid/files/FilesControlSet.java
+++ b/app/src/main/java/com/todoroo/astrid/files/FilesControlSet.java
@@ -19,7 +19,7 @@ import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
diff --git a/app/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java b/app/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java
index 7c61647ae..f337c4148 100644
--- a/app/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java
+++ b/app/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java
@@ -8,7 +8,7 @@ package com.todoroo.astrid.gtasks;
import static com.google.common.collect.Lists.newArrayList;
import static com.google.common.collect.Lists.transform;
-import android.support.v4.util.Pair;
+import androidx.core.util.Pair;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.GtasksFilter;
import java.util.List;
diff --git a/app/src/main/java/com/todoroo/astrid/notes/CommentsController.java b/app/src/main/java/com/todoroo/astrid/notes/CommentsController.java
index 1670e2b20..a12faf44b 100644
--- a/app/src/main/java/com/todoroo/astrid/notes/CommentsController.java
+++ b/app/src/main/java/com/todoroo/astrid/notes/CommentsController.java
@@ -5,7 +5,7 @@
*/
package com.todoroo.astrid.notes;
-import static android.support.v4.content.ContextCompat.getColor;
+import static androidx.core.content.ContextCompat.getColor;
import static org.tasks.files.FileHelper.getPathFromUri;
import static org.tasks.files.ImageHelper.sampleBitmap;
@@ -13,7 +13,7 @@ import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
-import android.support.v4.content.FileProvider;
+import androidx.core.content.FileProvider;
import android.text.Html;
import android.text.util.Linkify;
import android.view.View;
diff --git a/app/src/main/java/com/todoroo/astrid/provider/Astrid2TaskProvider.java b/app/src/main/java/com/todoroo/astrid/provider/Astrid2TaskProvider.java
index 99a6dc832..c971f925f 100644
--- a/app/src/main/java/com/todoroo/astrid/provider/Astrid2TaskProvider.java
+++ b/app/src/main/java/com/todoroo/astrid/provider/Astrid2TaskProvider.java
@@ -11,7 +11,7 @@ import android.content.UriMatcher;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.net.Uri;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import com.google.common.base.Joiner;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
diff --git a/app/src/main/java/com/todoroo/astrid/repeats/RepeatControlSet.java b/app/src/main/java/com/todoroo/astrid/repeats/RepeatControlSet.java
index ced7b86e9..a8a3d6d01 100644
--- a/app/src/main/java/com/todoroo/astrid/repeats/RepeatControlSet.java
+++ b/app/src/main/java/com/todoroo/astrid/repeats/RepeatControlSet.java
@@ -5,7 +5,7 @@
*/
package com.todoroo.astrid.repeats;
-import static android.support.v4.content.ContextCompat.getColor;
+import static androidx.core.content.ContextCompat.getColor;
import static com.google.common.collect.Lists.newArrayList;
import static com.google.ical.values.Frequency.MONTHLY;
import static org.tasks.repeats.BasicRecurrenceDialog.newBasicRecurrenceDialog;
@@ -14,10 +14,10 @@ import static org.tasks.time.DateTimeUtils.currentTimeMillis;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.graphics.drawable.DrawableCompat;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
diff --git a/app/src/main/java/com/todoroo/astrid/tags/TagsControlSet.java b/app/src/main/java/com/todoroo/astrid/tags/TagsControlSet.java
index 02e3bf1cd..246fc2235 100644
--- a/app/src/main/java/com/todoroo/astrid/tags/TagsControlSet.java
+++ b/app/src/main/java/com/todoroo/astrid/tags/TagsControlSet.java
@@ -16,11 +16,11 @@ import static com.todoroo.andlib.utility.AndroidUtilities.atLeastJellybeanMR1;
import android.annotation.SuppressLint;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.graphics.drawable.DrawableCompat;
-import android.support.v7.app.AlertDialog;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
+import androidx.appcompat.app.AlertDialog;
import android.text.Editable;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
diff --git a/app/src/main/java/com/todoroo/astrid/timers/TimerControlSet.java b/app/src/main/java/com/todoroo/astrid/timers/TimerControlSet.java
index 7eba46672..d57a4c06c 100644
--- a/app/src/main/java/com/todoroo/astrid/timers/TimerControlSet.java
+++ b/app/src/main/java/com/todoroo/astrid/timers/TimerControlSet.java
@@ -9,8 +9,8 @@ import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.SystemClock;
-import android.support.annotation.Nullable;
-import android.support.v7.app.AlertDialog;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AlertDialog;
import android.text.TextUtils;
import android.text.format.DateFormat;
import android.text.format.DateUtils;
diff --git a/app/src/main/java/com/todoroo/astrid/timers/TimerPlugin.java b/app/src/main/java/com/todoroo/astrid/timers/TimerPlugin.java
index a27d00d05..147acf0d0 100644
--- a/app/src/main/java/com/todoroo/astrid/timers/TimerPlugin.java
+++ b/app/src/main/java/com/todoroo/astrid/timers/TimerPlugin.java
@@ -11,7 +11,7 @@ import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
-import android.support.v4.app.NotificationCompat;
+import androidx.core.app.NotificationCompat;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskDao;
diff --git a/app/src/main/java/com/todoroo/astrid/ui/CheckableImageView.java b/app/src/main/java/com/todoroo/astrid/ui/CheckableImageView.java
index f18d30185..2f5d76972 100644
--- a/app/src/main/java/com/todoroo/astrid/ui/CheckableImageView.java
+++ b/app/src/main/java/com/todoroo/astrid/ui/CheckableImageView.java
@@ -6,7 +6,7 @@
package com.todoroo.astrid.ui;
import android.content.Context;
-import android.support.v7.widget.AppCompatImageView;
+import androidx.appcompat.widget.AppCompatImageView;
import android.util.AttributeSet;
import android.view.ViewDebug;
import android.widget.Checkable;
diff --git a/app/src/main/java/com/todoroo/astrid/ui/EditTitleControlSet.java b/app/src/main/java/com/todoroo/astrid/ui/EditTitleControlSet.java
index 8859b7648..159fa1f1e 100644
--- a/app/src/main/java/com/todoroo/astrid/ui/EditTitleControlSet.java
+++ b/app/src/main/java/com/todoroo/astrid/ui/EditTitleControlSet.java
@@ -8,7 +8,7 @@ package com.todoroo.astrid.ui;
import android.content.Context;
import android.graphics.Paint;
import android.os.Bundle;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
diff --git a/app/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.java b/app/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.java
index b9f60f911..5a2e0fde1 100644
--- a/app/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.java
+++ b/app/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.java
@@ -5,7 +5,7 @@
*/
package com.todoroo.astrid.ui;
-import static android.support.v4.content.ContextCompat.getColor;
+import static androidx.core.content.ContextCompat.getColor;
import static com.todoroo.astrid.data.Task.HIDE_UNTIL_DAY_BEFORE;
import static com.todoroo.astrid.data.Task.HIDE_UNTIL_DUE;
import static com.todoroo.astrid.data.Task.HIDE_UNTIL_NONE;
@@ -17,8 +17,8 @@ import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/com/todoroo/astrid/ui/NNumberPickerDialog.java b/app/src/main/java/com/todoroo/astrid/ui/NNumberPickerDialog.java
index 381a16437..1799f8bb4 100644
--- a/app/src/main/java/com/todoroo/astrid/ui/NNumberPickerDialog.java
+++ b/app/src/main/java/com/todoroo/astrid/ui/NNumberPickerDialog.java
@@ -8,7 +8,7 @@ package com.todoroo.astrid.ui;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
-import android.support.v7.app.AlertDialog;
+import androidx.appcompat.app.AlertDialog;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
diff --git a/app/src/main/java/com/todoroo/astrid/ui/NumberPickerButton.java b/app/src/main/java/com/todoroo/astrid/ui/NumberPickerButton.java
index 2f1b4795e..68beeb273 100644
--- a/app/src/main/java/com/todoroo/astrid/ui/NumberPickerButton.java
+++ b/app/src/main/java/com/todoroo/astrid/ui/NumberPickerButton.java
@@ -6,7 +6,7 @@
package com.todoroo.astrid.ui;
import android.content.Context;
-import android.support.v7.widget.AppCompatImageButton;
+import androidx.appcompat.widget.AppCompatImageButton;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;
diff --git a/app/src/main/java/com/todoroo/astrid/ui/ReminderControlSet.java b/app/src/main/java/com/todoroo/astrid/ui/ReminderControlSet.java
index b20854796..aa07cc8da 100644
--- a/app/src/main/java/com/todoroo/astrid/ui/ReminderControlSet.java
+++ b/app/src/main/java/com/todoroo/astrid/ui/ReminderControlSet.java
@@ -19,8 +19,8 @@ import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcelable;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
diff --git a/app/src/main/java/com/todoroo/astrid/voice/AACRecorder.java b/app/src/main/java/com/todoroo/astrid/voice/AACRecorder.java
index 7cd99e04d..8e0c432c5 100644
--- a/app/src/main/java/com/todoroo/astrid/voice/AACRecorder.java
+++ b/app/src/main/java/com/todoroo/astrid/voice/AACRecorder.java
@@ -1,6 +1,6 @@
package com.todoroo.astrid.voice;
-import android.arch.lifecycle.ViewModel;
+import androidx.lifecycle.ViewModel;
import android.media.MediaRecorder;
import android.os.SystemClock;
import java.io.IOException;
diff --git a/app/src/main/java/org/tasks/LocalBroadcastManager.java b/app/src/main/java/org/tasks/LocalBroadcastManager.java
index f07be3edd..dfefa5675 100644
--- a/app/src/main/java/org/tasks/LocalBroadcastManager.java
+++ b/app/src/main/java/org/tasks/LocalBroadcastManager.java
@@ -16,13 +16,13 @@ public class LocalBroadcastManager {
private static final String REPEAT = BuildConfig.APPLICATION_ID + ".REPEAT";
private static final String REFRESH_PURCHASES = BuildConfig.APPLICATION_ID + ".REFRESH_PURCHASES";
- private final android.support.v4.content.LocalBroadcastManager localBroadcastManager;
+ private final androidx.localbroadcastmanager.content.LocalBroadcastManager localBroadcastManager;
private final AppWidgetManager appWidgetManager;
@Inject
public LocalBroadcastManager(@ForApplication Context context, AppWidgetManager appWidgetManager) {
this.appWidgetManager = appWidgetManager;
- localBroadcastManager = android.support.v4.content.LocalBroadcastManager.getInstance(context);
+ localBroadcastManager = androidx.localbroadcastmanager.content.LocalBroadcastManager.getInstance(context);
}
public void registerRefreshReceiver(BroadcastReceiver broadcastReceiver) {
diff --git a/app/src/main/java/org/tasks/Notifier.java b/app/src/main/java/org/tasks/Notifier.java
index 5ad394070..8d0173d97 100644
--- a/app/src/main/java/org/tasks/Notifier.java
+++ b/app/src/main/java/org/tasks/Notifier.java
@@ -8,7 +8,7 @@ import static org.tasks.time.DateTimeUtils.currentTimeMillis;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
-import android.support.v4.app.NotificationCompat;
+import androidx.core.app.NotificationCompat;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.activity.MainActivity;
import com.todoroo.astrid.api.Filter;
diff --git a/app/src/main/java/org/tasks/activities/CalendarSelectionActivity.java b/app/src/main/java/org/tasks/activities/CalendarSelectionActivity.java
index c09b44bee..882fe616b 100644
--- a/app/src/main/java/org/tasks/activities/CalendarSelectionActivity.java
+++ b/app/src/main/java/org/tasks/activities/CalendarSelectionActivity.java
@@ -4,7 +4,7 @@ import static org.tasks.activities.CalendarSelectionDialog.newCalendarSelectionD
import android.content.Intent;
import android.os.Bundle;
-import android.support.v4.app.FragmentManager;
+import androidx.fragment.app.FragmentManager;
import org.tasks.calendars.AndroidCalendar;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.ThemedInjectingAppCompatActivity;
diff --git a/app/src/main/java/org/tasks/activities/CalendarSelectionDialog.java b/app/src/main/java/org/tasks/activities/CalendarSelectionDialog.java
index 8901b41ad..ca0c46132 100644
--- a/app/src/main/java/org/tasks/activities/CalendarSelectionDialog.java
+++ b/app/src/main/java/org/tasks/activities/CalendarSelectionDialog.java
@@ -7,8 +7,8 @@ import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v7.app.AlertDialog;
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import android.widget.ListView;
import android.widget.Toast;
import com.google.common.base.Strings;
diff --git a/app/src/main/java/org/tasks/activities/CameraActivity.java b/app/src/main/java/org/tasks/activities/CameraActivity.java
index f839578e1..210209318 100644
--- a/app/src/main/java/org/tasks/activities/CameraActivity.java
+++ b/app/src/main/java/org/tasks/activities/CameraActivity.java
@@ -9,7 +9,7 @@ import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
-import android.support.v4.content.FileProvider;
+import androidx.core.content.FileProvider;
import android.widget.Toast;
import com.todoroo.astrid.utility.Constants;
import java.io.File;
diff --git a/app/src/main/java/org/tasks/activities/FilterSettingsActivity.java b/app/src/main/java/org/tasks/activities/FilterSettingsActivity.java
index 68d0977fa..1168d919c 100644
--- a/app/src/main/java/org/tasks/activities/FilterSettingsActivity.java
+++ b/app/src/main/java/org/tasks/activities/FilterSettingsActivity.java
@@ -10,10 +10,10 @@ import static android.text.TextUtils.isEmpty;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
-import android.support.design.widget.TextInputEditText;
-import android.support.design.widget.TextInputLayout;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.widget.Toolbar;
+import com.google.android.material.textfield.TextInputEditText;
+import com.google.android.material.textfield.TextInputLayout;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.widget.Toolbar;
import android.view.MenuItem;
import android.view.inputmethod.InputMethodManager;
import butterknife.BindView;
diff --git a/app/src/main/java/org/tasks/activities/GoogleTaskListSettingsActivity.java b/app/src/main/java/org/tasks/activities/GoogleTaskListSettingsActivity.java
index 27a192c2e..e5c17927f 100644
--- a/app/src/main/java/org/tasks/activities/GoogleTaskListSettingsActivity.java
+++ b/app/src/main/java/org/tasks/activities/GoogleTaskListSettingsActivity.java
@@ -8,9 +8,9 @@ import static org.tasks.gtasks.RenameListDialog.newRenameListDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
-import android.support.design.widget.TextInputEditText;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.widget.Toolbar;
+import com.google.android.material.textfield.TextInputEditText;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.widget.Toolbar;
import android.text.InputType;
import android.view.MenuItem;
import android.view.inputmethod.InputMethodManager;
diff --git a/app/src/main/java/org/tasks/activities/RemoteListSupportPicker.java b/app/src/main/java/org/tasks/activities/RemoteListSupportPicker.java
index 5ed9f9273..22af2a02a 100644
--- a/app/src/main/java/org/tasks/activities/RemoteListSupportPicker.java
+++ b/app/src/main/java/org/tasks/activities/RemoteListSupportPicker.java
@@ -4,9 +4,9 @@ import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v4.app.Fragment;
-import android.support.v7.app.AlertDialog;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.appcompat.app.AlertDialog;
import com.todoroo.astrid.adapter.FilterAdapter;
import com.todoroo.astrid.api.CaldavFilter;
import com.todoroo.astrid.api.Filter;
diff --git a/app/src/main/java/org/tasks/activities/TagSettingsActivity.java b/app/src/main/java/org/tasks/activities/TagSettingsActivity.java
index f624ad2b2..2c70fbe76 100644
--- a/app/src/main/java/org/tasks/activities/TagSettingsActivity.java
+++ b/app/src/main/java/org/tasks/activities/TagSettingsActivity.java
@@ -10,10 +10,10 @@ import static android.text.TextUtils.isEmpty;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
-import android.support.design.widget.TextInputEditText;
-import android.support.design.widget.TextInputLayout;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.widget.Toolbar;
+import com.google.android.material.textfield.TextInputEditText;
+import com.google.android.material.textfield.TextInputLayout;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.widget.Toolbar;
import android.text.InputType;
import android.view.MenuItem;
import android.view.inputmethod.InputMethodManager;
diff --git a/app/src/main/java/org/tasks/backup/TasksJsonExporter.java b/app/src/main/java/org/tasks/backup/TasksJsonExporter.java
index 26fb59bd3..ad400e4fa 100755
--- a/app/src/main/java/org/tasks/backup/TasksJsonExporter.java
+++ b/app/src/main/java/org/tasks/backup/TasksJsonExporter.java
@@ -6,7 +6,7 @@ import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Handler;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
import android.widget.Toast;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
diff --git a/app/src/main/java/org/tasks/billing/CardsWithHeadersDecoration.java b/app/src/main/java/org/tasks/billing/CardsWithHeadersDecoration.java
index 6cd684b8e..97d9956f2 100644
--- a/app/src/main/java/org/tasks/billing/CardsWithHeadersDecoration.java
+++ b/app/src/main/java/org/tasks/billing/CardsWithHeadersDecoration.java
@@ -14,7 +14,7 @@
package org.tasks.billing;
import android.graphics.Rect;
-import android.support.v7.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView;
import android.view.View;
import org.tasks.billing.row.RowDataProvider;
import org.tasks.billing.row.SkuRowData;
diff --git a/app/src/main/java/org/tasks/billing/PurchaseActivity.java b/app/src/main/java/org/tasks/billing/PurchaseActivity.java
index 99f67edfa..e2e177224 100644
--- a/app/src/main/java/org/tasks/billing/PurchaseActivity.java
+++ b/app/src/main/java/org/tasks/billing/PurchaseActivity.java
@@ -16,10 +16,10 @@ import android.content.Intent;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.Toolbar;
-import android.support.v7.widget.Toolbar.OnMenuItemClickListener;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.appcompat.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar.OnMenuItemClickListener;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
diff --git a/app/src/main/java/org/tasks/billing/SkusAdapter.java b/app/src/main/java/org/tasks/billing/SkusAdapter.java
index 7f78b5a63..997c9be97 100644
--- a/app/src/main/java/org/tasks/billing/SkusAdapter.java
+++ b/app/src/main/java/org/tasks/billing/SkusAdapter.java
@@ -20,8 +20,8 @@ import static java.lang.annotation.RetentionPolicy.SOURCE;
import static java.util.Arrays.asList;
import android.content.Context;
-import android.support.annotation.IntDef;
-import android.support.v7.widget.RecyclerView;
+import androidx.annotation.IntDef;
+import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/org/tasks/billing/row/RowViewHolder.java b/app/src/main/java/org/tasks/billing/row/RowViewHolder.java
index 07ddc6ef6..63dfbfad6 100644
--- a/app/src/main/java/org/tasks/billing/row/RowViewHolder.java
+++ b/app/src/main/java/org/tasks/billing/row/RowViewHolder.java
@@ -1,6 +1,6 @@
package org.tasks.billing.row;
-import android.support.v7.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
diff --git a/app/src/main/java/org/tasks/caldav/CaldavAccountSettingsActivity.java b/app/src/main/java/org/tasks/caldav/CaldavAccountSettingsActivity.java
index c138db04f..c59ae7ec9 100644
--- a/app/src/main/java/org/tasks/caldav/CaldavAccountSettingsActivity.java
+++ b/app/src/main/java/org/tasks/caldav/CaldavAccountSettingsActivity.java
@@ -7,11 +7,11 @@ import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
-import android.support.design.widget.Snackbar;
-import android.support.design.widget.TextInputEditText;
-import android.support.design.widget.TextInputLayout;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.widget.Toolbar;
+import com.google.android.material.snackbar.Snackbar;
+import com.google.android.material.textfield.TextInputEditText;
+import com.google.android.material.textfield.TextInputLayout;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.widget.Toolbar;
import android.view.MenuItem;
import android.view.inputmethod.InputMethodManager;
import android.widget.LinearLayout;
diff --git a/app/src/main/java/org/tasks/caldav/CaldavCalendarSettingsActivity.java b/app/src/main/java/org/tasks/caldav/CaldavCalendarSettingsActivity.java
index 3d9153abc..91e9e19db 100644
--- a/app/src/main/java/org/tasks/caldav/CaldavCalendarSettingsActivity.java
+++ b/app/src/main/java/org/tasks/caldav/CaldavCalendarSettingsActivity.java
@@ -6,12 +6,12 @@ import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
-import android.support.design.widget.Snackbar;
-import android.support.design.widget.TextInputEditText;
-import android.support.design.widget.TextInputLayout;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.widget.Toolbar;
-import android.support.v7.widget.Toolbar.OnMenuItemClickListener;
+import com.google.android.material.snackbar.Snackbar;
+import com.google.android.material.textfield.TextInputEditText;
+import com.google.android.material.textfield.TextInputLayout;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar.OnMenuItemClickListener;
import android.text.InputType;
import android.view.MenuItem;
import android.view.View;
diff --git a/app/src/main/java/org/tasks/caldav/CaldavFilterExposer.java b/app/src/main/java/org/tasks/caldav/CaldavFilterExposer.java
index f8625cafd..8ba4afed6 100644
--- a/app/src/main/java/org/tasks/caldav/CaldavFilterExposer.java
+++ b/app/src/main/java/org/tasks/caldav/CaldavFilterExposer.java
@@ -2,7 +2,7 @@ package org.tasks.caldav;
import static com.google.common.collect.Lists.transform;
-import android.support.v4.util.Pair;
+import androidx.core.util.Pair;
import com.todoroo.astrid.api.CaldavFilter;
import com.todoroo.astrid.api.Filter;
import java.util.ArrayList;
diff --git a/app/src/main/java/org/tasks/caldav/CaldavListFragment.java b/app/src/main/java/org/tasks/caldav/CaldavListFragment.java
index 866dc2e79..a0a71a53e 100644
--- a/app/src/main/java/org/tasks/caldav/CaldavListFragment.java
+++ b/app/src/main/java/org/tasks/caldav/CaldavListFragment.java
@@ -4,7 +4,7 @@ import static android.app.Activity.RESULT_OK;
import android.content.Intent;
import android.os.Bundle;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar;
import android.view.MenuItem;
import com.todoroo.astrid.activity.MainActivity;
import com.todoroo.astrid.activity.TaskListFragment;
diff --git a/app/src/main/java/org/tasks/calendars/CalendarEventProvider.java b/app/src/main/java/org/tasks/calendars/CalendarEventProvider.java
index 6e547d042..9c41d5974 100644
--- a/app/src/main/java/org/tasks/calendars/CalendarEventProvider.java
+++ b/app/src/main/java/org/tasks/calendars/CalendarEventProvider.java
@@ -7,7 +7,7 @@ import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.provider.CalendarContract;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
import android.text.TextUtils;
import com.todoroo.astrid.data.Task;
import java.util.ArrayList;
diff --git a/app/src/main/java/org/tasks/calendars/CalendarProvider.java b/app/src/main/java/org/tasks/calendars/CalendarProvider.java
index 7c91119dc..367f86986 100644
--- a/app/src/main/java/org/tasks/calendars/CalendarProvider.java
+++ b/app/src/main/java/org/tasks/calendars/CalendarProvider.java
@@ -7,7 +7,7 @@ import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.provider.CalendarContract;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
import com.google.common.base.Strings;
import java.util.ArrayList;
import java.util.Collections;
diff --git a/app/src/main/java/org/tasks/data/Alarm.java b/app/src/main/java/org/tasks/data/Alarm.java
index 203cb0eca..4e3f250a2 100644
--- a/app/src/main/java/org/tasks/data/Alarm.java
+++ b/app/src/main/java/org/tasks/data/Alarm.java
@@ -1,9 +1,9 @@
package org.tasks.data;
-import android.arch.persistence.room.ColumnInfo;
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.Ignore;
-import android.arch.persistence.room.PrimaryKey;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.Ignore;
+import androidx.room.PrimaryKey;
@Entity(tableName = "alarms")
public class Alarm {
diff --git a/app/src/main/java/org/tasks/data/AlarmDao.java b/app/src/main/java/org/tasks/data/AlarmDao.java
index 558528a1a..2bea4dbd2 100644
--- a/app/src/main/java/org/tasks/data/AlarmDao.java
+++ b/app/src/main/java/org/tasks/data/AlarmDao.java
@@ -1,9 +1,9 @@
package org.tasks.data;
-import android.arch.persistence.room.Dao;
-import android.arch.persistence.room.Delete;
-import android.arch.persistence.room.Insert;
-import android.arch.persistence.room.Query;
+import androidx.room.Dao;
+import androidx.room.Delete;
+import androidx.room.Insert;
+import androidx.room.Query;
import java.util.List;
@Dao
diff --git a/app/src/main/java/org/tasks/data/CaldavAccount.java b/app/src/main/java/org/tasks/data/CaldavAccount.java
index abc811ea0..df87fdee8 100644
--- a/app/src/main/java/org/tasks/data/CaldavAccount.java
+++ b/app/src/main/java/org/tasks/data/CaldavAccount.java
@@ -2,10 +2,10 @@ package org.tasks.data;
import static com.todoroo.astrid.data.Task.NO_UUID;
-import android.arch.persistence.room.ColumnInfo;
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.Ignore;
-import android.arch.persistence.room.PrimaryKey;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.Ignore;
+import androidx.room.PrimaryKey;
import android.os.Parcel;
import android.os.Parcelable;
diff --git a/app/src/main/java/org/tasks/data/CaldavCalendar.java b/app/src/main/java/org/tasks/data/CaldavCalendar.java
index e4873703b..60154a57a 100644
--- a/app/src/main/java/org/tasks/data/CaldavCalendar.java
+++ b/app/src/main/java/org/tasks/data/CaldavCalendar.java
@@ -2,10 +2,10 @@ package org.tasks.data;
import static com.todoroo.astrid.data.Task.NO_UUID;
-import android.arch.persistence.room.ColumnInfo;
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.Ignore;
-import android.arch.persistence.room.PrimaryKey;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.Ignore;
+import androidx.room.PrimaryKey;
import android.os.Parcel;
import android.os.Parcelable;
diff --git a/app/src/main/java/org/tasks/data/CaldavDao.java b/app/src/main/java/org/tasks/data/CaldavDao.java
index 997b32fc3..1ae0dc994 100644
--- a/app/src/main/java/org/tasks/data/CaldavDao.java
+++ b/app/src/main/java/org/tasks/data/CaldavDao.java
@@ -1,10 +1,10 @@
package org.tasks.data;
-import android.arch.persistence.room.Dao;
-import android.arch.persistence.room.Delete;
-import android.arch.persistence.room.Insert;
-import android.arch.persistence.room.Query;
-import android.arch.persistence.room.Update;
+import androidx.room.Dao;
+import androidx.room.Delete;
+import androidx.room.Insert;
+import androidx.room.Query;
+import androidx.room.Update;
import java.util.List;
@Dao
diff --git a/app/src/main/java/org/tasks/data/CaldavTask.java b/app/src/main/java/org/tasks/data/CaldavTask.java
index afafe5f65..e7ed38891 100644
--- a/app/src/main/java/org/tasks/data/CaldavTask.java
+++ b/app/src/main/java/org/tasks/data/CaldavTask.java
@@ -1,9 +1,9 @@
package org.tasks.data;
-import android.arch.persistence.room.ColumnInfo;
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.Ignore;
-import android.arch.persistence.room.PrimaryKey;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.Ignore;
+import androidx.room.PrimaryKey;
import com.todoroo.andlib.data.Table;
@Entity(tableName = "caldav_tasks")
diff --git a/app/src/main/java/org/tasks/data/DeletionDao.java b/app/src/main/java/org/tasks/data/DeletionDao.java
index e6a4bafad..8ff48fed2 100644
--- a/app/src/main/java/org/tasks/data/DeletionDao.java
+++ b/app/src/main/java/org/tasks/data/DeletionDao.java
@@ -3,10 +3,10 @@ package org.tasks.data;
import static com.google.common.collect.Iterables.partition;
import static com.todoroo.andlib.utility.DateUtilities.now;
-import android.arch.persistence.room.Dao;
-import android.arch.persistence.room.Delete;
-import android.arch.persistence.room.Query;
-import android.arch.persistence.room.Transaction;
+import androidx.room.Dao;
+import androidx.room.Delete;
+import androidx.room.Query;
+import androidx.room.Transaction;
import com.todoroo.astrid.dao.Database;
import java.util.ArrayList;
import java.util.List;
diff --git a/app/src/main/java/org/tasks/data/Filter.java b/app/src/main/java/org/tasks/data/Filter.java
index ef46028fc..104b23c84 100644
--- a/app/src/main/java/org/tasks/data/Filter.java
+++ b/app/src/main/java/org/tasks/data/Filter.java
@@ -1,8 +1,8 @@
package org.tasks.data;
-import android.arch.persistence.room.ColumnInfo;
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.PrimaryKey;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.PrimaryKey;
@Entity(tableName = "filters")
public class Filter {
diff --git a/app/src/main/java/org/tasks/data/FilterDao.java b/app/src/main/java/org/tasks/data/FilterDao.java
index 0e3ad9057..40f3bb706 100644
--- a/app/src/main/java/org/tasks/data/FilterDao.java
+++ b/app/src/main/java/org/tasks/data/FilterDao.java
@@ -1,10 +1,10 @@
package org.tasks.data;
-import android.arch.persistence.room.Dao;
-import android.arch.persistence.room.Insert;
-import android.arch.persistence.room.OnConflictStrategy;
-import android.arch.persistence.room.Query;
-import android.arch.persistence.room.Update;
+import androidx.room.Dao;
+import androidx.room.Insert;
+import androidx.room.OnConflictStrategy;
+import androidx.room.Query;
+import androidx.room.Update;
import java.util.List;
@Dao
diff --git a/app/src/main/java/org/tasks/data/GoogleTask.java b/app/src/main/java/org/tasks/data/GoogleTask.java
index a699c644d..7478bed68 100644
--- a/app/src/main/java/org/tasks/data/GoogleTask.java
+++ b/app/src/main/java/org/tasks/data/GoogleTask.java
@@ -1,9 +1,9 @@
package org.tasks.data;
-import android.arch.persistence.room.ColumnInfo;
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.Ignore;
-import android.arch.persistence.room.PrimaryKey;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.Ignore;
+import androidx.room.PrimaryKey;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.Table;
import com.todoroo.andlib.utility.DateUtilities;
diff --git a/app/src/main/java/org/tasks/data/GoogleTaskAccount.java b/app/src/main/java/org/tasks/data/GoogleTaskAccount.java
index 15d9ca16c..23539e1b9 100644
--- a/app/src/main/java/org/tasks/data/GoogleTaskAccount.java
+++ b/app/src/main/java/org/tasks/data/GoogleTaskAccount.java
@@ -1,9 +1,9 @@
package org.tasks.data;
-import android.arch.persistence.room.ColumnInfo;
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.Ignore;
-import android.arch.persistence.room.PrimaryKey;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.Ignore;
+import androidx.room.PrimaryKey;
import android.os.Parcel;
import android.os.Parcelable;
diff --git a/app/src/main/java/org/tasks/data/GoogleTaskDao.java b/app/src/main/java/org/tasks/data/GoogleTaskDao.java
index 3dad109ef..b757d74a1 100644
--- a/app/src/main/java/org/tasks/data/GoogleTaskDao.java
+++ b/app/src/main/java/org/tasks/data/GoogleTaskDao.java
@@ -1,10 +1,10 @@
package org.tasks.data;
-import android.arch.persistence.room.Dao;
-import android.arch.persistence.room.Delete;
-import android.arch.persistence.room.Insert;
-import android.arch.persistence.room.Query;
-import android.arch.persistence.room.Update;
+import androidx.room.Dao;
+import androidx.room.Delete;
+import androidx.room.Insert;
+import androidx.room.Query;
+import androidx.room.Update;
import java.util.List;
@Dao
diff --git a/app/src/main/java/org/tasks/data/GoogleTaskList.java b/app/src/main/java/org/tasks/data/GoogleTaskList.java
index ad5503a7c..577910c72 100644
--- a/app/src/main/java/org/tasks/data/GoogleTaskList.java
+++ b/app/src/main/java/org/tasks/data/GoogleTaskList.java
@@ -1,9 +1,9 @@
package org.tasks.data;
-import android.arch.persistence.room.ColumnInfo;
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.Ignore;
-import android.arch.persistence.room.PrimaryKey;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.Ignore;
+import androidx.room.PrimaryKey;
import android.os.Parcel;
import android.os.Parcelable;
diff --git a/app/src/main/java/org/tasks/data/GoogleTaskListDao.java b/app/src/main/java/org/tasks/data/GoogleTaskListDao.java
index cb21be191..d1c8d712d 100644
--- a/app/src/main/java/org/tasks/data/GoogleTaskListDao.java
+++ b/app/src/main/java/org/tasks/data/GoogleTaskListDao.java
@@ -1,10 +1,10 @@
package org.tasks.data;
-import android.arch.persistence.room.Dao;
-import android.arch.persistence.room.Insert;
-import android.arch.persistence.room.OnConflictStrategy;
-import android.arch.persistence.room.Query;
-import android.arch.persistence.room.Update;
+import androidx.room.Dao;
+import androidx.room.Insert;
+import androidx.room.OnConflictStrategy;
+import androidx.room.Query;
+import androidx.room.Update;
import java.util.List;
@Dao
diff --git a/app/src/main/java/org/tasks/data/LimitOffsetDataSource.java b/app/src/main/java/org/tasks/data/LimitOffsetDataSource.java
index df936d61b..565230e15 100644
--- a/app/src/main/java/org/tasks/data/LimitOffsetDataSource.java
+++ b/app/src/main/java/org/tasks/data/LimitOffsetDataSource.java
@@ -1,11 +1,11 @@
package org.tasks.data;
-import android.arch.paging.PositionalDataSource;
-import android.arch.persistence.room.RoomDatabase;
+import androidx.paging.PositionalDataSource;
+import androidx.room.RoomDatabase;
import android.database.Cursor;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.annotation.WorkerThread;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.WorkerThread;
import com.todoroo.astrid.data.Task;
import java.util.ArrayList;
import java.util.Collections;
diff --git a/app/src/main/java/org/tasks/data/Location.java b/app/src/main/java/org/tasks/data/Location.java
index cd4b040d4..0cbf267f4 100644
--- a/app/src/main/java/org/tasks/data/Location.java
+++ b/app/src/main/java/org/tasks/data/Location.java
@@ -1,9 +1,9 @@
package org.tasks.data;
-import android.arch.persistence.room.ColumnInfo;
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.Ignore;
-import android.arch.persistence.room.PrimaryKey;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.Ignore;
+import androidx.room.PrimaryKey;
import android.os.Parcel;
import android.os.Parcelable;
import java.io.Serializable;
diff --git a/app/src/main/java/org/tasks/data/LocationDao.java b/app/src/main/java/org/tasks/data/LocationDao.java
index 0755bf2f3..894060e3c 100644
--- a/app/src/main/java/org/tasks/data/LocationDao.java
+++ b/app/src/main/java/org/tasks/data/LocationDao.java
@@ -1,9 +1,9 @@
package org.tasks.data;
-import android.arch.persistence.room.Dao;
-import android.arch.persistence.room.Delete;
-import android.arch.persistence.room.Insert;
-import android.arch.persistence.room.Query;
+import androidx.room.Dao;
+import androidx.room.Delete;
+import androidx.room.Insert;
+import androidx.room.Query;
import java.util.List;
@Dao
diff --git a/app/src/main/java/org/tasks/data/Tag.java b/app/src/main/java/org/tasks/data/Tag.java
index a49bb1b04..6d66b3dd2 100644
--- a/app/src/main/java/org/tasks/data/Tag.java
+++ b/app/src/main/java/org/tasks/data/Tag.java
@@ -1,10 +1,10 @@
package org.tasks.data;
-import android.arch.persistence.room.ColumnInfo;
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.Ignore;
-import android.arch.persistence.room.PrimaryKey;
-import android.support.annotation.NonNull;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.Ignore;
+import androidx.room.PrimaryKey;
+import androidx.annotation.NonNull;
import com.todoroo.andlib.data.Table;
import org.tasks.backup.XmlReader;
diff --git a/app/src/main/java/org/tasks/data/TagDao.java b/app/src/main/java/org/tasks/data/TagDao.java
index fea8a5342..2359f6d46 100644
--- a/app/src/main/java/org/tasks/data/TagDao.java
+++ b/app/src/main/java/org/tasks/data/TagDao.java
@@ -1,8 +1,8 @@
package org.tasks.data;
-import android.arch.persistence.room.Dao;
-import android.arch.persistence.room.Insert;
-import android.arch.persistence.room.Query;
+import androidx.room.Dao;
+import androidx.room.Insert;
+import androidx.room.Query;
import java.util.List;
@Dao
diff --git a/app/src/main/java/org/tasks/data/TagData.java b/app/src/main/java/org/tasks/data/TagData.java
index 4bc0699de..c03d78aff 100644
--- a/app/src/main/java/org/tasks/data/TagData.java
+++ b/app/src/main/java/org/tasks/data/TagData.java
@@ -1,10 +1,10 @@
package org.tasks.data;
import android.annotation.SuppressLint;
-import android.arch.persistence.room.ColumnInfo;
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.Ignore;
-import android.arch.persistence.room.PrimaryKey;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.Ignore;
+import androidx.room.PrimaryKey;
import android.os.Parcel;
import android.os.Parcelable;
import com.todoroo.astrid.data.Task;
diff --git a/app/src/main/java/org/tasks/data/TagDataDao.java b/app/src/main/java/org/tasks/data/TagDataDao.java
index 9ae480422..1fee4ee0a 100644
--- a/app/src/main/java/org/tasks/data/TagDataDao.java
+++ b/app/src/main/java/org/tasks/data/TagDataDao.java
@@ -1,9 +1,9 @@
package org.tasks.data;
-import android.arch.persistence.room.Dao;
-import android.arch.persistence.room.Insert;
-import android.arch.persistence.room.Query;
-import android.arch.persistence.room.Update;
+import androidx.room.Dao;
+import androidx.room.Insert;
+import androidx.room.Query;
+import androidx.room.Update;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.UUIDHelper;
import java.util.List;
diff --git a/app/src/main/java/org/tasks/data/TaskAttachment.java b/app/src/main/java/org/tasks/data/TaskAttachment.java
index 6899fe811..c686139e5 100644
--- a/app/src/main/java/org/tasks/data/TaskAttachment.java
+++ b/app/src/main/java/org/tasks/data/TaskAttachment.java
@@ -1,8 +1,8 @@
package org.tasks.data;
-import android.arch.persistence.room.ColumnInfo;
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.PrimaryKey;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.PrimaryKey;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.Table;
import com.todoroo.astrid.data.Task;
diff --git a/app/src/main/java/org/tasks/data/TaskAttachmentDao.java b/app/src/main/java/org/tasks/data/TaskAttachmentDao.java
index 2a81ba5c1..ba501d49f 100644
--- a/app/src/main/java/org/tasks/data/TaskAttachmentDao.java
+++ b/app/src/main/java/org/tasks/data/TaskAttachmentDao.java
@@ -1,11 +1,11 @@
package org.tasks.data;
-import android.arch.persistence.room.Dao;
-import android.arch.persistence.room.Delete;
-import android.arch.persistence.room.Insert;
-import android.arch.persistence.room.OnConflictStrategy;
-import android.arch.persistence.room.Query;
-import android.arch.persistence.room.Update;
+import androidx.room.Dao;
+import androidx.room.Delete;
+import androidx.room.Insert;
+import androidx.room.OnConflictStrategy;
+import androidx.room.Query;
+import androidx.room.Update;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.UUIDHelper;
import java.util.List;
diff --git a/app/src/main/java/org/tasks/data/TaskListMetadata.java b/app/src/main/java/org/tasks/data/TaskListMetadata.java
index 5e67e8e7d..0d2cdb7cd 100644
--- a/app/src/main/java/org/tasks/data/TaskListMetadata.java
+++ b/app/src/main/java/org/tasks/data/TaskListMetadata.java
@@ -1,8 +1,8 @@
package org.tasks.data;
-import android.arch.persistence.room.ColumnInfo;
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.PrimaryKey;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.PrimaryKey;
import com.todoroo.astrid.data.Task;
/**
diff --git a/app/src/main/java/org/tasks/data/TaskListMetadataDao.java b/app/src/main/java/org/tasks/data/TaskListMetadataDao.java
index 97c718190..27df2edfd 100644
--- a/app/src/main/java/org/tasks/data/TaskListMetadataDao.java
+++ b/app/src/main/java/org/tasks/data/TaskListMetadataDao.java
@@ -1,9 +1,9 @@
package org.tasks.data;
-import android.arch.persistence.room.Dao;
-import android.arch.persistence.room.Insert;
-import android.arch.persistence.room.Query;
-import android.arch.persistence.room.Update;
+import androidx.room.Dao;
+import androidx.room.Insert;
+import androidx.room.Query;
+import androidx.room.Update;
@Dao
public abstract class TaskListMetadataDao {
diff --git a/app/src/main/java/org/tasks/data/UserActivity.java b/app/src/main/java/org/tasks/data/UserActivity.java
index 551254a38..355e5e6a4 100644
--- a/app/src/main/java/org/tasks/data/UserActivity.java
+++ b/app/src/main/java/org/tasks/data/UserActivity.java
@@ -1,9 +1,9 @@
package org.tasks.data;
-import android.arch.persistence.room.ColumnInfo;
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.Ignore;
-import android.arch.persistence.room.PrimaryKey;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.Ignore;
+import androidx.room.PrimaryKey;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
diff --git a/app/src/main/java/org/tasks/data/UserActivityDao.java b/app/src/main/java/org/tasks/data/UserActivityDao.java
index 285bcae80..9e7803585 100644
--- a/app/src/main/java/org/tasks/data/UserActivityDao.java
+++ b/app/src/main/java/org/tasks/data/UserActivityDao.java
@@ -1,8 +1,8 @@
package org.tasks.data;
-import android.arch.persistence.room.Dao;
-import android.arch.persistence.room.Insert;
-import android.arch.persistence.room.Query;
+import androidx.room.Dao;
+import androidx.room.Insert;
+import androidx.room.Query;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.UUIDHelper;
diff --git a/app/src/main/java/org/tasks/db/Migrations.java b/app/src/main/java/org/tasks/db/Migrations.java
index 3a09468aa..1605e39e6 100644
--- a/app/src/main/java/org/tasks/db/Migrations.java
+++ b/app/src/main/java/org/tasks/db/Migrations.java
@@ -1,9 +1,9 @@
package org.tasks.db;
-import android.arch.persistence.db.SupportSQLiteDatabase;
-import android.arch.persistence.room.migration.Migration;
+import androidx.sqlite.db.SupportSQLiteDatabase;
+import androidx.room.migration.Migration;
import android.database.sqlite.SQLiteException;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import timber.log.Timber;
public class Migrations {
diff --git a/app/src/main/java/org/tasks/dialogs/AddAttachmentDialog.java b/app/src/main/java/org/tasks/dialogs/AddAttachmentDialog.java
index bb9514dcd..fab9035eb 100644
--- a/app/src/main/java/org/tasks/dialogs/AddAttachmentDialog.java
+++ b/app/src/main/java/org/tasks/dialogs/AddAttachmentDialog.java
@@ -8,7 +8,7 @@ import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.provider.MediaStore.Images.Media;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import com.todoroo.astrid.files.FilesControlSet;
import java.util.List;
import javax.inject.Inject;
diff --git a/app/src/main/java/org/tasks/dialogs/AlertDialogBuilder.java b/app/src/main/java/org/tasks/dialogs/AlertDialogBuilder.java
index 4f67924e8..da8f2d62c 100644
--- a/app/src/main/java/org/tasks/dialogs/AlertDialogBuilder.java
+++ b/app/src/main/java/org/tasks/dialogs/AlertDialogBuilder.java
@@ -4,7 +4,7 @@ import static com.todoroo.andlib.utility.AndroidUtilities.atLeastJellybeanMR1;
import android.content.Context;
import android.content.DialogInterface;
-import android.support.v7.app.AlertDialog;
+import androidx.appcompat.app.AlertDialog;
import android.view.ContextThemeWrapper;
import android.view.View;
import android.widget.ListAdapter;
diff --git a/app/src/main/java/org/tasks/dialogs/ColorPickerDialog.java b/app/src/main/java/org/tasks/dialogs/ColorPickerDialog.java
index 69d91997a..ac91f6bde 100644
--- a/app/src/main/java/org/tasks/dialogs/ColorPickerDialog.java
+++ b/app/src/main/java/org/tasks/dialogs/ColorPickerDialog.java
@@ -8,8 +8,8 @@ import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Parcelable;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
diff --git a/app/src/main/java/org/tasks/dialogs/ExportTasksDialog.java b/app/src/main/java/org/tasks/dialogs/ExportTasksDialog.java
index a32e407bc..640067787 100644
--- a/app/src/main/java/org/tasks/dialogs/ExportTasksDialog.java
+++ b/app/src/main/java/org/tasks/dialogs/ExportTasksDialog.java
@@ -3,7 +3,7 @@ package org.tasks.dialogs;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.os.Bundle;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import javax.inject.Inject;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Tracking;
diff --git a/app/src/main/java/org/tasks/dialogs/RecordAudioDialog.java b/app/src/main/java/org/tasks/dialogs/RecordAudioDialog.java
index 969bf22d1..de1eede0f 100644
--- a/app/src/main/java/org/tasks/dialogs/RecordAudioDialog.java
+++ b/app/src/main/java/org/tasks/dialogs/RecordAudioDialog.java
@@ -6,12 +6,12 @@ import static org.tasks.dialogs.AddAttachmentDialog.EXTRA_PATH;
import static org.tasks.dialogs.AddAttachmentDialog.EXTRA_TYPE;
import android.app.Dialog;
-import android.arch.lifecycle.ViewModelProviders;
+import androidx.lifecycle.ViewModelProviders;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v4.app.Fragment;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Chronometer;
diff --git a/app/src/main/java/org/tasks/dialogs/SeekBarDialog.java b/app/src/main/java/org/tasks/dialogs/SeekBarDialog.java
index b6b2d93e3..02bb38976 100644
--- a/app/src/main/java/org/tasks/dialogs/SeekBarDialog.java
+++ b/app/src/main/java/org/tasks/dialogs/SeekBarDialog.java
@@ -3,7 +3,7 @@ package org.tasks.dialogs;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
diff --git a/app/src/main/java/org/tasks/dialogs/SortDialog.java b/app/src/main/java/org/tasks/dialogs/SortDialog.java
index 7fb1b5c49..42224f197 100644
--- a/app/src/main/java/org/tasks/dialogs/SortDialog.java
+++ b/app/src/main/java/org/tasks/dialogs/SortDialog.java
@@ -6,8 +6,8 @@ import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v7.app.AlertDialog;
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import android.view.View;
import android.widget.Button;
import com.todoroo.astrid.core.SortHelper;
diff --git a/app/src/main/java/org/tasks/files/FileExplore.java b/app/src/main/java/org/tasks/files/FileExplore.java
index 3b5e83222..2f3901c31 100644
--- a/app/src/main/java/org/tasks/files/FileExplore.java
+++ b/app/src/main/java/org/tasks/files/FileExplore.java
@@ -7,7 +7,7 @@ import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import com.google.common.base.Strings;
import com.nononsenseapps.filepicker.FilePickerActivity;
import java.io.File;
diff --git a/app/src/main/java/org/tasks/files/FileHelper.java b/app/src/main/java/org/tasks/files/FileHelper.java
index 3eb372007..7e48499ef 100644
--- a/app/src/main/java/org/tasks/files/FileHelper.java
+++ b/app/src/main/java/org/tasks/files/FileHelper.java
@@ -10,7 +10,7 @@ import android.content.pm.ResolveInfo;
import android.database.Cursor;
import android.net.Uri;
import android.provider.MediaStore;
-import android.support.v4.content.FileProvider;
+import androidx.core.content.FileProvider;
import com.todoroo.astrid.utility.Constants;
import java.io.File;
import java.util.List;
diff --git a/app/src/main/java/org/tasks/filters/FilterProvider.java b/app/src/main/java/org/tasks/filters/FilterProvider.java
index 0bef4bd41..c6267e824 100644
--- a/app/src/main/java/org/tasks/filters/FilterProvider.java
+++ b/app/src/main/java/org/tasks/filters/FilterProvider.java
@@ -1,6 +1,6 @@
package org.tasks.filters;
-import android.support.v4.util.Pair;
+import androidx.core.util.Pair;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.core.BuiltInFilterExposer;
import com.todoroo.astrid.core.CustomFilterExposer;
diff --git a/app/src/main/java/org/tasks/fragments/CommentBarFragment.java b/app/src/main/java/org/tasks/fragments/CommentBarFragment.java
index ebe6915b0..4db893bd1 100644
--- a/app/src/main/java/org/tasks/fragments/CommentBarFragment.java
+++ b/app/src/main/java/org/tasks/fragments/CommentBarFragment.java
@@ -10,9 +10,9 @@ import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.graphics.drawable.DrawableCompat;
+import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
import android.text.TextUtils;
import android.util.TypedValue;
import android.view.KeyEvent;
diff --git a/app/src/main/java/org/tasks/fragments/TaskEditControlSetFragmentManager.java b/app/src/main/java/org/tasks/fragments/TaskEditControlSetFragmentManager.java
index 5214db97f..0e3d72508 100644
--- a/app/src/main/java/org/tasks/fragments/TaskEditControlSetFragmentManager.java
+++ b/app/src/main/java/org/tasks/fragments/TaskEditControlSetFragmentManager.java
@@ -2,7 +2,7 @@ package org.tasks.fragments;
import android.app.Activity;
import android.os.Bundle;
-import android.support.v4.app.FragmentManager;
+import androidx.fragment.app.FragmentManager;
import com.todoroo.astrid.activity.BeastModePreferences;
import com.todoroo.astrid.activity.TaskEditFragment;
import com.todoroo.astrid.data.Task;
diff --git a/app/src/main/java/org/tasks/gtasks/CreateListDialog.java b/app/src/main/java/org/tasks/gtasks/CreateListDialog.java
index 4e6451886..f3c0540da 100644
--- a/app/src/main/java/org/tasks/gtasks/CreateListDialog.java
+++ b/app/src/main/java/org/tasks/gtasks/CreateListDialog.java
@@ -6,8 +6,8 @@ import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import com.google.api.services.tasks.model.TaskList;
import com.todoroo.astrid.gtasks.api.GtasksInvoker;
import java.io.IOException;
diff --git a/app/src/main/java/org/tasks/gtasks/DeleteListDialog.java b/app/src/main/java/org/tasks/gtasks/DeleteListDialog.java
index 5fcd5ca31..497bd67fa 100644
--- a/app/src/main/java/org/tasks/gtasks/DeleteListDialog.java
+++ b/app/src/main/java/org/tasks/gtasks/DeleteListDialog.java
@@ -6,8 +6,8 @@ import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import com.todoroo.astrid.gtasks.api.GtasksInvoker;
import java.io.IOException;
import javax.inject.Inject;
diff --git a/app/src/main/java/org/tasks/gtasks/GoogleTaskSynchronizer.java b/app/src/main/java/org/tasks/gtasks/GoogleTaskSynchronizer.java
index 1017c52dd..c6d174b74 100644
--- a/app/src/main/java/org/tasks/gtasks/GoogleTaskSynchronizer.java
+++ b/app/src/main/java/org/tasks/gtasks/GoogleTaskSynchronizer.java
@@ -5,7 +5,7 @@ import static org.tasks.date.DateTimeUtils.newDateTime;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
-import android.support.v4.app.NotificationCompat;
+import androidx.core.app.NotificationCompat;
import android.text.TextUtils;
import com.google.api.client.googleapis.extensions.android.gms.auth.UserRecoverableAuthIOException;
import com.google.api.services.tasks.model.TaskList;
diff --git a/app/src/main/java/org/tasks/gtasks/RenameListDialog.java b/app/src/main/java/org/tasks/gtasks/RenameListDialog.java
index 283b4f8f5..c81a479d1 100644
--- a/app/src/main/java/org/tasks/gtasks/RenameListDialog.java
+++ b/app/src/main/java/org/tasks/gtasks/RenameListDialog.java
@@ -6,8 +6,8 @@ import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import com.google.api.services.tasks.model.TaskList;
import com.todoroo.astrid.gtasks.api.GtasksInvoker;
import java.io.IOException;
diff --git a/app/src/main/java/org/tasks/injection/ApplicationModule.java b/app/src/main/java/org/tasks/injection/ApplicationModule.java
index 3e28e165b..3009991af 100644
--- a/app/src/main/java/org/tasks/injection/ApplicationModule.java
+++ b/app/src/main/java/org/tasks/injection/ApplicationModule.java
@@ -2,7 +2,7 @@ package org.tasks.injection;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastMarshmallow;
-import android.arch.persistence.room.Room;
+import androidx.room.Room;
import android.content.Context;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.TaskDao;
diff --git a/app/src/main/java/org/tasks/injection/DialogFragmentModule.java b/app/src/main/java/org/tasks/injection/DialogFragmentModule.java
index 655cb78a4..a609cb006 100644
--- a/app/src/main/java/org/tasks/injection/DialogFragmentModule.java
+++ b/app/src/main/java/org/tasks/injection/DialogFragmentModule.java
@@ -1,7 +1,7 @@
package org.tasks.injection;
-import android.support.v4.app.DialogFragment;
-import android.support.v4.app.Fragment;
+import androidx.fragment.app.DialogFragment;
+import androidx.fragment.app.Fragment;
import dagger.Module;
import dagger.Provides;
diff --git a/app/src/main/java/org/tasks/injection/FragmentModule.java b/app/src/main/java/org/tasks/injection/FragmentModule.java
index 6f05379a0..09f2b8140 100644
--- a/app/src/main/java/org/tasks/injection/FragmentModule.java
+++ b/app/src/main/java/org/tasks/injection/FragmentModule.java
@@ -1,6 +1,6 @@
package org.tasks.injection;
-import android.support.v4.app.Fragment;
+import androidx.fragment.app.Fragment;
import dagger.Module;
import dagger.Provides;
diff --git a/app/src/main/java/org/tasks/injection/InjectingAppCompatActivity.java b/app/src/main/java/org/tasks/injection/InjectingAppCompatActivity.java
index 5d77ed622..438fe44ef 100644
--- a/app/src/main/java/org/tasks/injection/InjectingAppCompatActivity.java
+++ b/app/src/main/java/org/tasks/injection/InjectingAppCompatActivity.java
@@ -1,7 +1,7 @@
package org.tasks.injection;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
import org.tasks.locale.Locale;
public abstract class InjectingAppCompatActivity extends AppCompatActivity
diff --git a/app/src/main/java/org/tasks/injection/InjectingDialogFragment.java b/app/src/main/java/org/tasks/injection/InjectingDialogFragment.java
index 73dcd1673..a96598a87 100644
--- a/app/src/main/java/org/tasks/injection/InjectingDialogFragment.java
+++ b/app/src/main/java/org/tasks/injection/InjectingDialogFragment.java
@@ -1,7 +1,7 @@
package org.tasks.injection;
import android.app.Activity;
-import android.support.v4.app.DialogFragment;
+import androidx.fragment.app.DialogFragment;
public abstract class InjectingDialogFragment extends DialogFragment {
diff --git a/app/src/main/java/org/tasks/injection/InjectingFragment.java b/app/src/main/java/org/tasks/injection/InjectingFragment.java
index fc4160aec..9a1e0b41c 100644
--- a/app/src/main/java/org/tasks/injection/InjectingFragment.java
+++ b/app/src/main/java/org/tasks/injection/InjectingFragment.java
@@ -1,7 +1,7 @@
package org.tasks.injection;
import android.app.Activity;
-import android.support.v4.app.Fragment;
+import androidx.fragment.app.Fragment;
public abstract class InjectingFragment extends Fragment {
diff --git a/app/src/main/java/org/tasks/injection/InjectingJobIntentService.java b/app/src/main/java/org/tasks/injection/InjectingJobIntentService.java
index fc91a55a9..364d3a082 100644
--- a/app/src/main/java/org/tasks/injection/InjectingJobIntentService.java
+++ b/app/src/main/java/org/tasks/injection/InjectingJobIntentService.java
@@ -1,8 +1,8 @@
package org.tasks.injection;
import android.content.Intent;
-import android.support.annotation.NonNull;
-import android.support.v4.app.JobIntentService;
+import androidx.annotation.NonNull;
+import androidx.core.app.JobIntentService;
import javax.annotation.Nonnull;
import timber.log.Timber;
diff --git a/app/src/main/java/org/tasks/injection/InjectingPreferenceActivity.java b/app/src/main/java/org/tasks/injection/InjectingPreferenceActivity.java
index 91d5e4718..7f5095d3a 100644
--- a/app/src/main/java/org/tasks/injection/InjectingPreferenceActivity.java
+++ b/app/src/main/java/org/tasks/injection/InjectingPreferenceActivity.java
@@ -8,9 +8,9 @@ import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceCategory;
import android.preference.PreferenceGroup;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.widget.Toolbar;
-import android.support.v7.widget.Toolbar.OnMenuItemClickListener;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar.OnMenuItemClickListener;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/org/tasks/injection/InjectingWorker.java b/app/src/main/java/org/tasks/injection/InjectingWorker.java
index b2e37ba40..dbd2acc5c 100644
--- a/app/src/main/java/org/tasks/injection/InjectingWorker.java
+++ b/app/src/main/java/org/tasks/injection/InjectingWorker.java
@@ -1,7 +1,7 @@
package org.tasks.injection;
import android.content.Context;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import androidx.work.Worker;
import androidx.work.WorkerParameters;
import javax.inject.Inject;
diff --git a/app/src/main/java/org/tasks/injection/ThemedInjectingAppCompatActivity.java b/app/src/main/java/org/tasks/injection/ThemedInjectingAppCompatActivity.java
index 366d8f6f9..67fbe0196 100644
--- a/app/src/main/java/org/tasks/injection/ThemedInjectingAppCompatActivity.java
+++ b/app/src/main/java/org/tasks/injection/ThemedInjectingAppCompatActivity.java
@@ -1,7 +1,7 @@
package org.tasks.injection;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
import javax.inject.Inject;
import org.tasks.locale.Locale;
import org.tasks.themes.Theme;
diff --git a/app/src/main/java/org/tasks/intents/TaskIntents.java b/app/src/main/java/org/tasks/intents/TaskIntents.java
index 700807f2b..de467f78c 100644
--- a/app/src/main/java/org/tasks/intents/TaskIntents.java
+++ b/app/src/main/java/org/tasks/intents/TaskIntents.java
@@ -3,7 +3,7 @@ package org.tasks.intents;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.support.v4.app.TaskStackBuilder;
+import androidx.core.app.TaskStackBuilder;
import com.google.common.base.Strings;
import com.todoroo.astrid.activity.MainActivity;
import com.todoroo.astrid.api.Filter;
diff --git a/app/src/main/java/org/tasks/jobs/AfterSaveIntentService.java b/app/src/main/java/org/tasks/jobs/AfterSaveIntentService.java
index ae6cfb4c2..934a19fa4 100644
--- a/app/src/main/java/org/tasks/jobs/AfterSaveIntentService.java
+++ b/app/src/main/java/org/tasks/jobs/AfterSaveIntentService.java
@@ -8,7 +8,7 @@ import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.provider.CalendarContract;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import android.text.TextUtils;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.reminders.ReminderService;
diff --git a/app/src/main/java/org/tasks/jobs/BackupWork.java b/app/src/main/java/org/tasks/jobs/BackupWork.java
index a075acc61..2427633e2 100644
--- a/app/src/main/java/org/tasks/jobs/BackupWork.java
+++ b/app/src/main/java/org/tasks/jobs/BackupWork.java
@@ -6,7 +6,7 @@ import static com.todoroo.andlib.utility.DateUtilities.now;
import static java.util.Collections.emptyList;
import android.content.Context;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import androidx.work.WorkerParameters;
import java.io.File;
import java.io.FileFilter;
diff --git a/app/src/main/java/org/tasks/jobs/CleanupWork.java b/app/src/main/java/org/tasks/jobs/CleanupWork.java
index 6c85a529a..57f51d071 100644
--- a/app/src/main/java/org/tasks/jobs/CleanupWork.java
+++ b/app/src/main/java/org/tasks/jobs/CleanupWork.java
@@ -1,7 +1,7 @@
package org.tasks.jobs;
import android.content.Context;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import androidx.work.WorkerParameters;
import com.todoroo.astrid.alarms.AlarmService;
import com.todoroo.astrid.reminders.ReminderService;
diff --git a/app/src/main/java/org/tasks/jobs/MidnightRefreshWork.java b/app/src/main/java/org/tasks/jobs/MidnightRefreshWork.java
index 0311e3766..da5fe38c4 100644
--- a/app/src/main/java/org/tasks/jobs/MidnightRefreshWork.java
+++ b/app/src/main/java/org/tasks/jobs/MidnightRefreshWork.java
@@ -1,7 +1,7 @@
package org.tasks.jobs;
import android.content.Context;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import androidx.work.WorkerParameters;
import javax.inject.Inject;
import org.tasks.LocalBroadcastManager;
diff --git a/app/src/main/java/org/tasks/jobs/NotificationWork.java b/app/src/main/java/org/tasks/jobs/NotificationWork.java
index 9683a1da5..18c2c584f 100644
--- a/app/src/main/java/org/tasks/jobs/NotificationWork.java
+++ b/app/src/main/java/org/tasks/jobs/NotificationWork.java
@@ -1,7 +1,7 @@
package org.tasks.jobs;
import android.content.Context;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import androidx.work.WorkerParameters;
import java.util.List;
import javax.inject.Inject;
diff --git a/app/src/main/java/org/tasks/jobs/RefreshWork.java b/app/src/main/java/org/tasks/jobs/RefreshWork.java
index 879439b7f..adff9e9db 100644
--- a/app/src/main/java/org/tasks/jobs/RefreshWork.java
+++ b/app/src/main/java/org/tasks/jobs/RefreshWork.java
@@ -1,7 +1,7 @@
package org.tasks.jobs;
import android.content.Context;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import androidx.work.WorkerParameters;
import javax.inject.Inject;
import org.tasks.LocalBroadcastManager;
diff --git a/app/src/main/java/org/tasks/jobs/RepeatingWorker.java b/app/src/main/java/org/tasks/jobs/RepeatingWorker.java
index 47a4b0267..ed0d19c08 100644
--- a/app/src/main/java/org/tasks/jobs/RepeatingWorker.java
+++ b/app/src/main/java/org/tasks/jobs/RepeatingWorker.java
@@ -1,7 +1,7 @@
package org.tasks.jobs;
import android.content.Context;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import androidx.work.WorkerParameters;
import org.tasks.injection.InjectingWorker;
diff --git a/app/src/main/java/org/tasks/jobs/SyncWork.java b/app/src/main/java/org/tasks/jobs/SyncWork.java
index 5b95d3cf8..d85d754ed 100644
--- a/app/src/main/java/org/tasks/jobs/SyncWork.java
+++ b/app/src/main/java/org/tasks/jobs/SyncWork.java
@@ -1,7 +1,7 @@
package org.tasks.jobs;
import android.content.Context;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import androidx.work.WorkerParameters;
import javax.inject.Inject;
import org.tasks.LocalBroadcastManager;
diff --git a/app/src/main/java/org/tasks/locale/Locale.java b/app/src/main/java/org/tasks/locale/Locale.java
index f8741c28d..41dc787ff 100644
--- a/app/src/main/java/org/tasks/locale/Locale.java
+++ b/app/src/main/java/org/tasks/locale/Locale.java
@@ -10,7 +10,7 @@ import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Build;
import android.preference.PreferenceManager;
-import android.support.v4.text.TextUtilsCompat;
+import androidx.core.text.TextUtilsCompat;
import android.view.ContextThemeWrapper;
import android.view.View;
import android.view.ViewParent;
diff --git a/app/src/main/java/org/tasks/locale/receiver/FireReceiver.java b/app/src/main/java/org/tasks/locale/receiver/FireReceiver.java
index 41130ad85..78d596729 100755
--- a/app/src/main/java/org/tasks/locale/receiver/FireReceiver.java
+++ b/app/src/main/java/org/tasks/locale/receiver/FireReceiver.java
@@ -4,7 +4,7 @@ import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.support.v4.app.JobIntentService;
+import androidx.core.app.JobIntentService;
import org.tasks.injection.InjectingJobIntentService;
import timber.log.Timber;
diff --git a/app/src/main/java/org/tasks/locale/receiver/TaskerIntentService.java b/app/src/main/java/org/tasks/locale/receiver/TaskerIntentService.java
index 25d709a58..6e4ff04df 100644
--- a/app/src/main/java/org/tasks/locale/receiver/TaskerIntentService.java
+++ b/app/src/main/java/org/tasks/locale/receiver/TaskerIntentService.java
@@ -3,7 +3,7 @@ package org.tasks.locale.receiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import com.todoroo.astrid.api.Filter;
import javax.inject.Inject;
import org.tasks.Notifier;
diff --git a/app/src/main/java/org/tasks/locale/ui/activity/TaskerCreateTaskActivity.java b/app/src/main/java/org/tasks/locale/ui/activity/TaskerCreateTaskActivity.java
index 87049d82e..8d18c5285 100755
--- a/app/src/main/java/org/tasks/locale/ui/activity/TaskerCreateTaskActivity.java
+++ b/app/src/main/java/org/tasks/locale/ui/activity/TaskerCreateTaskActivity.java
@@ -3,9 +3,9 @@ package org.tasks.locale.ui.activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
-import android.support.design.widget.TextInputEditText;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.widget.Toolbar;
+import com.google.android.material.textfield.TextInputEditText;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.widget.Toolbar;
import android.view.MenuItem;
import butterknife.BindView;
import butterknife.ButterKnife;
diff --git a/app/src/main/java/org/tasks/locale/ui/activity/TaskerSettingsActivity.java b/app/src/main/java/org/tasks/locale/ui/activity/TaskerSettingsActivity.java
index 5268e1fd6..6787d4ebe 100755
--- a/app/src/main/java/org/tasks/locale/ui/activity/TaskerSettingsActivity.java
+++ b/app/src/main/java/org/tasks/locale/ui/activity/TaskerSettingsActivity.java
@@ -2,7 +2,7 @@ package org.tasks.locale.ui.activity;
import android.content.Intent;
import android.os.Bundle;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar;
import android.view.MenuItem;
import com.todoroo.astrid.api.Filter;
import javax.inject.Inject;
diff --git a/app/src/main/java/org/tasks/notifications/Notification.java b/app/src/main/java/org/tasks/notifications/Notification.java
index a39584f64..527aff85a 100644
--- a/app/src/main/java/org/tasks/notifications/Notification.java
+++ b/app/src/main/java/org/tasks/notifications/Notification.java
@@ -1,9 +1,9 @@
package org.tasks.notifications;
-import android.arch.persistence.room.ColumnInfo;
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.Index;
-import android.arch.persistence.room.PrimaryKey;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.Index;
+import androidx.room.PrimaryKey;
@Entity(
tableName = "notification",
diff --git a/app/src/main/java/org/tasks/notifications/NotificationDao.java b/app/src/main/java/org/tasks/notifications/NotificationDao.java
index 1513be06c..34f41fef4 100644
--- a/app/src/main/java/org/tasks/notifications/NotificationDao.java
+++ b/app/src/main/java/org/tasks/notifications/NotificationDao.java
@@ -1,9 +1,9 @@
package org.tasks.notifications;
-import android.arch.persistence.room.Dao;
-import android.arch.persistence.room.Insert;
-import android.arch.persistence.room.OnConflictStrategy;
-import android.arch.persistence.room.Query;
+import androidx.room.Dao;
+import androidx.room.Insert;
+import androidx.room.OnConflictStrategy;
+import androidx.room.Query;
import java.util.List;
@Dao
diff --git a/app/src/main/java/org/tasks/notifications/NotificationManager.java b/app/src/main/java/org/tasks/notifications/NotificationManager.java
index 943253e2b..630f1b073 100644
--- a/app/src/main/java/org/tasks/notifications/NotificationManager.java
+++ b/app/src/main/java/org/tasks/notifications/NotificationManager.java
@@ -16,8 +16,8 @@ import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.app.NotificationManagerCompat;
+import androidx.core.app.NotificationCompat;
+import androidx.core.app.NotificationManagerCompat;
import android.text.TextUtils;
import com.google.common.base.Joiner;
import com.google.common.base.Strings;
diff --git a/app/src/main/java/org/tasks/preferences/ActivityPermissionRequestor.java b/app/src/main/java/org/tasks/preferences/ActivityPermissionRequestor.java
index c608070a2..2e968f7de 100644
--- a/app/src/main/java/org/tasks/preferences/ActivityPermissionRequestor.java
+++ b/app/src/main/java/org/tasks/preferences/ActivityPermissionRequestor.java
@@ -1,7 +1,7 @@
package org.tasks.preferences;
import android.app.Activity;
-import android.support.v4.app.ActivityCompat;
+import androidx.core.app.ActivityCompat;
import javax.inject.Inject;
public class ActivityPermissionRequestor extends PermissionRequestor {
diff --git a/app/src/main/java/org/tasks/preferences/AppCompatPreferenceActivity.java b/app/src/main/java/org/tasks/preferences/AppCompatPreferenceActivity.java
index 3d278f2e0..6111e1790 100644
--- a/app/src/main/java/org/tasks/preferences/AppCompatPreferenceActivity.java
+++ b/app/src/main/java/org/tasks/preferences/AppCompatPreferenceActivity.java
@@ -19,9 +19,9 @@ package org.tasks.preferences;
import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.PreferenceActivity;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.NonNull;
-import android.support.v7.app.AppCompatDelegate;
+import androidx.annotation.LayoutRes;
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatDelegate;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/org/tasks/preferences/FragmentPermissionRequestor.java b/app/src/main/java/org/tasks/preferences/FragmentPermissionRequestor.java
index 8a641b3e2..4fc1be5f5 100644
--- a/app/src/main/java/org/tasks/preferences/FragmentPermissionRequestor.java
+++ b/app/src/main/java/org/tasks/preferences/FragmentPermissionRequestor.java
@@ -1,6 +1,6 @@
package org.tasks.preferences;
-import android.support.v4.app.Fragment;
+import androidx.fragment.app.Fragment;
import javax.inject.Inject;
public class FragmentPermissionRequestor extends PermissionRequestor {
diff --git a/app/src/main/java/org/tasks/preferences/MiscellaneousPreferences.java b/app/src/main/java/org/tasks/preferences/MiscellaneousPreferences.java
index 3eb7cb7da..a2fed5c55 100644
--- a/app/src/main/java/org/tasks/preferences/MiscellaneousPreferences.java
+++ b/app/src/main/java/org/tasks/preferences/MiscellaneousPreferences.java
@@ -6,7 +6,7 @@ import android.content.Intent;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.speech.tts.TextToSpeech;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import com.todoroo.astrid.voice.VoiceOutputAssistant;
import java.io.File;
import javax.inject.Inject;
diff --git a/app/src/main/java/org/tasks/preferences/PermissionChecker.java b/app/src/main/java/org/tasks/preferences/PermissionChecker.java
index 3e5ccefbb..423156951 100644
--- a/app/src/main/java/org/tasks/preferences/PermissionChecker.java
+++ b/app/src/main/java/org/tasks/preferences/PermissionChecker.java
@@ -7,7 +7,7 @@ import static java.util.Collections.singletonList;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
-import android.support.v4.app.ActivityCompat;
+import androidx.core.app.ActivityCompat;
import java.util.List;
import javax.inject.Inject;
import org.tasks.injection.ForApplication;
diff --git a/app/src/main/java/org/tasks/preferences/Preferences.java b/app/src/main/java/org/tasks/preferences/Preferences.java
index 5f78c51c2..b4da5ae70 100644
--- a/app/src/main/java/org/tasks/preferences/Preferences.java
+++ b/app/src/main/java/org/tasks/preferences/Preferences.java
@@ -12,7 +12,7 @@ import android.content.res.Resources;
import android.media.RingtoneManager;
import android.net.Uri;
import android.preference.PreferenceManager;
-import android.support.v4.app.NotificationCompat;
+import androidx.core.app.NotificationCompat;
import android.text.TextUtils;
import com.android.billingclient.api.Purchase;
import com.google.gson.GsonBuilder;
diff --git a/app/src/main/java/org/tasks/preferences/beast/BeastModeRecyclerAdapter.java b/app/src/main/java/org/tasks/preferences/beast/BeastModeRecyclerAdapter.java
index dd29cf8ee..92868bb3b 100644
--- a/app/src/main/java/org/tasks/preferences/beast/BeastModeRecyclerAdapter.java
+++ b/app/src/main/java/org/tasks/preferences/beast/BeastModeRecyclerAdapter.java
@@ -2,8 +2,8 @@ package org.tasks.preferences.beast;
import android.content.Context;
import android.content.res.Resources;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.helper.ItemTouchHelper;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.ItemTouchHelper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/org/tasks/preferences/beast/BeastModeViewHolder.java b/app/src/main/java/org/tasks/preferences/beast/BeastModeViewHolder.java
index 42b2ed961..841c83ef7 100644
--- a/app/src/main/java/org/tasks/preferences/beast/BeastModeViewHolder.java
+++ b/app/src/main/java/org/tasks/preferences/beast/BeastModeViewHolder.java
@@ -1,8 +1,8 @@
package org.tasks.preferences.beast;
-import android.support.v4.view.MotionEventCompat;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.helper.ItemTouchHelper;
+import androidx.core.view.MotionEventCompat;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.ItemTouchHelper;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
diff --git a/app/src/main/java/org/tasks/reminders/NotificationActivity.java b/app/src/main/java/org/tasks/reminders/NotificationActivity.java
index 03101140d..d40b122e4 100644
--- a/app/src/main/java/org/tasks/reminders/NotificationActivity.java
+++ b/app/src/main/java/org/tasks/reminders/NotificationActivity.java
@@ -4,7 +4,7 @@ import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import android.content.Intent;
import android.os.Bundle;
-import android.support.v4.app.FragmentManager;
+import androidx.fragment.app.FragmentManager;
import javax.inject.Inject;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingAppCompatActivity;
diff --git a/app/src/main/java/org/tasks/reminders/NotificationDialog.java b/app/src/main/java/org/tasks/reminders/NotificationDialog.java
index a27a25ee5..c62c61882 100644
--- a/app/src/main/java/org/tasks/reminders/NotificationDialog.java
+++ b/app/src/main/java/org/tasks/reminders/NotificationDialog.java
@@ -5,7 +5,7 @@ import static java.util.Arrays.asList;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import java.util.List;
import javax.inject.Inject;
import org.tasks.R;
diff --git a/app/src/main/java/org/tasks/reminders/SnoozeActivity.java b/app/src/main/java/org/tasks/reminders/SnoozeActivity.java
index efb7d446a..6b60ddf92 100644
--- a/app/src/main/java/org/tasks/reminders/SnoozeActivity.java
+++ b/app/src/main/java/org/tasks/reminders/SnoozeActivity.java
@@ -3,7 +3,7 @@ package org.tasks.reminders;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
-import android.support.v4.app.FragmentManager;
+import androidx.fragment.app.FragmentManager;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.reminders.ReminderService;
import java.util.ArrayList;
diff --git a/app/src/main/java/org/tasks/reminders/SnoozeDialog.java b/app/src/main/java/org/tasks/reminders/SnoozeDialog.java
index 3581a7101..6e9a6e324 100644
--- a/app/src/main/java/org/tasks/reminders/SnoozeDialog.java
+++ b/app/src/main/java/org/tasks/reminders/SnoozeDialog.java
@@ -6,7 +6,7 @@ import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
diff --git a/app/src/main/java/org/tasks/repeats/BasicRecurrenceDialog.java b/app/src/main/java/org/tasks/repeats/BasicRecurrenceDialog.java
index 63ac7112c..1bd2c4150 100644
--- a/app/src/main/java/org/tasks/repeats/BasicRecurrenceDialog.java
+++ b/app/src/main/java/org/tasks/repeats/BasicRecurrenceDialog.java
@@ -13,8 +13,8 @@ import static org.tasks.time.DateTimeUtils.currentTimeMillis;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import com.google.common.base.Strings;
import com.google.ical.values.Frequency;
import com.google.ical.values.RRule;
diff --git a/app/src/main/java/org/tasks/repeats/CustomRecurrenceDialog.java b/app/src/main/java/org/tasks/repeats/CustomRecurrenceDialog.java
index f42328846..4da1e57a8 100644
--- a/app/src/main/java/org/tasks/repeats/CustomRecurrenceDialog.java
+++ b/app/src/main/java/org/tasks/repeats/CustomRecurrenceDialog.java
@@ -1,6 +1,6 @@
package org.tasks.repeats;
-import static android.support.v4.content.ContextCompat.getColor;
+import static androidx.core.content.ContextCompat.getColor;
import static com.google.common.collect.Lists.newArrayList;
import static com.google.ical.values.Frequency.DAILY;
import static com.google.ical.values.Frequency.HOURLY;
@@ -25,9 +25,9 @@ import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.LayerDrawable;
import android.graphics.drawable.StateListDrawable;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.view.ViewCompat;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.view.ViewCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/org/tasks/scheduling/BackgroundScheduler.java b/app/src/main/java/org/tasks/scheduling/BackgroundScheduler.java
index 14480301f..14f2efa1a 100644
--- a/app/src/main/java/org/tasks/scheduling/BackgroundScheduler.java
+++ b/app/src/main/java/org/tasks/scheduling/BackgroundScheduler.java
@@ -2,7 +2,7 @@ package org.tasks.scheduling;
import android.content.Context;
import android.content.Intent;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import javax.inject.Inject;
diff --git a/app/src/main/java/org/tasks/scheduling/CalendarNotificationIntentService.java b/app/src/main/java/org/tasks/scheduling/CalendarNotificationIntentService.java
index 2b2da3ee0..4802f0fde 100644
--- a/app/src/main/java/org/tasks/scheduling/CalendarNotificationIntentService.java
+++ b/app/src/main/java/org/tasks/scheduling/CalendarNotificationIntentService.java
@@ -5,7 +5,7 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
-import android.support.v4.app.JobIntentService;
+import androidx.core.app.JobIntentService;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.gcal.CalendarAlarmReceiver;
import java.util.concurrent.TimeUnit;
diff --git a/app/src/main/java/org/tasks/scheduling/GeofenceSchedulingIntentService.java b/app/src/main/java/org/tasks/scheduling/GeofenceSchedulingIntentService.java
index d964daf41..99351a6d0 100644
--- a/app/src/main/java/org/tasks/scheduling/GeofenceSchedulingIntentService.java
+++ b/app/src/main/java/org/tasks/scheduling/GeofenceSchedulingIntentService.java
@@ -2,7 +2,7 @@ package org.tasks.scheduling;
import android.content.Context;
import android.content.Intent;
-import android.support.v4.app.JobIntentService;
+import androidx.core.app.JobIntentService;
import javax.inject.Inject;
import org.tasks.injection.InjectingJobIntentService;
import org.tasks.injection.IntentServiceComponent;
diff --git a/app/src/main/java/org/tasks/scheduling/NotificationSchedulerIntentService.java b/app/src/main/java/org/tasks/scheduling/NotificationSchedulerIntentService.java
index 40d722fcf..691ec1ff0 100644
--- a/app/src/main/java/org/tasks/scheduling/NotificationSchedulerIntentService.java
+++ b/app/src/main/java/org/tasks/scheduling/NotificationSchedulerIntentService.java
@@ -2,7 +2,7 @@ package org.tasks.scheduling;
import android.content.Context;
import android.content.Intent;
-import android.support.v4.app.JobIntentService;
+import androidx.core.app.JobIntentService;
import com.todoroo.astrid.alarms.AlarmService;
import com.todoroo.astrid.reminders.ReminderService;
import javax.inject.Inject;
diff --git a/app/src/main/java/org/tasks/security/KeyStoreEncryption.java b/app/src/main/java/org/tasks/security/KeyStoreEncryption.java
index 620d27ff4..7f984528c 100644
--- a/app/src/main/java/org/tasks/security/KeyStoreEncryption.java
+++ b/app/src/main/java/org/tasks/security/KeyStoreEncryption.java
@@ -4,7 +4,7 @@ import android.annotation.SuppressLint;
import android.os.Build.VERSION_CODES;
import android.security.keystore.KeyGenParameterSpec;
import android.security.keystore.KeyProperties;
-import android.support.annotation.RequiresApi;
+import androidx.annotation.RequiresApi;
import android.util.Base64;
import java.io.IOException;
import java.nio.charset.Charset;
diff --git a/app/src/main/java/org/tasks/sync/SynchronizationPreferences.java b/app/src/main/java/org/tasks/sync/SynchronizationPreferences.java
index 9d6110342..a1a65e915 100644
--- a/app/src/main/java/org/tasks/sync/SynchronizationPreferences.java
+++ b/app/src/main/java/org/tasks/sync/SynchronizationPreferences.java
@@ -12,8 +12,8 @@ import android.content.Intent;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceCategory;
-import android.support.annotation.NonNull;
-import android.support.v7.app.AlertDialog;
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import com.todoroo.astrid.gtasks.auth.GtasksLoginActivity;
import com.todoroo.astrid.service.TaskDeleter;
import javax.inject.Inject;
diff --git a/app/src/main/java/org/tasks/tasklist/ActionModeProvider.java b/app/src/main/java/org/tasks/tasklist/ActionModeProvider.java
index b71fe8eec..fd4105f4f 100644
--- a/app/src/main/java/org/tasks/tasklist/ActionModeProvider.java
+++ b/app/src/main/java/org/tasks/tasklist/ActionModeProvider.java
@@ -4,7 +4,7 @@ import static com.todoroo.astrid.activity.TaskListFragment.REQUEST_MOVE_TASKS;
import static org.tasks.activities.RemoteListSupportPicker.newRemoteListSupportPicker;
import android.content.Context;
-import android.support.v7.view.ActionMode;
+import androidx.appcompat.view.ActionMode;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
diff --git a/app/src/main/java/org/tasks/tasklist/ActionUtils.java b/app/src/main/java/org/tasks/tasklist/ActionUtils.java
index 7d636dd0c..82e07e096 100644
--- a/app/src/main/java/org/tasks/tasklist/ActionUtils.java
+++ b/app/src/main/java/org/tasks/tasklist/ActionUtils.java
@@ -1,8 +1,8 @@
package org.tasks.tasklist;
-import android.support.v7.app.WindowDecorActionBar;
-import android.support.v7.view.StandaloneActionMode;
-import android.support.v7.widget.ActionBarContextView;
+import androidx.appcompat.app.WindowDecorActionBar;
+import androidx.appcompat.view.StandaloneActionMode;
+import androidx.appcompat.widget.ActionBarContextView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
@@ -14,7 +14,7 @@ public class ActionUtils {
// cribbed from Twittnuker
public static void applySupportActionModeColor(
- ThemeColor themeColor, final android.support.v7.view.ActionMode modeCompat) {
+ ThemeColor themeColor, final androidx.appcompat.view.ActionMode modeCompat) {
// Very dirty implementation
// This call ensures TitleView created
modeCompat.setTitle(modeCompat.getTitle());
diff --git a/app/src/main/java/org/tasks/tasklist/DiffCallback.java b/app/src/main/java/org/tasks/tasklist/DiffCallback.java
index d1ce2d936..9b281956c 100644
--- a/app/src/main/java/org/tasks/tasklist/DiffCallback.java
+++ b/app/src/main/java/org/tasks/tasklist/DiffCallback.java
@@ -1,7 +1,7 @@
package org.tasks.tasklist;
-import android.support.annotation.NonNull;
-import android.support.v7.util.DiffUtil.ItemCallback;
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.DiffUtil.ItemCallback;
import com.todoroo.astrid.adapter.TaskAdapter;
import com.todoroo.astrid.data.Task;
diff --git a/app/src/main/java/org/tasks/tasklist/GtasksListFragment.java b/app/src/main/java/org/tasks/tasklist/GtasksListFragment.java
index fa7e242d6..c1d6e3c70 100644
--- a/app/src/main/java/org/tasks/tasklist/GtasksListFragment.java
+++ b/app/src/main/java/org/tasks/tasklist/GtasksListFragment.java
@@ -4,7 +4,7 @@ import static android.app.Activity.RESULT_OK;
import android.content.Intent;
import android.os.Bundle;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar;
import android.view.MenuItem;
import com.todoroo.astrid.activity.MainActivity;
import com.todoroo.astrid.activity.TaskListFragment;
diff --git a/app/src/main/java/org/tasks/tasklist/ItemTouchHelperCallback.java b/app/src/main/java/org/tasks/tasklist/ItemTouchHelperCallback.java
index 1b27fe508..fdb52e6ea 100644
--- a/app/src/main/java/org/tasks/tasklist/ItemTouchHelperCallback.java
+++ b/app/src/main/java/org/tasks/tasklist/ItemTouchHelperCallback.java
@@ -1,11 +1,11 @@
package org.tasks.tasklist;
-import static android.support.v7.widget.helper.ItemTouchHelper.DOWN;
-import static android.support.v7.widget.helper.ItemTouchHelper.UP;
+import static androidx.recyclerview.widget.ItemTouchHelper.DOWN;
+import static androidx.recyclerview.widget.ItemTouchHelper.UP;
import android.graphics.Canvas;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.helper.ItemTouchHelper;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.ItemTouchHelper;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.adapter.TaskAdapter;
import com.todoroo.astrid.utility.Flags;
diff --git a/app/src/main/java/org/tasks/tasklist/TagListFragment.java b/app/src/main/java/org/tasks/tasklist/TagListFragment.java
index ea07b3ad2..fe42192f7 100644
--- a/app/src/main/java/org/tasks/tasklist/TagListFragment.java
+++ b/app/src/main/java/org/tasks/tasklist/TagListFragment.java
@@ -3,7 +3,7 @@ package org.tasks.tasklist;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar;
import android.view.MenuItem;
import com.todoroo.astrid.activity.MainActivity;
import com.todoroo.astrid.activity.TaskListFragment;
diff --git a/app/src/main/java/org/tasks/tasklist/TaskListRecyclerAdapter.java b/app/src/main/java/org/tasks/tasklist/TaskListRecyclerAdapter.java
index e9cd93b3a..b574b27d7 100644
--- a/app/src/main/java/org/tasks/tasklist/TaskListRecyclerAdapter.java
+++ b/app/src/main/java/org/tasks/tasklist/TaskListRecyclerAdapter.java
@@ -1,13 +1,13 @@
package org.tasks.tasklist;
-import android.arch.paging.AsyncPagedListDiffer;
-import android.arch.paging.PagedList;
+import androidx.paging.AsyncPagedListDiffer;
+import androidx.paging.PagedList;
import android.os.Bundle;
-import android.support.v7.recyclerview.extensions.AsyncDifferConfig;
-import android.support.v7.util.ListUpdateCallback;
-import android.support.v7.view.ActionMode;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.helper.ItemTouchHelper;
+import androidx.recyclerview.widget.AsyncDifferConfig;
+import androidx.recyclerview.widget.ListUpdateCallback;
+import androidx.appcompat.view.ActionMode;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.ItemTouchHelper;
import android.view.ViewGroup;
import com.google.common.primitives.Longs;
import com.todoroo.astrid.activity.TaskListFragment;
diff --git a/app/src/main/java/org/tasks/tasklist/ViewHolder.java b/app/src/main/java/org/tasks/tasklist/ViewHolder.java
index 4bac78716..d81703ef8 100644
--- a/app/src/main/java/org/tasks/tasklist/ViewHolder.java
+++ b/app/src/main/java/org/tasks/tasklist/ViewHolder.java
@@ -8,8 +8,8 @@ import android.annotation.SuppressLint;
import android.app.PendingIntent;
import android.content.Context;
import android.graphics.Paint;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.widget.RecyclerView;
+import androidx.appcompat.app.AlertDialog;
+import androidx.recyclerview.widget.RecyclerView;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
diff --git a/app/src/main/java/org/tasks/tasklist/ViewHolderFactory.java b/app/src/main/java/org/tasks/tasklist/ViewHolderFactory.java
index 59b78a4a8..9ef1f9710 100644
--- a/app/src/main/java/org/tasks/tasklist/ViewHolderFactory.java
+++ b/app/src/main/java/org/tasks/tasklist/ViewHolderFactory.java
@@ -1,6 +1,6 @@
package org.tasks.tasklist;
-import static android.support.v4.content.ContextCompat.getColor;
+import static androidx.core.content.ContextCompat.getColor;
import static com.todoroo.andlib.utility.AndroidUtilities.convertDpToPixels;
import static org.tasks.preferences.ResourceResolver.getData;
import static org.tasks.preferences.ResourceResolver.getResourceId;
diff --git a/app/src/main/java/org/tasks/themes/Theme.java b/app/src/main/java/org/tasks/themes/Theme.java
index e5ace3749..fffefa9fb 100644
--- a/app/src/main/java/org/tasks/themes/Theme.java
+++ b/app/src/main/java/org/tasks/themes/Theme.java
@@ -4,7 +4,7 @@ import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.PixelFormat;
-import android.support.v7.app.AppCompatDelegate;
+import androidx.appcompat.app.AppCompatDelegate;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import javax.inject.Inject;
diff --git a/app/src/main/java/org/tasks/themes/ThemeBase.java b/app/src/main/java/org/tasks/themes/ThemeBase.java
index 0b604ba59..3efe847da 100644
--- a/app/src/main/java/org/tasks/themes/ThemeBase.java
+++ b/app/src/main/java/org/tasks/themes/ThemeBase.java
@@ -4,7 +4,7 @@ import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.os.Parcel;
-import android.support.v7.app.AppCompatDelegate;
+import androidx.appcompat.app.AppCompatDelegate;
import android.view.ContextThemeWrapper;
import org.tasks.R;
import org.tasks.dialogs.ColorPickerDialog;
diff --git a/app/src/main/java/org/tasks/themes/ThemeCache.java b/app/src/main/java/org/tasks/themes/ThemeCache.java
index a8acbc054..2e683cf84 100644
--- a/app/src/main/java/org/tasks/themes/ThemeCache.java
+++ b/app/src/main/java/org/tasks/themes/ThemeCache.java
@@ -1,11 +1,11 @@
package org.tasks.themes;
-import static android.support.v4.content.ContextCompat.getColor;
+import static androidx.core.content.ContextCompat.getColor;
import static com.google.common.collect.ImmutableList.copyOf;
import android.content.Context;
import android.content.res.Resources;
-import android.support.v7.app.AppCompatDelegate;
+import androidx.appcompat.app.AppCompatDelegate;
import android.util.TypedValue;
import android.view.ContextThemeWrapper;
import java.util.ArrayList;
diff --git a/app/src/main/java/org/tasks/themes/ThemeColor.java b/app/src/main/java/org/tasks/themes/ThemeColor.java
index 2baa491f3..148e8ffb3 100644
--- a/app/src/main/java/org/tasks/themes/ThemeColor.java
+++ b/app/src/main/java/org/tasks/themes/ThemeColor.java
@@ -10,8 +10,8 @@ import android.app.ActivityManager;
import android.content.res.Resources;
import android.os.Build;
import android.os.Parcel;
-import android.support.v4.widget.DrawerLayout;
-import android.support.v7.widget.Toolbar;
+import androidx.drawerlayout.widget.DrawerLayout;
+import androidx.appcompat.widget.Toolbar;
import android.view.View;
import org.tasks.R;
import org.tasks.dialogs.ColorPickerDialog;
diff --git a/app/src/main/java/org/tasks/ui/CalendarControlSet.java b/app/src/main/java/org/tasks/ui/CalendarControlSet.java
index 9597a8484..8c67c99e8 100644
--- a/app/src/main/java/org/tasks/ui/CalendarControlSet.java
+++ b/app/src/main/java/org/tasks/ui/CalendarControlSet.java
@@ -12,8 +12,8 @@ import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.CalendarContract;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/org/tasks/ui/CheckBoxes.java b/app/src/main/java/org/tasks/ui/CheckBoxes.java
index 0340e7acb..6f1bc761b 100644
--- a/app/src/main/java/org/tasks/ui/CheckBoxes.java
+++ b/app/src/main/java/org/tasks/ui/CheckBoxes.java
@@ -1,11 +1,11 @@
package org.tasks.ui;
-import static android.support.v4.content.ContextCompat.getColor;
+import static androidx.core.content.ContextCompat.getColor;
import android.content.Context;
import android.graphics.drawable.Drawable;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.graphics.drawable.DrawableCompat;
+import androidx.core.content.ContextCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
import com.google.common.collect.ImmutableList;
import com.google.common.primitives.Ints;
import java.util.List;
diff --git a/app/src/main/java/org/tasks/ui/DeadlineControlSet.java b/app/src/main/java/org/tasks/ui/DeadlineControlSet.java
index bb4b1afb0..4115fc9ba 100644
--- a/app/src/main/java/org/tasks/ui/DeadlineControlSet.java
+++ b/app/src/main/java/org/tasks/ui/DeadlineControlSet.java
@@ -1,6 +1,6 @@
package org.tasks.ui;
-import static android.support.v4.content.ContextCompat.getColor;
+import static androidx.core.content.ContextCompat.getColor;
import static com.google.common.collect.Lists.newArrayList;
import static java.util.Arrays.asList;
import static org.tasks.date.DateTimeUtils.newDateTime;
@@ -10,10 +10,10 @@ import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.graphics.drawable.DrawableCompat;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/org/tasks/ui/DescriptionControlSet.java b/app/src/main/java/org/tasks/ui/DescriptionControlSet.java
index d46c89148..00d288413 100644
--- a/app/src/main/java/org/tasks/ui/DescriptionControlSet.java
+++ b/app/src/main/java/org/tasks/ui/DescriptionControlSet.java
@@ -3,7 +3,7 @@ package org.tasks.ui;
import static com.google.common.base.Strings.isNullOrEmpty;
import android.os.Bundle;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/org/tasks/ui/DraggableSwipeRefreshLayout.java b/app/src/main/java/org/tasks/ui/DraggableSwipeRefreshLayout.java
index b1bbf4eee..6f6aa8f27 100644
--- a/app/src/main/java/org/tasks/ui/DraggableSwipeRefreshLayout.java
+++ b/app/src/main/java/org/tasks/ui/DraggableSwipeRefreshLayout.java
@@ -1,7 +1,7 @@
package org.tasks.ui;
import android.content.Context;
-import android.support.v4.widget.SwipeRefreshLayout;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import android.util.AttributeSet;
import android.view.MotionEvent;
import com.todoroo.astrid.utility.Flags;
diff --git a/app/src/main/java/org/tasks/ui/EmptyTaskEditFragment.java b/app/src/main/java/org/tasks/ui/EmptyTaskEditFragment.java
index 32c20f004..913f5897a 100644
--- a/app/src/main/java/org/tasks/ui/EmptyTaskEditFragment.java
+++ b/app/src/main/java/org/tasks/ui/EmptyTaskEditFragment.java
@@ -1,8 +1,8 @@
package org.tasks.ui;
import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/org/tasks/ui/HiddenTopArrayAdapter.java b/app/src/main/java/org/tasks/ui/HiddenTopArrayAdapter.java
index 421425b6c..b6a953473 100644
--- a/app/src/main/java/org/tasks/ui/HiddenTopArrayAdapter.java
+++ b/app/src/main/java/org/tasks/ui/HiddenTopArrayAdapter.java
@@ -1,7 +1,7 @@
package org.tasks.ui;
import android.content.Context;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/org/tasks/ui/MenuColorizer.java b/app/src/main/java/org/tasks/ui/MenuColorizer.java
index 97506dfd8..f4bb056e0 100644
--- a/app/src/main/java/org/tasks/ui/MenuColorizer.java
+++ b/app/src/main/java/org/tasks/ui/MenuColorizer.java
@@ -19,7 +19,7 @@ package org.tasks.ui;
import android.content.Context;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar;
import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem;
diff --git a/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.java b/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.java
index 685067cad..042145dca 100644
--- a/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.java
+++ b/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.java
@@ -8,8 +8,8 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
-import android.support.v4.view.GravityCompat;
-import android.support.v4.widget.DrawerLayout;
+import androidx.core.view.GravityCompat;
+import androidx.drawerlayout.widget.DrawerLayout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/org/tasks/ui/PriorityControlSet.java b/app/src/main/java/org/tasks/ui/PriorityControlSet.java
index fdb89d42c..de57627b9 100644
--- a/app/src/main/java/org/tasks/ui/PriorityControlSet.java
+++ b/app/src/main/java/org/tasks/ui/PriorityControlSet.java
@@ -5,9 +5,9 @@ import static com.todoroo.andlib.utility.AndroidUtilities.preLollipop;
import android.app.Activity;
import android.content.res.ColorStateList;
import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.widget.CompoundButtonCompat;
-import android.support.v7.widget.AppCompatRadioButton;
+import androidx.annotation.Nullable;
+import androidx.core.widget.CompoundButtonCompat;
+import androidx.appcompat.widget.AppCompatRadioButton;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/org/tasks/ui/RemoteListFragment.java b/app/src/main/java/org/tasks/ui/RemoteListFragment.java
index f50bc846a..5b4c3dcad 100644
--- a/app/src/main/java/org/tasks/ui/RemoteListFragment.java
+++ b/app/src/main/java/org/tasks/ui/RemoteListFragment.java
@@ -5,7 +5,7 @@ import static org.tasks.activities.RemoteListSupportPicker.newRemoteListSupportP
import android.content.Intent;
import android.os.Bundle;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/org/tasks/ui/ScrimInsetsFrameLayout.java b/app/src/main/java/org/tasks/ui/ScrimInsetsFrameLayout.java
index a764109ae..f069912d8 100644
--- a/app/src/main/java/org/tasks/ui/ScrimInsetsFrameLayout.java
+++ b/app/src/main/java/org/tasks/ui/ScrimInsetsFrameLayout.java
@@ -21,7 +21,7 @@ import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
-import android.support.v4.view.ViewCompat;
+import androidx.core.view.ViewCompat;
import android.util.AttributeSet;
import android.widget.FrameLayout;
import org.tasks.R;
diff --git a/app/src/main/java/org/tasks/ui/SingleCheckedArrayAdapter.java b/app/src/main/java/org/tasks/ui/SingleCheckedArrayAdapter.java
index e883368d7..f34412eff 100644
--- a/app/src/main/java/org/tasks/ui/SingleCheckedArrayAdapter.java
+++ b/app/src/main/java/org/tasks/ui/SingleCheckedArrayAdapter.java
@@ -8,11 +8,11 @@ import static org.tasks.preferences.ResourceResolver.getDimen;
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.drawable.Drawable;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.content.res.ResourcesCompat;
-import android.support.v4.graphics.drawable.DrawableCompat;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
+import androidx.core.content.res.ResourcesCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
diff --git a/app/src/main/java/org/tasks/ui/TaskEditControlFragment.java b/app/src/main/java/org/tasks/ui/TaskEditControlFragment.java
index 69b5b5d80..f667b6724 100644
--- a/app/src/main/java/org/tasks/ui/TaskEditControlFragment.java
+++ b/app/src/main/java/org/tasks/ui/TaskEditControlFragment.java
@@ -2,7 +2,7 @@ package org.tasks.ui;
import android.app.Activity;
import android.os.Bundle;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/org/tasks/ui/TaskListViewModel.java b/app/src/main/java/org/tasks/ui/TaskListViewModel.java
index d791e47dd..6063e3c02 100644
--- a/app/src/main/java/org/tasks/ui/TaskListViewModel.java
+++ b/app/src/main/java/org/tasks/ui/TaskListViewModel.java
@@ -5,11 +5,11 @@ import static com.todoroo.astrid.activity.TaskListFragment.FILE_METADATA_JOIN;
import static com.todoroo.astrid.activity.TaskListFragment.GTASK_METADATA_JOIN;
import static com.todoroo.astrid.activity.TaskListFragment.TAGS_METADATA_JOIN;
-import android.arch.lifecycle.LiveData;
-import android.arch.lifecycle.ViewModel;
-import android.arch.paging.LivePagedListBuilder;
-import android.arch.paging.LivePagedListProvider;
-import android.arch.paging.PagedList;
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.ViewModel;
+import androidx.paging.DataSource.Factory;
+import androidx.paging.LivePagedListBuilder;
+import androidx.paging.PagedList;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Field;
@@ -56,9 +56,9 @@ public class TaskListViewModel extends ViewModel {
private LiveData> getLiveData(Filter filter, Property>[] properties) {
return new LivePagedListBuilder<>(
- new LivePagedListProvider() {
+ new Factory() {
@Override
- protected LimitOffsetDataSource createDataSource() {
+ public LimitOffsetDataSource create() {
latest = toDataSource(filter, properties);
return latest;
}
diff --git a/app/src/main/java/org/tasks/widget/ScrollableViewsFactory.java b/app/src/main/java/org/tasks/widget/ScrollableViewsFactory.java
index 3e4669a73..04192bc2f 100644
--- a/app/src/main/java/org/tasks/widget/ScrollableViewsFactory.java
+++ b/app/src/main/java/org/tasks/widget/ScrollableViewsFactory.java
@@ -1,6 +1,6 @@
package org.tasks.widget;
-import static android.support.v4.content.ContextCompat.getColor;
+import static androidx.core.content.ContextCompat.getColor;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastJellybeanMR1;
import android.appwidget.AppWidgetManager;
diff --git a/app/src/main/java/org/tasks/widget/ShortcutConfigActivity.java b/app/src/main/java/org/tasks/widget/ShortcutConfigActivity.java
index 21a85fd30..faec3d8d7 100644
--- a/app/src/main/java/org/tasks/widget/ShortcutConfigActivity.java
+++ b/app/src/main/java/org/tasks/widget/ShortcutConfigActivity.java
@@ -5,10 +5,10 @@ import android.content.Intent;
import android.content.Intent.ShortcutIconResource;
import android.os.Bundle;
import android.os.Parcelable;
-import android.support.design.widget.TextInputEditText;
-import android.support.design.widget.TextInputLayout;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.widget.Toolbar;
+import com.google.android.material.textfield.TextInputEditText;
+import com.google.android.material.textfield.TextInputLayout;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.widget.Toolbar;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
diff --git a/app/src/main/res/layout-v21/task_adapter_row_simple.xml b/app/src/main/res/layout-v21/task_adapter_row_simple.xml
index a99b90c1b..d3ee81b1e 100644
--- a/app/src/main/res/layout-v21/task_adapter_row_simple.xml
+++ b/app/src/main/res/layout-v21/task_adapter_row_simple.xml
@@ -3,7 +3,7 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
+
diff --git a/app/src/main/res/layout-w820dp/task_list_activity.xml b/app/src/main/res/layout-w820dp/task_list_activity.xml
index b0c1a56db..5d6c881e4 100644
--- a/app/src/main/res/layout-w820dp/task_list_activity.xml
+++ b/app/src/main/res/layout-w820dp/task_list_activity.xml
@@ -1,4 +1,4 @@
-
-
+
diff --git a/app/src/main/res/layout/activity_caldav_account_settings.xml b/app/src/main/res/layout/activity_caldav_account_settings.xml
index 0ce73dcf6..821b62d53 100644
--- a/app/src/main/res/layout/activity_caldav_account_settings.xml
+++ b/app/src/main/res/layout/activity_caldav_account_settings.xml
@@ -20,11 +20,11 @@
android:focusableInTouchMode="true"
android:orientation="vertical">
-
-
-
+
-
-
-
+
-
-
-
+
-
-
-
+
diff --git a/app/src/main/res/layout/activity_caldav_calendar_settings.xml b/app/src/main/res/layout/activity_caldav_calendar_settings.xml
index a841444fa..52742d42f 100644
--- a/app/src/main/res/layout/activity_caldav_calendar_settings.xml
+++ b/app/src/main/res/layout/activity_caldav_calendar_settings.xml
@@ -19,11 +19,11 @@
android:layout_height="wrap_content"
android:orientation="vertical">
-
-
-
+
-
+
-
-
+
diff --git a/app/src/main/res/layout/activity_google_task_list_settings.xml b/app/src/main/res/layout/activity_google_task_list_settings.xml
index 9520720a3..b1ca30964 100644
--- a/app/src/main/res/layout/activity_google_task_list_settings.xml
+++ b/app/src/main/res/layout/activity_google_task_list_settings.xml
@@ -18,9 +18,9 @@
android:focusableInTouchMode="true"
android:orientation="vertical">
-
+
-
-
+
-
+
-
-
+
diff --git a/app/src/main/res/layout/activity_purchase.xml b/app/src/main/res/layout/activity_purchase.xml
index 5876926fa..c43034afa 100644
--- a/app/src/main/res/layout/activity_purchase.xml
+++ b/app/src/main/res/layout/activity_purchase.xml
@@ -22,7 +22,7 @@
android:gravity="center"
android:visibility="gone"/>
-
-
-
-
-
+
-
-
-
+
-
-
-
+
-
-
-
+
-
-
-
+
-
+
diff --git a/app/src/main/res/layout/activity_widget_shortcut_content.xml b/app/src/main/res/layout/activity_widget_shortcut_content.xml
index 16cedae75..4fa007228 100644
--- a/app/src/main/res/layout/activity_widget_shortcut_content.xml
+++ b/app/src/main/res/layout/activity_widget_shortcut_content.xml
@@ -1,12 +1,12 @@
-
-
-
-
-
+
-
-
-
+
-
-
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/beast_mode_pref_activity.xml b/app/src/main/res/layout/beast_mode_pref_activity.xml
index 8a7651aee..0072a507b 100644
--- a/app/src/main/res/layout/beast_mode_pref_activity.xml
+++ b/app/src/main/res/layout/beast_mode_pref_activity.xml
@@ -6,7 +6,7 @@
-
-
-
-
-
-
-
-
-
+
diff --git a/app/src/main/res/layout/fragment_task_list.xml b/app/src/main/res/layout/fragment_task_list.xml
index d9f75d997..ef0055ecb 100644
--- a/app/src/main/res/layout/fragment_task_list.xml
+++ b/app/src/main/res/layout/fragment_task_list.xml
@@ -3,7 +3,7 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
+
diff --git a/app/src/main/res/layout/preference_draggable_row.xml b/app/src/main/res/layout/preference_draggable_row.xml
index 9adb1b591..bc3a62abd 100644
--- a/app/src/main/res/layout/preference_draggable_row.xml
+++ b/app/src/main/res/layout/preference_draggable_row.xml
@@ -1,5 +1,5 @@
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/sku_details_row.xml b/app/src/main/res/layout/sku_details_row.xml
index 29c93f7e6..4ebf38092 100644
--- a/app/src/main/res/layout/sku_details_row.xml
+++ b/app/src/main/res/layout/sku_details_row.xml
@@ -14,7 +14,7 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-
-
+
diff --git a/app/src/main/res/layout/sku_details_row_header.xml b/app/src/main/res/layout/sku_details_row_header.xml
index 809da518a..9b5f982d6 100644
--- a/app/src/main/res/layout/sku_details_row_header.xml
+++ b/app/src/main/res/layout/sku_details_row_header.xml
@@ -14,7 +14,7 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/tag_settings_activity.xml b/app/src/main/res/layout/tag_settings_activity.xml
index cd5f1bc55..84f64c783 100644
--- a/app/src/main/res/layout/tag_settings_activity.xml
+++ b/app/src/main/res/layout/tag_settings_activity.xml
@@ -18,11 +18,11 @@
android:focusableInTouchMode="true"
android:orientation="vertical">
-
-
-
+
-
+
-
-
+
diff --git a/app/src/main/res/layout/task_list_activity.xml b/app/src/main/res/layout/task_list_activity.xml
index 5f8896ec7..50e135823 100644
--- a/app/src/main/res/layout/task_list_activity.xml
+++ b/app/src/main/res/layout/task_list_activity.xml
@@ -1,4 +1,4 @@
-
-
+
diff --git a/app/src/main/res/layout/task_list_body_empty.xml b/app/src/main/res/layout/task_list_body_empty.xml
index 2ede90fd0..1adc96c6a 100644
--- a/app/src/main/res/layout/task_list_body_empty.xml
+++ b/app/src/main/res/layout/task_list_body_empty.xml
@@ -1,4 +1,4 @@
-
-
+
diff --git a/app/src/main/res/layout/task_list_body_standard.xml b/app/src/main/res/layout/task_list_body_standard.xml
index 45d733b2b..bdb7039da 100644
--- a/app/src/main/res/layout/task_list_body_standard.xml
+++ b/app/src/main/res/layout/task_list_body_standard.xml
@@ -6,7 +6,7 @@
android:layout_height="fill_parent"
tools:ignore="UnusedAttribute">
-