Remove limit on widget items

pull/3891/head
Alex Baker 3 months ago
parent d9ddd45f13
commit d1df39d12c

@ -5,7 +5,6 @@ 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
@ -51,7 +50,6 @@ internal class TasksWidgetViewFactory(
private val markdown: Markdown,
private val headerFormatter: HeaderFormatter,
) : RemoteViewsFactory {
private val taskLimit = if (atLeastAndroid16()) 25 + 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()
@ -94,11 +92,10 @@ internal class TasksWidgetViewFactory(
Timber.d("onDestroy widgetId:$widgetId")
}
override fun getCount() = tasks.size.coerceAtMost(taskLimit)
override fun getCount() = tasks.size
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
@ -111,7 +108,6 @@ 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
@ -122,18 +118,6 @@ 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()) {

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/row"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/widget_view_more"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/widget_view_more_tasks"
android:textSize="14sp"
android:padding="8dp" />
</RelativeLayout>

@ -721,5 +721,4 @@
<string name="delete_tasks_warning">Задачата %s ще бъде премахната. Действието е необратимо!</string>
<string name="continue_without_sync">Без синхронизиране</string>
<string name="help_me_choose">Помощ в избора</string>
<string name="widget_view_more_tasks">Повече задачи</string>
</resources>

@ -743,5 +743,4 @@
<string name="sync_warning_google_tasks_title">Sobre la sincronització de Google Tasks</string>
<string name="sync_warning_google_tasks">No tots els detalls de la tasca es sincronitzen amb Google Tasks</string>
<string name="button_learn_more">Més informació</string>
<string name="widget_view_more_tasks">Mostreu més tasques</string>
</resources>

@ -743,5 +743,4 @@
<string name="help_me_choose">Pomozte mi s výběrem</string>
<string name="delete_tasks_warning">Úkol %s bude odstraněn. Tato akce je nevratná!</string>
<string name="continue_without_sync">Pokračovat bez synchronizace</string>
<string name="widget_view_more_tasks">Zobrazit další úkoly</string>
</resources>

@ -721,5 +721,4 @@
<string name="continue_without_sync">Fortsæt uden synkronisering</string>
<string name="help_me_choose">Hjælp mig med at vælge</string>
<string name="delete_tasks_warning">%s bliver slettet. Dette kan ikke fortrydes!</string>
<string name="widget_view_more_tasks">Vis flere opgaver</string>
</resources>

@ -721,5 +721,4 @@
<string name="help_me_choose">Hilf mir bei der Auswahl</string>
<string name="continue_without_sync">Weiter ohne Synchronisierung</string>
<string name="delete_tasks_warning">%s wird/werden gelöscht. Dies kann nicht rückgängig gemacht werden!</string>
<string name="widget_view_more_tasks">Mehr Aufgaben anzeigen</string>
</resources>

@ -721,5 +721,4 @@
<string name="delete_tasks_warning">Forigas %s. Ne eblas malfari tion!</string>
<string name="continue_without_sync">Daŭrigi sen sinkronigo</string>
<string name="help_me_choose">Helpu min elekti</string>
<string name="widget_view_more_tasks">Vidi pli da taskoj</string>
</resources>

@ -743,5 +743,4 @@
<string name="continue_without_sync">Continua sin sincronizar</string>
<string name="help_me_choose">Ayudame a escoger</string>
<string name="delete_tasks_warning">%s será eliminado. ¡Esto no se puede deshacer!</string>
<string name="widget_view_more_tasks">Ver más tareas</string>
</resources>

@ -721,5 +721,4 @@
<string name="continue_without_sync">Jätka ilma sünkroniseerimata</string>
<string name="help_me_choose">Aita mul valida</string>
<string name="delete_tasks_warning">%s saab olema kustutatud. Seda tegevust ei saa tagasi pöörata!</string>
<string name="widget_view_more_tasks">Vaata veel ülesandeid</string>
</resources>

@ -743,5 +743,4 @@
<string name="help_me_choose">Aidez-moi à choisir</string>
<string name="delete_tasks_warning">%s sera supprimé. Cette opération est irréversible!</string>
<string name="multiline_title_off">Appuyer sur Terminé pour enregistrer la tâche</string>
<string name="widget_view_more_tasks">Voir plus de tâches</string>
</resources>

@ -661,7 +661,6 @@
<string name="sync_warning_google_tasks_title">Acerca da sincronización de Google Task</string>
<string name="sync_warning_google_tasks">Non todos os detalles da tarefa se sincronizan con Google Tasks</string>
<string name="button_learn_more">Máis información</string>
<string name="widget_view_more_tasks">Ver máis tarefas</string>
<plurals name="repeat_occurrence">
<item quantity="one">ocorrencia</item>
<item quantity="other">ocorrencias</item>

@ -743,5 +743,4 @@
<string name="banner_app_updated_title">Aplikacija je aktualizirana</string>
<string name="banner_app_updated_description">Aplikacija Tasks je upravo aktualizirana na %s. Želiš li vidjeti bilješke o izdanju?</string>
<string name="multiline_title_off">Pritisni „Gotovo” za spremanje zadatka</string>
<string name="widget_view_more_tasks">Prikaži više zadataka</string>
</resources>

@ -721,5 +721,4 @@
<string name="continue_without_sync">Folytatás szinkronizálás nélkül</string>
<string name="help_me_choose">Segítséget kérek a választásban</string>
<string name="multiline_title_off">Kattints a Kész gombra a feladat elmentéséhez</string>
<string name="widget_view_more_tasks">További feladatok megtekintése</string>
</resources>

@ -743,5 +743,4 @@
<string name="continue_without_sync">Continua senza sincronizzazione</string>
<string name="help_me_choose">Aiutami a scegliere</string>
<string name="delete_tasks_warning">%s verrà cancellato. L\'operazione non può essere annullata!</string>
<string name="widget_view_more_tasks">Visualizza ulteriori attività</string>
</resources>

@ -745,5 +745,4 @@
<string name="continue_without_sync">להמשיך ללא סנכרון</string>
<string name="help_me_choose">עזור לי לבחור</string>
<string name="delete_tasks_warning">%s יימחק. לא ניתן לבטל זאת!</string>
<string name="widget_view_more_tasks">הצג עוד משימות</string>
</resources>

@ -721,5 +721,4 @@
<string name="continue_without_sync">Doorgaan zonder synchronisatie</string>
<string name="help_me_choose">Help me kiezen</string>
<string name="delete_tasks_warning">%s wordt verwijderd. Dit kan niet ongedaan worden gemaakt!</string>
<string name="widget_view_more_tasks">Meer taken zien</string>
</resources>

@ -723,5 +723,4 @@
<string name="help_me_choose">Ajude-me a escolher</string>
<string name="continue_without_sync">Continuar sem sync</string>
<string name="delete_tasks_warning">%s será apagado. Isso não poderá ser desfeito!</string>
<string name="widget_view_more_tasks">Ver mais tarefas</string>
</resources>

@ -750,5 +750,4 @@
<string name="continue_without_sync">Продолжить без синхронизации</string>
<string name="help_me_choose">Помогите мне выбрать</string>
<string name="delete_tasks_warning">%s будет удалена. Это нельзя отменить!</string>
<string name="widget_view_more_tasks">Просмотреть больше задач</string>
</resources>

@ -743,5 +743,4 @@
<string name="task_defaults">Подразумевано за задатке</string>
<string name="CFC_importance_text">Минимум приоритета ?</string>
<string name="caldav_home_set_not_found">Сет није пронађен</string>
<string name="widget_view_more_tasks">Погледај још задатака</string>
</resources>

@ -721,5 +721,4 @@
<string name="help_me_choose">Hjälp mig att välja</string>
<string name="delete_tasks_warning">%s kommer att tas bort. Detta kan inte ångras!</string>
<string name="continue_without_sync">Fortsätt utan synkronisering</string>
<string name="widget_view_more_tasks">Visa mer uppgifter</string>
</resources>

@ -721,5 +721,4 @@
<string name="delete_tasks_warning">%s silinecek. Bu geri alınamaz!</string>
<string name="continue_without_sync">Eşzamanlamadan sürdür</string>
<string name="help_me_choose">Seçmeme yardım et</string>
<string name="widget_view_more_tasks">Daha çok görev gör</string>
</resources>

@ -751,5 +751,4 @@
<string name="continue_without_sync">Продовжити без синхронізації</string>
<string name="help_me_choose">Допоможіть обрати</string>
<string name="delete_tasks_warning">%s буде видалено. Дію неможливо скасувати!</string>
<string name="widget_view_more_tasks">Переглянути інші завдання</string>
</resources>

@ -710,5 +710,4 @@
<string name="continue_without_sync">继续但不同步</string>
<string name="help_me_choose">帮我选择</string>
<string name="delete_tasks_warning">%s 将会删除。此操作无法撤销!</string>
<string name="widget_view_more_tasks">查看更多任务</string>
</resources>

@ -726,5 +726,4 @@ File %1$s contained %2$s.\n\n
<string name="sync_warning_google_tasks_title">About Google Task sync</string>
<string name="sync_warning_google_tasks">Not all task details sync with Google Tasks</string>
<string name="button_learn_more">Learn more</string>
<string name="widget_view_more_tasks">View more tasks</string>
</resources>

Loading…
Cancel
Save