Fixed recent InflationException, version code bumped

This commit is contained in:
Arty Bishop committed 2021-04-05 08:52:03 +01:00
1 parent 39c3a69a11
commit b2deab0d7c
7 files changed
+38 -30

No files matched your search

+2 -2
View File
@@ -13,8 +13,8 @@ android {
applicationId "com.rtbishop.look4sat"
minSdkVersion 21
targetSdkVersion 30
versionCode 230
versionName "2.3.0"
versionCode 231
versionName "2.3.1"
kapt {
arguments {
arg("room.schemaLocation", "$projectDir/schemas")
@@ -25,6 +25,7 @@ import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.SimpleItemAnimator
import com.google.android.material.snackbar.Snackbar
import com.rtbishop.look4sat.R
import com.rtbishop.look4sat.data.model.Result
import com.rtbishop.look4sat.data.model.SatItem
@@ -32,7 +33,6 @@ import com.rtbishop.look4sat.data.model.TleSource
import com.rtbishop.look4sat.databinding.FragmentEntriesBinding
import com.rtbishop.look4sat.utility.RecyclerDivider
import com.rtbishop.look4sat.utility.getNavResult
import com.rtbishop.look4sat.utility.showSnack
import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
@@ -94,7 +94,8 @@ class EntriesFragment : Fragment(R.layout.fragment_entries) {
is Result.Error -> {
binding.entriesProgress.visibility = View.INVISIBLE
binding.entriesRecycler.visibility = View.VISIBLE
requireView().showSnack(getString(R.string.entries_update_error))
Snackbar.make(requireView(), R.string.entries_update_error, Snackbar.LENGTH_SHORT)
.setAnchorView(R.id.nav_bottom).show()
}
}
}
@@ -142,7 +142,6 @@ class EntriesViewModel @Inject constructor(
}
private fun filterByQuery(items: List<SatItem>, query: String): List<SatItem> {
shouldSelectAll = true
if (query.isBlank()) return items
return try {
items.filter { it.catNum == query.toInt() }
@@ -26,61 +26,64 @@ import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.ContextCompat
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import com.google.android.material.snackbar.Snackbar
import com.rtbishop.look4sat.R
import com.rtbishop.look4sat.utility.PrefsManager
import com.rtbishop.look4sat.utility.QthConverter
import com.rtbishop.look4sat.utility.round
import com.rtbishop.look4sat.utility.showSnack
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
@AndroidEntryPoint
class PrefsFragment : PreferenceFragmentCompat() {
@Inject
lateinit var locationManager: LocationManager
@Inject
lateinit var prefsManager: PrefsManager
@Inject
lateinit var qthConverter: QthConverter
private val requestPermissionLauncher =
registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted ->
if (isGranted) setPositionFromGPS()
else requireView().showSnack(getString(R.string.pref_pos_gps_error))
if (isGranted) {
setPositionFromGPS()
} else {
showSnack(getString(R.string.pref_pos_gps_error))
}
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.preference, rootKey)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
findPreference<Preference>(PrefsManager.keyPositionGPS)?.apply {
setOnPreferenceClickListener {
setPositionFromGPS()
return@setOnPreferenceClickListener true
}
}
findPreference<Preference>(PrefsManager.keyPositionQTH)?.apply {
setOnPreferenceChangeListener { _, newValue ->
setPositionFromQth(newValue.toString())
}
}
}
private fun setPositionFromQth(qthString: String): Boolean {
qthConverter.qthToLocation(qthString)?.let { gsp ->
prefsManager.setStationPosition(gsp.latitude, gsp.longitude, gsp.heightAMSL)
requireView().showSnack(getString(R.string.pref_pos_success))
showSnack(getString(R.string.pref_pos_success))
return true
}
requireView().showSnack(getString(R.string.pref_pos_qth_error))
showSnack(getString(R.string.pref_pos_qth_error))
return false
}
private fun setPositionFromGPS() {
val locPermString = Manifest.permission.ACCESS_FINE_LOCATION
val locPermResult = ContextCompat.checkSelfPermission(requireContext(), locPermString)
@@ -91,8 +94,14 @@ class PrefsFragment : PreferenceFragmentCompat() {
val longitude = location.longitude.round(4)
val altitude = location.altitude.round(1)
prefsManager.setStationPosition(latitude, longitude, altitude)
requireView().showSnack(getString(R.string.pref_pos_success))
} else requireView().showSnack(getString(R.string.pref_pos_gps_null))
showSnack(getString(R.string.pref_pos_success))
} else showSnack(getString(R.string.pref_pos_gps_null))
} else requestPermissionLauncher.launch(locPermString)
}
private fun showSnack(message: String) {
Snackbar.make(requireView(), message, Snackbar.LENGTH_SHORT)
.setAnchorView(R.id.nav_bottom)
.show()
}
}
@@ -23,7 +23,6 @@ import android.net.Network
import android.net.NetworkCapabilities
import android.net.NetworkRequest
import android.os.Bundle
import android.view.View
import androidx.annotation.IdRes
import androidx.fragment.app.Fragment
import androidx.lifecycle.Lifecycle
@@ -34,8 +33,6 @@ import androidx.navigation.Navigator
import androidx.navigation.fragment.findNavController
import com.github.amsacode.predict4java.GroundStationPosition
import com.github.amsacode.predict4java.Satellite
import com.google.android.material.snackbar.Snackbar
import com.rtbishop.look4sat.R
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.Flow
@@ -80,12 +77,6 @@ fun Satellite.getPredictor(stationPosition: GroundStationPosition): PassPredicto
return PassPredictor(this, stationPosition)
}
fun View.showSnack(message: String) {
Snackbar.make(this, message, Snackbar.LENGTH_SHORT)
.setAnchorView(R.id.nav_bottom)
.show()
}
fun NavController.navigateSafe(
@IdRes resId: Int,
args: Bundle? = null,
@@ -0,0 +1,7 @@
Added satellite items filtering by transmitter mode
Now updating recyclers views asyncronously
Switched to concurrent satellite data update
Minor visual changes to map info
Separated application screens logic
Bug fixes, huge code cleanup
Fixed recent InflatingException
@@ -3,4 +3,5 @@ Now updating recyclers views asyncronously
Switched to concurrent satellite data update
Minor visual changes to map info
Separated application screens logic
Bug fixes, huge code cleanup
Bug fixes, huge code cleanup
Fixed recent InflatingException