Changes to LEO sat ViewHolder

pull/49/head
Arty Bishop 2020-10-14 22:05:12 +01:00
rodzic 886a27b016
commit 1c6d22ccf9
10 zmienionych plików z 68 dodań i 99 usunięć

Wyświetl plik

@ -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 {

Wyświetl plik

@ -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()

Wyświetl plik

@ -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>

Wyświetl plik

@ -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"

Wyświetl plik

@ -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" />

Wyświetl plik

@ -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"

Wyświetl plik

@ -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>

Wyświetl plik

@ -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>

Wyświetl plik

@ -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>

Wyświetl plik

@ -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>