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,