mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-04 03:37:21 +00:00
Further changes to layouts and fragments
This commit is contained in:
1 parent
971379b773
commit
6926f87747
45 files changed
+245
-261
No files matched your search
+6
-14
@@ -19,11 +19,11 @@ package com.rtbishop.look4sat.presentation.entriesScreen
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.widget.doOnTextChanged
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.SimpleItemAnimator
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
@@ -39,10 +39,6 @@ import dagger.hilt.android.AndroidEntryPoint
|
||||
class EntriesFragment : Fragment(R.layout.fragment_entries) {
|
||||
|
||||
private val viewModel: EntriesViewModel by viewModels()
|
||||
private val contentContract = ActivityResultContracts.GetContent()
|
||||
private val filePicker = registerForActivityResult(contentContract) { uri ->
|
||||
uri?.let { viewModel.updateDataFromFile(uri) }
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
@@ -57,16 +53,12 @@ class EntriesFragment : Fragment(R.layout.fragment_entries) {
|
||||
adapter = entriesAdapter
|
||||
layoutManager = GridLayoutManager(requireContext(), 2)
|
||||
(itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false
|
||||
addItemDecoration(ItemDivider(R.drawable.rec_divider_dark))
|
||||
addItemDecoration(ItemDivider(R.drawable.divider_dark))
|
||||
}
|
||||
// entriesImportWeb.setOnClickListener {
|
||||
// findNavController().navigateSafe(R.id.action_entries_to_sources)
|
||||
// }
|
||||
// entriesImportFile.setOnClickListener { filePicker.launch("*/*") }
|
||||
entriesSelectMode.setOnClickListener { showModesDialog() }
|
||||
entriesBack.setOnClickListener { findNavController().navigateUp() }
|
||||
entriesSearch.doOnTextChanged { text, _, _, _ -> viewModel.setQuery(text.toString()) }
|
||||
entriesMode.setOnClickListener { showModesDialog() }
|
||||
entriesSelectAll.setOnClickListener { viewModel.selectCurrentItems() }
|
||||
entriesSearchBar.setOnQueryTextListener(viewModel)
|
||||
entriesSearchBar.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI
|
||||
}
|
||||
viewModel.satData.observe(viewLifecycleOwner, { satData ->
|
||||
handleSatData(satData, binding, entriesAdapter)
|
||||
|
||||
+6
-3
@@ -21,13 +21,12 @@ import android.content.ContentResolver
|
||||
import android.net.Uri
|
||||
import android.widget.SearchView
|
||||
import androidx.lifecycle.*
|
||||
import com.rtbishop.look4sat.domain.model.SatItem
|
||||
import com.rtbishop.look4sat.domain.model.DataState
|
||||
import com.rtbishop.look4sat.domain.DataRepository
|
||||
import com.rtbishop.look4sat.domain.model.DataState
|
||||
import com.rtbishop.look4sat.domain.model.SatItem
|
||||
import com.rtbishop.look4sat.framework.PreferencesSource
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import kotlinx.coroutines.CoroutineExceptionHandler
|
||||
import kotlinx.coroutines.flow.collect
|
||||
import kotlinx.coroutines.launch
|
||||
import timber.log.Timber
|
||||
import java.util.*
|
||||
@@ -93,6 +92,10 @@ class EntriesViewModel @Inject constructor(
|
||||
preferences.saveModesSelection(modes)
|
||||
}
|
||||
|
||||
fun setQuery(query: String) {
|
||||
currentQuery.value = query
|
||||
}
|
||||
|
||||
override fun onQueryTextSubmit(query: String): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ class PassesFragment : Fragment(R.layout.fragment_passes), PassesAdapter.PassesC
|
||||
isVerticalScrollBarEnabled = false
|
||||
layoutManager = LinearLayoutManager(context)
|
||||
(itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false
|
||||
addItemDecoration(ItemDivider(R.drawable.rec_divider_dark))
|
||||
addItemDecoration(ItemDivider(R.drawable.divider_dark))
|
||||
addOnScrollListener(object : RecyclerView.OnScrollListener() {
|
||||
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
|
||||
if (dy > 0 && passesFab.visibility == View.VISIBLE) passesFab.hide()
|
||||
|
||||
@@ -54,7 +54,7 @@ class RadarFragment : Fragment(R.layout.fragment_radar) {
|
||||
isVerticalScrollBarEnabled = false
|
||||
layoutManager = LinearLayoutManager(context)
|
||||
(itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false
|
||||
addItemDecoration(ItemDivider(R.drawable.rec_divider_dark))
|
||||
addItemDecoration(ItemDivider(R.drawable.divider_dark))
|
||||
}
|
||||
setupObservers(transAdapter, this)
|
||||
}
|
||||
@@ -135,7 +135,6 @@ class RadarFragment : Fragment(R.layout.fragment_radar) {
|
||||
binding.radarTimer.text = 0L.toTimerString()
|
||||
// findNavController().navigateSafe(R.id.action_radar_to_passes)
|
||||
findNavController().popBackStack(R.id.nav_passes, true)
|
||||
// requireActivity().onNavigateUp()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
+9
-8
@@ -15,7 +15,7 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.rtbishop.look4sat.presentation.prefsScreen
|
||||
package com.rtbishop.look4sat.presentation.settingsScreen
|
||||
|
||||
import android.Manifest
|
||||
import android.content.Intent
|
||||
@@ -35,19 +35,19 @@ import androidx.navigation.fragment.findNavController
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.rtbishop.look4sat.BuildConfig
|
||||
import com.rtbishop.look4sat.R
|
||||
import com.rtbishop.look4sat.databinding.FragmentPrefsBinding
|
||||
import com.rtbishop.look4sat.databinding.FragmentSettingsBinding
|
||||
import com.rtbishop.look4sat.framework.PreferencesSource
|
||||
import com.rtbishop.look4sat.presentation.*
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
class PrefsFragment : Fragment(R.layout.fragment_prefs) {
|
||||
class SettingsFragment : Fragment(R.layout.fragment_settings) {
|
||||
|
||||
@Inject
|
||||
lateinit var preferences: PreferencesSource
|
||||
|
||||
private val viewModel: PrefsViewModel by viewModels()
|
||||
private val viewModel: SettingsViewModel by viewModels()
|
||||
private val locPermFine = Manifest.permission.ACCESS_FINE_LOCATION
|
||||
private val locPermCoarse = Manifest.permission.ACCESS_COARSE_LOCATION
|
||||
private val contentContract = ActivityResultContracts.GetContent()
|
||||
@@ -62,17 +62,18 @@ class PrefsFragment : Fragment(R.layout.fragment_prefs) {
|
||||
else -> showSnack(getString(R.string.pref_pos_gps_error))
|
||||
}
|
||||
}
|
||||
private var _binding: FragmentPrefsBinding? = null
|
||||
private var _binding: FragmentSettingsBinding? = null
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = FragmentPrefsBinding.bind(view)
|
||||
_binding = FragmentSettingsBinding.bind(view)
|
||||
_binding?.prefsBack?.setOnClickListener { findNavController().navigateUp() }
|
||||
setupAboutCard()
|
||||
setupDataCard()
|
||||
setupLocationCard()
|
||||
setupWarrantyCard()
|
||||
setupOtherCard()
|
||||
setupTrackingCard()
|
||||
setupOtherCard()
|
||||
setupWarrantyCard()
|
||||
}
|
||||
|
||||
private fun setupAboutCard() {
|
||||
+2
-2
@@ -15,7 +15,7 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.rtbishop.look4sat.presentation.prefsScreen
|
||||
package com.rtbishop.look4sat.presentation.settingsScreen
|
||||
|
||||
import android.content.ContentResolver
|
||||
import android.net.Uri
|
||||
@@ -29,7 +29,7 @@ import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
|
||||
@HiltViewModel
|
||||
class PrefsViewModel @Inject constructor(
|
||||
class SettingsViewModel @Inject constructor(
|
||||
private val preferences: PreferencesSource,
|
||||
private val resolver: ContentResolver,
|
||||
private val dataRepository: DataRepository
|
||||
Reference in new issue
Block a user