Ask before delete a template

This commit is contained in:
Howard Wu 2022-12-15 16:30:46 +08:00 • committed by Nullptr
commit f7f71520fb
2 changed files with 21 additions and 13 deletions

View file

@ -22,29 +22,36 @@ import kotlinx.coroutines.launch
class TemplateSettingsFragment : Fragment(R.layout.fragment_template_settings) {
private val binding by viewBinding<FragmentTemplateSettingsBinding>()
private val viewModel by viewModels<TemplateSettingsViewModel>() {
private val viewModel by viewModels<TemplateSettingsViewModel> {
val args by navArgs<TemplateSettingsFragmentArgs>()
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 {

View file

@ -69,6 +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_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>