From e545ff30ad59abb5425dbe96154b758491277c3f Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 22 Feb 2021 18:29:38 +0100 Subject: [PATCH] populate the list view at month+day view too --- .../calendar/pro/extensions/Context.kt | 12 +++++-- .../pro/fragments/EventListFragment.kt | 10 +----- .../pro/fragments/MonthDayFragment.kt | 33 +++++++++++++------ 3 files changed, 34 insertions(+), 21 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt index f123326bb..cf3db368d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt @@ -456,7 +456,7 @@ fun Context.addDayEvents(day: DayMonthly, linearLayout: LinearLayout, res: Resou } } -fun Context.getEventListItems(events: List): ArrayList { +fun Context.getEventListItems(events: List, addSections: Boolean = true): ArrayList { val listItems = ArrayList(events.size) val replaceDescription = config.replaceDescription @@ -481,7 +481,7 @@ fun Context.getEventListItems(events: List): ArrayList { sorted.forEach { val code = Formatter.getDayCodeFromTS(it.startTS) - if (code != prevCode) { + if (code != prevCode && addSections) { val day = Formatter.getDayTitle(this, code) val isToday = day == today val listSection = ListSection(day, code, isToday, !isToday && it.startTS < now) @@ -553,3 +553,11 @@ fun Context.printBitmap(bitmap: Bitmap) { printHelper.orientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT printHelper.printBitmap(getString(R.string.app_name), bitmap) } + +fun Context.editEvent(event: ListEvent) { + Intent(this, EventActivity::class.java).apply { + putExtra(EVENT_ID, event.id) + putExtra(EVENT_OCCURRENCE_TS, event.startTS) + startActivity(this) + } +} diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/EventListFragment.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/EventListFragment.kt index 0c018af26..75faf387b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/EventListFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/EventListFragment.kt @@ -121,7 +121,7 @@ class EventListFragment : MyFragmentHolder(), RefreshRecyclerViewListener { if (currAdapter == null || forceRecreation) { EventListAdapter(activity as SimpleActivity, listItems, true, this, mView.calendar_events_list) { if (it is ListEvent) { - editEvent(it) + context?.editEvent(it) } }.apply { mView.calendar_events_list.adapter = this @@ -169,14 +169,6 @@ class EventListFragment : MyFragmentHolder(), RefreshRecyclerViewListener { mView.calendar_empty_list_placeholder.setTextColor(activity!!.config.textColor) } - private fun editEvent(event: ListEvent) { - Intent(context, EventActivity::class.java).apply { - putExtra(EVENT_ID, event.id) - putExtra(EVENT_OCCURRENCE_TS, event.startTS) - startActivity(this) - } - } - private fun fetchPreviousPeriod() { val lastPosition = (mView.calendar_events_list.layoutManager as MyLinearLayoutManager).findLastVisibleItemPosition() bottomItemAtRefresh = (mView.calendar_events_list.adapter as EventListAdapter).listItems[lastPosition] diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/MonthDayFragment.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/MonthDayFragment.kt index 597f09464..8e1fcb045 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/MonthDayFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/MonthDayFragment.kt @@ -9,7 +9,9 @@ import android.view.ViewGroup import androidx.constraintlayout.widget.ConstraintLayout import androidx.fragment.app.Fragment import com.simplemobiletools.calendar.pro.R -import com.simplemobiletools.calendar.pro.extensions.config +import com.simplemobiletools.calendar.pro.activities.SimpleActivity +import com.simplemobiletools.calendar.pro.adapters.EventListAdapter +import com.simplemobiletools.calendar.pro.extensions.* import com.simplemobiletools.calendar.pro.helpers.Config import com.simplemobiletools.calendar.pro.helpers.DAY_CODE import com.simplemobiletools.calendar.pro.helpers.Formatter @@ -17,6 +19,8 @@ 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.ListEvent +import kotlinx.android.synthetic.main.fragment_month_day.* import kotlinx.android.synthetic.main.fragment_month_day.view.* import org.joda.time.DateTime @@ -43,10 +47,8 @@ class MonthDayFragment : Fragment(), MonthlyCalendar { mDayCode = arguments!!.getString(DAY_CODE)!! mConfig = context!!.config storeStateVariables() - setupButtons() mCalendar = MonthlyCalendarImpl(this, context!!) - return view } @@ -90,7 +92,24 @@ class MonthDayFragment : Fragment(), MonthlyCalendar { mLastHash = newHash activity?.runOnUiThread { - updateDays(days) + mHolder.month_day_view_wrapper.updateDays(days, false) { + + } + } + + 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 + } + } } } @@ -98,11 +117,5 @@ class MonthDayFragment : Fragment(), MonthlyCalendar { mTextColor = mConfig.textColor } - private fun updateDays(days: ArrayList) { - mHolder.month_day_view_wrapper.updateDays(days, false) { -// (activity as MainActivity).openDayFromMonthly(Formatter.getDateTimeFromCode(it.code)) - } - } - fun printCurrentView() {} }