diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapViewModel.kt index 36b04955..2804b18b 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapViewModel.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapViewModel.kt @@ -164,7 +164,7 @@ class MapViewModel @Inject constructor( val osmPos = GeoPos(osmLat, osmLon) val qthLoc = QthConverter.positionToQth(osmPos.latitude, osmPos.longitude) ?: "-- --" val satData = MapData( - satellite, satellite.data.catnum, satellite.data.name, satPos.range, + satellite, satellite.data.catnum, satellite.data.name, satPos.distance, satPos.altitude, satPos.getOrbitalVelocity(), qthLoc, osmPos ) _satData.postValue(satData) diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/passesScreen/PassesViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/passesScreen/PassesViewModel.kt index 14c79507..90ebdfd4 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/passesScreen/PassesViewModel.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/passesScreen/PassesViewModel.kt @@ -66,7 +66,6 @@ class PassesViewModel @Inject constructor( viewModelScope.launch { _passes.postValue(DataState.Loading) passesProcessing?.cancelAndJoin() - delay(3000) selection?.let { items -> repository.setEntriesSelection(items) } settings.setHoursAhead(hoursAhead) settings.setMinElevation(minElevation) diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarFragment.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarFragment.kt index dc26a03b..59493b22 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarFragment.kt @@ -102,14 +102,14 @@ class RadarFragment : Fragment(R.layout.fragment_radar) { private fun setPassText(satPass: SatPass, satPos: SatPos) { val timeNow = System.currentTimeMillis() - val polarAz = getString(R.string.pat_azimuth) - val polarEl = getString(R.string.pat_elevation) - val polarRng = getString(R.string.pat_distance) - val polarAlt = getString(R.string.pat_altitude) - binding.radarAz.text = String.format(polarAz, Math.toDegrees(satPos.azimuth)) - binding.radarEl.text = String.format(polarEl, Math.toDegrees(satPos.elevation)) - binding.radarDst.text = String.format(polarRng, satPos.range) - binding.radarAlt.text = String.format(polarAlt, satPos.altitude) + val radarAzim = getString(R.string.radar_az_value) + val radarElev = getString(R.string.radar_el_value) + val radarAlt = getString(R.string.radar_alt_value) + val radarDist = getString(R.string.radar_dist_value) + binding.radarAzValue.text = String.format(radarAzim, Math.toDegrees(satPos.azimuth)) + binding.radarElValue.text = String.format(radarElev, Math.toDegrees(satPos.elevation)) + binding.radarAltValue.text = String.format(radarAlt, satPos.altitude) + binding.radarDstValue.text = String.format(radarDist, satPos.distance) // binding.radarName.text = satPass.name if (!satPass.isDeepSpace) { diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarView.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarView.kt index 14e7a0f1..3346f935 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarView.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarView.kt @@ -31,8 +31,6 @@ class RadarView(context: Context) : View(context) { private val defaultColor = ContextCompat.getColor(context, R.color.accent) private val scale = resources.displayMetrics.density - private val radarWidth = resources.displayMetrics.widthPixels - private val radarRadius = radarWidth * 0.48f private val piDiv2 = Math.PI / 2.0 private val strokeSize = scale * 2f private var position: SatPos? = null @@ -125,12 +123,12 @@ class RadarView(context: Context) : View(context) { override fun onDraw(canvas: Canvas) { val radarWidth = width - paddingLeft - paddingRight val radarHeight = height - paddingTop - paddingBottom - val radarRadius = min(width, height) * 0.49f + val radarRadius = min(width, height) * 0.48f val cx = paddingLeft + radarWidth / 2f val cy = paddingTop + radarHeight / 2f if (positions.isNotEmpty() && !isTrackCreated) { - createPassTrajectory() + createPassTrajectory(radarRadius) createPassTrajectoryArrow() isTrackCreated = true } @@ -146,10 +144,10 @@ class RadarView(context: Context) : View(context) { canvas.drawPath(trackPath, arrowPaint) } if (shouldShowBeacons) { - drawSatellite(canvas) + drawSatellite(canvas, radarRadius) } if (shouldShowAim) { - drawCrosshair(canvas, azimuth, pitch) + drawCrosshair(canvas, azimuth, pitch, radarRadius) } if (shouldShowSweep) { canvas.translate(-cx, -cy) @@ -177,7 +175,7 @@ class RadarView(context: Context) : View(context) { } } - private fun drawSatellite(canvas: Canvas) { + private fun drawSatellite(canvas: Canvas, radarRadius: Float) { position?.let { satPos -> if (satPos.elevation > 0) { val satX = sph2CartX(satPos.azimuth, satPos.elevation, radarRadius.toDouble()) @@ -187,7 +185,7 @@ class RadarView(context: Context) : View(context) { } } - private fun drawCrosshair(canvas: Canvas, azimuth: Float, pitch: Float) { + private fun drawCrosshair(canvas: Canvas, azimuth: Float, pitch: Float, radarRadius: Float) { val azimuthRad = Math.toRadians(azimuth.toDouble()) val tmpElevation = Math.toRadians(pitch.toDouble()) val elevationRad = if (tmpElevation > 0.0) 0.0 else tmpElevation @@ -208,7 +206,7 @@ class RadarView(context: Context) : View(context) { return (radius * sin(piDiv2 - azimuth)).toFloat() } - private fun createPassTrajectory() { + private fun createPassTrajectory(radarRadius: Float) { positions.forEachIndexed { index, satPos -> val passX = sph2CartX(satPos.azimuth, satPos.elevation, radarRadius.toDouble()) val passY = sph2CartY(satPos.azimuth, satPos.elevation, radarRadius.toDouble()) diff --git a/app/src/main/res/layout/fragment_radar.xml b/app/src/main/res/layout/fragment_radar.xml index f6d50549..fd4f8bf5 100644 --- a/app/src/main/res/layout/fragment_radar.xml +++ b/app/src/main/res/layout/fragment_radar.xml @@ -45,49 +45,81 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/radar_toolbar" /> + + + app:layout_constraintStart_toStartOf="@+id/radar_az_value" + app:layout_constraintTop_toBottomOf="@+id/radar_az_value" /> + + + app:layout_constraintBaseline_toBaselineOf="@+id/radar_az" + app:layout_constraintEnd_toEndOf="@+id/radar_el_value" /> + + + app:layout_constraintBottom_toTopOf="@+id/radar_alt_value" + app:layout_constraintStart_toStartOf="@+id/radar_alt_value" /> + + + app:layout_constraintBaseline_toBaselineOf="@+id/radar_alt" + app:layout_constraintEnd_toEndOf="@+id/radar_dst_value" /> QTH Локатор: %s Покрытие: %.0fкм + Азим. + %.1f° + Элев. + %.1f° + Выс. + %.0f km + Дальн. + %.0f km + Азимут: %.1f° Элевация: %.1f° Дистанция: %.0fкм diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index be08f964..4859921a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -76,6 +76,15 @@ Coverage: %.0f km Wikimedia maps | Map data © OpenStreetMap contributors + Azimuth + %.1f° + Elevation + %.1f° + Altitude + %.0f km + Distance + %.0f km + Azimuth: %.1f° Elevation: %.1f° Range: %.0f km diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 73e21280..b6701ce1 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -132,6 +132,12 @@ @dimen/view_default_margin + +