diff options
Diffstat (limited to 'app/src/main/java/dev/msfjarvis/aps/ui')
| -rw-r--r-- | app/src/main/java/dev/msfjarvis/aps/ui/git/base/BaseGitActivity.kt | 5 | ||||
| -rw-r--r-- | app/src/main/java/dev/msfjarvis/aps/ui/git/config/GitServerConfigActivity.kt | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/git/base/BaseGitActivity.kt b/app/src/main/java/dev/msfjarvis/aps/ui/git/base/BaseGitActivity.kt index 89455c90..558f60a2 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/git/base/BaseGitActivity.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/git/base/BaseGitActivity.kt @@ -29,6 +29,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import net.schmizz.sshj.common.DisconnectReason import net.schmizz.sshj.common.SSHException +import net.schmizz.sshj.transport.TransportException import net.schmizz.sshj.userauth.UserAuthException /** @@ -76,6 +77,10 @@ abstract class BaseGitActivity : ContinuationContainerActivity() { if (err.message?.contains("cannot open additional channels") == true) { GitSettings.useMultiplexing = false SSHException(DisconnectReason.TOO_MANY_CONNECTIONS, "The server does not support multiple Git operations per SSH session. Please try again, a slower fallback mode will be used.") + } else if (err is TransportException && err.disconnectReason == DisconnectReason.HOST_KEY_NOT_VERIFIABLE) { + SSHException(DisconnectReason.HOST_KEY_NOT_VERIFIABLE, + "WARNING: The remote host key has changed. If this is expected, please go to Git server settings and clear the saved host key." + ) } else { err } diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/git/config/GitServerConfigActivity.kt b/app/src/main/java/dev/msfjarvis/aps/ui/git/config/GitServerConfigActivity.kt index a0750eeb..9826593c 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/git/config/GitServerConfigActivity.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/git/config/GitServerConfigActivity.kt @@ -84,6 +84,12 @@ class GitServerConfigActivity : BaseGitActivity() { setAuthModes(text.startsWith("http://") || text.startsWith("https://")) } + binding.clearHostKeyButton.isVisible = GitSettings.hasSavedHostKey() + binding.clearHostKeyButton.setOnClickListener { + GitSettings.clearSavedHostKey() + Snackbar.make(binding.root, getString(R.string.clear_saved_host_key_success), Snackbar.LENGTH_LONG).show() + it.isVisible = false + } binding.saveButton.setOnClickListener { val newUrl = binding.serverUrl.text.toString().trim() // If url is of type john_doe@example.org:12435/path/to/repo, then not adding `ssh://` |
