diff --git a/app/src/main/java/com/rtbishop/look4sat/repo/SatPass.kt b/app/src/main/java/com/rtbishop/look4sat/repo/SatPass.kt index 804107c7..22b5de17 100644 --- a/app/src/main/java/com/rtbishop/look4sat/repo/SatPass.kt +++ b/app/src/main/java/com/rtbishop/look4sat/repo/SatPass.kt @@ -31,5 +31,6 @@ data class SatPass( val tle: TLE, val predictor: @RawValue PassPredictor, val pass: @RawValue SatPassTime, - var progress: Int = 0 + var progress: Int = 0, + var active: Boolean = false ) : Parcelable \ No newline at end of file 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 1eb7b4ca..45d43f4f 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 @@ -23,6 +23,7 @@ import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.ImageView import android.widget.ProgressBar import android.widget.TextView import androidx.navigation.findNavController @@ -51,6 +52,7 @@ class SatPassAdapter : RecyclerView.Adapter() { val timeStart = satPass.pass.startTime val timeEnd = satPass.pass.endTime if (timeNow.after(timeStart)) { + satPass.active = true val index = satPassList.indexOf(satPass) val deltaTotal = timeEnd.time.minus(timeStart.time) val deltaNow = timeNow.time.minus(timeStart.time) @@ -83,36 +85,36 @@ class SatPassAdapter : RecyclerView.Adapter() { inner class SatPassHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { private val context: Context = itemView.context + private val passImg = itemView.findViewById(R.id.pass_img) private val satName = itemView.findViewById(R.id.pass_satName) private val satId = itemView.findViewById(R.id.pass_satId) private val maxEl = itemView.findViewById(R.id.pass_maxEl) - private val azimuth = itemView.findViewById(R.id.pass_azimuth) + private val aosAz = itemView.findViewById(R.id.pass_aosAz) + private val losAz = itemView.findViewById(R.id.pass_losAz) private val aosTime = itemView.findViewById(R.id.pass_aosTime) private val losTime = itemView.findViewById(R.id.pass_losTime) private var progressBar = itemView.findViewById(R.id.pass_progress) fun bind(satPass: SatPass) { - val aos = SimpleDateFormat( - context.getString(R.string.pat_time), - Locale.getDefault() - ).format(satPass.pass.startTime) - val los = SimpleDateFormat( - context.getString(R.string.pat_time), - Locale.getDefault() - ).format(satPass.pass.endTime) + + if (satPass.active) passImg.setImageResource(R.drawable.ic_pass_active) + else passImg.setImageResource(R.drawable.ic_pass_inactive) satName.text = satPass.tle.name satId.text = String.format(context.getString(R.string.pass_satId), satPass.tle.catnum) maxEl.text = String.format(context.getString(R.string.pass_maxEl), satPass.pass.maxEl) - azimuth.text = String.format( - context.getString(R.string.pass_azimuth), - satPass.pass.aosAzimuth, - satPass.pass.losAzimuth - ) - aosTime.text = String.format(context.getString(R.string.pass_aos), aos) - losTime.text = String.format(context.getString(R.string.pass_los), los) + aosAz.text = + String.format(context.getString(R.string.pass_aos_az), satPass.pass.aosAzimuth) + losAz.text = + String.format(context.getString(R.string.pass_los_az), satPass.pass.losAzimuth) + aosTime.text = + SimpleDateFormat(context.getString(R.string.pass_dateTime), Locale.getDefault()) + .format(satPass.pass.startTime) + losTime.text = + SimpleDateFormat(context.getString(R.string.pass_dateTime), Locale.getDefault()) + .format(satPass.pass.endTime) progressBar.progress = satPass.progress itemView.setOnClickListener { diff --git a/app/src/main/res/drawable/ic_pass_active.xml b/app/src/main/res/drawable/ic_pass_active.xml new file mode 100644 index 00000000..0574beb3 --- /dev/null +++ b/app/src/main/res/drawable/ic_pass_active.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_pass_inactive.xml b/app/src/main/res/drawable/ic_pass_inactive.xml new file mode 100644 index 00000000..f94634b4 --- /dev/null +++ b/app/src/main/res/drawable/ic_pass_inactive.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/card_pass.xml b/app/src/main/res/layout/card_pass.xml index e981db52..45e5edeb 100644 --- a/app/src/main/res/layout/card_pass.xml +++ b/app/src/main/res/layout/card_pass.xml @@ -14,44 +14,68 @@ android:layout_height="match_parent" android:background="@drawable/card_pass_background"> + + + app:layout_constraintBaseline_toBaselineOf="@+id/pass_satId" + app:layout_constraintStart_toEndOf="@+id/pass_img" /> + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + android:layout_marginEnd="16dp" + android:text="@string/pass_aos_az" + app:layout_constraintBaseline_toBaselineOf="@+id/pass_maxEl" + app:layout_constraintEnd_toStartOf="@+id/pass_maxEl" /> + + + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.5" + app:layout_constraintStart_toEndOf="@+id/pass_aosAz" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/pass_satId" /> @@ -59,7 +83,7 @@ @@ -68,9 +92,9 @@ style="?android:attr/progressBarStyleHorizontal" android:layout_width="0dp" android:layout_height="wrap_content" - app:layout_constraintEnd_toEndOf="@+id/pass_maxEl" - app:layout_constraintStart_toStartOf="@+id/pass_azimuth" - app:layout_constraintTop_toBottomOf="@+id/pass_azimuth" /> + app:layout_constraintEnd_toEndOf="@+id/pass_satId" + app:layout_constraintStart_toStartOf="@+id/pass_img" + app:layout_constraintTop_toBottomOf="@+id/pass_maxEl" /> \ No newline at end of file diff --git a/app/src/main/res/layout/card_trans.xml b/app/src/main/res/layout/card_trans.xml index ead3f749..f97753ec 100644 --- a/app/src/main/res/layout/card_trans.xml +++ b/app/src/main/res/layout/card_trans.xml @@ -17,9 +17,9 @@ android:id="@+id/trans_description" style="@style/CardTransText" android:text="@string/trans_description" - app:layout_constraintBottom_toBottomOf="@+id/imageView" - app:layout_constraintStart_toEndOf="@+id/imageView" - app:layout_constraintTop_toTopOf="@+id/imageView" /> + app:layout_constraintBottom_toBottomOf="@+id/trans_img" + app:layout_constraintStart_toEndOf="@+id/trans_img" + app:layout_constraintTop_toTopOf="@+id/trans_img" /> Selection file was not found %s - AOS - %s - LOS - %s Id: %d + AOS — %2d° MaxEl: %.1f° - Az: %2d° -> %2d° + LOS — %2d° + MMM dd @ HH:mm:ss %.4f - HH:mm:ss Azimuth: %.1f° Elevation: %.1f° Latitude: %.1f° diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 008b5d2f..5bce5dc4 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -69,13 +69,13 @@