Restored SourcesDialog and FileDialog in EntriesFragment
This commit is contained in:
1 parent
41cf2f3a5d
commit
58fe352e30
4 files changed
+53
-56
No files matched your search
@@ -2,18 +2,30 @@ package com.rtbishop.look4sat.ui
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.navigation.fragment.NavHostFragment
|
||||
import androidx.navigation.ui.setupWithNavController
|
||||
import com.rtbishop.look4sat.Look4SatApp
|
||||
import com.rtbishop.look4sat.R
|
||||
import com.rtbishop.look4sat.dagger.ViewModelFactory
|
||||
import com.rtbishop.look4sat.databinding.ActivityMainBinding
|
||||
import javax.inject.Inject
|
||||
|
||||
class MainActivity : AppCompatActivity() {
|
||||
|
||||
@Inject
|
||||
lateinit var factory: ViewModelFactory
|
||||
|
||||
private lateinit var binding: ActivityMainBinding
|
||||
private lateinit var viewModel: SharedViewModel
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
val binding = ActivityMainBinding.inflate(layoutInflater)
|
||||
binding = ActivityMainBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
val navHost = supportFragmentManager.findFragmentById(R.id.nav_frag) as NavHostFragment
|
||||
binding.navBottom.setupWithNavController(navHost.navController)
|
||||
(application as Look4SatApp).appComponent.inject(this)
|
||||
viewModel = ViewModelProvider(this, factory).get(SharedViewModel::class.java)
|
||||
}
|
||||
}
|
||||
@@ -1,51 +1,61 @@
|
||||
package com.rtbishop.look4sat.ui.fragments
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import com.rtbishop.look4sat.Look4SatApp
|
||||
import com.rtbishop.look4sat.R
|
||||
import com.rtbishop.look4sat.dagger.ViewModelFactory
|
||||
import com.rtbishop.look4sat.data.TleSource
|
||||
import com.rtbishop.look4sat.databinding.FragmentEntriesBinding
|
||||
import com.rtbishop.look4sat.ui.SharedViewModel
|
||||
import javax.inject.Inject
|
||||
|
||||
class EntriesFragment : Fragment(R.layout.fragment_entries) {
|
||||
class EntriesFragment : Fragment(R.layout.fragment_entries), SourcesDialog.SourcesSubmitListener {
|
||||
|
||||
@Inject
|
||||
lateinit var modelFactory: ViewModelFactory
|
||||
lateinit var factory: ViewModelFactory
|
||||
|
||||
private lateinit var binding: FragmentEntriesBinding
|
||||
private lateinit var viewModel: SharedViewModel
|
||||
private val pickFileReqCode = 100
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
binding = FragmentEntriesBinding.bind(view)
|
||||
(requireActivity().application as Look4SatApp).appComponent.inject(this)
|
||||
viewModel = ViewModelProvider(requireActivity(), factory).get(SharedViewModel::class.java)
|
||||
|
||||
binding.importWeb.setOnClickListener { showSourcesDialog() }
|
||||
binding.importFile.setOnClickListener { showFileDialog() }
|
||||
}
|
||||
|
||||
// private fun openSourcesDialog() {
|
||||
// SourcesDialog(viewModel.getTleSources()).apply {
|
||||
// setSourcesListener(this@MainActivity)
|
||||
// show(supportFragmentManager, "TleSourcesDialog")
|
||||
// }
|
||||
// }
|
||||
private fun showSourcesDialog() {
|
||||
val fragmentManager = childFragmentManager
|
||||
SourcesDialog(viewModel.getTleSources()).apply {
|
||||
setSourcesListener(this@EntriesFragment)
|
||||
show(fragmentManager, "TleSourcesDialog")
|
||||
}
|
||||
}
|
||||
|
||||
// override fun onSourcesSubmit(list: List<TleSource>) {
|
||||
// viewModel.updateSatData(list)
|
||||
// }
|
||||
private fun showFileDialog() {
|
||||
Intent(Intent.ACTION_OPEN_DOCUMENT).apply {
|
||||
addCategory(Intent.CATEGORY_OPENABLE)
|
||||
type = "*/*"
|
||||
startActivityForResult(this, pickFileReqCode)
|
||||
}
|
||||
}
|
||||
|
||||
// override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||
// if (requestCode == pickFileReqCode && resultCode == AppCompatActivity.RESULT_OK) {
|
||||
// data?.data?.also { uri ->
|
||||
// viewModel.updateEntriesFromFile(uri)
|
||||
// }
|
||||
// } else {
|
||||
// super.onActivityResult(requestCode, resultCode, data)
|
||||
// }
|
||||
// }
|
||||
override fun onSourcesSubmit(list: List<TleSource>) {
|
||||
viewModel.updateSatData(list)
|
||||
}
|
||||
|
||||
// private fun openFile() {
|
||||
// val openFileIntent = Intent(Intent.ACTION_OPEN_DOCUMENT).apply {
|
||||
// addCategory(Intent.CATEGORY_OPENABLE)
|
||||
// type = "*/*"
|
||||
// }
|
||||
// startActivityForResult(openFileIntent, pickFileReqCode)
|
||||
// }
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||
if (requestCode == pickFileReqCode && resultCode == AppCompatActivity.RESULT_OK) {
|
||||
data?.data?.also { uri -> viewModel.updateEntriesFromFile(uri) }
|
||||
} else super.onActivityResult(requestCode, resultCode, data)
|
||||
}
|
||||
}
|
||||
@@ -26,14 +26,12 @@ import android.widget.EditText
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.SimpleItemAnimator
|
||||
import com.rtbishop.look4sat.Look4SatApp
|
||||
import com.rtbishop.look4sat.R
|
||||
import com.rtbishop.look4sat.dagger.ViewModelFactory
|
||||
import com.rtbishop.look4sat.data.Result
|
||||
import com.rtbishop.look4sat.data.SatEntry
|
||||
import com.rtbishop.look4sat.data.SatPass
|
||||
import com.rtbishop.look4sat.databinding.FragmentPassesBinding
|
||||
import com.rtbishop.look4sat.ui.SharedViewModel
|
||||
@@ -41,7 +39,6 @@ import com.rtbishop.look4sat.ui.adapters.PassesAdapter
|
||||
import com.rtbishop.look4sat.utility.PrefsManager
|
||||
import com.rtbishop.look4sat.utility.Utilities
|
||||
import com.rtbishop.look4sat.utility.Utilities.snack
|
||||
import kotlinx.coroutines.launch
|
||||
import java.util.*
|
||||
import javax.inject.Inject
|
||||
|
||||
@@ -105,14 +102,7 @@ class PassesFragment : Fragment(R.layout.fragment_passes) {
|
||||
showSatPassPrefsDialog(viewModel.getHoursAhead(), viewModel.getMinElevation())
|
||||
}
|
||||
binding.passesFab.setOnClickListener {
|
||||
lifecycleScope.launch {
|
||||
val list = viewModel.getAllEntries() as MutableList
|
||||
if (list.isEmpty()) {
|
||||
getString(R.string.err_update_data).snack(requireView())
|
||||
} else {
|
||||
showSelectSatDialog(list)
|
||||
}
|
||||
}
|
||||
viewModel.calculatePasses()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -154,19 +144,6 @@ class PassesFragment : Fragment(R.layout.fragment_passes) {
|
||||
}
|
||||
}
|
||||
|
||||
private fun showSelectSatDialog(tleMainList: MutableList<SatEntry>) {
|
||||
val listener = object : EntriesDialog.EntriesSubmitListener {
|
||||
override fun onEntriesSubmit(catNumList: MutableList<Int>) {
|
||||
viewModel.updateEntriesSelection(catNumList)
|
||||
}
|
||||
}
|
||||
|
||||
EntriesDialog(tleMainList).apply {
|
||||
setEntriesListener(listener)
|
||||
show(requireActivity().supportFragmentManager, "EntriesDialog")
|
||||
}
|
||||
}
|
||||
|
||||
private fun setTimer() {
|
||||
if (satPassList.isNotEmpty()) {
|
||||
resetTimer()
|
||||
|
||||
@@ -29,11 +29,9 @@ import com.rtbishop.look4sat.data.TleSource
|
||||
import com.rtbishop.look4sat.databinding.DialogSourcesBinding
|
||||
import com.rtbishop.look4sat.ui.adapters.SourcesAdapter
|
||||
|
||||
class SourcesDialog(sources: List<TleSource>) :
|
||||
AppCompatDialogFragment() {
|
||||
class SourcesDialog(sources: List<TleSource>) : AppCompatDialogFragment() {
|
||||
|
||||
private lateinit var sourcesListener: SourcesSubmitListener
|
||||
private val emptySource = TleSource("")
|
||||
private val sourcesAdapter = SourcesAdapter(sources.toMutableList())
|
||||
|
||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||
@@ -54,7 +52,7 @@ class SourcesDialog(sources: List<TleSource>) :
|
||||
|
||||
binding.tleSourceBtnAdd.setOnClickListener {
|
||||
val tempSources = sourcesAdapter.getSources()
|
||||
tempSources.add(emptySource)
|
||||
tempSources.add(TleSource(""))
|
||||
sourcesAdapter.setSources(tempSources)
|
||||
sourcesAdapter.notifyDataSetChanged()
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user