Don't pass filter to remoteviews service

This was working on emulators but crashing in the wild
pull/2815/head
Alex Baker 2 months ago
parent b7b4747a04
commit 83cf48a836

@ -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)
)

@ -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"
}
}

@ -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()

Loading…
Cancel
Save