diff --git a/app/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java b/app/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java
index 861db96cb..3968195e4 100644
--- a/app/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java
+++ b/app/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java
@@ -134,10 +134,6 @@ public class AndroidUtilities {
return (int) (dp * displayMetrics.density + 0.5f);
}
- public static boolean preKitKat() {
- return !atLeastKitKat();
- }
-
public static boolean preLollipop() {
return !atLeastLollipop();
}
@@ -146,10 +142,6 @@ public class AndroidUtilities {
return !atLeastOreo();
}
- public static boolean atLeastKitKat() {
- return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
- }
-
public static boolean atLeastLollipop() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP;
}
diff --git a/app/src/main/java/org/tasks/files/FileHelper.java b/app/src/main/java/org/tasks/files/FileHelper.java
index 28f99399c..3902e9f2f 100644
--- a/app/src/main/java/org/tasks/files/FileHelper.java
+++ b/app/src/main/java/org/tasks/files/FileHelper.java
@@ -4,7 +4,6 @@ import static android.content.ContentResolver.SCHEME_CONTENT;
import static android.provider.DocumentsContract.EXTRA_INITIAL_URI;
import static androidx.core.content.FileProvider.getUriForFile;
import static com.google.common.collect.Iterables.any;
-import static com.todoroo.andlib.utility.AndroidUtilities.atLeastKitKat;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop;
import static com.todoroo.andlib.utility.AndroidUtilities.preLollipop;
import static com.todoroo.astrid.utility.Constants.FILE_PROVIDER_AUTHORITY;
@@ -43,29 +42,21 @@ public class FileHelper {
public static final int MAX_FILENAME_LENGTH = 40;
public static Intent newFilePickerIntent(Activity activity, Uri initial, String... mimeTypes) {
- if (atLeastKitKat()) {
- Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
- intent.putExtra("android.content.extra.SHOW_ADVANCED", true);
- intent.putExtra("android.content.extra.FANCY", true);
- intent.putExtra("android.content.extra.SHOW_FILESIZE", true);
- intent.addCategory(Intent.CATEGORY_OPENABLE);
- setInitialUri(activity, intent, initial);
- if (mimeTypes.length == 1) {
- intent.setType(mimeTypes[0]);
- } else {
- intent.setType("*/*");
- if (mimeTypes.length > 1) {
- intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
- }
- }
- return intent;
+ Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
+ intent.putExtra("android.content.extra.SHOW_ADVANCED", true);
+ intent.putExtra("android.content.extra.FANCY", true);
+ intent.putExtra("android.content.extra.SHOW_FILESIZE", true);
+ intent.addCategory(Intent.CATEGORY_OPENABLE);
+ setInitialUri(activity, intent, initial);
+ if (mimeTypes.length == 1) {
+ intent.setType(mimeTypes[0]);
} else {
- Intent intent = new Intent(activity, FileExplore.class);
- if (initial != null) {
- intent.putExtra(FileExplore.EXTRA_START_PATH, initial.getPath());
+ intent.setType("*/*");
+ if (mimeTypes.length > 1) {
+ intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
}
- return intent;
}
+ return intent;
}
public static void newDirectoryPicker(Fragment fragment, int rc, @Nullable Uri initial) {
diff --git a/app/src/main/java/org/tasks/gtasks/GoogleTaskSynchronizer.java b/app/src/main/java/org/tasks/gtasks/GoogleTaskSynchronizer.java
index a156934f6..cb5d4237c 100644
--- a/app/src/main/java/org/tasks/gtasks/GoogleTaskSynchronizer.java
+++ b/app/src/main/java/org/tasks/gtasks/GoogleTaskSynchronizer.java
@@ -1,7 +1,6 @@
package org.tasks.gtasks;
import static com.google.common.collect.Lists.transform;
-import static com.todoroo.andlib.utility.AndroidUtilities.preKitKat;
import static org.tasks.date.DateTimeUtils.newDateTime;
import android.content.Context;
@@ -165,10 +164,6 @@ public class GoogleTaskSynchronizer {
}
private void synchronize(GoogleTaskAccount account) throws IOException {
- if (preKitKat()) {
- account.setError(context.getString(R.string.requires_android_version, "4.4"));
- return;
- }
if (!permissionChecker.canAccessAccounts()
|| googleAccountManager.getAccount(account.getAccount()) == null) {
account.setError(context.getString(R.string.cannot_access_account));
diff --git a/app/src/main/java/org/tasks/jobs/WorkManager.java b/app/src/main/java/org/tasks/jobs/WorkManager.java
index 05cd8cf58..538cecc35 100644
--- a/app/src/main/java/org/tasks/jobs/WorkManager.java
+++ b/app/src/main/java/org/tasks/jobs/WorkManager.java
@@ -1,6 +1,5 @@
package org.tasks.jobs;
-import static com.todoroo.andlib.utility.AndroidUtilities.atLeastKitKat;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastMarshmallow;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastOreo;
import static com.todoroo.andlib.utility.DateUtilities.now;
@@ -203,10 +202,8 @@ public class WorkManager {
PendingIntent pendingIntent = getNotificationPendingIntent();
if (atLeastMarshmallow()) {
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, time, pendingIntent);
- } else if (atLeastKitKat()) {
- alarmManager.setExact(AlarmManager.RTC_WAKEUP, time, pendingIntent);
} else {
- alarmManager.set(AlarmManager.RTC_WAKEUP, time, pendingIntent);
+ alarmManager.setExact(AlarmManager.RTC_WAKEUP, time, pendingIntent);
}
}
}
diff --git a/app/src/main/java/org/tasks/preferences/Preferences.java b/app/src/main/java/org/tasks/preferences/Preferences.java
index ff91c2f41..218e19bcc 100644
--- a/app/src/main/java/org/tasks/preferences/Preferences.java
+++ b/app/src/main/java/org/tasks/preferences/Preferences.java
@@ -5,7 +5,6 @@ import static androidx.preference.PreferenceManager.setDefaultValues;
import static com.google.common.collect.Iterables.filter;
import static com.google.common.collect.Iterables.transform;
import static com.google.common.collect.Sets.newHashSet;
-import static com.todoroo.andlib.utility.AndroidUtilities.atLeastKitKat;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop;
import static java.util.Collections.emptySet;
@@ -243,10 +242,6 @@ public class Preferences {
return getIntegerFromString(R.string.p_default_reminders_mode_key, 0);
}
- public int getRowPadding() {
- return getInt(R.string.p_rowPadding, 16);
- }
-
public int getFontSize() {
return getInt(R.string.p_fontSize, 16);
}
@@ -414,12 +409,10 @@ public class Preferences {
}
}
- if (atLeastKitKat()) {
- DocumentFile file =
- DocumentFile.fromFile(context.getExternalFilesDir(null)).createDirectory(name);
- if (file != null) {
- return file.getUri();
- }
+ DocumentFile documentFile =
+ DocumentFile.fromFile(context.getExternalFilesDir(null)).createDirectory(name);
+ if (documentFile != null) {
+ return documentFile.getUri();
}
File file = getDefaultFileLocation(name);
@@ -445,11 +438,7 @@ public class Preferences {
cacheDir = context.getCacheDir();
}
- if (atLeastKitKat()) {
- return DocumentFile.fromFile(cacheDir).getUri();
- } else {
- return Uri.fromFile(cacheDir);
- }
+ return DocumentFile.fromFile(cacheDir).getUri();
}
private boolean hasWritePermission(Context context, Uri uri) {
diff --git a/app/src/main/java/org/tasks/scheduling/AlarmManager.java b/app/src/main/java/org/tasks/scheduling/AlarmManager.java
index 6eae93e28..c239c2b5d 100644
--- a/app/src/main/java/org/tasks/scheduling/AlarmManager.java
+++ b/app/src/main/java/org/tasks/scheduling/AlarmManager.java
@@ -1,6 +1,5 @@
package org.tasks.scheduling;
-import static com.todoroo.andlib.utility.AndroidUtilities.atLeastKitKat;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastMarshmallow;
import android.annotation.SuppressLint;
@@ -27,10 +26,8 @@ public class AlarmManager {
if (atLeastMarshmallow()) {
alarmManager.setExactAndAllowWhileIdle(
android.app.AlarmManager.RTC_WAKEUP, time, pendingIntent);
- } else if (atLeastKitKat()) {
- alarmManager.setExact(android.app.AlarmManager.RTC_WAKEUP, time, pendingIntent);
} else {
- alarmManager.set(android.app.AlarmManager.RTC_WAKEUP, time, pendingIntent);
+ alarmManager.setExact(android.app.AlarmManager.RTC_WAKEUP, time, pendingIntent);
}
}
}
diff --git a/app/src/main/java/org/tasks/sync/AddAccountDialog.java b/app/src/main/java/org/tasks/sync/AddAccountDialog.java
index abcd2fbf4..1e8b4dca4 100644
--- a/app/src/main/java/org/tasks/sync/AddAccountDialog.java
+++ b/app/src/main/java/org/tasks/sync/AddAccountDialog.java
@@ -1,7 +1,5 @@
package org.tasks.sync;
-import static com.todoroo.andlib.utility.AndroidUtilities.atLeastKitKat;
-
import android.app.Activity;
import android.content.Intent;
import android.content.res.TypedArray;
@@ -11,7 +9,6 @@ import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
-import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
@@ -64,18 +61,9 @@ public class AddAccountDialog {
(dialog, which) -> {
switch (which) {
case 0:
- if (atLeastKitKat()) {
- activity.startActivityForResult(
- new Intent(activity, GtasksLoginActivity.class),
- SynchronizationKt.REQUEST_GOOGLE_TASKS);
- } else {
- Toast.makeText(
- activity,
- activity.getString(R.string.requires_android_version, "4.4"),
- Toast.LENGTH_SHORT)
- .show();
- return;
- }
+ activity.startActivityForResult(
+ new Intent(activity, GtasksLoginActivity.class),
+ SynchronizationKt.REQUEST_GOOGLE_TASKS);
break;
case 1:
activity.startActivityForResult(
diff --git a/app/src/main/java/org/tasks/tasklist/ViewHolder.java b/app/src/main/java/org/tasks/tasklist/ViewHolder.java
index be10f1a62..e9980330b 100644
--- a/app/src/main/java/org/tasks/tasklist/ViewHolder.java
+++ b/app/src/main/java/org/tasks/tasklist/ViewHolder.java
@@ -1,6 +1,5 @@
package org.tasks.tasklist;
-import static com.todoroo.andlib.utility.AndroidUtilities.atLeastKitKat;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop;
import static com.todoroo.andlib.utility.DateUtilities.getRelativeDateTime;
@@ -121,13 +120,8 @@ public class ViewHolder extends RecyclerView.ViewHolder {
description.setEllipsize(null);
}
- if (atLeastKitKat()) {
- setTopPadding(rowPadding, nameView, completeBox);
- setBottomPadding(rowPadding, completeBox);
- } else {
- MarginLayoutParams lp = (MarginLayoutParams) rowBody.getLayoutParams();
- lp.setMargins(lp.leftMargin, rowPadding, lp.rightMargin, rowPadding);
- }
+ setTopPadding(rowPadding, nameView, completeBox);
+ setBottomPadding(rowPadding, completeBox);
nameView.setTextSize(fontSize);
description.setTextSize(fontSize);
@@ -220,16 +214,14 @@ public class ViewHolder extends RecyclerView.ViewHolder {
description.setOnClickListener(view -> onRowBodyClick());
description.setOnLongClickListener(view -> onRowBodyLongClick());
}
- if (atLeastKitKat()) {
- if (chipGroup.getVisibility() == View.VISIBLE) {
- setBottomPadding(rowPadding, chipGroup);
- setBottomPadding(0, description, nameView);
- } else if (description.getVisibility() == View.VISIBLE) {
- setBottomPadding(rowPadding, description);
- setBottomPadding(0, nameView);
- } else {
- setBottomPadding(rowPadding, nameView);
- }
+ if (chipGroup.getVisibility() == View.VISIBLE) {
+ setBottomPadding(rowPadding, chipGroup);
+ setBottomPadding(0, description, nameView);
+ } else if (description.getVisibility() == View.VISIBLE) {
+ setBottomPadding(rowPadding, description);
+ setBottomPadding(0, nameView);
+ } else {
+ setBottomPadding(rowPadding, nameView);
}
}
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 646204f23..d261ca8f2 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -549,7 +549,6 @@
Wählen Sie unten einen beliebigen Abonnementpreis aus, um Ihre kostenlose Testversion zu starten. Sie können jederzeit kündigen
Ihre Unterstützung bedeutet mir sehr viel, danke!
Zurück
- Benötigt Android %s+
Stil der Marke
mit Kontur
mit Füllung
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 48e29d01a..2e2f570c8 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -554,7 +554,6 @@
Elija cualquier precio de suscripción a continuación para iniciar su prueba gratuita. Puede cancelar en cualquier momento
Su apoyo significa mucho para mí, ¡gracias!
Volver
- Requiere Android %s+
Estilo de chip
Contorneado
Lleno
diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml
index c9e2a0209..09e2198a6 100644
--- a/app/src/main/res/values-eu/strings.xml
+++ b/app/src/main/res/values-eu/strings.xml
@@ -556,7 +556,6 @@
Hautatu azpiko harpidetza salneurri bat zure doako proba hasteko. Nahi duzunean eten dezakezu
Zure babesa asko da niretzat, eskerrik asko!
Atzera
- Android %s+ behar du
Txip estiloa
Ingerada
Betea
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index c7e25cd45..9b238aefe 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -550,7 +550,6 @@ est configuré correctement
Choisissez l\'un des prix d\'abonnement ci-dessous pour commencer votre essai gratuit. Vous pouvez annuler à tout moment
Votre soutien est très important pour moi, merci !
Retour
- Nécessite Android %s+
Style de puce
Entouré
Rempli
diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml
index f189f88b6..c89f522c6 100644
--- a/app/src/main/res/values-hu/strings.xml
+++ b/app/src/main/res/values-hu/strings.xml
@@ -552,7 +552,6 @@
Az ingyenes próbaidőszak megkezdéséhez válassz a lenti előfizetési díjakból. Bármikor lemondhatod az előfizetést
A támogatásod sokat jelent nekem, köszönöm!
Vissza
- Android %s+ szükséges
Jelölő stílusa
Körvonal
Tele
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index d4efd43e8..1d560978d 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -549,7 +549,6 @@
Kies hierbeneden een abonnementsprijs om je gratis proefperiode te starten. Je kunt het altijd annuleren
Je steun betekent veel voor me, bedankt!
Terug
- Vereist Android %s+
Fiche-stijl
Omlijnd
Gevuld
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 93e99fb4f..6cfe8298e 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -565,7 +565,6 @@
Wybierz dowolną cenę subskrypcji poniżej, aby rozpocząć bezpłatny okres próbny. Możesz zrezygnować w każdej chwili
Twoje wsparcie wiele dla mnie znaczy, dziękuję!
Wstecz
- Wymaga Android %s+
Styl chipa
Obrysowany
Wypełniony
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 8ad2c514c..b411e6597 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -571,7 +571,6 @@
Выберите любую сумму подписки для того, чтобы начать Ваш бесплатный пробный период. Вы можете отказаться в любой момент
Ваша поддержка много значит для меня, спасибо!
Назад
- Требует Андроид %s+
Стиль индикаторов списков
Контурный
Заполненный
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index b00499318..92a945b14 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -554,7 +554,6 @@
Ücretsiz denemenizi başlatmak için aşağıdan herhangi abonelik bedelini seçin. İstediğinizde iptal edebilirsiniz
Desteğiniz çok şey ifade ediyor, teşekkürler!
Geri
- Android %s+ gerektirir
Yonga biçimi
Dış çizgi
Tok
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 62f41ddf5..8e102a335 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -545,7 +545,6 @@
选择下方任意订阅价格即可开始免费试用。 你可以随时取消
您的支持对我很重要,谢谢!
返回
- 需要安卓系统 %s+
Chip样式
描边
填充
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 0e5fb4a4c..ea68c9a71 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -557,7 +557,6 @@ File %1$s contained %2$s.\n\n
Choose any subscription price below to start your free trial. You may cancel at any time
Your support means a lot to me, thank you!
Back
- Requires Android %s+
Chip style
Outlined
Filled
diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt
index b7a4fd02c..b493233ad 100644
--- a/buildSrc/src/main/kotlin/Versions.kt
+++ b/buildSrc/src/main/kotlin/Versions.kt
@@ -1,7 +1,7 @@
object Versions {
const val kotlin = "1.3.70"
const val targetSdk = 29
- const val minSdk = 17
+ const val minSdk = 19
const val dagger = "2.26"
const val butterknife = "10.2.1"
const val work = "2.3.4"