summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md1
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt36
2 files changed, 23 insertions, 14 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 05b036ea..1189c0bb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ All notable changes to this project will be documented in this file.
- Some classes of errors would be swallowed by an unhelpful 'Invalid remote: origin' message
- Repositories created within APS would contain invalid `.gpg-id` files with no ability to fix them from the app
- Button labels were invisible in Autofill phishing warning screen
+- Unsupported authentication modes would appear briefly in the server config screen
### Added
diff --git a/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt b/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt
index 364dcc1a..7f1bb6b3 100644
--- a/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt
@@ -71,24 +71,15 @@ class GitServerConfigActivity : BaseGitActivity() {
}
}
- binding.serverUrl.setText(GitSettings.url)
+ binding.serverUrl.setText(GitSettings.url.also {
+ if (it.isNullOrEmpty()) return@also
+ setAuthModes(it.startsWith("http://") || it.startsWith("https://"))
+ })
binding.serverBranch.setText(GitSettings.branch)
binding.serverUrl.doOnTextChanged { text, _, _, _ ->
if (text.isNullOrEmpty()) return@doOnTextChanged
- if (text.startsWith("http://") || text.startsWith("https://")) {
- binding.authModeSshKey.isVisible = false
- binding.authModeOpenKeychain.isVisible = false
- binding.authModePassword.isVisible = true
- if (binding.authModeGroup.checkedButtonId != binding.authModePassword.id)
- binding.authModeGroup.check(View.NO_ID)
- } else {
- binding.authModeSshKey.isVisible = true
- binding.authModeOpenKeychain.isVisible = true
- binding.authModePassword.isVisible = true
- if (binding.authModeGroup.checkedButtonId == View.NO_ID)
- binding.authModeGroup.check(binding.authModeSshKey.id)
- }
+ setAuthModes(text.startsWith("http://") || text.startsWith("https://"))
}
binding.saveButton.setOnClickListener {
@@ -168,6 +159,22 @@ class GitServerConfigActivity : BaseGitActivity() {
}
}
+ private fun setAuthModes(isHttps: Boolean) = with(binding) {
+ if (isHttps) {
+ authModeSshKey.isVisible = false
+ authModeOpenKeychain.isVisible = false
+ authModePassword.isVisible = true
+ if (authModeGroup.checkedButtonId != authModePassword.id)
+ authModeGroup.check(View.NO_ID)
+ } else {
+ authModeSshKey.isVisible = true
+ authModeOpenKeychain.isVisible = true
+ authModePassword.isVisible = true
+ if (authModeGroup.checkedButtonId == View.NO_ID)
+ authModeGroup.check(authModeSshKey.id)
+ }
+ }
+
/**
* Clones the repository, the directory exists, deletes it
*/
@@ -234,6 +241,7 @@ class GitServerConfigActivity : BaseGitActivity() {
}
companion object {
+
fun createCloneIntent(context: Context): Intent {
return Intent(context, GitServerConfigActivity::class.java).apply {
putExtra("cloning", true)