aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/dev/msfjarvis/aps/util/git/operation
diff options
context:
space:
mode:
authorHarsh Shandilya <me@msfjarvis.dev>2020-12-20 05:52:30 -0800
committerGitHub <noreply@github.com>2020-12-20 05:52:30 -0800
commitc34d08b094e80e2fd683e988f5e7ac98ad254e81 (patch)
treedef553ec6689ee627eb43683289691673a6c8795 /app/src/main/java/dev/msfjarvis/aps/util/git/operation
parent0396bf92a9a15bcdac8b9fc71f6b34afc949ab41 (diff)
downloadHardenedPass-c34d08b094e80e2fd683e988f5e7ac98ad254e81.tar.gz
HardenedPass-c34d08b094e80e2fd683e988f5e7ac98ad254e81.zip
Refactor GitCommandExecutor (#1255)
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Diffstat (limited to 'app/src/main/java/dev/msfjarvis/aps/util/git/operation')
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/util/git/operation/GitOperation.kt30
1 files changed, 23 insertions, 7 deletions
diff --git a/app/src/main/java/dev/msfjarvis/aps/util/git/operation/GitOperation.kt b/app/src/main/java/dev/msfjarvis/aps/util/git/operation/GitOperation.kt
index 44292fc6..1ef168e4 100644
--- a/app/src/main/java/dev/msfjarvis/aps/util/git/operation/GitOperation.kt
+++ b/app/src/main/java/dev/msfjarvis/aps/util/git/operation/GitOperation.kt
@@ -25,6 +25,10 @@ import dev.msfjarvis.aps.util.git.sshj.SshKey
import dev.msfjarvis.aps.util.git.sshj.SshjSessionFactory
import dev.msfjarvis.aps.util.auth.BiometricAuthenticator
import dev.msfjarvis.aps.data.repo.PasswordRepository
+import dev.msfjarvis.aps.util.extensions.snackbar
+import dev.msfjarvis.aps.util.git.GitResult
+import com.github.michaelbull.result.get
+import com.google.android.material.snackbar.Snackbar
import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine
import kotlinx.coroutines.Dispatchers
@@ -119,12 +123,14 @@ abstract class GitOperation(protected val callingActivity: FragmentActivity) {
if (!preExecute()) {
return Ok(Unit)
}
- val operationResult = GitCommandExecutor(
- callingActivity,
- this,
- ).execute()
- postExecute()
- return operationResult
+ val snackbar = callingActivity.snackbar(
+ message = callingActivity.resources.getString(R.string.git_operation_running),
+ length = Snackbar.LENGTH_INDEFINITE,
+ )
+ val operationResult = GitCommandExecutor(this).execute()
+ snackbar.dismiss()
+ postExecute(operationResult)
+ return Ok(Unit)
}
private fun onMissingSshKeyFile() {
@@ -200,7 +206,17 @@ abstract class GitOperation(protected val callingActivity: FragmentActivity) {
*/
open fun preExecute() = true
- private suspend fun postExecute() {
+ private suspend fun postExecute(result: Result<GitResult, Throwable>) {
+ when (result.get()) {
+ GitResult.OK -> {}
+ GitResult.AlreadyUpToDate -> {
+ Toast.makeText(
+ callingActivity,
+ callingActivity.getString(R.string.git_push_up_to_date),
+ Toast.LENGTH_SHORT
+ ).show()
+ }
+ }
withContext(Dispatchers.IO) {
sshSessionFactory?.close()
}