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