aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/git
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/git')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/git/GitOperation.kt3
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt35
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/git/config/ConnectionMode.kt4
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/git/config/Protocol.kt3
4 files changed, 27 insertions, 18 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.kt b/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.kt
index 817d9dca..82f3d7f6 100644
--- a/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.kt
@@ -247,6 +247,9 @@ abstract class GitOperation(fileDir: File, internal val callingActivity: Activit
dialog.show()
}
}
+ ConnectionMode.None -> {
+ execute()
+ }
}
}
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 a10f3460..14f9bb62 100644
--- a/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt
@@ -24,7 +24,7 @@ import java.io.IOException
*/
class GitServerConfigActivity : BaseGitActivity() {
- lateinit var binding: ActivityGitCloneBinding
+ private lateinit var binding: ActivityGitCloneBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -36,11 +36,10 @@ class GitServerConfigActivity : BaseGitActivity() {
setContentView(binding.root)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
- val protocolIdToCheck = when (protocol) {
+ binding.cloneProtocolGroup.check(when (protocol) {
Protocol.Ssh -> R.id.clone_protocol_ssh
Protocol.Https -> R.id.clone_protocol_https
- }
- binding.cloneProtocolGroup.check(protocolIdToCheck)
+ })
binding.cloneProtocolGroup.addOnButtonCheckedListener { _, checkedId, checked ->
if (checked) {
when (checkedId) {
@@ -51,19 +50,18 @@ class GitServerConfigActivity : BaseGitActivity() {
}
}
- val connectionModeIdToCheck = when (connectionMode) {
+ binding.connectionModeGroup.check(when (connectionMode) {
ConnectionMode.SshKey -> R.id.connection_mode_ssh_key
ConnectionMode.Password -> R.id.connection_mode_password
ConnectionMode.OpenKeychain -> R.id.connection_mode_open_keychain
- }
- binding.connectionModeGroup.check(connectionModeIdToCheck)
- binding.connectionModeGroup.addOnButtonCheckedListener { _, checkedId, checked ->
- if (checked) {
- when (checkedId) {
- R.id.connection_mode_ssh_key -> connectionMode = ConnectionMode.SshKey
- R.id.connection_mode_open_keychain -> connectionMode = ConnectionMode.OpenKeychain
- R.id.connection_mode_password -> connectionMode = ConnectionMode.Password
- }
+ ConnectionMode.None -> R.id.connection_mode_none
+ })
+ binding.connectionModeGroup.setOnCheckedChangeListener { group, _ ->
+ when (group.checkedRadioButtonId) {
+ R.id.connection_mode_ssh_key -> connectionMode = ConnectionMode.SshKey
+ R.id.connection_mode_open_keychain -> connectionMode = ConnectionMode.OpenKeychain
+ R.id.connection_mode_password -> connectionMode = ConnectionMode.Password
+ R.id.connection_mode_none -> connectionMode = ConnectionMode.None
}
}
updateConnectionModeToggleGroup()
@@ -121,15 +119,20 @@ class GitServerConfigActivity : BaseGitActivity() {
private fun updateConnectionModeToggleGroup() {
if (protocol == Protocol.Ssh) {
+ if (binding.connectionModeNone.isChecked)
+ binding.connectionModeGroup.check(R.id.connection_mode_ssh_key)
binding.connectionModeSshKey.isEnabled = true
binding.connectionModeOpenKeychain.isEnabled = true
+ binding.connectionModeNone.isEnabled = false
} else {
- // Reset connection mode to the only one possible via HTTPS: password.
+ // Reset connection mode to password if the current value is not valid for HTTPS
// Important note: This has to happen before disabling the other toggle buttons or they
// won't uncheck.
- binding.connectionModeGroup.check(R.id.connection_mode_password)
+ if (connectionMode !in listOf(ConnectionMode.None, ConnectionMode.Password))
+ binding.connectionModeGroup.check(R.id.connection_mode_password)
binding.connectionModeSshKey.isEnabled = false
binding.connectionModeOpenKeychain.isEnabled = false
+ binding.connectionModeNone.isEnabled = true
}
}
diff --git a/app/src/main/java/com/zeapo/pwdstore/git/config/ConnectionMode.kt b/app/src/main/java/com/zeapo/pwdstore/git/config/ConnectionMode.kt
index 9316e89f..8bc3fb18 100644
--- a/app/src/main/java/com/zeapo/pwdstore/git/config/ConnectionMode.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/git/config/ConnectionMode.kt
@@ -7,7 +7,9 @@ package com.zeapo.pwdstore.git.config
enum class ConnectionMode(val pref: String) {
SshKey("ssh-key"),
Password("username/password"),
- OpenKeychain("OpenKeychain");
+ OpenKeychain("OpenKeychain"),
+ None("None"),
+ ;
companion object {
private val map = values().associateBy(ConnectionMode::pref)
diff --git a/app/src/main/java/com/zeapo/pwdstore/git/config/Protocol.kt b/app/src/main/java/com/zeapo/pwdstore/git/config/Protocol.kt
index 1909fe85..eca23800 100644
--- a/app/src/main/java/com/zeapo/pwdstore/git/config/Protocol.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/git/config/Protocol.kt
@@ -6,7 +6,8 @@ package com.zeapo.pwdstore.git.config
enum class Protocol(val pref: String) {
Ssh("ssh://"),
- Https("https://");
+ Https("https://"),
+ ;
companion object {
private val map = values().associateBy(Protocol::pref)