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_checkboxes)
setupCheckbox(R.string.p_widget_show_dividers) setupCheckbox(R.string.p_widget_show_dividers)
setupCheckbox(R.string.p_widget_show_subtasks) 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_lists)
setupCheckbox(R.string.p_widget_show_full_task_title, false) setupCheckbox(R.string.p_widget_show_full_task_title, false)
val showDescription = setupCheckbox(R.string.p_widget_show_description, true) 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.BuildConfig
import org.tasks.R import org.tasks.R
import org.tasks.data.TaskContainer import org.tasks.data.TaskContainer
import org.tasks.filters.PlaceFilter
import org.tasks.themes.CustomIcons import org.tasks.themes.CustomIcons
import org.tasks.ui.ChipListCache import org.tasks.ui.ChipListCache
import javax.inject.Inject import javax.inject.Inject
@ -51,6 +52,13 @@ class ChipProvider @Inject constructor(
return null 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? { private fun newChip(filter: Filter?, defaultIcon: Int): RemoteViews? {
if (filter == null) { if (filter == null) {
return null return null

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

@ -53,6 +53,10 @@ public class WidgetPreferences {
return getBoolean(R.string.p_widget_show_subtasks, true); return getBoolean(R.string.p_widget_show_subtasks, true);
} }
boolean showPlaces() {
return getBoolean(R.string.p_widget_show_places, true);
}
boolean showLists() { boolean showLists() {
return getBoolean(R.string.p_widget_show_lists, true); 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_full_task_title">widget-show-full-task-title-</string>
<string name="p_widget_show_dividers">widget-show-dividers-</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_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_lists">widget-show-lists-</string>
<string name="p_widget_show_description">widget-show-description-</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_full_description">widget-show-full-description-</string>

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

Loading…
Cancel
Save