diff --git a/app/src/main/java/org/tasks/jobs/SyncGoogleTasksWork.kt b/app/src/main/java/org/tasks/jobs/SyncGoogleTasksWork.kt
index d8cb82d98..0329ece10 100644
--- a/app/src/main/java/org/tasks/jobs/SyncGoogleTasksWork.kt
+++ b/app/src/main/java/org/tasks/jobs/SyncGoogleTasksWork.kt
@@ -17,7 +17,7 @@ class SyncGoogleTasksWork @WorkerInject constructor(
@Assisted workerParams: WorkerParameters,
firebase: Firebase,
localBroadcastManager: LocalBroadcastManager,
- preferences: Preferences,
+ private val preferences: Preferences,
private val googleTaskListDao: GoogleTaskListDao,
private val googleTaskSynchronizer: GoogleTaskSynchronizer
) : SyncWork(context, workerParams, firebase, localBroadcastManager, preferences) {
@@ -27,6 +27,9 @@ class SyncGoogleTasksWork @WorkerInject constructor(
override val syncStatus = R.string.p_sync_ongoing_google_tasks
override suspend fun doSync() {
+ if (preferences.isManualSort) {
+ preferences.isPositionHackEnabled = true
+ }
googleTaskJobs().awaitAll()
}
diff --git a/app/src/main/java/org/tasks/preferences/Preferences.kt b/app/src/main/java/org/tasks/preferences/Preferences.kt
index a05ce0a5d..00b9ddf32 100644
--- a/app/src/main/java/org/tasks/preferences/Preferences.kt
+++ b/app/src/main/java/org/tasks/preferences/Preferences.kt
@@ -12,6 +12,8 @@ import android.os.Binder
import androidx.core.app.NotificationCompat
import androidx.documentfile.provider.DocumentFile
import androidx.preference.PreferenceManager
+import com.todoroo.andlib.utility.DateUtilities
+import com.todoroo.andlib.utility.DateUtilities.now
import com.todoroo.astrid.activity.BeastModePreferences
import com.todoroo.astrid.api.AstridApiConstants
import com.todoroo.astrid.core.SortHelper
@@ -432,8 +434,9 @@ class Preferences @JvmOverloads constructor(
val isFlipperEnabled: Boolean
get() = BuildConfig.DEBUG && getBoolean(R.string.p_flipper, false)
- val isPositionHackEnabled: Boolean
- get() = getLong(R.string.p_google_tasks_position_hack, 0) > 0
+ var isPositionHackEnabled: Boolean
+ get() = getLong(R.string.p_google_tasks_position_hack, 0) > now() - DateUtilities.ONE_WEEK
+ set(value) { setLong(R.string.p_google_tasks_position_hack, if (value) now() else 0) }
override var isManualSort: Boolean
get() = getBoolean(R.string.p_manual_sort, false)
diff --git a/app/src/main/java/org/tasks/preferences/fragments/Synchronization.kt b/app/src/main/java/org/tasks/preferences/fragments/Synchronization.kt
index d48217e53..fe95b143b 100644
--- a/app/src/main/java/org/tasks/preferences/fragments/Synchronization.kt
+++ b/app/src/main/java/org/tasks/preferences/fragments/Synchronization.kt
@@ -5,8 +5,6 @@ import android.os.Bundle
import androidx.lifecycle.lifecycleScope
import androidx.preference.Preference
import androidx.preference.PreferenceCategory
-import androidx.preference.SwitchPreferenceCompat
-import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.gtasks.auth.GtasksLoginActivity
import com.todoroo.astrid.service.TaskDeleter
import dagger.hilt.android.AndroidEntryPoint
@@ -63,22 +61,6 @@ class Synchronization : InjectingPreferenceFragment() {
true
}
- val positionHack =
- findPreference(R.string.google_tasks_position_hack) as SwitchPreferenceCompat
- positionHack.isChecked = preferences.isPositionHackEnabled
- positionHack.onPreferenceChangeListener =
- Preference.OnPreferenceChangeListener { _: Preference?, newValue: Any? ->
- if (newValue == null) {
- false
- } else {
- preferences.setLong(
- R.string.p_google_tasks_position_hack,
- if (newValue as Boolean) DateUtilities.now() else 0
- )
- true
- }
- }
-
findPreference(R.string.add_account)
.setOnPreferenceClickListener {
newAccountDialog(this@Synchronization, REQUEST_ADD_ACCOUNT)
@@ -204,7 +186,6 @@ class Synchronization : InjectingPreferenceFragment() {
synchronizationPreferences.removeAll()
val hasGoogleAccounts: Boolean = addGoogleTasksAccounts(synchronizationPreferences)
val hasCaldavAccounts = addCaldavAccounts(synchronizationPreferences)
- findPreference(R.string.gtasks_GPr_header).isVisible = hasGoogleAccounts
val syncEnabled = hasGoogleAccounts || hasCaldavAccounts
findPreference(R.string.accounts).isVisible = syncEnabled
findPreference(R.string.sync_SPr_interval_title).isVisible = syncEnabled
diff --git a/app/src/main/res/values/keys.xml b/app/src/main/res/values/keys.xml
index 9cbfea647..ebaca9f86 100644
--- a/app/src/main/res/values/keys.xml
+++ b/app/src/main/res/values/keys.xml
@@ -405,8 +405,6 @@
preference_screen
google_tasks_add_to_top
google_tasks_position_hack
- Custom order synchronization fix
- Always perform a full synchronization to workaround https://issuetracker.google.com/issues/132432317
https://tasks.org/subscribe
disable_subtasks
disable_sort_groups
diff --git a/app/src/main/res/xml/preferences_synchronization.xml b/app/src/main/res/xml/preferences_synchronization.xml
index c1fd666ff..28525ae84 100644
--- a/app/src/main/res/xml/preferences_synchronization.xml
+++ b/app/src/main/res/xml/preferences_synchronization.xml
@@ -13,18 +13,6 @@
android:title="@string/add_account"
app:icon="@drawable/ic_outline_add_24px" />
-
-
-
-
-
-