From b2deab0d7ceb925613b3e8e8fc19dd935f1aa7ee Mon Sep 17 00:00:00 2001 From: Arty Bishop Date: Mon, 5 Apr 2021 08:52:03 +0100 Subject: [PATCH] Fixed recent InflationException, version code bumped --- app/build.gradle | 4 +- .../ui/entriesScreen/EntriesFragment.kt | 5 ++- .../ui/entriesScreen/EntriesViewModel.kt | 1 - .../look4sat/ui/prefsScreen/PrefsFragment.kt | 39 ++++++++++++------- .../rtbishop/look4sat/utility/Extensions.kt | 9 ----- .../metadata/android/en-US/changelogs/231.txt | 7 ++++ .../android/en-US/whatsnew/whatsnew-en-US | 3 +- 7 files changed, 38 insertions(+), 30 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/231.txt diff --git a/app/build.gradle b/app/build.gradle index 0c872475..476dd35c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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") diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/entriesScreen/EntriesFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/entriesScreen/EntriesFragment.kt index c343c338..f4754b24 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/entriesScreen/EntriesFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/entriesScreen/EntriesFragment.kt @@ -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() } } } diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/entriesScreen/EntriesViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/ui/entriesScreen/EntriesViewModel.kt index f0c17610..6ad30638 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/entriesScreen/EntriesViewModel.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/entriesScreen/EntriesViewModel.kt @@ -142,7 +142,6 @@ class EntriesViewModel @Inject constructor( } private fun filterByQuery(items: List, query: String): List { - shouldSelectAll = true if (query.isBlank()) return items return try { items.filter { it.catNum == query.toInt() } diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/prefsScreen/PrefsFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/prefsScreen/PrefsFragment.kt index 64533961..54a409cc 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/prefsScreen/PrefsFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/prefsScreen/PrefsFragment.kt @@ -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(PrefsManager.keyPositionGPS)?.apply { setOnPreferenceClickListener { setPositionFromGPS() return@setOnPreferenceClickListener true } } - + findPreference(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() + } } diff --git a/app/src/main/java/com/rtbishop/look4sat/utility/Extensions.kt b/app/src/main/java/com/rtbishop/look4sat/utility/Extensions.kt index 99c6dc99..d3857932 100644 --- a/app/src/main/java/com/rtbishop/look4sat/utility/Extensions.kt +++ b/app/src/main/java/com/rtbishop/look4sat/utility/Extensions.kt @@ -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, diff --git a/fastlane/metadata/android/en-US/changelogs/231.txt b/fastlane/metadata/android/en-US/changelogs/231.txt new file mode 100644 index 00000000..160b0eb9 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/231.txt @@ -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 \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/whatsnew/whatsnew-en-US b/fastlane/metadata/android/en-US/whatsnew/whatsnew-en-US index 395b171e..160b0eb9 100644 --- a/fastlane/metadata/android/en-US/whatsnew/whatsnew-en-US +++ b/fastlane/metadata/android/en-US/whatsnew/whatsnew-en-US @@ -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 \ No newline at end of file +Bug fixes, huge code cleanup +Fixed recent InflatingException \ No newline at end of file