Show description in widget

pull/996/head
Alex Baker 6 years ago
parent ccde7f61a2
commit 8082af19d9

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

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

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

@ -50,11 +50,25 @@
android:textSize="16sp"
tools:text="Task title" />
<TextView
android:id="@+id/widget_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/widget_text"
android:layout_alignStart="@id/widget_text"
android:paddingStart="0dp"
android:paddingEnd="@dimen/widget_padding"
android:maxLines="2"
android:ellipsize="end"
android:textAlignment="viewStart"
android:textSize="16sp"
tools:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean tristique magna mauris, vel vulputate elit varius sit amet. Etiam sed nisl diam. Aenean vulputate ex nec ex condimentum commodo. Nunc faucibus augue in lacus tincidunt pretium. Donec mollis ex a ipsum semper, faucibus viverra turpis consequat. Donec id suscipit est. Duis a consectetur justo. Nunc in diam urna." />
<TextView
android:id="@+id/widget_due_bottom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/widget_text"
android:layout_below="@id/widget_description"
android:layout_alignStart="@id/widget_text"
android:ellipsize="end"
android:gravity="start|center_vertical"

@ -270,6 +270,8 @@
<string name="p_widget_font_size">widget-font-size-</string>
<string name="p_widget_show_due_date">widget-show-due-date-</string>
<string name="p_widget_show_full_task_title">widget-show-full-task-title-</string>
<string name="p_widget_show_description">widget-show-description-</string>
<string name="p_widget_show_full_description">widget-show-full-description-</string>
<string name="p_widget_show_checkboxes">widget-show-checkboxes-</string>
<string name="p_widget_show_header">widget-show-header-</string>
<string name="p_widget_show_settings">widget-show-settings-</string>

@ -61,6 +61,16 @@
android:key="@string/p_widget_show_due_date"
android:title="@string/widget_show_due_date" />
<SwitchPreferenceCompat
android:defaultValue="true"
android:key="@string/p_widget_show_description"
android:title="@string/show_description" />
<SwitchPreferenceCompat
android:defaultValue="false"
android:key="@string/p_widget_show_full_description"
android:title="@string/show_full_description" />
<SwitchPreferenceCompat
android:key="@string/p_widget_show_checkboxes"
android:title="@string/widget_show_checkboxes" />

Loading…
Cancel
Save