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 6f92f80..a0f13c9 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 @@ -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) } ) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 07da13e..0f55ba4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -69,7 +69,7 @@ Are you sure to delete the template? Template name Name invalid - Delete Template + Delete Template Template name already exist Applied to %d apps %d apps visible