kopia lustrzana https://github.com/rt-bishop/Look4Sat
Changes to LEO sat ViewHolder
rodzic
886a27b016
commit
1c6d22ccf9
|
@ -108,19 +108,15 @@ class PassesAdapter(context: Context, private var shouldUseUTC: Boolean = false)
|
|||
|
||||
fun bind(satPass: SatPass) {
|
||||
binding.apply {
|
||||
if (satPass.active) passLeoImg.setImageResource(R.drawable.ic_pass_active)
|
||||
else passLeoImg.setImageResource(R.drawable.ic_pass_inactive)
|
||||
|
||||
if (shouldUseUTC) simpleDateFormat.timeZone = timeZoneUTC
|
||||
val startTime = simpleDateFormat.format(satPass.pass.startTime)
|
||||
val endTime = simpleDateFormat.format(satPass.pass.endTime)
|
||||
passLeoSatName.text = satPass.tle.name
|
||||
passLeoSatId.text = String.format(satIdFormat, satPass.tle.catnum)
|
||||
passLeoAosAz.text = String.format(aosAzFormat, startTime, satPass.pass.aosAzimuth)
|
||||
passLeoMaxEl.text = String.format(elevFormat, satPass.pass.maxEl)
|
||||
passLeoAosAz.text = String.format(aosAzFormat, satPass.pass.aosAzimuth)
|
||||
passLeoLosAz.text = String.format(losAzFormat, satPass.pass.losAzimuth)
|
||||
passLeoLosAz.text = String.format(losAzFormat, satPass.pass.losAzimuth, endTime)
|
||||
passLeoProgress.progress = satPass.progress
|
||||
|
||||
if (shouldUseUTC) simpleDateFormat.timeZone = timeZoneUTC
|
||||
passLeoAosTime.text = simpleDateFormat.format(satPass.pass.startTime)
|
||||
passLeoLosTime.text = simpleDateFormat.format(satPass.pass.endTime)
|
||||
}
|
||||
|
||||
itemView.setOnClickListener {
|
||||
|
|
|
@ -22,8 +22,10 @@ package com.rtbishop.look4sat.ui.fragments
|
|||
import android.animation.ObjectAnimator
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.core.content.res.ResourcesCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.recyclerview.widget.DividerItemDecoration
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.SimpleItemAnimator
|
||||
import com.rtbishop.look4sat.R
|
||||
|
@ -60,14 +62,11 @@ class PassesFragment : Fragment(R.layout.fragment_passes) {
|
|||
|
||||
private fun setupObservers() {
|
||||
viewModel.getPasses().observe(viewLifecycleOwner, { result ->
|
||||
when (result) {
|
||||
is Result.Success -> {
|
||||
animator.cancel()
|
||||
passes = result.data
|
||||
passesAdapter.setList(passes)
|
||||
}
|
||||
is Result.InProgress -> animator.start()
|
||||
}
|
||||
if (result is Result.Success) {
|
||||
animator.cancel()
|
||||
passes = result.data
|
||||
passesAdapter.setList(passes)
|
||||
} else if (result is Result.InProgress) animator.start()
|
||||
})
|
||||
viewModel.getCurrentTimeMillis().observe(viewLifecycleOwner, { currentTime ->
|
||||
tickMainTimer(currentTime)
|
||||
|
@ -79,10 +78,16 @@ class PassesFragment : Fragment(R.layout.fragment_passes) {
|
|||
passesAdapter = PassesAdapter(requireContext(), prefsManager.shouldUseUTC())
|
||||
binding.apply {
|
||||
passesRecycler.apply {
|
||||
layoutManager = LinearLayoutManager(requireContext())
|
||||
val linearLayoutMgr = LinearLayoutManager(requireContext())
|
||||
val divider = DividerItemDecoration(requireContext(), linearLayoutMgr.orientation)
|
||||
val drawable = ResourcesCompat
|
||||
.getDrawable(resources, R.drawable.rec_passes_divider, requireActivity().theme)
|
||||
drawable?.let { divider.setDrawable(it) }
|
||||
layoutManager = linearLayoutMgr
|
||||
adapter = passesAdapter
|
||||
isVerticalScrollBarEnabled = false
|
||||
(itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false
|
||||
addItemDecoration(divider)
|
||||
setHasFixedSize(true)
|
||||
}
|
||||
animator = passesFab.getRotationAnimator()
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<size
|
||||
android:width="1dp"
|
||||
android:height="2dp" />
|
||||
<solid android:color="#121212" />
|
||||
</shape>
|
||||
</item>
|
||||
</layer-list>
|
|
@ -20,7 +20,7 @@
|
|||
android:id="@+id/nav_bottom"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="48dp"
|
||||
app:elevation="2dp"
|
||||
app:elevation="1dp"
|
||||
app:itemIconTint="@color/nav_bottom_item"
|
||||
app:itemTextColor="@color/nav_bottom_item"
|
||||
app:labelVisibilityMode="labeled"
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
android:layout_width="0dp"
|
||||
android:layout_height="48dp"
|
||||
app:cardCornerRadius="0dp"
|
||||
app:cardElevation="2dp"
|
||||
app:cardElevation="1dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
android:layout_width="0dp"
|
||||
android:layout_height="48dp"
|
||||
app:cardCornerRadius="0dp"
|
||||
app:cardElevation="2dp"
|
||||
app:cardElevation="1dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
@ -55,7 +55,9 @@
|
|||
android:id="@+id/passes_recycler"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_marginTop="2dp"
|
||||
android:layout_marginEnd="2dp"
|
||||
android:layout_marginBottom="2dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
|
|
@ -22,21 +22,19 @@
|
|||
android:id="@+id/pass_leo_card"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginTop="2dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:layout_marginBottom="2dp"
|
||||
app:cardElevation="1dp">
|
||||
app:cardCornerRadius="4dp">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/pass_leo_bg"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:contentDescription="@string/placeholder"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/card_pass_bg"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
@ -47,104 +45,64 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/pass_los_az"
|
||||
android:textSize="15sp"
|
||||
app:layout_constraintBaseline_toBaselineOf="@+id/pass_leo_maxEl"
|
||||
app:layout_constraintEnd_toEndOf="@+id/pass_leo_progress"
|
||||
app:layout_constraintHorizontal_bias="1.0"
|
||||
app:layout_constraintStart_toEndOf="@+id/pass_leo_maxEl" />
|
||||
app:layout_constraintBaseline_toBaselineOf="@+id/pass_leo_aosAz"
|
||||
app:layout_constraintEnd_toEndOf="@+id/pass_leo_satId"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintStart_toEndOf="@+id/pass_leo_aosAz" />
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/pass_leo_satId"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:text="@string/pass_satId"
|
||||
android:textSize="15sp"
|
||||
android:textColor="@color/themeLight"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintEnd_toEndOf="@+id/pass_leo_progress"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
app:layout_constraintBaseline_toBaselineOf="@+id/pass_leo_satName"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/pass_leo_maxEl"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="2dp"
|
||||
android:text="@string/pat_elevation"
|
||||
android:textSize="15sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pass_leo_satId" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/pass_leo_img"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:contentDescription="@string/placeholder"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/pass_leo_satName"
|
||||
app:layout_constraintStart_toStartOf="@+id/pass_leo_progress"
|
||||
app:layout_constraintTop_toTopOf="@+id/pass_leo_satName"
|
||||
app:srcCompat="@drawable/ic_pass_inactive" />
|
||||
app:layout_constraintBaseline_toBaselineOf="@+id/pass_leo_aosAz"
|
||||
app:layout_constraintEnd_toEndOf="@+id/pass_leo_losAz"
|
||||
app:layout_constraintStart_toStartOf="@+id/pass_leo_aosAz" />
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/pass_leo_satName"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginTop="2dp"
|
||||
android:textSize="15sp"
|
||||
android:text="@string/pass_satName"
|
||||
android:textColor="@color/themeLight"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/pass_leo_satId"
|
||||
app:layout_constraintEnd_toStartOf="@+id/pass_leo_satId"
|
||||
app:layout_constraintHorizontal_bias="0.02"
|
||||
app:layout_constraintStart_toEndOf="@+id/pass_leo_img"
|
||||
app:layout_constraintTop_toTopOf="@+id/pass_leo_satId" />
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/pass_leo_aosAz"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/pass_aos_az"
|
||||
android:textSize="15sp"
|
||||
app:layout_constraintBaseline_toBaselineOf="@+id/pass_leo_maxEl"
|
||||
app:layout_constraintEnd_toStartOf="@+id/pass_leo_maxEl"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toStartOf="@+id/pass_leo_progress" />
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/pass_leo_aosTime"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/pass_dateTime"
|
||||
android:textSize="15sp"
|
||||
app:layout_constraintBaseline_toBaselineOf="@+id/pass_leo_losTime"
|
||||
app:layout_constraintEnd_toStartOf="@+id/pass_leo_losTime"
|
||||
app:layout_constraintEnd_toStartOf="@+id/pass_leo_losAz"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
||||
app:layout_constraintStart_toStartOf="@+id/pass_leo_progress" />
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/pass_leo_losTime"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:text="@string/pass_dateTime"
|
||||
android:textSize="15sp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="@+id/pass_leo_progress"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintStart_toEndOf="@+id/pass_leo_aosTime"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pass_leo_progress" />
|
||||
app:layout_constraintStart_toStartOf="@+id/pass_leo_satName"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pass_leo_satName" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pass_leo_progress"
|
||||
style="?android:attr/progressBarStyleHorizontal"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="14dp"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginEnd="6dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pass_leo_maxEl" />
|
||||
android:layout_marginBottom="2dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/pass_leo_bg"
|
||||
app:layout_constraintEnd_toEndOf="@+id/pass_leo_losAz"
|
||||
app:layout_constraintStart_toStartOf="@+id/pass_leo_aosAz"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pass_leo_aosAz" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
|
|
@ -53,9 +53,6 @@
|
|||
|
||||
<string name="error_updating_data">Ошибка импорта спутников</string>
|
||||
|
||||
<string name="pass_aos_az">НПС — %2d°</string>
|
||||
<string name="pass_los_az">%2d° — КПС</string>
|
||||
|
||||
<string name="pat_azimuth">Аз: %.1f°</string>
|
||||
<string name="pat_elevation">Элев: %.1f°</string>
|
||||
<string name="pat_distance">Дист: %.0fкм</string>
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
<color name="themeLight">#FFE082</color>
|
||||
<color name="greyDark">#121212</color>
|
||||
<color name="greyLight">#E0E0E0</color>
|
||||
<color name="greySurface">#242424</color>
|
||||
<color name="greySurface">#1d1d1d</color>
|
||||
<!-- map colors -->
|
||||
<color name="satTrack">#B00020</color>
|
||||
<color name="satFootprint">#26FFE082</color>
|
||||
|
|
|
@ -55,10 +55,10 @@
|
|||
<string name="error_updating_data">Error importing satellite data</string>
|
||||
|
||||
<string name="pass_satName" translatable="false">%s</string>
|
||||
<string name="pass_satId" translatable="false">ID: %d</string>
|
||||
<string name="pass_aos_az">AOS — %2d°</string>
|
||||
<string name="pass_los_az">%2d° — LOS</string>
|
||||
<string name="pass_dateTime" translatable="false">dd MMM - HH:mm:ss</string>
|
||||
<string name="pass_satId" translatable="false">ID:%d</string>
|
||||
<string name="pass_aos_az" translatable="false">%s — %2d°</string>
|
||||
<string name="pass_los_az" translatable="false">%2d° — %s</string>
|
||||
<string name="pass_dateTime" translatable="false">HH:mm:ss</string>
|
||||
|
||||
<string name="pat_azimuth">Az: %.1f°</string>
|
||||
<string name="pat_elevation">El: %.1f°</string>
|
||||
|
|
Ładowanie…
Reference in New Issue