From 7fa90396b396adb98f8710edb9a2dbd0eb4d183e Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Sun, 14 Sep 2025 13:35:34 -0500 Subject: [PATCH] Limit widgets to 175 rows 200 rows gave me binder size warnings --- .../org/tasks/widget/TasksWidgetViewFactory.kt | 18 +++++++++++++++++- app/src/main/res/layout/widget_footer.xml | 16 ++++++++++++++++ app/src/main/res/values-bg-rBG/strings.xml | 1 + app/src/main/res/values-ca/strings.xml | 1 + app/src/main/res/values-cs/strings.xml | 1 + app/src/main/res/values-da/strings.xml | 1 + app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-eo/strings.xml | 1 + app/src/main/res/values-es/strings.xml | 1 + app/src/main/res/values-et/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-gl/strings.xml | 1 + app/src/main/res/values-hr/strings.xml | 1 + app/src/main/res/values-hu/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values-iw/strings.xml | 1 + app/src/main/res/values-nl/strings.xml | 1 + app/src/main/res/values-pt/strings.xml | 1 + app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values-sr/strings.xml | 1 + app/src/main/res/values-sv/strings.xml | 1 + app/src/main/res/values-tr/strings.xml | 1 + app/src/main/res/values-uk/strings.xml | 1 + app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 25 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/layout/widget_footer.xml diff --git a/app/src/main/java/org/tasks/widget/TasksWidgetViewFactory.kt b/app/src/main/java/org/tasks/widget/TasksWidgetViewFactory.kt index d0e3dff56..c8427de87 100644 --- a/app/src/main/java/org/tasks/widget/TasksWidgetViewFactory.kt +++ b/app/src/main/java/org/tasks/widget/TasksWidgetViewFactory.kt @@ -5,6 +5,7 @@ import android.content.Intent import android.view.View import android.widget.RemoteViews import android.widget.RemoteViewsService.RemoteViewsFactory +import com.todoroo.andlib.utility.AndroidUtilities.atLeastAndroid16 import com.todoroo.astrid.core.SortHelper import com.todoroo.astrid.subtasks.SubtasksHelper import kotlinx.coroutines.runBlocking @@ -50,6 +51,7 @@ internal class TasksWidgetViewFactory( private val markdown: Markdown, private val headerFormatter: HeaderFormatter, ) : RemoteViewsFactory { + private val taskLimit = if (atLeastAndroid16()) 175 + 1 else Int.MAX_VALUE private val indentPadding = (20 * context.resources.displayMetrics.density).toInt() private val settings = widgetPreferences.getWidgetListSettings() private val hPad = context.resources.getDimension(R.dimen.widget_padding).toInt() @@ -92,10 +94,11 @@ internal class TasksWidgetViewFactory( Timber.d("onDestroy widgetId:$widgetId") } - override fun getCount() = tasks.size + override fun getCount() = tasks.size.coerceAtMost(taskLimit) override fun getViewAt(position: Int): RemoteViews? = tasks.let { when { + position == taskLimit - 1 && it.size > taskLimit -> buildFooter() it.isHeader(position) -> buildHeader(it.getSection(position)) position < it.size -> buildUpdate(it.getItem(position)) else -> null @@ -108,6 +111,7 @@ internal class TasksWidgetViewFactory( override fun getItemId(position: Int) = tasks.let { when { + position == taskLimit - 1 && it.size > taskLimit -> 0 it.isHeader(position) -> it.getSection(position).value position < it.size -> it.getItem(position).id else -> 0 @@ -118,6 +122,18 @@ internal class TasksWidgetViewFactory( private fun newRemoteView() = RemoteViews(BuildConfig.APPLICATION_ID, R.layout.widget_row) + private fun buildFooter(): RemoteViews { + return RemoteViews(BuildConfig.APPLICATION_ID, R.layout.widget_footer).apply { + setTextSize(R.id.widget_view_more, settings.textSize) + setTextColor(R.id.widget_view_more, onSurface) + setOnClickFillInIntent( + R.id.widget_view_more, + Intent(WidgetClickActivity.OPEN_TASK_LIST) + .putExtra(WidgetClickActivity.EXTRA_FILTER, filter) + ) + } + } + private fun buildHeader(section: AdapterSection): RemoteViews { val sortGroup = section.value val header: String? = if (filter.supportsSorting()) { diff --git a/app/src/main/res/layout/widget_footer.xml b/app/src/main/res/layout/widget_footer.xml new file mode 100644 index 000000000..0f7a4302a --- /dev/null +++ b/app/src/main/res/layout/widget_footer.xml @@ -0,0 +1,16 @@ + + + + + + diff --git a/app/src/main/res/values-bg-rBG/strings.xml b/app/src/main/res/values-bg-rBG/strings.xml index 99ee0b190..822c146c7 100644 --- a/app/src/main/res/values-bg-rBG/strings.xml +++ b/app/src/main/res/values-bg-rBG/strings.xml @@ -721,4 +721,5 @@ Задачата %s ще бъде премахната. Действието е необратимо! Без синхронизиране Помощ в избора + Повече задачи diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 4c53560ee..ce16993b1 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -743,4 +743,5 @@ Sobre la sincronització de Google Tasks No tots els detalls de la tasca es sincronitzen amb Google Tasks Més informació + Mostreu més tasques diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index fdd420177..3b2a139f2 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -743,4 +743,5 @@ Pomozte mi s výběrem Úkol %s bude odstraněn. Tato akce je nevratná! Pokračovat bez synchronizace + Zobrazit další úkoly diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index c9f5dfd99..34dc56ea7 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -721,4 +721,5 @@ Fortsæt uden synkronisering Hjælp mig med at vælge %s bliver slettet. Dette kan ikke fortrydes! + Vis flere opgaver diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 10567fd0b..682145c16 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -721,4 +721,5 @@ Hilf mir bei der Auswahl Weiter ohne Synchronisierung %s wird/werden gelöscht. Dies kann nicht rückgängig gemacht werden! + Mehr Aufgaben anzeigen diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index c1171bd98..22483d79e 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -721,4 +721,5 @@ Forigas %s. Ne eblas malfari tion! Daŭrigi sen sinkronigo Helpu min elekti + Vidi pli da taskoj diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index ec238f2f5..e46604616 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -743,4 +743,5 @@ Continua sin sincronizar Ayudame a escoger %s será eliminado. ¡Esto no se puede deshacer! + Ver más tareas diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index e7aed3ad3..fcf496033 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -721,4 +721,5 @@ Jätka ilma sünkroniseerimata Aita mul valida %s saab olema kustutatud. Seda tegevust ei saa tagasi pöörata! + Vaata veel ülesandeid diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 1f68a5ab7..6ce62d338 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -743,4 +743,5 @@ Aidez-moi à choisir %s sera supprimé. Cette opération est irréversible ! Appuyer sur Terminé pour enregistrer la tâche + Voir plus de tâches diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index bb8275c77..f90dee199 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -661,6 +661,7 @@ Acerca da sincronización de Google Task Non todos os detalles da tarefa se sincronizan con Google Tasks Máis información + Ver máis tarefas ocorrencia ocorrencias diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index d99c50a17..b36003212 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -743,4 +743,5 @@ Aplikacija je aktualizirana Aplikacija Tasks je upravo aktualizirana na %s. Želiš li vidjeti bilješke o izdanju? Pritisni „Gotovo” za spremanje zadatka + Prikaži više zadataka diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 6132ab089..137ddd6e1 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -721,4 +721,5 @@ Folytatás szinkronizálás nélkül Segítséget kérek a választásban Kattints a Kész gombra a feladat elmentéséhez + További feladatok megtekintése diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 323b43463..c60868ffe 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -743,4 +743,5 @@ Continua senza sincronizzazione Aiutami a scegliere %s verrà cancellato. L\'operazione non può essere annullata! + Visualizza ulteriori attività diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 73ca09524..b8f1e6e7a 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -745,4 +745,5 @@ להמשיך ללא סנכרון עזור לי לבחור %s יימחק. לא ניתן לבטל זאת! + הצג עוד משימות diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 37fa7d35a..0673eff3c 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -721,4 +721,5 @@ Doorgaan zonder synchronisatie Help me kiezen %s wordt verwijderd. Dit kan niet ongedaan worden gemaakt! + Meer taken zien diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index b6fad4e3a..77cabec73 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -723,4 +723,5 @@ Ajude-me a escolher Continuar sem sync %s será apagado. Isso não poderá ser desfeito! + Ver mais tarefas diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index e8063579d..89b3ec499 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -750,4 +750,5 @@ Продолжить без синхронизации Помогите мне выбрать %s будет удалена. Это нельзя отменить! + Просмотреть больше задач diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index 1cef28fb9..df055ceae 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -743,4 +743,5 @@ Подразумевано за задатке Минимум приоритета ? Сет није пронађен + Погледај још задатака diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 15577489f..6dde24e5c 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -721,4 +721,5 @@ Hjälp mig att välja %s kommer att tas bort. Detta kan inte ångras! Fortsätt utan synkronisering + Visa mer uppgifter diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 64f3aa438..557514305 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -721,4 +721,5 @@ %s silinecek. Bu geri alınamaz! Eşzamanlamadan sürdür Seçmeme yardım et + Daha çok görev gör diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 470566b8d..ddc4c7877 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -751,4 +751,5 @@ Продовжити без синхронізації Допоможіть обрати %s буде видалено. Дію неможливо скасувати! + Переглянути інші завдання diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index cb6ebfd21..2ad48565b 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -710,4 +710,5 @@ 继续但不同步 帮我选择 %s 将会删除。此操作无法撤销! + 查看更多任务 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1f0104f68..3f620604d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -726,4 +726,5 @@ File %1$s contained %2$s.\n\n About Google Task sync Not all task details sync with Google Tasks Learn more + View more tasks