From 2687763bdaa36709667d38919b7cba1a7e26206f Mon Sep 17 00:00:00 2001 From: Fabian Henneke Date: Mon, 7 Sep 2020 10:10:59 +0200 Subject: Fix behavior on failing Git operations (#1084) --- .../com/zeapo/pwdstore/git/GitConfigActivity.kt | 40 +++++++++++++--------- 1 file changed, 24 insertions(+), 16 deletions(-) (limited to 'app/src/main/java/com/zeapo/pwdstore/git/GitConfigActivity.kt') diff --git a/app/src/main/java/com/zeapo/pwdstore/git/GitConfigActivity.kt b/app/src/main/java/com/zeapo/pwdstore/git/GitConfigActivity.kt index 46a54f57..b3217395 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/GitConfigActivity.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/GitConfigActivity.kt @@ -81,28 +81,36 @@ class GitConfigActivity : BaseGitActivity() { binding.gitAbortRebase.setOnClickListener { lifecycleScope.launch { launchGitOperation(BREAK_OUT_OF_DETACHED).fold( - success = { - MaterialAlertDialogBuilder(this@GitConfigActivity) - .setTitle(resources.getString(R.string.git_abort_and_push_title)) - .setMessage(resources.getString( - R.string.git_break_out_of_detached_success, - GitSettings.branch, - "conflicting-${GitSettings.branch}-...", - )) - .setOnCancelListener { finish() } - .setPositiveButton(resources.getString(R.string.dialog_ok)) { _, _ -> - finish() - }.show() - }, - failure = ::finishAfterPromptOnErrorHandler, + success = { + MaterialAlertDialogBuilder(this@GitConfigActivity).run { + setTitle(resources.getString(R.string.git_abort_and_push_title)) + setMessage(resources.getString( + R.string.git_break_out_of_detached_success, + GitSettings.branch, + "conflicting-${GitSettings.branch}-...", + )) + setOnDismissListener() { finish() } + setPositiveButton(resources.getString(R.string.dialog_ok)) { _, _ -> } + show() + } + }, + failure = { err -> + promptOnErrorHandler(err) { + finish() + } + }, ) } } binding.gitResetToRemote.setOnClickListener { lifecycleScope.launch { launchGitOperation(REQUEST_RESET).fold( - success = ::finishOnSuccessHandler, - failure = ::finishAfterPromptOnErrorHandler, + success = ::finishOnSuccessHandler, + failure = { err -> + promptOnErrorHandler(err) { + finish() + } + }, ) } } -- cgit v1.2.3