From bc191753b04fec8778d766259ad9b96ca71975df Mon Sep 17 00:00:00 2001 From: Arty Bishop Date: Tue, 8 Sep 2020 09:03:04 +0100 Subject: [PATCH] Added ability to toggle UTC times for passes #20 --- .../look4sat/ui/adapters/SatPassAdapter.kt | 18 +++++++++++------- .../look4sat/ui/fragments/PassListFragment.kt | 7 ++++++- .../rtbishop/look4sat/utility/PrefsManager.kt | 5 +++++ app/src/main/res/values-ru/strings.xml | 3 +++ app/src/main/res/values/strings.xml | 3 +++ app/src/main/res/xml/preference.xml | 4 ++++ 6 files changed, 32 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatPassAdapter.kt b/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatPassAdapter.kt index 682582df..84ec0799 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatPassAdapter.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatPassAdapter.kt @@ -30,10 +30,14 @@ import com.rtbishop.look4sat.data.SatPass import com.rtbishop.look4sat.databinding.ItemPassGeoBinding import com.rtbishop.look4sat.databinding.ItemPassLeoBinding import com.rtbishop.look4sat.ui.fragments.PassListFragmentDirections +import com.rtbishop.look4sat.utility.PrefsManager import java.text.SimpleDateFormat import java.util.* -class SatPassAdapter(private var satPassList: MutableList) : +class SatPassAdapter( + private var satPassList: MutableList, + private val prefsManager: PrefsManager +) : RecyclerView.Adapter() { fun setList(list: MutableList) { @@ -111,14 +115,14 @@ class SatPassAdapter(private var satPassList: MutableList) : String.format(context.getString(R.string.pass_aos_az), satPass.pass.aosAzimuth) binding.passLeoLosAz.text = String.format(context.getString(R.string.pass_los_az), satPass.pass.losAzimuth) - binding.passLeoAosTime.text = - SimpleDateFormat(context.getString(R.string.pass_dateTime), Locale.getDefault()) - .format(satPass.pass.startTime) - binding.passLeoLosTime.text = - SimpleDateFormat(context.getString(R.string.pass_dateTime), Locale.getDefault()) - .format(satPass.pass.endTime) binding.passLeoProgress.progress = satPass.progress + val dateFormat = + SimpleDateFormat(context.getString(R.string.pass_dateTime), Locale.getDefault()) + if (prefsManager.isTimeUTC()) dateFormat.timeZone = TimeZone.getTimeZone("UTC") + binding.passLeoAosTime.text = dateFormat.format(satPass.pass.startTime) + binding.passLeoLosTime.text = dateFormat.format(satPass.pass.endTime) + itemView.setOnClickListener { val passIndex = satPassList.indexOf(satPass) val action = PassListFragmentDirections.actionPassToPolar(passIndex) diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassListFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassListFragment.kt index ef3c5186..7d6e3e96 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassListFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassListFragment.kt @@ -46,6 +46,7 @@ import com.rtbishop.look4sat.ui.MainActivity import com.rtbishop.look4sat.ui.SharedViewModel import com.rtbishop.look4sat.ui.adapters.SatPassAdapter import com.rtbishop.look4sat.utility.GeneralUtils.toast +import com.rtbishop.look4sat.utility.PrefsManager import kotlinx.coroutines.launch import java.util.* import java.util.concurrent.TimeUnit @@ -55,6 +56,10 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) { @Inject lateinit var modelFactory: ViewModelFactory + + @Inject + lateinit var prefsManager: PrefsManager + private lateinit var viewModel: SharedViewModel private lateinit var satPassAdapter: SatPassAdapter private lateinit var btnPassPrefs: ImageButton @@ -81,7 +86,7 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) { mainActivity = activity as MainActivity (mainActivity.application as Look4SatApp).appComponent.inject(this) viewModel = ViewModelProvider(mainActivity, modelFactory).get(SharedViewModel::class.java) - satPassAdapter = SatPassAdapter(satPassList) + satPassAdapter = SatPassAdapter(satPassList, prefsManager) aosTimerText = mainActivity.findViewById(R.id.toolbar_timer) btnPassPrefs = mainActivity.findViewById(R.id.toolbar_filter) diff --git a/app/src/main/java/com/rtbishop/look4sat/utility/PrefsManager.kt b/app/src/main/java/com/rtbishop/look4sat/utility/PrefsManager.kt index 8f210364..3c2df13a 100644 --- a/app/src/main/java/com/rtbishop/look4sat/utility/PrefsManager.kt +++ b/app/src/main/java/com/rtbishop/look4sat/utility/PrefsManager.kt @@ -37,6 +37,7 @@ class PrefsManager @Inject constructor( private val keyAltitude = "altitude" private val keyRefreshRate = "rate" private val keyCompass = "compass" + private val keyTimeUtc = "timeUTC" private val defaultHoursAhead = 8 private val defaultMinEl = 16.0 private val defaultRefreshRate = "3000" @@ -54,6 +55,10 @@ class PrefsManager @Inject constructor( } else isFirstLaunch } + fun isTimeUTC(): Boolean { + return preferences.getBoolean(keyTimeUtc, false) + } + fun getHoursAhead(): Int { return preferences.getInt(keyHoursAhead, defaultHoursAhead) } diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 48bf44eb..2ba2204a 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -62,6 +62,9 @@ Введите значение между 250мс и 10000мс Использовать компас при отображении полярных координат + timeUTC + Показывать время пролёта по UTC + Модуляция: нет Восход.: нет Нисход.: нет diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 81ec898b..3d8afbe9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -72,6 +72,9 @@ compass Use sensors to rotate PolarView + timeUTC + Show pass time in UTC + Mode: null Uplink: null Downlink: null diff --git a/app/src/main/res/xml/preference.xml b/app/src/main/res/xml/preference.xml index e8efab2e..20de182b 100644 --- a/app/src/main/res/xml/preference.xml +++ b/app/src/main/res/xml/preference.xml @@ -45,6 +45,10 @@ android:selectAllOnFocus="true" android:singleLine="true" android:title="@string/pref_refresh_rate_title" /> +