From 0a124a36e6602071745fa14b3f3e571fa10e1214 Mon Sep 17 00:00:00 2001 From: Arty Bishop Date: Sun, 18 Oct 2020 12:31:27 +0100 Subject: [PATCH] Added polar fragment aos/los timer --- .../look4sat/ui/fragments/PolarFragment.kt | 21 ++++++++-- app/src/main/res/layout/fragment_polar.xml | 42 +++++++++++++++++++ 2 files changed, 60 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarFragment.kt index eee9994f..65550f82 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarFragment.kt @@ -28,6 +28,7 @@ import android.os.Bundle import android.view.View import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels +import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs import androidx.recyclerview.widget.LinearLayoutManager import com.rtbishop.look4sat.R @@ -39,6 +40,7 @@ import com.rtbishop.look4sat.ui.adapters.TransAdapter import com.rtbishop.look4sat.ui.views.PolarView import com.rtbishop.look4sat.utility.PrefsManager import com.rtbishop.look4sat.utility.RecyclerDivider +import com.rtbishop.look4sat.utility.Utilities import dagger.hilt.android.AndroidEntryPoint import java.util.* import javax.inject.Inject @@ -135,14 +137,15 @@ class PolarFragment : Fragment(R.layout.fragment_polar), SensorEventListener { private fun observeTimer() { viewModel.getCurrentTimeMillis().observe(viewLifecycleOwner, { - setPassText(Date(it)) + setPassText(it) polarView?.invalidate() transmitterAdapter.notifyDataSetChanged() }) } - private fun setPassText(date: Date) { - val satPos = satPass.predictor.getSatPos(date) + private fun setPassText(timeNow: Long) { + val dateNow = Date(timeNow) + val satPos = satPass.predictor.getSatPos(dateNow) val polarAz = getString(R.string.pat_azimuth) val polarEl = getString(R.string.pat_elevation) val polarRng = getString(R.string.pat_distance) @@ -151,5 +154,17 @@ class PolarFragment : Fragment(R.layout.fragment_polar), SensorEventListener { binding.elevation.text = String.format(polarEl, Math.toDegrees(satPos.elevation)) binding.distance.text = String.format(polarRng, satPos.range) binding.altitude.text = String.format(polarAlt, satPos.altitude) + + if (dateNow.before(satPass.pass.startTime)) { + val millisBeforeStart = satPass.pass.startTime.time.minus(timeNow) + binding.polarTimer.text = Utilities.formatForTimer(millisBeforeStart) + } else { + val millisBeforeEnd = satPass.pass.endTime.time.minus(timeNow) + binding.polarTimer.text = Utilities.formatForTimer(millisBeforeEnd) + if (dateNow.after(satPass.pass.endTime)) { + binding.polarTimer.text = Utilities.formatForTimer(0L) + findNavController().navigateUp() + } + } } } diff --git a/app/src/main/res/layout/fragment_polar.xml b/app/src/main/res/layout/fragment_polar.xml index 9593f14a..ed9449a5 100644 --- a/app/src/main/res/layout/fragment_polar.xml +++ b/app/src/main/res/layout/fragment_polar.xml @@ -30,6 +30,48 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + + + + +