Display place chips on widget

pull/1148/head
Alex Baker 4 years ago
parent 5b8dcd286a
commit 1f8a20c745

@ -79,6 +79,7 @@ class ScrollableWidget : InjectingPreferenceFragment() {
setupCheckbox(R.string.p_widget_show_checkboxes)
setupCheckbox(R.string.p_widget_show_dividers)
setupCheckbox(R.string.p_widget_show_subtasks)
setupCheckbox(R.string.p_widget_show_places)
setupCheckbox(R.string.p_widget_show_lists)
setupCheckbox(R.string.p_widget_show_full_task_title, false)
val showDescription = setupCheckbox(R.string.p_widget_show_description, true)

@ -9,6 +9,7 @@ import dagger.hilt.android.qualifiers.ApplicationContext
import org.tasks.BuildConfig
import org.tasks.R
import org.tasks.data.TaskContainer
import org.tasks.filters.PlaceFilter
import org.tasks.themes.CustomIcons
import org.tasks.ui.ChipListCache
import javax.inject.Inject
@ -51,6 +52,13 @@ class ChipProvider @Inject constructor(
return null
}
fun getPlaceChip(filter: Filter?, task: TaskContainer): RemoteViews? {
task.location
?.takeIf { filter !is PlaceFilter || it.place != filter.place}
?.let { return newChip(PlaceFilter(it.place), R.drawable.ic_outline_place_24px) }
return null
}
private fun newChip(filter: Filter?, defaultIcon: Int): RemoteViews? {
if (filter == null) {
return null

@ -56,6 +56,7 @@ internal class ScrollableViewsFactory(
private var handleDueDateClick = false
private var showDividers = false
private var showSubtasks = false
private var showPlaces = false
private var showLists = false
private var isRtl = false
private var tasks: List<TaskContainer> = ArrayList()
@ -181,6 +182,11 @@ internal class ScrollableViewsFactory(
.putExtra(WidgetClickActivity.EXTRA_COLLAPSED, !taskContainer.isCollapsed)
)
}
if (taskContainer.hasLocation() && showPlaces) {
chipProvider
.getPlaceChip(filter, taskContainer)
?.let { row.addView(R.id.chips, it) }
}
if (!taskContainer.hasParent() && showLists) {
chipProvider
.getListChip(filter, taskContainer)
@ -259,6 +265,7 @@ internal class ScrollableViewsFactory(
dueDateTextSize = max(10f, textSize - 2)
filter = defaultFilterProvider.getFilterFromPreference(widgetPreferences.filterId)
showDividers = widgetPreferences.showDividers()
showPlaces = widgetPreferences.showPlaces()
showSubtasks = widgetPreferences.showSubtasks()
showLists = widgetPreferences.showLists()
isRtl = locale.directionality == View.LAYOUT_DIRECTION_RTL

@ -53,6 +53,10 @@ public class WidgetPreferences {
return getBoolean(R.string.p_widget_show_subtasks, true);
}
boolean showPlaces() {
return getBoolean(R.string.p_widget_show_places, true);
}
boolean showLists() {
return getBoolean(R.string.p_widget_show_lists, true);
}

@ -306,6 +306,7 @@
<string name="p_widget_show_full_task_title">widget-show-full-task-title-</string>
<string name="p_widget_show_dividers">widget-show-dividers-</string>
<string name="p_widget_show_subtasks">widget-show-subtasks-</string>
<string name="p_widget_show_places">widget-show-places-</string>
<string name="p_widget_show_lists">widget-show-lists-</string>
<string name="p_widget_show_description">widget-show-description-</string>
<string name="p_widget_show_full_description">widget-show-full-description-</string>

@ -133,6 +133,11 @@
android:key="@string/p_widget_show_subtasks"
android:title="@string/subtasks" />
<SwitchPreferenceCompat
android:defaultValue="true"
android:key="@string/p_widget_show_places"
android:title="@string/places" />
<SwitchPreferenceCompat
android:defaultValue="true"
android:key="@string/p_widget_show_lists"

Loading…
Cancel
Save