kopia lustrzana https://github.com/rt-bishop/Look4Sat
Further fixes to strings and PassesFragment's ui
rodzic
00549bbcba
commit
6189fb497e
|
@ -69,7 +69,6 @@ class PassesAdapter(private val isUTC: Boolean, private val clickListener: Passe
|
|||
private val losAzFormat = itemView.context.getString(R.string.pass_los)
|
||||
private val startTimeFormat = itemView.context.getString(R.string.pass_startTime)
|
||||
private val elevFormat = itemView.context.getString(R.string.pat_elevation)
|
||||
private val maxElFormat = itemView.context.getString(R.string.pass_elevation)
|
||||
private val endTimeFormat = itemView.context.getString(R.string.pass_endTime)
|
||||
private val placeholder = itemView.context.getString(R.string.pass_placeholder)
|
||||
private val timeZoneUTC = TimeZone.getTimeZone("UTC")
|
||||
|
@ -99,7 +98,7 @@ class PassesAdapter(private val isUTC: Boolean, private val clickListener: Passe
|
|||
passAltitude.text = String.format(altFormat, satPass.altitude)
|
||||
passLos.text = String.format(losAzFormat, satPass.losAzimuth)
|
||||
passStart.text = startFormat.format(Date(satPass.aosTime))
|
||||
passElev.text = String.format(maxElFormat, satPass.maxElevation)
|
||||
passElev.text = String.format(elevFormat, satPass.maxElevation)
|
||||
passEnd.text = endFormat.format(Date(satPass.losTime))
|
||||
passProgress.progress = satPass.progress
|
||||
}
|
||||
|
|
|
@ -69,7 +69,7 @@ class PassesFragment : Fragment(R.layout.fragment_passes), PassesAdapter.PassesC
|
|||
}
|
||||
})
|
||||
}
|
||||
passesRefreshBtn.setOnClickListener { refreshPasses() }
|
||||
passesRefreshBtn.setOnClickListener { viewModel.calculatePasses() }
|
||||
passesMapBtn.setOnClickListener { navigateToMap() }
|
||||
passesFilterBtn.setOnClickListener { navigateToFilter() }
|
||||
passesFab.setOnClickListener { navigateToEntries() }
|
||||
|
@ -87,10 +87,10 @@ class PassesFragment : Fragment(R.layout.fragment_passes), PassesAdapter.PassesC
|
|||
handleEntriesNumber(number)
|
||||
}
|
||||
getNavResult<Pair<Int, Double>>(R.id.nav_passes, "prefs") { prefs ->
|
||||
viewModel.forceCalculation(prefs.first, prefs.second)
|
||||
viewModel.calculatePasses(prefs.first, prefs.second)
|
||||
}
|
||||
getNavResult<List<Int>>(R.id.nav_passes, "selection") { selection ->
|
||||
viewModel.saveSelectionAndRecalc(selection)
|
||||
getNavResult<List<Int>>(R.id.nav_passes, "selection") { items ->
|
||||
viewModel.calculatePasses(selection = items)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -98,18 +98,17 @@ class PassesFragment : Fragment(R.layout.fragment_passes), PassesAdapter.PassesC
|
|||
refreshAnimator = ValueAnimator.ofFloat(0f, -360f).apply {
|
||||
duration = 875
|
||||
interpolator = LinearInterpolator()
|
||||
repeatMode = ValueAnimator.RESTART
|
||||
repeatCount = ValueAnimator.INFINITE
|
||||
addUpdateListener { anim ->
|
||||
binding.passesRefreshBtn.rotation = anim.animatedValue as Float
|
||||
}
|
||||
addUpdateListener { binding.passesRefreshBtn.rotation = animatedValue as Float }
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleEntriesNumber(number: Int?) {
|
||||
number?.let { num ->
|
||||
if (num == 0) binding.passesFab.setOnClickListener { requireContext().toast("0") }
|
||||
else binding.passesFab.setOnClickListener { navigateToEntries() }
|
||||
private fun handleEntriesNumber(number: Int) {
|
||||
if (number > 0) {
|
||||
binding.passesFab.setOnClickListener { navigateToEntries() }
|
||||
} else {
|
||||
val errorMessage = getString(R.string.passes_empty_db)
|
||||
binding.passesFab.setOnClickListener { requireContext().toast(errorMessage) }
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -163,10 +162,6 @@ class PassesFragment : Fragment(R.layout.fragment_passes), PassesAdapter.PassesC
|
|||
}
|
||||
}
|
||||
|
||||
private fun refreshPasses() {
|
||||
viewModel.forceCalculation()
|
||||
}
|
||||
|
||||
private fun navigateToMap() {
|
||||
val direction = PassesFragmentDirections.actionGlobalMapFragment()
|
||||
findNavController().navigate(direction)
|
||||
|
|
|
@ -57,21 +57,17 @@ class PassesViewModel @Inject constructor(
|
|||
|
||||
fun shouldUseUTC() = settings.getUseUTC()
|
||||
|
||||
fun saveSelectionAndRecalc(selection: List<Int>) {
|
||||
viewModelScope.launch {
|
||||
repository.setEntriesSelection(selection)
|
||||
forceCalculation()
|
||||
}
|
||||
}
|
||||
|
||||
fun forceCalculation(
|
||||
fun calculatePasses(
|
||||
hoursAhead: Int = settings.getHoursAhead(),
|
||||
minElevation: Double = settings.getMinElevation(),
|
||||
timeRef: Long = System.currentTimeMillis()
|
||||
timeRef: Long = System.currentTimeMillis(),
|
||||
selection: List<Int>? = null
|
||||
) {
|
||||
viewModelScope.launch {
|
||||
_passes.postValue(DataState.Loading)
|
||||
passesProcessing?.cancelAndJoin()
|
||||
delay(3000)
|
||||
selection?.let { items -> repository.setEntriesSelection(items) }
|
||||
settings.setHoursAhead(hoursAhead)
|
||||
settings.setMinElevation(minElevation)
|
||||
val satellites = repository.getSelectedEntries()
|
||||
|
|
|
@ -6,11 +6,11 @@
|
|||
android:id="@+id/entry_checkbox"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="41dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginStart="6dp"
|
||||
android:background="@color/cardRegular"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:padding="6dp"
|
||||
android:padding="4dp"
|
||||
android:textColor="@color/textMain"
|
||||
android:textSize="@dimen/text_size_medium" />
|
||||
|
||||
|
|
|
@ -13,11 +13,11 @@
|
|||
android:id="@+id/pass_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text="@string/pass_satName"
|
||||
android:textSize="@dimen/text_size_small"
|
||||
android:textColor="@color/accent"
|
||||
android:textSize="@dimen/text_size_small"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
@ -25,10 +25,10 @@
|
|||
android:id="@+id/pass_id"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:text="@string/pass_satId"
|
||||
android:textSize="@dimen/text_size_small"
|
||||
android:textColor="@color/accent"
|
||||
android:textSize="@dimen/text_size_small"
|
||||
app:layout_constraintBaseline_toBaselineOf="@+id/pass_name"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
|
@ -103,6 +103,7 @@
|
|||
style="?android:attr/progressBarStyleHorizontal"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="1dp"
|
||||
android:layout_marginBottom="2dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="@+id/pass_end"
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
<string name="entries_update_error">Ошибка обновления спутников</string>
|
||||
|
||||
<string name="passes_error">Нет предстоящих пролётов</string>
|
||||
<string name="passes_empty_db">Пожалуйста, обновите базу данных спутников через меню Настроек</string>
|
||||
|
||||
<string name="pass_aosAz">НПС - %.1f°</string>
|
||||
<string name="pass_tcaAz">Азимут: %.1f°</string>
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
<string name="timer_zero" translatable="false">00:00:00</string>
|
||||
|
||||
<string name="passes_error">No upcoming passes</string>
|
||||
<string name="passes_empty_db">No data to show. Please update the database via Settings menu.</string>
|
||||
|
||||
<string name="pass_satName" translatable="false">%s</string>
|
||||
<string name="pass_satId" translatable="false">Id:%d</string>
|
||||
|
|
Ładowanie…
Reference in New Issue