GitServerConfigActivity: set auth mode visibility on launch as well

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2020-10-21 05:49:32 +05:30
parent 30c8c27770
commit f2d0c18672
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
2 changed files with 23 additions and 14 deletions

View file

@ -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

View file

@ -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)