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

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

@ -270,8 +270,9 @@ internal class ScrollableViewsFactory(
)
}
if (taskContainer.isHidden && showStartDates) {
val sortByDate = sortMode == SortHelper.SORT_START && !disableGroups
chipProvider
.getStartDateChip(taskContainer, showFullDate)
.getStartDateChip(taskContainer, showFullDate, sortByDate)
?.let { row.addView(R.id.chips, it) }
}
if (taskContainer.hasLocation() && showPlaces) {
@ -320,8 +321,7 @@ internal class ScrollableViewsFactory(
row.setViewPadding(R.id.widget_due_end, hPad, vPad, hPad, vPad)
}
row.setViewVisibility(dueDateRes, View.VISIBLE)
val text = if (filter?.supportsSorting() == true
&& sortMode == SortHelper.SORT_DUE
val text = if (sortMode == SortHelper.SORT_DUE
&& !disableGroups
&& task.sortGroup?.startOfDay() == task.dueDate.startOfDay()) {
task.takeIf { it.hasDueTime() }?.let {

Loading…
Cancel
Save