Further fixes to strings and PassesFragment's ui

pull/87/head
Arty Bishop 2022-02-21 18:45:41 +00:00
rodzic 00549bbcba
commit 6189fb497e
7 zmienionych plików z 26 dodań i 33 usunięć

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

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