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