diff --git a/app/src/main/java/org/tasks/widget/TasksWidget.kt b/app/src/main/java/org/tasks/widget/TasksWidget.kt index 5cd80147b..b881edba7 100644 --- a/app/src/main/java/org/tasks/widget/TasksWidget.kt +++ b/app/src/main/java/org/tasks/widget/TasksWidget.kt @@ -89,12 +89,6 @@ class TasksWidget : AppWidgetProvider() { setRemoteAdapter( R.id.list_view, Intent(context, TasksWidgetAdapter::class.java) - .putExtra( - TasksWidgetAdapter.EXTRA_FILTER, - Bundle().apply { - putParcelable(TasksWidgetAdapter.EXTRA_FILTER, filter) - } - ) .putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, id) .setData(cacheBuster) ) diff --git a/app/src/main/java/org/tasks/widget/TasksWidgetAdapter.kt b/app/src/main/java/org/tasks/widget/TasksWidgetAdapter.kt index 062f91d63..af8215786 100644 --- a/app/src/main/java/org/tasks/widget/TasksWidgetAdapter.kt +++ b/app/src/main/java/org/tasks/widget/TasksWidgetAdapter.kt @@ -1,13 +1,16 @@ package org.tasks.widget import android.appwidget.AppWidgetManager +import android.content.Context import android.content.Intent import android.widget.RemoteViewsService -import com.todoroo.astrid.api.Filter import com.todoroo.astrid.subtasks.SubtasksHelper import dagger.hilt.android.AndroidEntryPoint +import dagger.hilt.android.qualifiers.ApplicationContext +import kotlinx.coroutines.runBlocking import org.tasks.data.TaskDao import org.tasks.markdown.MarkdownProvider +import org.tasks.preferences.DefaultFilterProvider import org.tasks.preferences.Preferences import org.tasks.tasklist.HeaderFormatter import java.util.Locale @@ -15,6 +18,8 @@ import javax.inject.Inject @AndroidEntryPoint class TasksWidgetAdapter : RemoteViewsService() { + @ApplicationContext @Inject lateinit var context: Context + @Inject lateinit var defaultFilterProvider: DefaultFilterProvider @Inject lateinit var taskDao: TaskDao @Inject lateinit var preferences: Preferences @Inject lateinit var subtasksHelper: SubtasksHelper @@ -25,11 +30,13 @@ class TasksWidgetAdapter : RemoteViewsService() { override fun onGetViewFactory(intent: Intent): RemoteViewsFactory? { val widgetId = intent.extras?.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID) ?: return null - val bundle = intent.getBundleExtra(EXTRA_FILTER) - val filter: Filter = bundle?.getParcelable(EXTRA_FILTER) ?: return null + val widgetPreferences = WidgetPreferences(context, preferences, widgetId) + val filter = runBlocking { + defaultFilterProvider.getFilterFromPreference(widgetPreferences.filterId) + } return TasksWidgetViewFactory( subtasksHelper, - preferences, + widgetPreferences, filter, applicationContext, widgetId, @@ -40,8 +47,4 @@ class TasksWidgetAdapter : RemoteViewsService() { headerFormatter, ) } - - companion object { - const val EXTRA_FILTER = "extra_filter" - } } diff --git a/app/src/main/java/org/tasks/widget/TasksWidgetViewFactory.kt b/app/src/main/java/org/tasks/widget/TasksWidgetViewFactory.kt index f095861a0..4398cec8f 100644 --- a/app/src/main/java/org/tasks/widget/TasksWidgetViewFactory.kt +++ b/app/src/main/java/org/tasks/widget/TasksWidgetViewFactory.kt @@ -24,7 +24,6 @@ import org.tasks.extensions.setMaxLines import org.tasks.extensions.setTextSize import org.tasks.extensions.strikethrough import org.tasks.markdown.Markdown -import org.tasks.preferences.Preferences import org.tasks.tasklist.HeaderFormatter import org.tasks.tasklist.SectionedDataSource import org.tasks.themes.ColorProvider.Companion.priorityColor @@ -37,7 +36,7 @@ import kotlin.math.max internal class TasksWidgetViewFactory( private val subtasksHelper: SubtasksHelper, - preferences: Preferences, + private val widgetPreferences: WidgetPreferences, private val filter: Filter, private val context: Context, private val widgetId: Int, @@ -48,7 +47,6 @@ internal class TasksWidgetViewFactory( private val headerFormatter: HeaderFormatter, ) : RemoteViewsFactory { private val indentPadding = (20 * context.resources.displayMetrics.density).toInt() - private val widgetPreferences = WidgetPreferences(context, preferences, widgetId) private val settings = widgetPreferences.getWidgetListSettings() private val hPad = context.resources.getDimension(R.dimen.widget_padding).toInt() private val disableGroups = !filter.supportsSorting()