Swapped locator alert dialog for a dedicated dialog fragment

This commit is contained in:
Arty Bishop committed 2022-02-19 12:11:50 +00:00
1 parent 6400d1d395
commit 9d6dbc8d31
4 files changed
+148 -14

No files matched your search

@@ -0,0 +1,42 @@
package com.rtbishop.look4sat.presentation.settingsScreen
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.WindowManager
import androidx.appcompat.app.AppCompatDialogFragment
import com.rtbishop.look4sat.R
import com.rtbishop.look4sat.data.ISettingsHandler
import com.rtbishop.look4sat.databinding.DialogLocatorBinding
import com.rtbishop.look4sat.presentation.setNavResult
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
@AndroidEntryPoint
class LocatorDialog : AppCompatDialogFragment() {
@Inject
lateinit var preferences: ISettingsHandler
override fun onCreateView(inflater: LayoutInflater, group: ViewGroup?, state: Bundle?): View? {
return inflater.inflate(R.layout.dialog_locator, group, false)
}
override fun onViewCreated(view: View, state: Bundle?) {
super.onViewCreated(view, state)
DialogLocatorBinding.bind(view).run {
dialog?.window?.setBackgroundDrawableResource(R.color.transparent)
dialog?.window?.setLayout(
(resources.displayMetrics.widthPixels * 0.94).toInt(),
WindowManager.LayoutParams.WRAP_CONTENT
)
// locatorEdit.setText(preferences.getQthLocator())
locatorPosBtn.setOnClickListener {
setNavResult("locator", locatorEdit.text.toString())
dismiss()
}
locatorNegBtn.setOnClickListener { dismiss() }
}
}
}
@@ -23,10 +23,8 @@ import android.net.Uri
import android.os.Bundle
import android.text.method.LinkMovementMethod
import android.view.View
import android.widget.EditText
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AlertDialog
import androidx.core.widget.NestedScrollView
import androidx.core.widget.doOnTextChanged
import androidx.fragment.app.Fragment
@@ -41,7 +39,6 @@ import com.rtbishop.look4sat.domain.predict.GeoPos
import com.rtbishop.look4sat.presentation.getNavResult
import com.rtbishop.look4sat.presentation.isValidIPv4
import com.rtbishop.look4sat.presentation.isValidPort
import com.rtbishop.look4sat.presentation.setEditText
import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
@@ -115,17 +112,11 @@ class SettingsFragment : Fragment(R.layout.fragment_settings) {
locationRequest.launch(arrayOf(locationFine, locationCoarse))
}
binding.settingsLocation.locationBtnQth.setOnClickListener {
val editText = EditText(requireActivity())
AlertDialog.Builder(requireContext())
.setTitle("Title")
.setEditText(editText)
.setPositiveButton("OK") { _, _ ->
val editTextInput = editText.text.toString()
viewModel.setPositionFromQth(editTextInput)
}
.setNeutralButton("Cancel", null)
.create()
.show()
val action = SettingsFragmentDirections.actionPrefsToLocator()
findNavController().navigate(action)
}
getNavResult<String>(R.id.nav_settings, "locator") { locator ->
viewModel.setPositionFromQth(locator)
}
}