Fixed the "eternal refresh" bug & crash #18

This commit is contained in:
Arty Bishop committed 2020-09-09 21:13:24 +01:00
1 parent bfefae84da
commit f338a0501f
6 files changed
+18 -73

No files matched your search

@@ -173,7 +173,6 @@ class MainActivity : AppCompatActivity(), TleSourcesDialogFragment.SourcesSubmit
val githubIntent = Intent(Intent.ACTION_VIEW, Uri.parse(gitHubUrl))
startActivity(githubIntent)
}
drawerBinding.drawerBtnExit.setOnClickListener { finish() }
}
override fun onSourcesSubmit(list: List<TleSource>) {
@@ -45,6 +45,7 @@ import com.rtbishop.look4sat.databinding.FragmentPassListBinding
import com.rtbishop.look4sat.ui.MainActivity
import com.rtbishop.look4sat.ui.SharedViewModel
import com.rtbishop.look4sat.ui.adapters.SatPassAdapter
import com.rtbishop.look4sat.utility.GeneralUtils.toast
import kotlinx.coroutines.launch
import java.util.*
import java.util.concurrent.TimeUnit
@@ -86,8 +87,11 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) {
setupObservers(binding)
setupComponents(binding)
}
if (satPassList.isEmpty()) {
override fun onStart() {
super.onStart()
if (satPassAdapter.itemCount == 0) {
viewModel.calculatePasses()
}
}
@@ -135,10 +139,9 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) {
lifecycleScope.launch {
val list = viewModel.getAllEntries() as MutableList
if (list.isEmpty()) {
Toast.makeText(requireContext(), "Please, update TLE", Toast.LENGTH_SHORT)
.show()
getString(R.string.err_update_data).toast(mainActivity, Toast.LENGTH_SHORT)
} else {
showSelectSatDialog(list, binding)
showSelectSatDialog(list)
}
}
}
@@ -160,29 +163,23 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) {
val elevation = elevationStr.toDouble()
when {
hours < 1 || hours > 168 -> {
Toast.makeText(
getString(R.string.pref_hours_ahead_input_error).toast(
mainActivity,
getString(R.string.pref_hours_ahead_input_error),
Toast.LENGTH_SHORT
).show()
)
}
elevation < 0 || elevation > 90 -> {
Toast.makeText(
getString(R.string.pref_min_el_input_error).toast(
mainActivity,
getString(R.string.pref_min_el_input_error),
Toast.LENGTH_SHORT
).show()
)
}
else -> {
viewModel.setPassPrefs(hours, elevation)
viewModel.calculatePasses()
}
}
} else Toast.makeText(
mainActivity,
getString(R.string.err_enter_value),
Toast.LENGTH_SHORT
).show()
} else getString(R.string.err_enter_value).toast(mainActivity, Toast.LENGTH_SHORT)
}
setNegativeButton(getString(android.R.string.cancel)) { dialog, _ ->
@@ -194,13 +191,9 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) {
}
}
private fun showSelectSatDialog(
tleMainList: MutableList<SatEntry>,
binding: FragmentPassListBinding
) {
private fun showSelectSatDialog(tleMainList: MutableList<SatEntry>) {
val listener = object : SatEntryDialogFragment.EntriesSubmitListener {
override fun onEntriesSubmit(catNumList: MutableList<Int>) {
binding.refLayoutPassList.isRefreshing = true
viewModel.updateEntriesSelection(catNumList)
}
}
-28
View File
@@ -1,28 +0,0 @@
<!--
~ Look4Sat. Amateur radio and weather satellite tracker and passes predictor for Android.
~ Copyright (C) 2019, 2020 Arty Bishop (bishop.arty@gmail.com)
~
~ This program is free software; you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation; either version 2 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
~
~ You should have received a copy of the GNU General Public License along
~ with this program; if not, write to the Free Software Foundation, Inc.,
~ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="32dp"
android:height="32dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/themeIcon"
android:pathData="M10.09,15.59L11.5,17l5,-5 -5,-5 -1.41,1.41L12.67,11H3v2h9.67l-2.58,2.59zM19,3H5c-1.11,0 -2,0.9 -2,2v4h2V5h14v14H5v-4H3v4c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2V5c0,-1.1 -0.9,-2 -2,-2z" />
</vector>
+1 -21
View File
@@ -127,35 +127,15 @@
android:id="@+id/drawer_btn_github"
style="@style/DrawerHeader.Button"
android:layout_width="0dp"
android:layout_marginEnd="1dp"
android:drawableEnd="@drawable/ic_goto_github"
android:text="@string/goto_github"
app:layout_constraintBottom_toTopOf="@+id/guidelineBottom"
app:layout_constraintEnd_toStartOf="@+id/guidelineCenter"
app:layout_constraintEnd_toStartOf="@+id/guidelineRight"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintStart_toStartOf="@+id/guidelineLeft"
app:layout_constraintTop_toBottomOf="@+id/drawer_btn_tle_url" />
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/drawerBtnExit"
style="@style/DrawerHeader.Button"
android:layout_width="0dp"
android:layout_marginStart="1dp"
android:drawableEnd="@drawable/ic_exit_app"
android:text="@string/exit_app"
app:layout_constraintBaseline_toBaselineOf="@+id/drawer_btn_github"
app:layout_constraintEnd_toStartOf="@+id/guidelineRight"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="@+id/guidelineCenter" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guidelineCenter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/mainBarrier"
android:layout_width="wrap_content"
+2 -1
View File
@@ -30,7 +30,7 @@
<string name="import_data_web">Импорт данных по ссылке</string>
<string name="import_data_success">Данные спутников обновлены</string>
<string name="import_data_failure">Ошибка импорта данных</string>
<string name="exit_app">Выход</string>
<string name="goto_github">Ссылка на GitHub</string>
<string name="menu_pass_list">Список пролетов</string>
<string name="menu_map_view">Карта мира</string>
@@ -68,6 +68,7 @@
<string name="no_trans">Не найдены трансиверы для этого спутника</string>
<string name="err_no_permissions">Отсутствуют необходимые разрешения</string>
<string name="err_update_data">Пожалуйста, обновите данные спутников</string>
<string name="err_enter_value">Пожалуйста, введите значение</string>
<string name="err_no_sat_selected">Не выбраны спутники</string>
+2 -2
View File
@@ -32,8 +32,7 @@
<string name="import_data_web">Import data from web</string>
<string name="import_data_success">Satellite data was updated</string>
<string name="import_data_failure">Satellite data import failed</string>
<string name="goto_github" translatable="false">GitHub</string>
<string name="exit_app">Exit</string>
<string name="goto_github">Link to GitHub</string>
<string name="menu_pass_list">List of Passes</string>
<string name="menu_polar_view" translatable="false">Polar View</string>
@@ -79,6 +78,7 @@
<string name="no_trans">No transceivers found for this satellite</string>
<string name="err_no_permissions">Missing permissions</string>
<string name="err_update_data">Please, update satellite data</string>
<string name="err_enter_value">Please, enter the value</string>
<string name="err_no_sat_selected">No satellites selected</string>