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 e9ea4df21..f2fe9eff4 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/ScrollableWidget.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/ScrollableWidget.kt @@ -65,6 +65,7 @@ class ScrollableWidget : InjectingPreferenceFragment() { setupCheckbox(R.string.p_widget_show_due_date) setupCheckbox(R.string.p_widget_show_checkboxes) setupCheckbox(R.string.p_widget_due_date_underneath) + setupCheckbox(R.string.p_widget_show_full_task_title) 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 f7d01c0ba..0af64d2d2 100644 --- a/app/src/main/java/org/tasks/widget/ScrollableViewsFactory.java +++ b/app/src/main/java/org/tasks/widget/ScrollableViewsFactory.java @@ -160,6 +160,11 @@ class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory { } } + row.setInt( + R.id.widget_text, + "setMaxLines", + widgetPreferences.showFullTaskTitle() ? Integer.MAX_VALUE : 1); + row.setTextViewText(R.id.widget_text, textContent); row.setTextColor(R.id.widget_text, textColorTitle); row.setImageViewBitmap(R.id.widget_complete_box, getCheckbox(task)); @@ -171,7 +176,10 @@ class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory { int horizontalPadding = (int) context.getResources().getDimension(R.dimen.widget_padding); int verticalPadding = widgetPreferences.getWidgetSpacing(); - int textBottomPadding = showDueDates && task.hasDueDate() ? 0 : verticalPadding; + int textBottomPadding = + showDueDates && task.hasDueDate() && widgetPreferences.dueDateBelowTitle() + ? 0 + : verticalPadding; row.setViewPadding(R.id.widget_complete_box, horizontalPadding, verticalPadding, horizontalPadding, verticalPadding); if (showCheckboxes) { row.setViewVisibility(R.id.widget_complete_box, View.VISIBLE); diff --git a/app/src/main/java/org/tasks/widget/WidgetPreferences.java b/app/src/main/java/org/tasks/widget/WidgetPreferences.java index f2fe878af..fa426c539 100644 --- a/app/src/main/java/org/tasks/widget/WidgetPreferences.java +++ b/app/src/main/java/org/tasks/widget/WidgetPreferences.java @@ -38,6 +38,10 @@ public class WidgetPreferences { return preferences.getBoolean(getKey(R.string.p_widget_show_menu), true); } + boolean showFullTaskTitle() { + return preferences.getBoolean(getKey(R.string.p_widget_show_full_task_title), 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 da3f08ae8..4a43806d5 100644 --- a/app/src/main/res/layout/widget_row.xml +++ b/app/src/main/res/layout/widget_row.xml @@ -44,7 +44,7 @@ android:paddingEnd="@dimen/widget_padding" android:paddingStart="0dp" android:gravity="start|center_vertical" - android:singleLine="true" + android:maxLines="1" android:textAlignment="viewStart" android:textSize="16sp" tools:text="Task title"/> diff --git a/app/src/main/res/values/keys.xml b/app/src/main/res/values/keys.xml index d28a976a2..59ad87b9f 100644 --- a/app/src/main/res/values/keys.xml +++ b/app/src/main/res/values/keys.xml @@ -269,6 +269,7 @@ widget-opacity-v3- widget-font-size- widget-show-due-date- + widget-show-full-task-title- 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 dcb3887e0..7c2b2b664 100644 --- a/app/src/main/res/xml/preferences_widget.xml +++ b/app/src/main/res/xml/preferences_widget.xml @@ -49,6 +49,11 @@ app:min="10" app:showSeekBarValue="true" /> + +