Hide widget due dates when sorting by due date

pull/1157/head
Alex Baker 4 years ago
parent 6a5b8d53bd
commit f3000d8b82

@ -27,6 +27,7 @@ import org.tasks.locale.Locale
import org.tasks.preferences.DefaultFilterProvider import org.tasks.preferences.DefaultFilterProvider
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences
import org.tasks.tasklist.SectionedDataSource import org.tasks.tasklist.SectionedDataSource
import org.tasks.time.DateTimeUtils.startOfDay
import org.tasks.ui.CheckBoxProvider import org.tasks.ui.CheckBoxProvider
import timber.log.Timber import timber.log.Timber
import java.time.format.FormatStyle import java.time.format.FormatStyle
@ -223,7 +224,7 @@ internal class ScrollableViewsFactory(
} }
row.setFloat(R.id.widget_text, "setTextSize", textSize) row.setFloat(R.id.widget_text, "setTextSize", textSize)
if (showDueDates) { if (showDueDates) {
formatDueDate(row, task) formatDueDate(row, taskContainer)
} else { } else {
row.setViewVisibility(R.id.widget_due_bottom, View.GONE) row.setViewVisibility(R.id.widget_due_bottom, View.GONE)
row.setViewVisibility(R.id.widget_due_end, View.GONE) row.setViewVisibility(R.id.widget_due_end, View.GONE)
@ -312,7 +313,7 @@ internal class ScrollableViewsFactory(
return queries return queries
} }
private fun formatDueDate(row: RemoteViews, task: Task) { private fun formatDueDate(row: RemoteViews, task: TaskContainer) {
val dueDateRes = if (endDueDate) R.id.widget_due_end else R.id.widget_due_bottom val dueDateRes = if (endDueDate) R.id.widget_due_end else R.id.widget_due_bottom
row.setViewVisibility(if (endDueDate) R.id.widget_due_bottom else R.id.widget_due_end, View.GONE) row.setViewVisibility(if (endDueDate) R.id.widget_due_bottom else R.id.widget_due_end, View.GONE)
val hasDueDate = task.hasDueDate() val hasDueDate = task.hasDueDate()
@ -323,10 +324,18 @@ internal class ScrollableViewsFactory(
row.setViewPadding(R.id.widget_due_end, hPad, vPad, hPad, vPad) row.setViewPadding(R.id.widget_due_end, hPad, vPad, hPad, vPad)
} }
row.setViewVisibility(dueDateRes, View.VISIBLE) row.setViewVisibility(dueDateRes, View.VISIBLE)
row.setTextViewText( val text = if (filter?.supportsSorting() == true
dueDateRes, && sortMode == SortHelper.SORT_DUE
DateUtilities.getRelativeDateTime( && !disableGroups
context, task.dueDate, locale.locale, FormatStyle.MEDIUM)) && task.sortGroup?.startOfDay() == task.dueDate.startOfDay()) {
task.takeIf { it.hasDueTime() }?.let {
DateUtilities.getTimeString(context, DateTimeUtils.newDateTime(task.dueDate))
}
} else {
DateUtilities.getRelativeDateTime(
context, task.dueDate, locale.locale, FormatStyle.MEDIUM)
}
row.setTextViewText(dueDateRes, text)
row.setTextColor( row.setTextColor(
dueDateRes, dueDateRes,
if (task.isOverdue) context.getColor(R.color.overdue) else textColorSecondary) if (task.isOverdue) context.getColor(R.color.overdue) else textColorSecondary)
@ -335,7 +344,7 @@ internal class ScrollableViewsFactory(
row.setOnClickFillInIntent( row.setOnClickFillInIntent(
dueDateRes, dueDateRes,
Intent(WidgetClickActivity.RESCHEDULE_TASK) Intent(WidgetClickActivity.RESCHEDULE_TASK)
.putExtra(WidgetClickActivity.EXTRA_TASK, task)) .putExtra(WidgetClickActivity.EXTRA_TASK, task.task))
} else { } else {
row.setInt(dueDateRes, "setBackgroundResource", 0) row.setInt(dueDateRes, "setBackgroundResource", 0)
} }
@ -362,7 +371,11 @@ 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()
disableGroups = widgetPreferences.disableGroups() disableGroups = widgetPreferences.disableGroups() || filter?.let {
!it.supportsSorting()
|| (it.supportsManualSort() && preferences.isManualSort)
|| (it.supportsAstridSorting() && preferences.isAstridSort)
} == true
showPlaces = widgetPreferences.showPlaces() showPlaces = widgetPreferences.showPlaces()
showSubtasks = widgetPreferences.showSubtasks() showSubtasks = widgetPreferences.showSubtasks()
showLists = widgetPreferences.showLists() showLists = widgetPreferences.showLists()

Loading…
Cancel
Save