From 43a3e5b39a577b39e99df3a02233c4f36e852a19 Mon Sep 17 00:00:00 2001 From: ViscousPot Date: Thu, 16 Jan 2025 02:48:00 +0000 Subject: [PATCH] fix: disallow adding repo with same name --- .../com/viscouspot/gitsync/MainActivity.kt | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/viscouspot/gitsync/MainActivity.kt b/app/src/main/java/com/viscouspot/gitsync/MainActivity.kt index 096d1c8..26210a5 100644 --- a/app/src/main/java/com/viscouspot/gitsync/MainActivity.kt +++ b/app/src/main/java/com/viscouspot/gitsync/MainActivity.kt @@ -499,17 +499,28 @@ class MainActivity : AppCompatActivity() { .setTitle(getString(R.string.add_repository)) .setCancelable(1) .setView(keyInput) - .setPositiveButton(R.string.add) { _, _ -> - val repoNames = repoManager.getRepoNames().toMutableList() - repoNames.add(input.text.toString()) - - repoManager.setRepoNames(repoNames) - repoManager.setRepoIndex(repoNames.indexOf(input.text.toString())) - - updateRepoButtons() - refreshAll() - } + .setPositiveButton(R.string.add) { _, _ -> } .setNegativeButton(android.R.string.cancel) { _, _ -> } + .apply { + setOnShowListener { + getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener listener@{ + val repoNames = repoManager.getRepoNames().toMutableList() + if (repoNames.contains(input.text.toString())) { + input.setText("${input.text}2") + return@listener + } + + repoNames.add(input.text.toString()) + + repoManager.setRepoNames(repoNames) + repoManager.setRepoIndex(repoNames.indexOf(input.text.toString())) + + updateRepoButtons() + refreshAll() + dismiss() + } + } + } .show() } }