Add CheckBoxProvider

pull/935/head
Alex Baker 5 years ago
parent b8c98aa2f1
commit 0e967c0889

@ -12,7 +12,6 @@ import static com.google.common.collect.Lists.newArrayList;
import static com.todoroo.andlib.utility.AndroidUtilities.assertMainThread;
import static org.tasks.activities.RemoteListPicker.newRemoteListSupportPicker;
import static org.tasks.caldav.CaldavCalendarSettingsActivity.EXTRA_CALDAV_CALENDAR;
import static org.tasks.ui.CheckBoxes.getPriorityColor;
import android.app.Activity;
import android.content.BroadcastReceiver;
@ -486,10 +485,10 @@ public final class TaskListFragment extends InjectingFragment
private void setupRefresh(SwipeRefreshLayout layout) {
layout.setOnRefreshListener(this);
layout.setColorSchemeColors(
getPriorityColor(context, 0),
getPriorityColor(context, 1),
getPriorityColor(context, 2),
getPriorityColor(context, 3));
colorProvider.getPriorityColor(0, true),
colorProvider.getPriorityColor(1, true),
colorProvider.getPriorityColor(2, true),
colorProvider.getPriorityColor(3, true));
}
@Override

@ -6,12 +6,15 @@
package com.todoroo.astrid.provider;
import static androidx.core.content.ContextCompat.getColor;
import android.content.ContentValues;
import android.content.Context;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.net.Uri;
import androidx.annotation.ColorRes;
import androidx.annotation.NonNull;
import com.google.common.base.Joiner;
import com.todoroo.astrid.dao.TaskDao;
@ -23,12 +26,12 @@ import java.security.NoSuchAlgorithmException;
import java.util.List;
import javax.inject.Inject;
import org.tasks.BuildConfig;
import org.tasks.R;
import org.tasks.data.TagDao;
import org.tasks.data.TagData;
import org.tasks.data.TagDataDao;
import org.tasks.injection.ContentProviderComponent;
import org.tasks.injection.InjectingContentProvider;
import org.tasks.ui.CheckBoxes;
import timber.log.Timber;
/**
@ -175,7 +178,7 @@ public class Astrid2TaskProvider extends InjectingContentProvider {
Object[] values = new Object[7];
values[0] = task.getTitle();
values[1] = CheckBoxes.getPriorityColor(getContext(), task.getPriority());
values[1] = getPriorityColor(getContext(), task.getPriority());
values[2] = task.getDueDate();
values[3] = task.getDueDate();
values[4] = task.getPriority();
@ -187,6 +190,22 @@ public class Astrid2TaskProvider extends InjectingContentProvider {
return ret;
}
private static int getPriorityColor(Context context, int priority) {
return getColor(context, getPriorityResId(priority));
}
@ColorRes private static int getPriorityResId(int priority) {
if (priority <= 0) {
return R.color.red_500;
} else if (priority == 1) {
return R.color.amber_500;
} else if (priority == 2) {
return R.color.blue_500;
} else {
return R.color.grey_500;
}
}
@Override
public Cursor query(
@NonNull Uri uri,

@ -30,7 +30,7 @@ import org.tasks.R;
import org.tasks.dialogs.Linkify;
import org.tasks.injection.ForApplication;
import org.tasks.injection.FragmentComponent;
import org.tasks.ui.CheckBoxes;
import org.tasks.ui.CheckBoxProvider;
import org.tasks.ui.TaskEditControlFragment;
/**
@ -50,6 +50,7 @@ public class EditTitleControlSet extends TaskEditControlFragment {
@Inject @ForApplication Context context;
@Inject TaskCompleter taskCompleter;
@Inject Linkify linkify;
@Inject CheckBoxProvider checkBoxProvider;
@BindView(R.id.title)
EditText editText;
@ -144,7 +145,7 @@ public class EditTitleControlSet extends TaskEditControlFragment {
isComplete = completeBox.isChecked();
completeBox.setImageDrawable(
CheckBoxes.getCheckBox(context, isComplete, isRepeating, importanceValue));
checkBoxProvider.getCheckBox(isComplete, isRepeating, importanceValue));
if (isComplete) {
editText.setPaintFlags(editText.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

@ -27,7 +27,7 @@ import org.tasks.notifications.Notification;
import org.tasks.notifications.NotificationManager;
import org.tasks.notifications.TelephonyManager;
import org.tasks.preferences.Preferences;
import org.tasks.ui.CheckBoxes;
import org.tasks.themes.ColorProvider;
import timber.log.Timber;
public class Notifier {
@ -39,6 +39,7 @@ public class Notifier {
private final AudioManager audioManager;
private final VoiceOutputAssistant voiceOutputAssistant;
private final Preferences preferences;
private final ColorProvider colorProvider;
@Inject
public Notifier(
@ -56,6 +57,7 @@ public class Notifier {
this.audioManager = audioManager;
this.voiceOutputAssistant = voiceOutputAssistant;
this.preferences = preferences;
this.colorProvider = new ColorProvider(context, preferences);
}
public void triggerFilterNotification(final Filter filter) {
@ -93,7 +95,7 @@ public class Notifier {
.setAutoCancel(true)
.setWhen(currentTimeMillis())
.setShowWhen(true)
.setColor(CheckBoxes.getPriorityColor(context, maxPriority))
.setColor(colorProvider.getPriorityColor(maxPriority, true))
.setGroupSummary(true)
.setGroup(filter.listingTitle)
.setStyle(style);

@ -52,8 +52,8 @@ import org.tasks.reminders.NotificationActivity;
import org.tasks.reminders.SnoozeActivity;
import org.tasks.reminders.SnoozeDialog;
import org.tasks.reminders.SnoozeOption;
import org.tasks.themes.ColorProvider;
import org.tasks.time.DateTime;
import org.tasks.ui.CheckBoxes;
import timber.log.Timber;
@ApplicationScope
@ -69,6 +69,7 @@ public class NotificationManager {
private static final String GROUP_KEY = "tasks";
private static final int NOTIFICATIONS_PER_SECOND = 4;
private final NotificationManagerCompat notificationManagerCompat;
private final ColorProvider colorProvider;
private final LocalBroadcastManager localBroadcastManager;
private final LocationDao locationDao;
private final NotificationDao notificationDao;
@ -92,6 +93,7 @@ public class NotificationManager {
this.taskDao = taskDao;
this.locationDao = locationDao;
this.localBroadcastManager = localBroadcastManager;
this.colorProvider = new ColorProvider(context, preferences);
notificationManagerCompat = NotificationManagerCompat.from(context);
}
@ -286,7 +288,7 @@ public class NotificationManager {
.setWhen(when)
.setSmallIcon(R.drawable.ic_done_all_white_24dp)
.setStyle(style)
.setColor(CheckBoxes.getPriorityColor(context, maxPriority))
.setColor(colorProvider.getPriorityColor(maxPriority, true))
.setOnlyAlertOnce(false)
.setContentIntent(
PendingIntent.getActivity(
@ -365,7 +367,7 @@ public class NotificationManager {
new NotificationCompat.Builder(context, NotificationManager.NOTIFICATION_CHANNEL_DEFAULT)
.setCategory(NotificationCompat.CATEGORY_REMINDER)
.setContentTitle(taskTitle)
.setColor(CheckBoxes.getPriorityColor(context, task.getPriority()))
.setColor(colorProvider.getPriorityColor(task.getPriority(), true))
.setSmallIcon(R.drawable.ic_check_white_24dp)
.setWhen(when)
.setOnlyAlertOnce(false)

@ -20,7 +20,7 @@ import com.todoroo.astrid.ui.CheckableImageView;
import org.tasks.R;
import org.tasks.data.TaskContainer;
import org.tasks.locale.Locale;
import org.tasks.ui.CheckBoxes;
import org.tasks.ui.CheckBoxProvider;
public class SubtaskViewHolder extends RecyclerView.ViewHolder {
@ -28,6 +28,7 @@ public class SubtaskViewHolder extends RecyclerView.ViewHolder {
private final Locale locale;
private final Callbacks callbacks;
private final DisplayMetrics metrics;
private final CheckBoxProvider checkBoxProvider;
public TaskContainer task;
@ -50,12 +51,14 @@ public class SubtaskViewHolder extends RecyclerView.ViewHolder {
Locale locale,
ViewGroup view,
Callbacks callbacks,
DisplayMetrics metrics) {
DisplayMetrics metrics,
CheckBoxProvider checkBoxProvider) {
super(view);
this.context = context;
this.locale = locale;
this.callbacks = callbacks;
this.metrics = metrics;
this.checkBoxProvider = checkBoxProvider;
ButterKnife.bind(this, view);
view.setTag(this);
@ -100,7 +103,7 @@ public class SubtaskViewHolder extends RecyclerView.ViewHolder {
}
completeBox.setChecked(task.isCompleted());
completeBox.setImageDrawable(CheckBoxes.getCheckBox(context, task.getTask()));
completeBox.setImageDrawable(checkBoxProvider.getCheckBox(task.getTask()));
completeBox.invalidate();
}

@ -15,6 +15,7 @@ import org.tasks.R;
import org.tasks.data.TaskContainer;
import org.tasks.locale.Locale;
import org.tasks.tasklist.SubtaskViewHolder.Callbacks;
import org.tasks.ui.CheckBoxProvider;
public class SubtasksRecyclerAdapter extends RecyclerView.Adapter<SubtaskViewHolder>
implements ListUpdateCallback {
@ -22,14 +23,19 @@ public class SubtasksRecyclerAdapter extends RecyclerView.Adapter<SubtaskViewHol
private final DisplayMetrics metrics;
private final Activity activity;
private final Locale locale;
private final CheckBoxProvider checkBoxProvider;
private final Callbacks callbacks;
private final AsyncListDiffer<TaskContainer> differ;
private boolean multiLevelSubtasks;
public SubtasksRecyclerAdapter(
Activity activity, Locale locale, SubtaskViewHolder.Callbacks callbacks) {
Activity activity,
Locale locale,
CheckBoxProvider checkBoxProvider,
SubtaskViewHolder.Callbacks callbacks) {
this.activity = activity;
this.locale = locale;
this.checkBoxProvider = checkBoxProvider;
this.callbacks = callbacks;
differ =
new AsyncListDiffer<>(
@ -43,7 +49,7 @@ public class SubtasksRecyclerAdapter extends RecyclerView.Adapter<SubtaskViewHol
ViewGroup view =
(ViewGroup)
LayoutInflater.from(activity).inflate(R.layout.subtask_adapter_row_body, parent, false);
return new SubtaskViewHolder(activity, locale, view, callbacks, metrics);
return new SubtaskViewHolder(activity, locale, view, callbacks, metrics, checkBoxProvider);
}
@Override

@ -29,7 +29,7 @@ import org.tasks.data.Location;
import org.tasks.data.TaskContainer;
import org.tasks.dialogs.Linkify;
import org.tasks.preferences.Preferences;
import org.tasks.ui.CheckBoxes;
import org.tasks.ui.CheckBoxProvider;
import org.tasks.ui.ChipProvider;
public class ViewHolder extends RecyclerView.ViewHolder {
@ -44,6 +44,7 @@ public class ViewHolder extends RecyclerView.ViewHolder {
private final int selectedColor;
private final int rowPadding;
private final Linkify linkify;
private final CheckBoxProvider checkBoxProvider;
private final int textColorOverdue;
private final ChipProvider chipProvider;
@ -82,6 +83,7 @@ public class ViewHolder extends RecyclerView.ViewHolder {
Preferences preferences,
int fontSize,
ChipProvider chipProvider,
CheckBoxProvider checkBoxProvider,
int textColorOverdue,
int textColorSecondary,
TaskCompleter taskCompleter,
@ -95,6 +97,7 @@ public class ViewHolder extends RecyclerView.ViewHolder {
this.context = context;
this.preferences = preferences;
this.chipProvider = chipProvider;
this.checkBoxProvider = checkBoxProvider;
this.textColorOverdue = textColorOverdue;
this.textColorSecondary = textColorSecondary;
this.taskCompleter = taskCompleter;
@ -240,7 +243,7 @@ public class ViewHolder extends RecyclerView.ViewHolder {
}
completeBox.setChecked(task.isCompleted());
completeBox.setImageDrawable(CheckBoxes.getCheckBox(context, task.getTask()));
completeBox.setImageDrawable(checkBoxProvider.getCheckBox(task.getTask()));
completeBox.invalidate();
}

@ -16,6 +16,7 @@ import org.tasks.R;
import org.tasks.dialogs.Linkify;
import org.tasks.injection.ForActivity;
import org.tasks.preferences.Preferences;
import org.tasks.ui.CheckBoxProvider;
import org.tasks.ui.ChipProvider;
public class ViewHolderFactory {
@ -25,6 +26,7 @@ public class ViewHolderFactory {
private final Context context;
private final ChipProvider chipProvider;
private final int fontSize;
private final CheckBoxProvider checkBoxProvider;
private final TaskCompleter taskCompleter;
private final DisplayMetrics metrics;
private final int background;
@ -38,10 +40,12 @@ public class ViewHolderFactory {
@ForActivity Context context,
Preferences preferences,
ChipProvider chipProvider,
CheckBoxProvider checkBoxProvider,
TaskCompleter taskCompleter,
Linkify linkify) {
this.context = context;
this.chipProvider = chipProvider;
this.checkBoxProvider = checkBoxProvider;
this.taskCompleter = taskCompleter;
this.preferences = preferences;
this.linkify = linkify;
@ -62,6 +66,7 @@ public class ViewHolderFactory {
preferences,
fontSize,
chipProvider,
checkBoxProvider,
textColorOverdue,
textColorSecondary,
taskCompleter,

@ -73,12 +73,22 @@ class ColorProvider @Inject constructor(@ForActivity private val context: Contex
private val isDark = context.resources.getBoolean(R.bool.is_dark)
private val desaturate = preferences.getBoolean(R.string.p_desaturate_colors, true)
fun getThemeColor(@ColorInt color: Int, adjust: Boolean = true) =
ThemeColor(context, color, if (adjust && isDark && desaturate) {
private fun getColor(@ColorInt color: Int, adjust: Boolean) =
if (adjust && isDark && desaturate) {
saturated[color] ?: color
} else {
color
})
}
fun getThemeColor(@ColorInt color: Int, adjust: Boolean = true) =
ThemeColor(context, color, getColor(color, adjust))
fun getPriorityColor(priority: Int, adjust: Boolean = true) = when (priority) {
in Int.MIN_VALUE..0 -> getColor(RED, adjust)
1 -> getColor(AMBER, adjust)
2 -> getColor(BLUE, adjust)
else -> GREY
}
fun getThemeColors(adjust: Boolean = true) = ThemeColor.COLORS.map { c ->
getThemeColor(ContextCompat.getColor(context, c), adjust)

@ -0,0 +1,50 @@
package org.tasks.ui
import android.content.Context
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.drawable.Drawable
import androidx.annotation.DrawableRes
import androidx.core.content.ContextCompat
import androidx.core.graphics.drawable.DrawableCompat
import com.todoroo.astrid.data.Task
import org.tasks.R
import org.tasks.injection.ForActivity
import org.tasks.themes.ColorProvider
import org.tasks.themes.DrawableUtil
import javax.inject.Inject
class CheckBoxProvider @Inject constructor(@ForActivity private val context: Context, private val colorProvider: ColorProvider) {
fun getCheckBox(task: Task) = getCheckBox(task.isCompleted, task.isRecurring, task.priority)
fun getCheckBox(complete: Boolean, repeating: Boolean, priority: Int) =
getDrawable(getDrawableRes(complete, repeating), priority)
fun getWidgetCheckBox(task: Task): Bitmap {
val wrapped = DrawableUtil.getWrapped(context, getDrawableRes(task.isCompleted, task.isRecurring))
DrawableUtil.setTint(wrapped, colorProvider.getPriorityColor(task.priority, false))
return convertToBitmap(wrapped)
}
private fun getDrawableRes(complete: Boolean, repeating: Boolean) = when {
complete -> R.drawable.ic_outline_check_box_24px
repeating -> R.drawable.ic_outline_repeat_24px
else -> R.drawable.ic_outline_check_box_outline_blank_24px
}
private fun getDrawable(@DrawableRes resId: Int, priority: Int): Drawable {
val original = ContextCompat.getDrawable(context, resId)
val wrapped = DrawableCompat.wrap(original!!.mutate())
DrawableCompat.setTint(wrapped, colorProvider.getPriorityColor(priority))
return wrapped
}
private fun convertToBitmap(d: Drawable): Bitmap {
val bitmap = Bitmap.createBitmap(d.intrinsicWidth, d.intrinsicHeight, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
d.setBounds(0, 0, canvas.width, canvas.height)
d.draw(canvas)
return bitmap
}
}

@ -1,96 +0,0 @@
package org.tasks.ui;
import static androidx.core.content.ContextCompat.getColor;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import androidx.annotation.ColorRes;
import androidx.annotation.DrawableRes;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
import com.todoroo.astrid.data.Task;
import org.tasks.R;
import org.tasks.themes.DrawableUtil;
public class CheckBoxes {
private CheckBoxes() {}
private @ColorRes static int getPriorityResId(int priority) {
if (priority <= 0) {
return R.color.priority_1;
} else if (priority == 1) {
return R.color.priority_2;
} else if (priority == 2) {
return R.color.priority_3;
} else {
return R.color.priority_4;
}
}
private @ColorRes static int getWidgetPriorityResId(int priority) {
if (priority <= 0) {
return R.color.widget_priority_1;
} else if (priority == 1) {
return R.color.widget_priority_2;
} else if (priority == 2) {
return R.color.widget_priority_3;
} else {
return R.color.priority_4;
}
}
private static Bitmap convertToBitmap(Drawable d) {
Bitmap bitmap =
Bitmap.createBitmap(d.getIntrinsicWidth(), d.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
d.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
d.draw(canvas);
return bitmap;
}
private static @DrawableRes int getDrawable(Task task) {
if (task.isCompleted()) {
return R.drawable.ic_outline_check_box_24px;
} else if (task.isRecurring()) {
return R.drawable.ic_outline_repeat_24px;
} else {
return R.drawable.ic_outline_check_box_outline_blank_24px;
}
}
public static Bitmap getWidgetCheckBox(Context context, Task task) {
Drawable wrapped = DrawableUtil.getWrapped(context, getDrawable(task));
int color = getWidgetPriorityResId(task.getPriority());
DrawableUtil.setTint(wrapped, ContextCompat.getColor(context, color));
return convertToBitmap(wrapped);
}
public static Drawable getCheckBox(Context context, Task task) {
return getCheckBox(context, task.isCompleted(), task.isRecurring(), task.getPriority());
}
public static Drawable getCheckBox(
Context context, boolean complete, boolean repeating, int priority) {
if (complete) {
return getDrawable(context, R.drawable.ic_outline_check_box_24px, priority);
} else if (repeating) {
return getDrawable(context, R.drawable.ic_outline_repeat_24px, priority);
} else {
return getDrawable(context, R.drawable.ic_outline_check_box_outline_blank_24px, priority);
}
}
private static Drawable getDrawable(Context context, @DrawableRes int resId, int priority) {
Drawable original = ContextCompat.getDrawable(context, resId);
Drawable wrapped = DrawableCompat.wrap(original.mutate());
DrawableCompat.setTint(wrapped, getColor(context, getPriorityResId(priority)));
return wrapped;
}
public static int getPriorityColor(Context context, int priority) {
return getColor(context, getPriorityResId(priority));
}
}

@ -1,7 +1,5 @@
package org.tasks.ui;
import static com.todoroo.andlib.utility.AndroidUtilities.preLollipop;
import android.app.Activity;
import android.content.Context;
import android.content.res.ColorStateList;
@ -21,6 +19,7 @@ import javax.inject.Inject;
import org.tasks.R;
import org.tasks.injection.ForApplication;
import org.tasks.injection.FragmentComponent;
import org.tasks.themes.ColorProvider;
public class PriorityControlSet extends TaskEditControlFragment {
@ -28,6 +27,7 @@ public class PriorityControlSet extends TaskEditControlFragment {
private static final String EXTRA_PRIORITY = "extra_priority";
@Inject @ForApplication Context context;
@Inject ColorProvider colorProvider;
@BindView(R.id.priority_high)
AppCompatRadioButton priorityHigh;
@ -81,12 +81,10 @@ public class PriorityControlSet extends TaskEditControlFragment {
} else {
priorityNone.setChecked(true);
}
if (preLollipop()) {
tintRadioButton(priorityHigh, 0);
tintRadioButton(priorityMedium, 1);
tintRadioButton(priorityLow, 2);
tintRadioButton(priorityNone, 3);
}
tintRadioButton(priorityHigh, 0);
tintRadioButton(priorityMedium, 1);
tintRadioButton(priorityLow, 2);
tintRadioButton(priorityNone, 3);
return view;
}
@ -123,7 +121,7 @@ public class PriorityControlSet extends TaskEditControlFragment {
}
private void tintRadioButton(AppCompatRadioButton radioButton, int priority) {
int color = CheckBoxes.getPriorityColor(context, priority);
int color = colorProvider.getPriorityColor(priority, true);
CompoundButtonCompat.setButtonTintList(
radioButton,
new ColorStateList(

@ -72,6 +72,7 @@ public class SubtaskControlSet extends TaskEditControlFragment implements Callba
@Inject CaldavDao caldavDao;
@Inject TaskDao taskDao;
@Inject Locale locale;
@Inject CheckBoxProvider checkBoxProvider;
private TaskListViewModel viewModel;
private final RefreshReceiver refreshReceiver = new RefreshReceiver();
@ -105,7 +106,7 @@ public class SubtaskControlSet extends TaskEditControlFragment implements Callba
}
}
recyclerAdapter = new SubtasksRecyclerAdapter(activity, locale, this);
recyclerAdapter = new SubtasksRecyclerAdapter(activity, locale, checkBoxProvider, this);
if (task.getId() > 0) {
recyclerAdapter.submitList(viewModel.getValue());
viewModel.setFilter(new Filter("subtasks", getQueryTemplate(task)), true);
@ -269,7 +270,7 @@ public class SubtaskControlSet extends TaskEditControlFragment implements Callba
private void updateCompleteBox(Task task, CheckableImageView completeBox, EditText editText) {
boolean isComplete = completeBox.isChecked();
completeBox.setImageDrawable(
CheckBoxes.getCheckBox(activity, isComplete, false, task.getPriority()));
checkBoxProvider.getCheckBox(isComplete, false, task.getPriority()));
if (isComplete) {
editText.setPaintFlags(editText.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
} else {

@ -27,7 +27,7 @@ import org.tasks.data.TaskListQuery;
import org.tasks.locale.Locale;
import org.tasks.preferences.DefaultFilterProvider;
import org.tasks.preferences.Preferences;
import org.tasks.ui.CheckBoxes;
import org.tasks.ui.CheckBoxProvider;
import timber.log.Timber;
class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory {
@ -35,6 +35,7 @@ class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory {
private final int widgetId;
private final TaskDao taskDao;
private final DefaultFilterProvider defaultFilterProvider;
private final CheckBoxProvider checkBoxProvider;
private final SubtasksHelper subtasksHelper;
private final Preferences preferences;
private final WidgetPreferences widgetPreferences;
@ -58,13 +59,15 @@ class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory {
Context context,
int widgetId,
TaskDao taskDao,
DefaultFilterProvider defaultFilterProvider) {
DefaultFilterProvider defaultFilterProvider,
CheckBoxProvider checkBoxProvider) {
this.subtasksHelper = subtasksHelper;
this.preferences = preferences;
this.context = context;
this.widgetId = widgetId;
this.taskDao = taskDao;
this.defaultFilterProvider = defaultFilterProvider;
this.checkBoxProvider = checkBoxProvider;
widgetPreferences = new WidgetPreferences(context, preferences, widgetId);
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
widgetPadding = (int)(10 * metrics.density);
@ -120,7 +123,7 @@ class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory {
}
private Bitmap getCheckbox(Task task) {
return CheckBoxes.getWidgetCheckBox(context, task);
return checkBoxProvider.getWidgetCheckBox(task);
}
private RemoteViews buildUpdate(int position) {

@ -1,6 +1,7 @@
package org.tasks.widget;
import android.appwidget.AppWidgetManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.widget.RemoteViewsService;
@ -11,6 +12,8 @@ import org.tasks.injection.InjectingApplication;
import org.tasks.locale.Locale;
import org.tasks.preferences.DefaultFilterProvider;
import org.tasks.preferences.Preferences;
import org.tasks.themes.ColorProvider;
import org.tasks.ui.CheckBoxProvider;
public class ScrollableWidgetUpdateService extends RemoteViewsService {
@ -46,12 +49,14 @@ public class ScrollableWidgetUpdateService extends RemoteViewsService {
}
int widgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);
Context context = locale.createConfigurationContext(getApplicationContext());
return new ScrollableViewsFactory(
subtasksHelper,
preferences,
locale.createConfigurationContext(getApplicationContext()),
context,
widgetId,
taskDao,
defaultFilterProvider);
defaultFilterProvider,
new CheckBoxProvider(context, new ColorProvider(context, preferences)));
}
}

@ -31,25 +31,21 @@
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@+id/priority_none"
style="@style/priority_button"
android:buttonTint="@color/priority_4"
tools:ignore="UnusedAttribute"/>
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@+id/priority_low"
style="@style/priority_button"
android:buttonTint="@color/priority_3"
tools:ignore="UnusedAttribute"/>
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@+id/priority_medium"
style="@style/priority_button"
android:buttonTint="@color/priority_2"
tools:ignore="UnusedAttribute"/>
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@+id/priority_high"
style="@style/priority_button"
android:buttonTint="@color/priority_1"
tools:ignore="UnusedAttribute"/>
</RadioGroup>

@ -13,9 +13,4 @@
<color name="tag_color_none_background">@color/grey_300</color>
<color name="chip_text">@color/white_72</color>
<color name="divider">@color/white_12</color>
<color name="priority_1">@color/red_200</color>
<color name="priority_2">@color/amber_200</color>
<color name="priority_3">@color/blue_200</color>
</resources>

@ -132,15 +132,6 @@
<color name="drawer_background_light_selected">#e8e8e8</color>
<color name="drawer_background_dark_selected">#303030</color>
<color name="priority_1">@color/red_500</color>
<color name="priority_2">@color/amber_500</color>
<color name="priority_3">@color/blue_500</color>
<color name="priority_4">@color/grey_500</color>
<color name="widget_priority_1">@color/red_500</color>
<color name="widget_priority_2">@color/amber_500</color>
<color name="widget_priority_3">@color/blue_500</color>
<color name="snackbar_text_color">@color/white_87</color>
<color name="snackbar_action_color">#f4b400</color>
<color name="snackbar_background">@color/grey_800</color>

Loading…
Cancel
Save