Update CheckBoxes injection

pull/413/head
Alex Baker 10 years ago
parent 1080ce7da8
commit d38f40ae86

@ -28,6 +28,7 @@ import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import org.tasks.sync.IndeterminateProgressBarSyncResultCallback; import org.tasks.sync.IndeterminateProgressBarSyncResultCallback;
import org.tasks.sync.SyncThrottle; import org.tasks.sync.SyncThrottle;
import org.tasks.ui.CheckBoxes;
import javax.inject.Inject; import javax.inject.Inject;
@ -52,12 +53,13 @@ public class GtasksListFragment extends SubtasksListFragment {
@Inject SyncThrottle syncThrottle; @Inject SyncThrottle syncThrottle;
@Inject DialogBuilder dialogBuilder; @Inject DialogBuilder dialogBuilder;
@Inject Broadcaster broadcaster; @Inject Broadcaster broadcaster;
@Inject CheckBoxes checkBoxes;
private GtasksList list; private GtasksList list;
@Override @Override
protected OrderedListFragmentHelperInterface createFragmentHelper() { protected OrderedListFragmentHelperInterface createFragmentHelper() {
return new OrderedMetadataListFragmentHelper<>(preferences, taskAttachmentDao, taskService, metadataDao, this, gtasksTaskListUpdater, dialogBuilder); return new OrderedMetadataListFragmentHelper<>(preferences, taskAttachmentDao, taskService, metadataDao, this, gtasksTaskListUpdater, dialogBuilder, checkBoxes);
} }
@Override @Override

@ -35,6 +35,7 @@ import com.todoroo.astrid.ui.DraggableListView;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import org.tasks.ui.CheckBoxes;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -50,6 +51,7 @@ public class OrderedMetadataListFragmentHelper<LIST> implements OrderedListFragm
private final DisplayMetrics metrics = new DisplayMetrics(); private final DisplayMetrics metrics = new DisplayMetrics();
private final OrderedMetadataListUpdater<LIST> updater; private final OrderedMetadataListUpdater<LIST> updater;
private DialogBuilder dialogBuilder; private DialogBuilder dialogBuilder;
private CheckBoxes checkBoxes;
private final TaskListFragment fragment; private final TaskListFragment fragment;
private final Preferences preferences; private final Preferences preferences;
@ -64,7 +66,7 @@ public class OrderedMetadataListFragmentHelper<LIST> implements OrderedListFragm
public OrderedMetadataListFragmentHelper(Preferences preferences, TaskAttachmentDao taskAttachmentDao, public OrderedMetadataListFragmentHelper(Preferences preferences, TaskAttachmentDao taskAttachmentDao,
TaskService taskService, MetadataDao metadataDao, TaskService taskService, MetadataDao metadataDao,
TaskListFragment fragment, OrderedMetadataListUpdater<LIST> updater, TaskListFragment fragment, OrderedMetadataListUpdater<LIST> updater,
DialogBuilder dialogBuilder) { DialogBuilder dialogBuilder, CheckBoxes checkBoxes) {
this.preferences = preferences; this.preferences = preferences;
this.taskAttachmentDao = taskAttachmentDao; this.taskAttachmentDao = taskAttachmentDao;
this.taskService = taskService; this.taskService = taskService;
@ -72,6 +74,7 @@ public class OrderedMetadataListFragmentHelper<LIST> implements OrderedListFragm
this.fragment = fragment; this.fragment = fragment;
this.updater = updater; this.updater = updater;
this.dialogBuilder = dialogBuilder; this.dialogBuilder = dialogBuilder;
this.checkBoxes = checkBoxes;
} }
// --- ui component setup // --- ui component setup
@ -186,7 +189,7 @@ public class OrderedMetadataListFragmentHelper<LIST> implements OrderedListFragm
public TaskAdapter createTaskAdapter(Context context, TodorooCursor<Task> cursor, public TaskAdapter createTaskAdapter(Context context, TodorooCursor<Task> cursor,
AtomicReference<String> sqlQueryTemplate) { AtomicReference<String> sqlQueryTemplate) {
taskAdapter = new DraggableTaskAdapter(context, preferences, fragment, cursor, sqlQueryTemplate, dialogBuilder); taskAdapter = new DraggableTaskAdapter(context, preferences, fragment, cursor, sqlQueryTemplate, dialogBuilder, checkBoxes);
taskAdapter.addOnCompletedTaskListener(new OnCompletedTaskListener() { taskAdapter.addOnCompletedTaskListener(new OnCompletedTaskListener() {
@Override @Override
@ -201,8 +204,8 @@ public class OrderedMetadataListFragmentHelper<LIST> implements OrderedListFragm
private final class DraggableTaskAdapter extends TaskAdapter { private final class DraggableTaskAdapter extends TaskAdapter {
private DraggableTaskAdapter(Context context, Preferences preferences, TaskListFragment activity, private DraggableTaskAdapter(Context context, Preferences preferences, TaskListFragment activity,
Cursor c, AtomicReference<String> query, DialogBuilder dialogBuilder) { Cursor c, AtomicReference<String> query, DialogBuilder dialogBuilder, CheckBoxes checkBoxes) {
super(context, preferences, taskAttachmentDao, taskService, activity, c, query, null, dialogBuilder); super(context, preferences, taskAttachmentDao, taskService, activity, c, query, null, dialogBuilder, checkBoxes);
} }
@Override @Override

@ -560,7 +560,7 @@ public class TaskListFragment extends InjectingListFragment implements
@Override @Override
public void onCompletedTask(Task item, boolean newState) { public void onCompletedTask(Task item, boolean newState) {
} }
}, dialogBuilder); }, dialogBuilder, checkBoxes);
} }
public static final String TAGS_METADATA_JOIN = "for_tags"; //$NON-NLS-1$ public static final String TAGS_METADATA_JOIN = "for_tags"; //$NON-NLS-1$

@ -116,9 +116,9 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
public TaskAdapter(Context context, Preferences preferences, TaskAttachmentDao taskAttachmentDao, TaskService taskService, TaskListFragment fragment, public TaskAdapter(Context context, Preferences preferences, TaskAttachmentDao taskAttachmentDao, TaskService taskService, TaskListFragment fragment,
Cursor c, AtomicReference<String> query, OnCompletedTaskListener onCompletedTaskListener, Cursor c, AtomicReference<String> query, OnCompletedTaskListener onCompletedTaskListener,
DialogBuilder dialogBuilder) { DialogBuilder dialogBuilder, CheckBoxes checkBoxes) {
super(context, c, false); super(context, c, false);
this.checkBoxes = new CheckBoxes(context); this.checkBoxes = checkBoxes;
this.preferences = preferences; this.preferences = preferences;
this.taskAttachmentDao = taskAttachmentDao; this.taskAttachmentDao = taskAttachmentDao;
this.taskService = taskService; this.taskService = taskService;

@ -31,6 +31,7 @@ import com.todoroo.astrid.ui.DraggableListView;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import org.tasks.ui.CheckBoxes;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@ -45,6 +46,7 @@ public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmen
private final DisplayMetrics metrics = new DisplayMetrics(); private final DisplayMetrics metrics = new DisplayMetrics();
private final AstridOrderedListUpdater<LIST> updater; private final AstridOrderedListUpdater<LIST> updater;
private DialogBuilder dialogBuilder; private DialogBuilder dialogBuilder;
private CheckBoxes checkBoxes;
private final TaskListFragment fragment; private final TaskListFragment fragment;
private final Preferences preferences; private final Preferences preferences;
private final TaskAttachmentDao taskAttachmentDao; private final TaskAttachmentDao taskAttachmentDao;
@ -56,13 +58,14 @@ public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmen
public AstridOrderedListFragmentHelper(Preferences preferences, TaskAttachmentDao taskAttachmentDao, public AstridOrderedListFragmentHelper(Preferences preferences, TaskAttachmentDao taskAttachmentDao,
TaskService taskService, TaskListFragment fragment, TaskService taskService, TaskListFragment fragment,
AstridOrderedListUpdater<LIST> updater, DialogBuilder dialogBuilder) { AstridOrderedListUpdater<LIST> updater, DialogBuilder dialogBuilder, CheckBoxes checkBoxes) {
this.preferences = preferences; this.preferences = preferences;
this.taskAttachmentDao = taskAttachmentDao; this.taskAttachmentDao = taskAttachmentDao;
this.taskService = taskService; this.taskService = taskService;
this.fragment = fragment; this.fragment = fragment;
this.updater = updater; this.updater = updater;
this.dialogBuilder = dialogBuilder; this.dialogBuilder = dialogBuilder;
this.checkBoxes = checkBoxes;
} }
// --- ui component setup // --- ui component setup
@ -174,7 +177,7 @@ public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmen
public TaskAdapter createTaskAdapter(Context context, TodorooCursor<Task> cursor, public TaskAdapter createTaskAdapter(Context context, TodorooCursor<Task> cursor,
AtomicReference<String> sqlQueryTemplate) { AtomicReference<String> sqlQueryTemplate) {
taskAdapter = new DraggableTaskAdapter(context, preferences, fragment, cursor, sqlQueryTemplate, dialogBuilder); taskAdapter = new DraggableTaskAdapter(context, preferences, fragment, cursor, sqlQueryTemplate, dialogBuilder, checkBoxes);
taskAdapter.addOnCompletedTaskListener(new OnCompletedTaskListener() { taskAdapter.addOnCompletedTaskListener(new OnCompletedTaskListener() {
@Override @Override
@ -189,8 +192,8 @@ public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmen
private final class DraggableTaskAdapter extends TaskAdapter { private final class DraggableTaskAdapter extends TaskAdapter {
private DraggableTaskAdapter(Context context, Preferences preferences, TaskListFragment activity, private DraggableTaskAdapter(Context context, Preferences preferences, TaskListFragment activity,
Cursor c, AtomicReference<String> query, DialogBuilder dialogBuilder) { Cursor c, AtomicReference<String> query, DialogBuilder dialogBuilder, CheckBoxes checkBoxes) {
super(context, preferences, taskAttachmentDao, taskService, activity, c, query, null, dialogBuilder); super(context, preferences, taskAttachmentDao, taskService, activity, c, query, null, dialogBuilder, checkBoxes);
} }
@Override @Override

@ -29,6 +29,7 @@ import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import org.tasks.injection.FragmentComponent; import org.tasks.injection.FragmentComponent;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import org.tasks.ui.CheckBoxes;
import javax.inject.Inject; import javax.inject.Inject;
@ -57,6 +58,7 @@ public class SubtasksListFragment extends TaskListFragment {
@Inject @ForApplication Context context; @Inject @ForApplication Context context;
@Inject DialogBuilder dialogBuilder; @Inject DialogBuilder dialogBuilder;
@Inject TaskListMetadataDao taskListMetadataDao; @Inject TaskListMetadataDao taskListMetadataDao;
@Inject CheckBoxes checkBoxes;
@Override @Override
public void onAttach(Activity activity) { public void onAttach(Activity activity) {
@ -66,7 +68,7 @@ public class SubtasksListFragment extends TaskListFragment {
} }
protected OrderedListFragmentHelperInterface createFragmentHelper() { protected OrderedListFragmentHelperInterface createFragmentHelper() {
return new AstridOrderedListFragmentHelper<>(preferences, taskAttachmentDao, taskService, this, subtasksFilterUpdater, dialogBuilder); return new AstridOrderedListFragmentHelper<>(preferences, taskAttachmentDao, taskService, this, subtasksFilterUpdater, dialogBuilder, checkBoxes);
} }
@Override @Override

@ -28,6 +28,7 @@ import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import org.tasks.injection.FragmentComponent; import org.tasks.injection.FragmentComponent;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import org.tasks.ui.CheckBoxes;
import javax.inject.Inject; import javax.inject.Inject;
@ -47,6 +48,7 @@ public class SubtasksTagListFragment extends TagViewFragment {
@Inject @ForApplication Context context; @Inject @ForApplication Context context;
@Inject DialogBuilder dialogBuilder; @Inject DialogBuilder dialogBuilder;
@Inject TaskListMetadataDao taskListMetadataDao; @Inject TaskListMetadataDao taskListMetadataDao;
@Inject CheckBoxes checkBoxes;
private AstridOrderedListFragmentHelper<TaskListMetadata> helper; private AstridOrderedListFragmentHelper<TaskListMetadata> helper;
@ -56,7 +58,7 @@ public class SubtasksTagListFragment extends TagViewFragment {
public void onAttach(Activity activity) { public void onAttach(Activity activity) {
super.onAttach(activity); super.onAttach(activity);
helper = new AstridOrderedListFragmentHelper<>(preferences, taskAttachmentDao, taskService, this, subtasksFilterUpdater, dialogBuilder); helper = new AstridOrderedListFragmentHelper<>(preferences, taskAttachmentDao, taskService, this, subtasksFilterUpdater, dialogBuilder, checkBoxes);
} }
@Override @Override

@ -5,7 +5,6 @@
*/ */
package com.todoroo.astrid.ui; package com.todoroo.astrid.ui;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.graphics.Paint; import android.graphics.Paint;
import android.os.Bundle; import android.os.Bundle;
@ -48,24 +47,17 @@ public class EditTitleControlSet extends TaskEditControlFragment {
private static final String EXTRA_PRIORITY = "extra_priority"; private static final String EXTRA_PRIORITY = "extra_priority";
@Inject TaskService taskService; @Inject TaskService taskService;
@Inject CheckBoxes checkBoxes;
@BindView(R.id.title) EditText editText; @BindView(R.id.title) EditText editText;
@BindView(R.id.completeBox) CheckableImageView completeBox; @BindView(R.id.completeBox) CheckableImageView completeBox;
private CheckBoxes checkBoxes;
private boolean isComplete; private boolean isComplete;
private boolean isRepeating; private boolean isRepeating;
private int importanceValue; private int importanceValue;
private boolean isNewTask; private boolean isNewTask;
private String title; private String title;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
checkBoxes = new CheckBoxes(activity);
}
@Override @Override
protected void inject(FragmentComponent component) { protected void inject(FragmentComponent component) {
component.inject(this); component.inject(this);

@ -4,6 +4,8 @@ import android.content.Context;
import org.tasks.ErrorReportingSingleThreadExecutor; import org.tasks.ErrorReportingSingleThreadExecutor;
import org.tasks.analytics.Tracker; import org.tasks.analytics.Tracker;
import org.tasks.ui.CheckBoxes;
import org.tasks.ui.WidgetCheckBoxes;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
@ -13,6 +15,9 @@ import javax.inject.Singleton;
import dagger.Module; import dagger.Module;
import dagger.Provides; import dagger.Provides;
import static org.tasks.ui.CheckBoxes.newCheckBoxes;
import static org.tasks.ui.WidgetCheckBoxes.newWidgetCheckBoxes;
@Module @Module
public class ApplicationModule { public class ApplicationModule {
private Context context; private Context context;
@ -33,4 +38,16 @@ public class ApplicationModule {
public Executor getIabExecutor(Tracker tracker) { public Executor getIabExecutor(Tracker tracker) {
return new ErrorReportingSingleThreadExecutor("iab-executor", tracker); return new ErrorReportingSingleThreadExecutor("iab-executor", tracker);
} }
@Provides
@Singleton
public CheckBoxes getCheckBoxes() {
return newCheckBoxes(context);
}
@Provides
@Singleton
public WidgetCheckBoxes getWidgetCheckBoxes(CheckBoxes checkBoxes) {
return newWidgetCheckBoxes(checkBoxes);
}
} }

@ -9,29 +9,24 @@ import com.google.common.collect.ImmutableList;
import com.google.common.primitives.Ints; import com.google.common.primitives.Ints;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.ForApplication;
import java.util.List; import java.util.List;
import javax.inject.Inject;
import timber.log.Timber;
public class CheckBoxes { public class CheckBoxes {
public static CheckBoxes newCheckBoxes(Context context) {
return new CheckBoxes(context);
}
private static final int MAX_IMPORTANCE_INDEX = 3; private static final int MAX_IMPORTANCE_INDEX = 3;
private static boolean initialized; private List<Drawable> checkboxes;
private static List<Drawable> checkboxes; private List<Drawable> repeatingCheckboxes;
private static List<Drawable> repeatingCheckboxes; private List<Drawable> completedCheckboxes;
private static List<Drawable> completedCheckboxes; private List<Integer> priorityColors;
private static List<Integer> priorityColors; private int[] priorityColorsArray;
private static int[] priorityColorsArray;
private CheckBoxes(Context context) {
@Inject
public CheckBoxes(@ForApplication Context context) {
if (!initialized) {
Timber.d("Initializing checkboxes");
checkboxes = wrapDrawable(context, R.drawable.ic_check_box_outline_blank_24dp); checkboxes = wrapDrawable(context, R.drawable.ic_check_box_outline_blank_24dp);
repeatingCheckboxes = wrapDrawable(context, R.drawable.ic_repeat_24dp); repeatingCheckboxes = wrapDrawable(context, R.drawable.ic_repeat_24dp);
completedCheckboxes = wrapDrawable(context, R.drawable.ic_check_box_24dp); completedCheckboxes = wrapDrawable(context, R.drawable.ic_check_box_24dp);
@ -41,8 +36,6 @@ public class CheckBoxes {
context.getResources().getColor(R.color.importance_3), context.getResources().getColor(R.color.importance_3),
context.getResources().getColor(R.color.importance_4)); context.getResources().getColor(R.color.importance_4));
priorityColorsArray = Ints.toArray(priorityColors); priorityColorsArray = Ints.toArray(priorityColors);
initialized = true;
}
} }
public List<Integer> getPriorityColors() { public List<Integer> getPriorityColors() {

@ -1,6 +1,5 @@
package org.tasks.ui; package org.tasks.ui;
import android.content.Context;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.BitmapDrawable;
@ -8,12 +7,8 @@ import android.graphics.drawable.Drawable;
import com.google.common.base.Function; import com.google.common.base.Function;
import org.tasks.injection.ForApplication;
import java.util.List; import java.util.List;
import javax.inject.Inject;
import timber.log.Timber; import timber.log.Timber;
import static com.google.common.collect.Lists.newArrayList; import static com.google.common.collect.Lists.newArrayList;
@ -21,21 +16,19 @@ import static com.google.common.collect.Lists.transform;
public class WidgetCheckBoxes { public class WidgetCheckBoxes {
private static boolean initialized; public static WidgetCheckBoxes newWidgetCheckBoxes(CheckBoxes checkBoxes) {
private static List<Bitmap> checkboxes; return new WidgetCheckBoxes(checkBoxes);
private static List<Bitmap> repeatingCheckboxes; }
private static List<Bitmap> completedCheckboxes;
@Inject private List<Bitmap> checkboxes;
public WidgetCheckBoxes(@ForApplication Context context) { private List<Bitmap> repeatingCheckboxes;
if (!initialized) { private List<Bitmap> completedCheckboxes;
CheckBoxes checkBoxes = new CheckBoxes(context);
private WidgetCheckBoxes(CheckBoxes checkBoxes) {
Timber.d("Initializing widget checkboxes"); Timber.d("Initializing widget checkboxes");
checkboxes = convertToBitmap(checkBoxes.getCheckBoxes()); checkboxes = convertToBitmap(checkBoxes.getCheckBoxes());
repeatingCheckboxes = convertToBitmap(checkBoxes.getRepeatingCheckBoxes()); repeatingCheckboxes = convertToBitmap(checkBoxes.getRepeatingCheckBoxes());
completedCheckboxes = convertToBitmap(checkBoxes.getCompletedCheckBoxes()); completedCheckboxes = convertToBitmap(checkBoxes.getCompletedCheckBoxes());
initialized = true;
}
} }
public Bitmap getCompletedCheckbox(int importance) { public Bitmap getCompletedCheckbox(int importance) {

@ -55,7 +55,8 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
int widgetId, int widgetId,
Database database, Database database,
TaskService taskService, TaskService taskService,
DefaultFilterProvider defaultFilterProvider) { DefaultFilterProvider defaultFilterProvider,
WidgetCheckBoxes checkBoxes) {
this.subtasksHelper = subtasksHelper; this.subtasksHelper = subtasksHelper;
this.preferences = preferences; this.preferences = preferences;
this.context = context; this.context = context;
@ -64,9 +65,9 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
this.database = database; this.database = database;
this.taskService = taskService; this.taskService = taskService;
this.defaultFilterProvider = defaultFilterProvider; this.defaultFilterProvider = defaultFilterProvider;
this.checkBoxes = checkBoxes;
themeTextColor = theme.getTextColor(); themeTextColor = theme.getTextColor();
checkBoxes = new WidgetCheckBoxes(context);
showDueDates = preferences.getBoolean(WidgetConfigActivity.PREF_SHOW_DUE_DATE + widgetId, false); showDueDates = preferences.getBoolean(WidgetConfigActivity.PREF_SHOW_DUE_DATE + widgetId, false);
hideCheckboxes = preferences.getBoolean(WidgetConfigActivity.PREF_HIDE_CHECKBOXES + widgetId, false); hideCheckboxes = preferences.getBoolean(WidgetConfigActivity.PREF_HIDE_CHECKBOXES + widgetId, false);
} }

@ -14,6 +14,7 @@ import org.tasks.preferences.DefaultFilterProvider;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import org.tasks.preferences.Theme; import org.tasks.preferences.Theme;
import org.tasks.preferences.ThemeManager; import org.tasks.preferences.ThemeManager;
import org.tasks.ui.WidgetCheckBoxes;
import javax.inject.Inject; import javax.inject.Inject;
@ -27,6 +28,7 @@ public class ScrollableWidgetUpdateService extends InjectingRemoteViewsService {
@Inject SubtasksHelper subtasksHelper; @Inject SubtasksHelper subtasksHelper;
@Inject DefaultFilterProvider defaultFilterProvider; @Inject DefaultFilterProvider defaultFilterProvider;
@Inject ThemeManager themeManager; @Inject ThemeManager themeManager;
@Inject WidgetCheckBoxes widgetCheckBoxes;
@Override @Override
public void onStart(Intent intent, int startId) { public void onStart(Intent intent, int startId) {
@ -50,7 +52,7 @@ public class ScrollableWidgetUpdateService extends InjectingRemoteViewsService {
int widgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID); int widgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);
Theme theme = themeManager.getWidgetTheme(widgetId); Theme theme = themeManager.getWidgetTheme(widgetId);
return new ScrollableViewsFactory(subtasksHelper, preferences, this, filterId, return new ScrollableViewsFactory(subtasksHelper, preferences, this, filterId,
theme, widgetId, database, taskService, defaultFilterProvider); theme, widgetId, database, taskService, defaultFilterProvider, widgetCheckBoxes);
} }
@Override @Override

Loading…
Cancel
Save