Only ask delete when click delete button (#238)

This commit is contained in:
Howard Wu 2022-12-15 18:29:23 +08:00 • committed by GitHub
commit 227ba02c0d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 14 deletions

View file

@ -27,25 +27,25 @@ class TemplateSettingsFragment : Fragment(R.layout.fragment_template_settings) {
TemplateSettingsViewModel.Factory(args)
}
private fun onBack() {
private fun onBack(delete: Boolean) {
viewModel.name = viewModel.name?.trim()
if (viewModel.name != viewModel.originalName && (ConfigManager.hasTemplate(viewModel.name) || viewModel.name == null)) {
if (viewModel.name != viewModel.originalName && (ConfigManager.hasTemplate(viewModel.name) || viewModel.name == null) || delete) {
val builder = MaterialAlertDialogBuilder(requireContext())
.setTitle(if (viewModel.name == null) R.string.template_name_null else R.string.template_name_invalid)
.setMessage(if (viewModel.name == null) R.string.template_delete else R.string.template_name_already_exist)
.setTitle(if (delete) R.string.template_delete_title else R.string.template_name_invalid)
.setMessage(if (delete) R.string.template_delete else R.string.template_name_already_exist)
.setPositiveButton(android.R.string.ok) { _, _ ->
if (viewModel.name == null) saveResult()
saveResult(delete)
}
if (viewModel.name == null) builder.setNegativeButton(android.R.string.cancel, null)
if (delete) builder.setNegativeButton(android.R.string.cancel, null)
builder.show()
} else {
saveResult()
saveResult(false)
}
}
private fun saveResult() {
private fun saveResult(delete: Boolean) {
setFragmentResult("template_settings", Bundle().apply {
putString("name", viewModel.name)
putString("name",if (delete) null else viewModel.name)
putStringArrayList("appliedList", viewModel.appliedAppList.value)
putStringArrayList("targetList", viewModel.targetAppList.value)
})
@ -61,16 +61,15 @@ class TemplateSettingsFragment : Fragment(R.layout.fragment_template_settings) {
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner) { onBack() }
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner) { onBack(false) }
setupToolbar(
toolbar = binding.toolbar,
title = getString(R.string.title_template_settings),
navigationIcon = R.drawable.baseline_arrow_back_24,
navigationOnClick = { onBack() },
navigationOnClick = { onBack(false) },
menuRes = R.menu.menu_delete,
onMenuOptionSelected = {
viewModel.name = null
onBack()
onBack(true)
}
)

View file

@ -69,7 +69,7 @@
<string name="template_delete">Are you sure to delete the template?</string>
<string name="template_name">Template name</string>
<string name="template_name_invalid">Name invalid</string>
<string name="template_name_null">Delete Template</string>
<string name="template_delete_title">Delete Template</string>
<string name="template_name_already_exist">Template name already exist</string>
<string name="template_applied_count">Applied to %d apps</string>
<string name="template_apps_visible_count">%d apps visible</string>