show only the proper events at month/day view

This commit is contained in:
tibbi 2021-02-22 20:10:02 +01:00
parent 20345e3405
commit 2051287365
5 changed files with 35 additions and 14 deletions

View file

@ -955,7 +955,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
search_results_list.beVisibleIf(events.isNotEmpty())
search_placeholder.beVisibleIf(events.isEmpty())
val listItems = getEventListItems(events)
val eventsAdapter = EventListAdapter(this, listItems, true, this, search_results_list) {
val eventsAdapter = EventListAdapter(this, listItems, true, this, search_results_list, true) {
if (it is ListEvent) {
Intent(applicationContext, EventActivity::class.java).apply {
putExtra(EVENT_ID, it.id)

View file

@ -46,7 +46,7 @@ class WidgetListConfigureActivity : SimpleActivity() {
finish()
}
EventListAdapter(this, getListItems(), false, null, config_events_list) {}.apply {
EventListAdapter(this, getListItems(), false, null, config_events_list, true) {}.apply {
updateTextColor(mTextColor)
config_events_list.adapter = this
}

View file

@ -28,7 +28,7 @@ import kotlinx.android.synthetic.main.event_list_section.view.*
import java.util.*
class EventListAdapter(activity: SimpleActivity, var listItems: ArrayList<ListItem>, val allowLongClick: Boolean, val listener: RefreshRecyclerViewListener?,
recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, null, itemClick) {
recyclerView: MyRecyclerView, val tryDimPastEvents: Boolean, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, null, itemClick) {
private val topDivider = resources.getDrawable(R.drawable.divider_width)
private val allDayString = resources.getString(R.string.all_day)
@ -176,7 +176,7 @@ class EventListAdapter(activity: SimpleActivity, var listItems: ArrayList<ListIt
startTextColor = adjustedPrimaryColor
}
if (dimPastEvents && listEvent.isPastEvent && !isPrintVersion) {
if (tryDimPastEvents && dimPastEvents && listEvent.isPastEvent && !isPrintVersion) {
startTextColor = startTextColor.adjustAlpha(LOW_ALPHA)
endTextColor = endTextColor.adjustAlpha(LOW_ALPHA)
}

View file

@ -119,7 +119,7 @@ class EventListFragment : MyFragmentHolder(), RefreshRecyclerViewListener {
val currAdapter = mView.calendar_events_list.adapter
if (currAdapter == null || forceRecreation) {
EventListAdapter(activity as SimpleActivity, listItems, true, this, mView.calendar_events_list) {
EventListAdapter(activity as SimpleActivity, listItems, true, this, mView.calendar_events_list, true) {
if (it is ListEvent) {
context?.editEvent(it)
}

View file

@ -19,6 +19,7 @@ import com.simplemobiletools.calendar.pro.helpers.MonthlyCalendarImpl
import com.simplemobiletools.calendar.pro.interfaces.MonthlyCalendar
import com.simplemobiletools.calendar.pro.interfaces.NavigationListener
import com.simplemobiletools.calendar.pro.models.DayMonthly
import com.simplemobiletools.calendar.pro.models.Event
import com.simplemobiletools.calendar.pro.models.ListEvent
import kotlinx.android.synthetic.main.fragment_month_day.*
import kotlinx.android.synthetic.main.fragment_month_day.view.*
@ -29,9 +30,11 @@ class MonthDayFragment : Fragment(), MonthlyCalendar {
private var mSundayFirst = false
private var mShowWeekNumbers = false
private var mDayCode = ""
private var mCurrentDayCode = ""
private var mPackageName = ""
private var mLastHash = 0L
private var mCalendar: MonthlyCalendarImpl? = null
private var mListEvents = ArrayList<Event>()
var listener: NavigationListener? = null
@ -45,6 +48,14 @@ class MonthDayFragment : Fragment(), MonthlyCalendar {
mPackageName = activity!!.packageName
mHolder = view.month_day_calendar_holder
mDayCode = arguments!!.getString(DAY_CODE)!!
val shownMonthDateTime = Formatter.getDateTimeFromCode(mDayCode)
val todayCode = Formatter.getTodayCode()
val todayDateTime = Formatter.getDateTimeFromCode(todayCode)
if (todayDateTime.year == shownMonthDateTime.year && todayDateTime.monthOfYear == shownMonthDateTime.monthOfYear) {
mCurrentDayCode = todayCode
}
mConfig = context!!.config
storeStateVariables()
setupButtons()
@ -93,22 +104,32 @@ class MonthDayFragment : Fragment(), MonthlyCalendar {
activity?.runOnUiThread {
mHolder.month_day_view_wrapper.updateDays(days, false) {
mCurrentDayCode = it.code
updateVisibleEvents()
}
}
val startDateTime = Formatter.getLocalDateTimeFromCode(mDayCode).minusWeeks(1)
val endDateTime = startDateTime.plusWeeks(6)
context.eventsHelper.getEvents(startDateTime.seconds(), endDateTime.seconds()) { events ->
val listItems = context.getEventListItems(events, false)
activity?.runOnUiThread {
EventListAdapter(activity as SimpleActivity, listItems, true, null, month_day_events_list) {
if (it is ListEvent) {
context.editEvent(it)
}
}.apply {
month_day_events_list.adapter = this
mListEvents = events
updateVisibleEvents()
}
}
private fun updateVisibleEvents() {
val filtered = mListEvents.filter {
Formatter.getDayCodeFromTS(it.startTS) == mCurrentDayCode
}
val listItems = context!!.getEventListItems(filtered, false)
activity?.runOnUiThread {
EventListAdapter(activity as SimpleActivity, listItems, true, null, month_day_events_list, false) {
if (it is ListEvent) {
activity?.editEvent(it)
}
}.apply {
month_day_events_list.adapter = this
}
}
}