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 f81b29d96..08e2f7072 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/ScrollableWidget.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/ScrollableWidget.kt @@ -93,6 +93,7 @@ class ScrollableWidget : InjectingPreferenceFragment() { val showDescription = setupCheckbox(R.string.p_widget_show_description, true) setupCheckbox(R.string.p_widget_show_full_description, false).dependency = showDescription.key setupList(R.string.p_widget_spacing) + setupList(R.string.p_widget_header_spacing) setupList(R.string.p_widget_footer_click) setupList(R.string.p_widget_due_date_click) setupList(R.string.p_widget_due_date_position, widgetPreferences.dueDatePosition.toString()) diff --git a/app/src/main/java/org/tasks/widget/TasksWidget.kt b/app/src/main/java/org/tasks/widget/TasksWidget.kt index b86545bdc..8c6511613 100644 --- a/app/src/main/java/org/tasks/widget/TasksWidget.kt +++ b/app/src/main/java/org/tasks/widget/TasksWidget.kt @@ -51,15 +51,27 @@ class TasksWidget : AppWidgetProvider() { if (widgetPreferences.showHeader()) { remoteViews.setViewVisibility(R.id.widget_header, View.VISIBLE) remoteViews.setViewVisibility( - R.id.widget_change_list, if (widgetPreferences.showMenu()) View.VISIBLE else View.GONE) - val widgetTitlePadding = if (widgetPreferences.showMenu()) 0 else context.resources.getDimension(R.dimen.widget_padding).toInt() - remoteViews.setViewPadding(R.id.widget_title, widgetTitlePadding, 0, 0, 0) + R.id.widget_change_list, + if (widgetPreferences.showMenu()) View.VISIBLE else View.GONE + ) remoteViews.setViewVisibility( - R.id.widget_reconfigure, if (widgetPreferences.showSettings()) View.VISIBLE else View.GONE) + R.id.widget_reconfigure, + if (widgetPreferences.showSettings()) View.VISIBLE else View.GONE + ) + remoteViews.removeAllViews(R.id.title_container) + remoteViews.addView( + R.id.title_container, + RemoteViews(context.packageName, widgetPreferences.headerLayout) + ) + val widgetPadding = context.resources.getDimension(R.dimen.widget_padding).toInt() + val widgetTitlePadding = if (widgetPreferences.showMenu()) 0 else widgetPadding + val vPad = widgetPreferences.headerSpacing + remoteViews.setViewPadding(R.id.widget_title, widgetTitlePadding, 0, 0, 0) remoteViews.setInt(R.id.widget_title, "setTextColor", color.colorOnPrimary) - remoteViews.setInt(R.id.widget_button, "setColorFilter", color.colorOnPrimary) - remoteViews.setInt(R.id.widget_reconfigure, "setColorFilter", color.colorOnPrimary) - remoteViews.setInt(R.id.widget_change_list, "setColorFilter", color.colorOnPrimary) + buttons.forEach { + remoteViews.setInt(it, "setColorFilter", color.colorOnPrimary) + remoteViews.setViewPadding(it, widgetPadding, vPad, widgetPadding, vPad) + } } else { remoteViews.setViewVisibility(R.id.widget_header, View.GONE) } @@ -154,5 +166,8 @@ class TasksWidget : AppWidgetProvider() { companion object { private const val flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP + private val buttons = intArrayOf( + R.id.widget_change_list, R.id.widget_button, R.id.widget_reconfigure + ) } } \ No newline at end of file diff --git a/app/src/main/java/org/tasks/widget/WidgetPreferences.java b/app/src/main/java/org/tasks/widget/WidgetPreferences.java index 7bbdec289..54621880e 100644 --- a/app/src/main/java/org/tasks/widget/WidgetPreferences.java +++ b/app/src/main/java/org/tasks/widget/WidgetPreferences.java @@ -100,7 +100,26 @@ public class WidgetPreferences implements QueryPreferences { } int getWidgetSpacing() { - int spacing = getIntegerFromString(R.string.p_widget_spacing, 0); + return getSpacing(R.string.p_widget_spacing); + } + + int getHeaderSpacing() { + return getSpacing(R.string.p_widget_header_spacing); + } + + int getHeaderLayout() { + switch (getIntegerFromString(R.string.p_widget_header_spacing, 0)) { + case 1: + return R.layout.widget_title_compact; + case 2: + return R.layout.widget_title_none; + default: + return R.layout.widget_title_default; + } + } + + private int getSpacing(int pref) { + int spacing = getIntegerFromString(pref, 0); if (spacing == 2) { return 0; } diff --git a/app/src/main/res/layout/scrollable_widget.xml b/app/src/main/res/layout/scrollable_widget.xml index 5a0645c66..86c9d722e 100644 --- a/app/src/main/res/layout/scrollable_widget.xml +++ b/app/src/main/res/layout/scrollable_widget.xml @@ -8,7 +8,7 @@ - + android:layout_toStartOf="@id/widget_reconfigure" /> diff --git a/app/src/main/res/layout/widget_title_compact.xml b/app/src/main/res/layout/widget_title_compact.xml new file mode 100644 index 000000000..154aa1c9c --- /dev/null +++ b/app/src/main/res/layout/widget_title_compact.xml @@ -0,0 +1,8 @@ + + \ No newline at end of file diff --git a/app/src/main/res/layout/widget_title_default.xml b/app/src/main/res/layout/widget_title_default.xml new file mode 100644 index 000000000..9a79914ef --- /dev/null +++ b/app/src/main/res/layout/widget_title_default.xml @@ -0,0 +1,8 @@ + + \ No newline at end of file diff --git a/app/src/main/res/layout/widget_title_none.xml b/app/src/main/res/layout/widget_title_none.xml new file mode 100644 index 000000000..3406cd863 --- /dev/null +++ b/app/src/main/res/layout/widget_title_none.xml @@ -0,0 +1,8 @@ + + \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 1797075c2..46a2f70f3 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -24,6 +24,9 @@ 6dp 12dp + 48dp + 36dp + 24dp 6dp 48dp diff --git a/app/src/main/res/values/keys.xml b/app/src/main/res/values/keys.xml index 6ebc8a009..da3c3177d 100644 --- a/app/src/main/res/values/keys.xml +++ b/app/src/main/res/values/keys.xml @@ -327,6 +327,7 @@ widget-empty-space-click- widget-due-date-click- widget-due-date-position- + widget-header-spacing- widget-spacing- widget-collapsed- dashclock_filter diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8b86abb3b..47e5e188a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -321,6 +321,7 @@ File %1$s contained %2$s.\n\n Subtasks Enabled Font size + Spacing Row spacing Customize edit screen Source code diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 1227ae2c9..ffd16d2bd 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -200,13 +200,22 @@ ?attr/colorSecondary + + diff --git a/app/src/main/res/xml/preferences_widget.xml b/app/src/main/res/xml/preferences_widget.xml index 2b764612a..ef6b38371 100644 --- a/app/src/main/res/xml/preferences_widget.xml +++ b/app/src/main/res/xml/preferences_widget.xml @@ -74,6 +74,14 @@ android:key="@string/p_widget_color_v2" android:title="@string/color" /> + +