Configure widget header spacing

pull/1184/head
Alex Baker 4 years ago
parent 4b1f1a3171
commit e3d0c6f7a3

@ -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())

@ -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
)
}
}

@ -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;
}

@ -8,7 +8,7 @@
<RelativeLayout
android:id="@+id/widget_header"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageButton
@ -34,20 +34,12 @@
android:contentDescription="@string/widget_settings"
tools:padding="@dimen/widget_padding"/>
<TextView
android:id="@+id/widget_title"
<FrameLayout
android:id="@+id/title_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerVertical="true"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/widget_change_list"
android:layout_toStartOf="@id/widget_reconfigure"
android:ellipsize="end"
android:gravity="start|center_vertical"
android:maxLines="2"
android:textAlignment="viewStart"
android:textSize="18sp"
tools:text="@string/BFE_Active"
tools:textColor="@android:color/black" />
android:layout_toStartOf="@id/widget_reconfigure" />
</RelativeLayout>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/widget_title"
android:layout_height="@dimen/widget_height_compact"
style="@style/WidgetTitle"
tools:text="@string/BFE_Active"
tools:textColor="@android:color/black" />

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/widget_title"
android:layout_height="@dimen/widget_height_default"
style="@style/WidgetTitle"
tools:text="@string/BFE_Active"
tools:textColor="@android:color/black" />

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/widget_title"
android:layout_height="@dimen/widget_height_none"
style="@style/WidgetTitle"
tools:text="@string/BFE_Active"
tools:textColor="@android:color/black" />

@ -24,6 +24,9 @@
<dimen name="widget_padding_compact">6dp</dimen>
<dimen name="widget_padding">12dp</dimen>
<dimen name="widget_height_default">48dp</dimen>
<dimen name="widget_height_compact">36dp</dimen>
<dimen name="widget_height_none">24dp</dimen>
<dimen name="week_button_inset">6dp</dimen>
<dimen name="week_button_state_on_circle_size">48dp</dimen>

@ -327,6 +327,7 @@
<string name="p_widget_footer_click">widget-empty-space-click-</string>
<string name="p_widget_due_date_click">widget-due-date-click-</string>
<string name="p_widget_due_date_position">widget-due-date-position-</string>
<string name="p_widget_header_spacing">widget-header-spacing-</string>
<string name="p_widget_spacing">widget-spacing-</string>
<string name="p_widget_collapsed">widget-collapsed-</string>
<string name="p_dashclock_filter">dashclock_filter</string>

@ -321,6 +321,7 @@ File %1$s contained %2$s.\n\n
<string name="subtasks">Subtasks</string>
<string name="enabled">Enabled</string>
<string name="font_size">Font size</string>
<string name="header_spacing">Spacing</string>
<string name="row_spacing">Row spacing</string>
<string name="customize_edit_screen">Customize edit screen</string>
<string name="source_code">Source code</string>

@ -200,13 +200,22 @@
<item name="android:textColor">?attr/colorSecondary</item>
</style>
<style name="WidgetTitle" parent="TextAppearance">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_centerVertical">true</item>
<item name="android:ellipsize">end</item>
<item name="android:gravity">start|center_vertical</item>
<item name="android:maxLines">2</item>
<item name="android:textAlignment">viewStart</item>
<item name="android:textSize">18sp</item>
</style>
<style name="WidgetButton">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_centerVertical">true</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:scaleType">fitCenter</item>
<item name="android:padding">@dimen/widget_padding</item>
</style>
</resources>

@ -74,6 +74,14 @@
android:key="@string/p_widget_color_v2"
android:title="@string/color" />
<ListPreference
android:defaultValue="0"
android:key="@string/p_widget_header_spacing"
android:entries="@array/widget_spacing_titles"
android:entryValues="@array/widget_spacing_values"
android:title="@string/header_spacing"
android:summary="%s" />
<SwitchPreferenceCompat
android:key="@string/p_widget_show_menu"
android:title="@string/widget_show_menu" />

Loading…
Cancel
Save