From 385770734516de7e14cf84a1181e81cd5348526d Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 22 Jan 2018 18:01:44 +0100 Subject: [PATCH] adjust New Event default date/time according to currently selected fragment --- .../simplemobiletools/calendar/activities/MainActivity.kt | 4 +++- .../com/simplemobiletools/calendar/extensions/Context.kt | 5 ++--- .../calendar/fragments/DayFragmentsHolder.kt | 2 ++ .../calendar/fragments/EventListFragment.kt | 3 +++ .../calendar/fragments/MonthFragmentsHolder.kt | 2 ++ .../simplemobiletools/calendar/fragments/MyFragmentHolder.kt | 3 +++ .../calendar/fragments/WeekFragmentsHolder.kt | 2 ++ .../calendar/fragments/YearFragmentsHolder.kt | 2 ++ 8 files changed, 19 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt index d8e4c31dd..f69693e5e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt @@ -103,7 +103,9 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { refreshCalDAVCalendars(false) } - calendar_fab.setOnClickListener { launchNewEventIntent() } + calendar_fab.setOnClickListener { + launchNewEventIntent(currentFragments.last().getNewEventDayCode()) + } calendar_fab.beVisibleIf(config.storedView != YEARLY_VIEW) checkOpenIntents() } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Context.kt index 463a64d20..961665af3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Context.kt @@ -232,10 +232,9 @@ private fun getSnoozePendingIntent(context: Context, event: Event): PendingInten return PendingIntent.getService(context, event.id, intent, PendingIntent.FLAG_UPDATE_CURRENT) } -fun Context.launchNewEventIntent() { - val code = Formatter.getDayCodeFromDateTime(DateTime(DateTimeZone.getDefault())) +fun Context.launchNewEventIntent(dayCode: String = Formatter.getTodayCode(this)) { Intent(applicationContext, EventActivity::class.java).apply { - putExtra(NEW_EVENT_START_TS, getNewEventTimestampFromCode(code)) + putExtra(NEW_EVENT_START_TS, getNewEventTimestampFromCode(dayCode)) addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) startActivity(this) } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/DayFragmentsHolder.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/DayFragmentsHolder.kt index 790c9b081..961187cac 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/DayFragmentsHolder.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/DayFragmentsHolder.kt @@ -105,4 +105,6 @@ class DayFragmentsHolder : MyFragmentHolder(), NavigationListener { override fun updateActionBarTitle() { (activity as MainActivity).supportActionBar?.title = getString(R.string.app_launcher_name) } + + override fun getNewEventDayCode() = currentDayCode } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/EventListFragment.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/EventListFragment.kt index 68a509771..c69286dce 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/EventListFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/EventListFragment.kt @@ -13,6 +13,7 @@ import com.simplemobiletools.calendar.adapters.EventListAdapter import com.simplemobiletools.calendar.extensions.* import com.simplemobiletools.calendar.helpers.EVENT_ID import com.simplemobiletools.calendar.helpers.EVENT_OCCURRENCE_TS +import com.simplemobiletools.calendar.helpers.Formatter import com.simplemobiletools.calendar.models.Event import com.simplemobiletools.calendar.models.ListEvent import com.simplemobiletools.commons.extensions.beGoneIf @@ -124,4 +125,6 @@ class EventListFragment : MyFragmentHolder(), RefreshRecyclerViewListener { override fun updateActionBarTitle() { (activity as MainActivity).supportActionBar?.title = getString(R.string.app_launcher_name) } + + override fun getNewEventDayCode() = Formatter.getTodayCode(context!!) } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/MonthFragmentsHolder.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/MonthFragmentsHolder.kt index f9f9364a8..2254039f1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/MonthFragmentsHolder.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/MonthFragmentsHolder.kt @@ -106,4 +106,6 @@ class MonthFragmentsHolder : MyFragmentHolder(), NavigationListener { override fun updateActionBarTitle() { (activity as MainActivity).supportActionBar?.title = getString(R.string.app_launcher_name) } + + override fun getNewEventDayCode() = currentDayCode } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/MyFragmentHolder.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/MyFragmentHolder.kt index 8e3cce9cd..0773d099f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/MyFragmentHolder.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/MyFragmentHolder.kt @@ -1,6 +1,7 @@ package com.simplemobiletools.calendar.fragments import android.support.v4.app.Fragment +import org.joda.time.DateTime abstract class MyFragmentHolder : Fragment() { abstract fun goToToday() @@ -10,4 +11,6 @@ abstract class MyFragmentHolder : Fragment() { abstract fun shouldGoToTodayBeVisible(): Boolean abstract fun updateActionBarTitle() + + abstract fun getNewEventDayCode(): String } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/WeekFragmentsHolder.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/WeekFragmentsHolder.kt index 068c4605f..13652eced 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/WeekFragmentsHolder.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/WeekFragmentsHolder.kt @@ -133,6 +133,8 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener { setupWeeklyActionbarTitle(currentWeekTS) } + override fun getNewEventDayCode() = Formatter.getDayCodeFromTS(currentWeekTS) + override fun scrollTo(y: Int) { weekHolder!!.week_view_hours_scrollview.scrollY = y weekScrollY = y diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/YearFragmentsHolder.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/YearFragmentsHolder.kt index f6cbcf638..252f1faa4 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/YearFragmentsHolder.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/YearFragmentsHolder.kt @@ -87,4 +87,6 @@ class YearFragmentsHolder : MyFragmentHolder() { override fun updateActionBarTitle() { (activity as? MainActivity)?.supportActionBar?.title = "${getString(R.string.app_launcher_name)} - $currentYear" } + + override fun getNewEventDayCode() = Formatter.getTodayCode(context!!) }