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