From f7f71520fb6dc770dca9d8dfb47a733caafab6a8 Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Thu, 15 Dec 2022 16:30:46 +0800 Subject: [PATCH] Ask before delete a template --- .../ui/fragment/TemplateSettingsFragment.kt | 33 +++++++++++-------- app/src/main/res/values/strings.xml | 1 + 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/icu/nullptr/hidemyapplist/ui/fragment/TemplateSettingsFragment.kt b/app/src/main/java/icu/nullptr/hidemyapplist/ui/fragment/TemplateSettingsFragment.kt index 3b479b3..6f92f80 100644 --- a/app/src/main/java/icu/nullptr/hidemyapplist/ui/fragment/TemplateSettingsFragment.kt +++ b/app/src/main/java/icu/nullptr/hidemyapplist/ui/fragment/TemplateSettingsFragment.kt @@ -22,29 +22,36 @@ import kotlinx.coroutines.launch class TemplateSettingsFragment : Fragment(R.layout.fragment_template_settings) { private val binding by viewBinding() - private val viewModel by viewModels() { + private val viewModel by viewModels { val args by navArgs() TemplateSettingsViewModel.Factory(args) } private fun onBack() { viewModel.name = viewModel.name?.trim() - if (viewModel.name != viewModel.originalName && ConfigManager.hasTemplate(viewModel.name)) { - MaterialAlertDialogBuilder(requireContext()) - .setTitle(R.string.template_name_invalid) - .setMessage(R.string.template_name_already_exist) - .setPositiveButton(android.R.string.ok, null) - .show() + if (viewModel.name != viewModel.originalName && (ConfigManager.hasTemplate(viewModel.name) || viewModel.name == null)) { + 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) + .setPositiveButton(android.R.string.ok) { _, _ -> + if (viewModel.name == null) saveResult() + } + if (viewModel.name == null) builder.setNegativeButton(android.R.string.cancel, null) + builder.show() } else { - setFragmentResult("template_settings", Bundle().apply { - putString("name", viewModel.name) - putStringArrayList("appliedList", viewModel.appliedAppList.value) - putStringArrayList("targetList", viewModel.targetAppList.value) - }) - navController.navigateUp() + saveResult() } } + private fun saveResult() { + setFragmentResult("template_settings", Bundle().apply { + putString("name", viewModel.name) + putStringArrayList("appliedList", viewModel.appliedAppList.value) + putStringArrayList("targetList", viewModel.targetAppList.value) + }) + navController.navigateUp() + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) sharedElementEnterTransition = MaterialContainerTransform().apply { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fa25fcf..07da13e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -69,6 +69,7 @@ Are you sure to delete the template? Template name Name invalid + Delete Template Template name already exist Applied to %d apps %d apps visible