From ee74d9f89ea100858de786cbd0ca843db56a585d Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Tue, 10 Mar 2020 13:10:16 -0500 Subject: [PATCH] Google Task sync requires Android 4.4+ --- .../andlib/utility/AndroidUtilities.java | 4 ++++ .../tasks/gtasks/GoogleTaskSynchronizer.java | 7 +++++-- .../java/org/tasks/sync/AddAccountDialog.java | 18 +++++++++++++++--- app/src/main/res/values/strings.xml | 1 + 4 files changed, 25 insertions(+), 5 deletions(-) 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 8036c22eb..6602e4813 100644 --- a/app/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java +++ b/app/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java @@ -134,6 +134,10 @@ public class AndroidUtilities { return (int) (dp * displayMetrics.density + 0.5f); } + public static boolean preKitKat() { + return !atLeastKitKat(); + } + public static boolean preLollipop() { return !atLeastLollipop(); } diff --git a/app/src/main/java/org/tasks/gtasks/GoogleTaskSynchronizer.java b/app/src/main/java/org/tasks/gtasks/GoogleTaskSynchronizer.java index 7614cded7..d0c9cadc0 100644 --- a/app/src/main/java/org/tasks/gtasks/GoogleTaskSynchronizer.java +++ b/app/src/main/java/org/tasks/gtasks/GoogleTaskSynchronizer.java @@ -1,6 +1,7 @@ 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,11 +166,13 @@ 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)); - googleTaskListDao.update(account); - localBroadcastManager.broadcastRefreshList(); return; } diff --git a/app/src/main/java/org/tasks/sync/AddAccountDialog.java b/app/src/main/java/org/tasks/sync/AddAccountDialog.java index 1e8b4dca4..abcd2fbf4 100644 --- a/app/src/main/java/org/tasks/sync/AddAccountDialog.java +++ b/app/src/main/java/org/tasks/sync/AddAccountDialog.java @@ -1,5 +1,7 @@ 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; @@ -9,6 +11,7 @@ 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; @@ -61,9 +64,18 @@ public class AddAccountDialog { (dialog, which) -> { switch (which) { case 0: - activity.startActivityForResult( - new Intent(activity, GtasksLoginActivity.class), - SynchronizationKt.REQUEST_GOOGLE_TASKS); + 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; + } break; case 1: activity.startActivityForResult( diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 59ede4a30..4f28cf0b5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -557,4 +557,5 @@ 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+