diff --git a/CHANGELOG.md b/CHANGELOG.md index b757d34f5..499ec5fae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ Change Log --- ======= +### 9.4.1 (2020-06-01) + +* Add 'Tasks settings > Advanced > Improve performance' toggle +* Bug fixes + ### 9.4 (2020-05-27) * Add collapsible group headers when sorting by due date, priority, created, or modified diff --git a/app/build.gradle.kts b/app/build.gradle.kts index bb8f2bc3b..76d624f15 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -42,8 +42,8 @@ android { defaultConfig { testApplicationId = "org.tasks.test" applicationId = "org.tasks" - versionCode = 90400 - versionName = "9.4" + versionCode = 90401 + versionName = "9.4.1" targetSdkVersion(Versions.targetSdk) minSdkVersion(Versions.minSdk) testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.kt b/app/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.kt index e24b8813e..88dcfa0ec 100644 --- a/app/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.kt +++ b/app/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.kt @@ -150,7 +150,7 @@ open class TaskAdapter( fun isHeader(position: Int): Boolean = dataSource.isHeader(position) - fun getTask(position: Int): TaskContainer = dataSource.getItem(position) + fun getTask(position: Int): TaskContainer = dataSource.getItem(position)!! fun getItemUuid(position: Int): String = getTask(position).uuid diff --git a/app/src/main/java/com/todoroo/astrid/adapter/TaskAdapterDataSource.kt b/app/src/main/java/com/todoroo/astrid/adapter/TaskAdapterDataSource.kt index dd1c6f3ed..2c0c5c634 100644 --- a/app/src/main/java/com/todoroo/astrid/adapter/TaskAdapterDataSource.kt +++ b/app/src/main/java/com/todoroo/astrid/adapter/TaskAdapterDataSource.kt @@ -3,7 +3,7 @@ package com.todoroo.astrid.adapter import org.tasks.data.TaskContainer interface TaskAdapterDataSource { - fun getItem(position: Int): TaskContainer + fun getItem(position: Int): TaskContainer? fun getTaskCount(): Int diff --git a/app/src/main/java/org/tasks/data/TaskListQueryNonRecursive.kt b/app/src/main/java/org/tasks/data/TaskListQueryNonRecursive.kt index 2e0e02315..22cdce7ef 100644 --- a/app/src/main/java/org/tasks/data/TaskListQueryNonRecursive.kt +++ b/app/src/main/java/org/tasks/data/TaskListQueryNonRecursive.kt @@ -1,6 +1,6 @@ package org.tasks.data -import com.todoroo.andlib.sql.Field +import com.todoroo.andlib.sql.Field.Companion.field import com.todoroo.andlib.sql.Join import com.todoroo.andlib.sql.Query import com.todoroo.astrid.activity.TaskListFragment @@ -11,28 +11,30 @@ import com.todoroo.astrid.data.Task import org.tasks.preferences.Preferences internal object TaskListQueryNonRecursive { - private val JOIN_TAGS = Task.ID.eq(Field.field("${TaskListFragment.TAGS_METADATA_JOIN}.task")) + private val JOIN_TAGS = Task.ID.eq(field("${TaskListFragment.TAGS_METADATA_JOIN}.task")) private val JOINS = """ ${Join.left(Tag.TABLE.`as`(TaskListFragment.TAGS_METADATA_JOIN), JOIN_TAGS)} ${TaskListQuery.JOINS} """.trimIndent() private val TAGS = - Field.field("group_concat(distinct(${TaskListFragment.TAGS_METADATA_JOIN}.tag_uid))") + field("group_concat(distinct(${TaskListFragment.TAGS_METADATA_JOIN}.tag_uid))") .`as`("tags") private val FIELDS = TaskListQuery.FIELDS.plus(TAGS).toTypedArray() fun getNonRecursiveQuery(filter: Filter, preferences: Preferences): List { val joinedQuery = JOINS + filter.getSqlQuery() - val query = SortHelper.adjustQueryForFlagsAndSort(preferences, joinedQuery, preferences.sortMode) + val sortMode = preferences.sortMode + val sortGroup = field(SortHelper.getSortGroup(sortMode) ?: "NULL").`as`("sortGroup") + val query = SortHelper.adjustQueryForFlagsAndSort(preferences, joinedQuery, sortMode) val groupedQuery = if (query.contains("ORDER BY")) { query.replace("ORDER BY", "GROUP BY ${Task.ID} ORDER BY") } else { "$query GROUP BY ${Task.ID}" } return mutableListOf( - Query.select(*FIELDS) + Query.select(*FIELDS.plus(sortGroup)) .withQueryTemplate(PermaSql.replacePlaceholdersForQuery(groupedQuery)) .from(Task.TABLE) .toString()) } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/tasks/preferences/fragments/Advanced.kt b/app/src/main/java/org/tasks/preferences/fragments/Advanced.kt index 85db53ccc..6781c25ba 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/Advanced.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/Advanced.kt @@ -13,6 +13,7 @@ import io.reactivex.Single import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.CompositeDisposable import io.reactivex.schedulers.Schedulers +import org.tasks.LocalBroadcastManager import org.tasks.PermissionUtil import org.tasks.R import org.tasks.calendars.CalendarEventProvider @@ -41,6 +42,7 @@ class Advanced : InjectingPreferenceFragment() { @Inject lateinit var toaster: Toaster @Inject lateinit var permissionRequester: FragmentPermissionRequestor @Inject lateinit var permissionChecker: PermissionChecker + @Inject lateinit var localBroadcastManager: LocalBroadcastManager private lateinit var disposables: CompositeDisposable private lateinit var calendarReminderPreference: SwitchPreferenceCompat @@ -48,6 +50,12 @@ class Advanced : InjectingPreferenceFragment() { override fun getPreferenceXml() = R.xml.preferences_advanced override fun setupPreferences(savedInstanceState: Bundle?) { + findPreference(R.string.p_disable_subtasks) + .setOnPreferenceChangeListener { _: Preference?, _: Any? -> + localBroadcastManager.broadcastRefresh() + true + } + findPreference(R.string.EPr_manage_purge_deleted) .setOnPreferenceClickListener { purgeDeletedTasks() diff --git a/app/src/main/java/org/tasks/preferences/fragments/LookAndFeel.kt b/app/src/main/java/org/tasks/preferences/fragments/LookAndFeel.kt index d346d2bda..65af6f83e 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/LookAndFeel.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/LookAndFeel.kt @@ -70,12 +70,6 @@ class LookAndFeel : InjectingPreferenceFragment() { override fun getPreferenceXml() = R.xml.preferences_look_and_feel override fun setupPreferences(savedInstanceState: Bundle?) { - findPreference(R.string.p_disable_subtasks) - .setOnPreferenceChangeListener { _: Preference?, _: Any? -> - localBroadcastManager.broadcastRefresh() - true - } - val themePref = findPreference(R.string.p_theme) val themeNames = resources.getStringArray(R.array.base_theme_names) themePref.summary = themeNames[themeBase.index] diff --git a/app/src/main/java/org/tasks/tasklist/DragAndDropRecyclerAdapter.kt b/app/src/main/java/org/tasks/tasklist/DragAndDropRecyclerAdapter.kt index 31ea8dfa8..140d26c9a 100644 --- a/app/src/main/java/org/tasks/tasklist/DragAndDropRecyclerAdapter.kt +++ b/app/src/main/java/org/tasks/tasklist/DragAndDropRecyclerAdapter.kt @@ -68,7 +68,7 @@ class DragAndDropRecyclerAdapter( override fun isHeader(position: Int): Boolean = list.isHeader(position) - override fun getItem(position: Int): TaskContainer = list.getItem(position) + override fun getItem(position: Int) = list.getItem(position) override fun submitList(list: List) { disposables.add( diff --git a/app/src/main/java/org/tasks/tasklist/PagedListRecyclerAdapter.kt b/app/src/main/java/org/tasks/tasklist/PagedListRecyclerAdapter.kt index 9667ba14d..cfad71da7 100644 --- a/app/src/main/java/org/tasks/tasklist/PagedListRecyclerAdapter.kt +++ b/app/src/main/java/org/tasks/tasklist/PagedListRecyclerAdapter.kt @@ -22,7 +22,7 @@ class PagedListRecyclerAdapter( private val differ: AsyncPagedListDiffer = AsyncPagedListDiffer(this, AsyncDifferConfig.Builder(ItemCallback()).build()) - override fun getItem(position: Int) = differ.getItem(position)!! + override fun getItem(position: Int) = differ.getItem(position) override fun submitList(list: List) = differ.submitList(list as PagedList) diff --git a/app/src/main/java/org/tasks/ui/TaskListViewModel.java b/app/src/main/java/org/tasks/ui/TaskListViewModel.java index 9fc15ad57..05e190033 100644 --- a/app/src/main/java/org/tasks/ui/TaskListViewModel.java +++ b/app/src/main/java/org/tasks/ui/TaskListViewModel.java @@ -86,7 +86,7 @@ public class TaskListViewModel extends ViewModel implements Observer { - if (manualSortFilter || (subtasks.usesSubtasks() && preferences.showSubtasks())) { + if (manualSortFilter || preferences.showSubtasks()) { performNonPagedQuery(subtasks); } else { performPagedListQuery(); diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 45b48e004..457ea6957 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -606,10 +606,8 @@ Nach Erstellungszeit "Nach heute " Überfällig - Unteraufgaben deaktivieren Schlagwörter hinzufügen Keine Schlagwörter - Teilaufgaben zu deaktivieren kann die App-Performance verbessern Beliebiges Fälligkeitsdatum Gefällt Ihnen Tasks\? Änderungen in Version %s diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 2f308f59d..bfd56d59d 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -616,8 +616,6 @@ Hoy sólo Atrasado En el momento de la creación - La desactivación de subtareas puede mejorar el rendimiento de la aplicación - Desactivar subtareas ¡Entendido! No gracias Desbloquea características adicionales y soporta software de código abierto diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index f91178d7e..541fa404e 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -602,8 +602,6 @@ Zereginaren edizioa Itxi automatikoki zereginen zerrendatik hautatzean Zereginen zerrenda - Azpi-zereginak desgaitzeak aplikazioaren errendimendua hobetu dezake - Desgaitu azpi-zereginak Ezkutatuta Izenburuaren azpian Izenburua eta gero diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index c1a1c86cf..4854a2843 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -600,8 +600,6 @@ Puettavan laitteen ilmoitukset Kehittyneet Vaatii palveluntuottajan tai itsehallinnoidun CalDAV tilin. Tutustu palveluntarjoajiin osoitteessa tasks.org/caldav - Alatehtävien poisto käytöstä voi parantaa ohjelman suorituskykyä - Poista alatehtävät käytöstä Päivitykset Lähdit paikasta %s Saavuit paikkaan %s diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index a026b9850..6311bf09a 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -611,8 +611,6 @@ Aujourd\'hui seulement En retard Par date de création - La désactivation des sous-tâches peut améliorer les performances de l\'application - Désactiver les sous-tâches J\'ai compris ! Non, merci Déverrouillez des fonctionnalités supplémentaires et supportez les logiciels open source diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 2f6a0d10e..a9ef6fa52 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -614,8 +614,6 @@ Csak ma Határidőn túli Létrehozás ideje alapján - A részfeladatok letiltása növelheti az app sebességét - Részfeladatok letiltása Megértettem! Köszönöm, nem További finkciók feloldása és a nyílt szoftver támogatása diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index d4478451d..c0e5879ae 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -539,8 +539,6 @@ מעט אחר - ביטול תתי משימות עשוי לשפר ביצועים - ביטול תתי משימות הזן כותרת כיווץ תתי משימות הרחבת תתי משימות diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index a4145d171..f79268307 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -611,8 +611,6 @@ Alleen vandaag Te laat Op aanmaaktijd - Het uitschakelen van deeltaken kan de snelheid van de app verbeteren - Deeltaken uitschakelen Ontgrendel extra mogelijkheden en ondersteun open source software Begrepen! Nieuws diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 6514a5617..00cad0532 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -626,8 +626,6 @@ LUB ORAZ Kryteria filtrowania - Wyłączenie podzadań może zwiększyć wydajność aplikacji - Wyłącz podzadania Wg. czasu stworzenia Rozumiem! Nie, dziękuję diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index d01a84417..d8fdf1a89 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -632,8 +632,6 @@ ИЛИ И Критерии фильтрации - Отключение подзадач может повысить производительность приложения - Отключить подзадачи По времени создания Понятно! Нет, спасибо diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index e49938498..4904f6c2f 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -616,8 +616,6 @@ VE Süzme ölçütü Oluşturulma zamanına göre - Alt görevleri devre dışı bırakmak uygulama performansını iyileştirebilir - Alt görevleri devre dışı bırak Lütfen nasıl yaptığımı anlat Anladım! Teşekkürler diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 23f3364cc..25649a047 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -606,8 +606,6 @@ 任何到期日 仅今日 到期 - 禁用子任务可能改善应用性能 - 禁用子任务 按创建时间 知道了! 不,谢谢 diff --git a/app/src/main/res/values/changelog.xml b/app/src/main/res/values/changelog.xml index f0b1edc1b..5f98d842b 100644 --- a/app/src/main/res/values/changelog.xml +++ b/app/src/main/res/values/changelog.xml @@ -2,6 +2,8 @@ Add collapsible group headers when sorting by due date, priority, created, or modified + Add \'Tasks settings > Advanced > Improve performance\' toggle + Bug fixes Update translations - \ No newline at end of file + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 54cc0e4e3..36ea060b6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -540,8 +540,8 @@ File %1$s contained %2$s.\n\n Collapse subtasks Multi-level subtasks not supported by Google Tasks Enter title - Disable subtasks - Disabling subtasks may improve app performance + Improve performance + Disable sort groups and collapsible subtasks to improve app performance Enter tag name Create \"%s\" Select a platform diff --git a/app/src/main/res/xml/preferences_advanced.xml b/app/src/main/res/xml/preferences_advanced.xml index 2397a7b66..0a5cd51c1 100644 --- a/app/src/main/res/xml/preferences_advanced.xml +++ b/app/src/main/res/xml/preferences_advanced.xml @@ -2,6 +2,12 @@ + + - - Advanced > Improve performance' toggle +* Bug fixes