mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-03-01 18:07:45 +01:00
refresh the weekly view if filtering was changed
This commit is contained in:
parent
bce6f85756
commit
cf4f549a57
@ -132,7 +132,7 @@ class MainActivity : SimpleActivity(), NavigationListener {
|
|||||||
|
|
||||||
private fun showFilterDialog() {
|
private fun showFilterDialog() {
|
||||||
FilterEventTypesDialog(this) {
|
FilterEventTypesDialog(this) {
|
||||||
|
refreshViewPager()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,6 +159,18 @@ class MainActivity : SimpleActivity(), NavigationListener {
|
|||||||
mWeekScrollY = 0
|
mWeekScrollY = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun refreshViewPager() {
|
||||||
|
if (config.storedView == YEARLY_VIEW) {
|
||||||
|
|
||||||
|
} else if (config.storedView == EVENTS_LIST_VIEW) {
|
||||||
|
|
||||||
|
} else if (config.storedView == WEEKLY_VIEW) {
|
||||||
|
(week_view_view_pager.adapter as MyWeekPagerAdapter).refreshEvents(week_view_view_pager.currentItem)
|
||||||
|
} else {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun tryImportEvents() {
|
private fun tryImportEvents() {
|
||||||
if (hasReadStoragePermission()) {
|
if (hasReadStoragePermission()) {
|
||||||
importEvents()
|
importEvents()
|
||||||
|
@ -30,4 +30,10 @@ class MyWeekPagerAdapter(fm: FragmentManager, val mWeekTimestamps: List<Int>, va
|
|||||||
mFragments[pos - 1].updateScrollY(y)
|
mFragments[pos - 1].updateScrollY(y)
|
||||||
mFragments[pos + 1].updateScrollY(y)
|
mFragments[pos + 1].updateScrollY(y)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun refreshEvents(pos: Int) {
|
||||||
|
for (i in -1..1) {
|
||||||
|
mFragments[pos + i].updateEvents()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,10 @@ class FilterEventTypesDialog(val activity: SimpleActivity, val callback: () -> U
|
|||||||
|
|
||||||
private fun confirmEventTypes() {
|
private fun confirmEventTypes() {
|
||||||
val selectedItems = (view.filter_event_types_list.adapter as FilterEventTypeAdapter).getSelectedItemsSet()
|
val selectedItems = (view.filter_event_types_list.adapter as FilterEventTypeAdapter).getSelectedItemsSet()
|
||||||
activity.config.displayEventTypes = selectedItems
|
if (activity.config.displayEventTypes != selectedItems) {
|
||||||
|
activity.config.displayEventTypes = selectedItems
|
||||||
|
callback.invoke()
|
||||||
|
}
|
||||||
dialog.dismiss()
|
dialog.dismiss()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -122,6 +122,12 @@ fun Context.getReminderText(minutes: Int) = when (minutes) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Context.getFilteredEvents(events: List<Event>): List<Event> {
|
||||||
|
val displayEventTypes = config.displayEventTypes
|
||||||
|
val filtered = events.filter { displayEventTypes.contains(it.eventType.toString()) }
|
||||||
|
return filtered
|
||||||
|
}
|
||||||
|
|
||||||
fun Context.getNewEventTimestampFromCode(dayCode: String) = Formatter.getLocalDateTimeFromCode(dayCode).withTime(13, 0, 0, 0).seconds()
|
fun Context.getNewEventTimestampFromCode(dayCode: String) = Formatter.getLocalDateTimeFromCode(dayCode).withTime(13, 0, 0, 0).seconds()
|
||||||
|
|
||||||
val Context.config: Config get() = Config.newInstance(this)
|
val Context.config: Config get() = Config.newInstance(this)
|
||||||
|
@ -16,8 +16,10 @@ import com.simplemobiletools.calendar.R
|
|||||||
import com.simplemobiletools.calendar.activities.EventActivity
|
import com.simplemobiletools.calendar.activities.EventActivity
|
||||||
import com.simplemobiletools.calendar.activities.MainActivity
|
import com.simplemobiletools.calendar.activities.MainActivity
|
||||||
import com.simplemobiletools.calendar.extensions.config
|
import com.simplemobiletools.calendar.extensions.config
|
||||||
|
import com.simplemobiletools.calendar.extensions.getFilteredEvents
|
||||||
import com.simplemobiletools.calendar.extensions.seconds
|
import com.simplemobiletools.calendar.extensions.seconds
|
||||||
import com.simplemobiletools.calendar.helpers.*
|
import com.simplemobiletools.calendar.helpers.*
|
||||||
|
import com.simplemobiletools.calendar.helpers.Formatter
|
||||||
import com.simplemobiletools.calendar.interfaces.WeeklyCalendar
|
import com.simplemobiletools.calendar.interfaces.WeeklyCalendar
|
||||||
import com.simplemobiletools.calendar.models.Event
|
import com.simplemobiletools.calendar.models.Event
|
||||||
import com.simplemobiletools.calendar.views.MyScrollView
|
import com.simplemobiletools.calendar.views.MyScrollView
|
||||||
@ -26,6 +28,7 @@ import kotlinx.android.synthetic.main.fragment_week.*
|
|||||||
import kotlinx.android.synthetic.main.fragment_week.view.*
|
import kotlinx.android.synthetic.main.fragment_week.view.*
|
||||||
import org.joda.time.DateTime
|
import org.joda.time.DateTime
|
||||||
import org.joda.time.Days
|
import org.joda.time.Days
|
||||||
|
import java.util.*
|
||||||
import kotlin.comparisons.compareBy
|
import kotlin.comparisons.compareBy
|
||||||
|
|
||||||
class WeekFragment : Fragment(), WeeklyCalendar {
|
class WeekFragment : Fragment(), WeeklyCalendar {
|
||||||
@ -45,6 +48,7 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
private var clickStartTime = 0L
|
private var clickStartTime = 0L
|
||||||
private var selectedGrid: View? = null
|
private var selectedGrid: View? = null
|
||||||
private var todayColumnIndex = -1
|
private var todayColumnIndex = -1
|
||||||
|
private var events: List<Event> = ArrayList()
|
||||||
|
|
||||||
lateinit var inflater: LayoutInflater
|
lateinit var inflater: LayoutInflater
|
||||||
lateinit var mView: View
|
lateinit var mView: View
|
||||||
@ -209,9 +213,16 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun updateWeeklyCalendar(events: List<Event>) {
|
override fun updateWeeklyCalendar(events: List<Event>) {
|
||||||
|
this.events = events
|
||||||
|
updateEvents()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun updateEvents() {
|
||||||
if (mWasDestroyed)
|
if (mWasDestroyed)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
val filtered = context.getFilteredEvents(events)
|
||||||
|
|
||||||
initGrid()
|
initGrid()
|
||||||
val fullHeight = mRes.getDimension(R.dimen.weekly_view_events_height)
|
val fullHeight = mRes.getDimension(R.dimen.weekly_view_events_height)
|
||||||
val minuteHeight = fullHeight / (24 * 60)
|
val minuteHeight = fullHeight / (24 * 60)
|
||||||
@ -219,7 +230,7 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
activity.runOnUiThread { mView.week_all_day_holder.removeAllViews() }
|
activity.runOnUiThread { mView.week_all_day_holder.removeAllViews() }
|
||||||
|
|
||||||
var hadAllDayEvent = false
|
var hadAllDayEvent = false
|
||||||
val sorted = events.sortedWith(compareBy({ it.startTS }, { it.endTS }, { it.title }, { it.description }))
|
val sorted = filtered.sortedWith(compareBy({ it.startTS }, { it.endTS }, { it.title }, { it.description }))
|
||||||
for (event in sorted) {
|
for (event in sorted) {
|
||||||
if (event.isAllDay || Formatter.getDayCodeFromTS(event.startTS) != Formatter.getDayCodeFromTS(event.endTS)) {
|
if (event.isAllDay || Formatter.getDayCodeFromTS(event.startTS) != Formatter.getDayCodeFromTS(event.endTS)) {
|
||||||
hadAllDayEvent = true
|
hadAllDayEvent = true
|
||||||
|
Loading…
x
Reference in New Issue
Block a user