From b3dc5b28f4575f01f55c73e765b87ad2f208112f Mon Sep 17 00:00:00 2001 From: liveHarshit Date: Tue, 16 Jul 2019 09:54:15 +0530 Subject: [PATCH] fix: Use event's time zone as default (#2128) --- .../fossasia/openevent/general/event/EventUtils.kt | 7 ++++--- .../openevent/general/settings/SettingsFragment.kt | 11 ++++++----- app/src/main/res/values/strings.xml | 4 ++-- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/fossasia/openevent/general/event/EventUtils.kt b/app/src/main/java/org/fossasia/openevent/general/event/EventUtils.kt index d70cc4614b..6d933b1ec4 100644 --- a/app/src/main/java/org/fossasia/openevent/general/event/EventUtils.kt +++ b/app/src/main/java/org/fossasia/openevent/general/event/EventUtils.kt @@ -6,6 +6,7 @@ import androidx.preference.PreferenceManager import org.fossasia.openevent.general.OpenEventGeneral import org.fossasia.openevent.general.R import org.fossasia.openevent.general.data.Resource +import org.fossasia.openevent.general.settings.LOCAL_TIMEZONE import org.threeten.bp.ZoneId import org.threeten.bp.ZonedDateTime import org.threeten.bp.format.DateTimeFormatter @@ -23,14 +24,14 @@ object EventUtils { fun getEventDateTime(dateString: String, timeZone: String?): ZonedDateTime { try { return when (PreferenceManager.getDefaultSharedPreferences(OpenEventGeneral.appContext) - .getBoolean("useEventTimeZone", false) && !timeZone.isNullOrBlank()) { + .getBoolean(LOCAL_TIMEZONE, false) && !timeZone.isNullOrBlank()) { true -> ZonedDateTime.parse(dateString) .toOffsetDateTime() - .atZoneSameInstant(ZoneId.of(timeZone)) + .atZoneSameInstant(ZoneId.systemDefault()) false -> ZonedDateTime.parse(dateString) .toOffsetDateTime() - .atZoneSameInstant(ZoneId.systemDefault()) + .atZoneSameInstant(ZoneId.of(timeZone)) } } catch (e: NullPointerException) { return ZonedDateTime.parse(dateString) diff --git a/app/src/main/java/org/fossasia/openevent/general/settings/SettingsFragment.kt b/app/src/main/java/org/fossasia/openevent/general/settings/SettingsFragment.kt index e08132eafc..cfad49060d 100644 --- a/app/src/main/java/org/fossasia/openevent/general/settings/SettingsFragment.kt +++ b/app/src/main/java/org/fossasia/openevent/general/settings/SettingsFragment.kt @@ -36,6 +36,8 @@ import java.util.prefs.PreferenceChangeListener import org.fossasia.openevent.general.utils.Utils.setToolbar import org.fossasia.openevent.general.utils.extensions.nonNull +const val LOCAL_TIMEZONE = "localTimeZone" + class SettingsFragment : PreferenceFragmentCompat(), PreferenceChangeListener { private val FORM_LINK: String = "https://docs.google.com/forms/d/e/" + "1FAIpQLSd7Y1T1xoXeYaAG_b6Tu1YYK-jZssoC5ltmQbkUX0kmDZaKYw/viewform" @@ -69,7 +71,7 @@ class SettingsFragment : PreferenceFragmentCompat(), PreferenceChangeListener { "Version " + BuildConfig.VERSION_NAME preferenceScreen.findPreference(getString(R.string.key_timezone_switch))?.setDefaultValue( - timeZonePreference.getBoolean("useEventTimeZone", false) + timeZonePreference.getBoolean(LOCAL_TIMEZONE, false) ) preferenceScreen.findPreference(getString(R.string.key_profile))?.isVisible = @@ -122,10 +124,9 @@ class SettingsFragment : PreferenceFragmentCompat(), PreferenceChangeListener { } if (preference?.key == getString(R.string.key_timezone_switch)) { val timeZonePreference = PreferenceManager.getDefaultSharedPreferences(context) - val timeZonePreferenceKey = "useEventTimeZone" - when (timeZonePreference.getBoolean(timeZonePreferenceKey, false)) { - true -> timeZonePreference.edit().putBoolean(timeZonePreferenceKey, false).apply() - false -> timeZonePreference.edit().putBoolean(timeZonePreferenceKey, true).apply() + when (timeZonePreference.getBoolean(LOCAL_TIMEZONE, false)) { + true -> timeZonePreference.edit().putBoolean(LOCAL_TIMEZONE, false).apply() + false -> timeZonePreference.edit().putBoolean(LOCAL_TIMEZONE, true).apply() } return true } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fe86f002b3..3a7cbf3391 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -186,8 +186,8 @@ profile Account timeZoneSwitch - Use event\'s timezone - Your timezone is used when disabled. + Use local timezone + Event\'s timezone is used when disabled. changePassword Change Password Change