diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/LocatorDialog.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/LocatorDialog.kt new file mode 100644 index 00000000..6ffc8e6a --- /dev/null +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/LocatorDialog.kt @@ -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() } + } + } +} diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/SettingsFragment.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/SettingsFragment.kt index 2527df48..9c0507e8 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/SettingsFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/SettingsFragment.kt @@ -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(R.id.nav_settings, "locator") { locator -> + viewModel.setPositionFromQth(locator) } } diff --git a/app/src/main/res/layout/dialog_locator.xml b/app/src/main/res/layout/dialog_locator.xml new file mode 100644 index 00000000..8a5c99fb --- /dev/null +++ b/app/src/main/res/layout/dialog_locator.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + +