From 8082af19d9b5a09b25dd071d02e07d698ac46c9a Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Mon, 13 Apr 2020 16:56:55 -0500 Subject: [PATCH] Show description in widget --- .../preferences/fragments/ScrollableWidget.kt | 3 +++ .../tasks/widget/ScrollableViewsFactory.java | 20 +++++++++++++++++-- .../org/tasks/widget/WidgetPreferences.java | 8 ++++++++ app/src/main/res/layout/widget_row.xml | 16 ++++++++++++++- app/src/main/res/values/keys.xml | 2 ++ app/src/main/res/xml/preferences_widget.xml | 10 ++++++++++ 6 files changed, 56 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/tasks/preferences/fragments/ScrollableWidget.kt b/app/src/main/java/org/tasks/preferences/fragments/ScrollableWidget.kt index a134c871e..d2c522cfe 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/ScrollableWidget.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/ScrollableWidget.kt @@ -66,6 +66,9 @@ class ScrollableWidget : InjectingPreferenceFragment() { setupCheckbox(R.string.p_widget_show_checkboxes) setupCheckbox(R.string.p_widget_due_date_underneath, false) setupCheckbox(R.string.p_widget_show_full_task_title, false) + val showDescription = setupCheckbox(R.string.p_widget_show_description, true) + val showFullDescription = setupCheckbox(R.string.p_widget_show_full_description, false) + showFullDescription.dependency = showDescription.key setupList(R.string.p_widget_spacing) val showHeader = setupCheckbox(R.string.p_widget_show_header) val showSettings = setupCheckbox(R.string.p_widget_show_settings) diff --git a/app/src/main/java/org/tasks/widget/ScrollableViewsFactory.java b/app/src/main/java/org/tasks/widget/ScrollableViewsFactory.java index 0af64d2d2..66466d832 100644 --- a/app/src/main/java/org/tasks/widget/ScrollableViewsFactory.java +++ b/app/src/main/java/org/tasks/widget/ScrollableViewsFactory.java @@ -165,6 +165,20 @@ class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory { "setMaxLines", widgetPreferences.showFullTaskTitle() ? Integer.MAX_VALUE : 1); + boolean showDescription = task.hasNotes() && widgetPreferences.showDescription(); + + if (showDescription) { + row.setTextViewText(R.id.widget_description, task.getNotes()); + row.setViewVisibility(R.id.widget_description, View.VISIBLE); + row.setTextColor(R.id.widget_description, textColorSecondary); + row.setInt( + R.id.widget_description, + "setMaxLines", + widgetPreferences.showFullDescription() ? Integer.MAX_VALUE : 2); + } else { + row.setViewVisibility(R.id.widget_description, View.GONE); + } + row.setTextViewText(R.id.widget_text, textContent); row.setTextColor(R.id.widget_text, textColorTitle); row.setImageViewBitmap(R.id.widget_complete_box, getCheckbox(task)); @@ -186,12 +200,14 @@ class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory { Intent completeIntent = new Intent(WidgetClickActivity.COMPLETE_TASK); completeIntent.putExtra(WidgetClickActivity.EXTRA_TASK, task); row.setOnClickFillInIntent(R.id.widget_complete_box, completeIntent); - row.setViewPadding(R.id.widget_text, 0, verticalPadding, horizontalPadding, textBottomPadding); + row.setViewPadding(R.id.widget_text, 0, verticalPadding, horizontalPadding, showDescription ? 0 : textBottomPadding); row.setViewPadding(R.id.widget_due_bottom, 0, 0, horizontalPadding, verticalPadding); + row.setViewPadding(R.id.widget_description, 0, 0, horizontalPadding, textBottomPadding); } else { row.setViewVisibility(R.id.widget_complete_box, View.GONE); - row.setViewPadding(R.id.widget_text, horizontalPadding, verticalPadding, horizontalPadding, textBottomPadding); + row.setViewPadding(R.id.widget_text, horizontalPadding, verticalPadding, horizontalPadding, showDescription ? 0 : textBottomPadding); row.setViewPadding(R.id.widget_due_bottom, horizontalPadding, 0, horizontalPadding, verticalPadding); + row.setViewPadding(R.id.widget_description, horizontalPadding, 0, horizontalPadding, textBottomPadding); } int dividerColor = ContextCompat.getColor(context, widgetPreferences.getThemeIndex() == 0 ? R.color.black_12 : R.color.white_12); diff --git a/app/src/main/java/org/tasks/widget/WidgetPreferences.java b/app/src/main/java/org/tasks/widget/WidgetPreferences.java index fa426c539..cb9bc7c68 100644 --- a/app/src/main/java/org/tasks/widget/WidgetPreferences.java +++ b/app/src/main/java/org/tasks/widget/WidgetPreferences.java @@ -42,6 +42,14 @@ public class WidgetPreferences { return preferences.getBoolean(getKey(R.string.p_widget_show_full_task_title), false); } + boolean showDescription() { + return preferences.getBoolean(getKey(R.string.p_widget_show_description), true); + } + + boolean showFullDescription() { + return preferences.getBoolean(getKey(R.string.p_widget_show_full_description), false); + } + boolean dueDateBelowTitle() { return preferences.getBoolean(getKey(R.string.p_widget_due_date_underneath), false); } diff --git a/app/src/main/res/layout/widget_row.xml b/app/src/main/res/layout/widget_row.xml index d08a2b427..53b5826ba 100644 --- a/app/src/main/res/layout/widget_row.xml +++ b/app/src/main/res/layout/widget_row.xml @@ -50,11 +50,25 @@ android:textSize="16sp" tools:text="Task title" /> + + widget-font-size- widget-show-due-date- widget-show-full-task-title- + widget-show-description- + widget-show-full-description- widget-show-checkboxes- widget-show-header- widget-show-settings- diff --git a/app/src/main/res/xml/preferences_widget.xml b/app/src/main/res/xml/preferences_widget.xml index dcd323818..4a229ef55 100644 --- a/app/src/main/res/xml/preferences_widget.xml +++ b/app/src/main/res/xml/preferences_widget.xml @@ -61,6 +61,16 @@ android:key="@string/p_widget_show_due_date" android:title="@string/widget_show_due_date" /> + + + +