Fix start date chip issues

pull/1294/head
Alex Baker 3 years ago
parent 073541810c
commit f47b922e2a

@ -24,6 +24,7 @@ import org.tasks.preferences.Preferences
import org.tasks.themes.ColorProvider import org.tasks.themes.ColorProvider
import org.tasks.themes.CustomIcons.getIconResId import org.tasks.themes.CustomIcons.getIconResId
import org.tasks.themes.ThemeColor import org.tasks.themes.ThemeColor
import org.tasks.time.DateTimeUtils.startOfDay
import java.time.format.FormatStyle import java.time.format.FormatStyle
import java.util.* import java.util.*
import javax.inject.Inject import javax.inject.Inject
@ -52,10 +53,13 @@ class ChipProvider @Inject constructor(
private fun newStartDateChip(task: TaskContainer, compact: Boolean, timeOnly: Boolean): Chip? { private fun newStartDateChip(task: TaskContainer, compact: Boolean, timeOnly: Boolean): Chip? {
val chip = newChip(task) val chip = newChip(task)
val text = if (timeOnly) { val text = if (timeOnly
&& task.sortGroup?.startOfDay() == task.startDate.startOfDay()
&& preferences.showGroupHeaders()
) {
task.startDate task.startDate
.takeIf { Task.hasDueTime(it) } .takeIf { Task.hasDueTime(it) }
?.let { DateUtilities.getTimeString(activity, task.startDate.toDateTime()) } ?.let { DateUtilities.getTimeString(activity, it.toDateTime()) }
?: return null ?: return null
} else { } else {
DateUtilities.getRelativeDateTime( DateUtilities.getRelativeDateTime(

@ -7,14 +7,17 @@ import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.Filter import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.GtasksFilter import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.api.TagFilter import com.todoroo.astrid.api.TagFilter
import com.todoroo.astrid.data.Task
import dagger.hilt.android.qualifiers.ApplicationContext 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.date.DateTimeUtils.toDateTime
import org.tasks.filters.PlaceFilter import org.tasks.filters.PlaceFilter
import org.tasks.locale.Locale import org.tasks.locale.Locale
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences
import org.tasks.themes.CustomIcons import org.tasks.themes.CustomIcons
import org.tasks.time.DateTimeUtils.startOfDay
import org.tasks.ui.ChipListCache import org.tasks.ui.ChipListCache
import java.time.format.FormatStyle import java.time.format.FormatStyle
import javax.inject.Inject import javax.inject.Inject
@ -47,20 +50,25 @@ class ChipProvider @Inject constructor(
return chip return chip
} }
fun getStartDateChip(task: TaskContainer, showFullDate: Boolean): RemoteViews? { fun getStartDateChip(task: TaskContainer, showFullDate: Boolean, sortByStartDate: Boolean): RemoteViews? {
return if (task.isHidden) { return if (task.isHidden) {
val chip = newChip() val chip = newChip()
chip.setTextViewText( val time = if (sortByStartDate && task.sortGroup?.startOfDay() == task.startDate.startOfDay()) {
R.id.chip_text, task.startDate
DateUtilities.getRelativeDateTime( .takeIf { Task.hasDueTime(it) }
context, ?.let { DateUtilities.getTimeString(context, it.toDateTime()) }
task.startDate, ?: return null
locale.locale, } else {
FormatStyle.MEDIUM, DateUtilities.getRelativeDateTime(
showFullDate, context,
false task.startDate,
) locale.locale,
) FormatStyle.MEDIUM,
showFullDate,
false
)
}
chip.setTextViewText(R.id.chip_text, time)
chip.setImageViewResource(R.id.chip_icon, R.drawable.ic_pending_actions_24px) chip.setImageViewResource(R.id.chip_icon, R.drawable.ic_pending_actions_24px)
chip chip
} else { } else {

@ -270,8 +270,9 @@ internal class ScrollableViewsFactory(
) )
} }
if (taskContainer.isHidden && showStartDates) { if (taskContainer.isHidden && showStartDates) {
val sortByDate = sortMode == SortHelper.SORT_START && !disableGroups
chipProvider chipProvider
.getStartDateChip(taskContainer, showFullDate) .getStartDateChip(taskContainer, showFullDate, sortByDate)
?.let { row.addView(R.id.chips, it) } ?.let { row.addView(R.id.chips, it) }
} }
if (taskContainer.hasLocation() && showPlaces) { if (taskContainer.hasLocation() && showPlaces) {
@ -320,8 +321,7 @@ 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)
val text = if (filter?.supportsSorting() == true val text = if (sortMode == SortHelper.SORT_DUE
&& sortMode == SortHelper.SORT_DUE
&& !disableGroups && !disableGroups
&& task.sortGroup?.startOfDay() == task.dueDate.startOfDay()) { && task.sortGroup?.startOfDay() == task.dueDate.startOfDay()) {
task.takeIf { it.hasDueTime() }?.let { task.takeIf { it.hasDueTime() }?.let {

Loading…
Cancel
Save