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" />
+
+