show only the proper events at month/day view
This commit is contained in:
parent
20345e3405
commit
2051287365
5 changed files with 35 additions and 14 deletions
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue