aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/dev/msfjarvis/aps/ui/git
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/dev/msfjarvis/aps/ui/git')
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/ui/git/base/BaseGitActivity.kt10
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/ui/git/config/GitConfigActivity.kt9
2 files changed, 18 insertions, 1 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 a008f6c7..e44e3e3c 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
@@ -19,6 +19,7 @@ import dev.msfjarvis.aps.util.extensions.sharedPrefs
import dev.msfjarvis.aps.util.git.ErrorMessages
import dev.msfjarvis.aps.util.git.operation.BreakOutOfDetached
import dev.msfjarvis.aps.util.git.operation.CloneOperation
+import dev.msfjarvis.aps.util.git.operation.GcOperation
import dev.msfjarvis.aps.util.git.operation.PullOperation
import dev.msfjarvis.aps.util.git.operation.PushOperation
import dev.msfjarvis.aps.util.git.operation.ResetToRemoteOperation
@@ -51,6 +52,7 @@ abstract class BaseGitActivity : ContinuationContainerActivity() {
PUSH,
RESET,
SYNC,
+ GC,
}
@Inject lateinit var gitSettings: GitSettings
@@ -77,8 +79,14 @@ abstract class BaseGitActivity : ContinuationContainerActivity() {
GitOp.SYNC -> SyncOperation(this, gitSettings.rebaseOnPull)
GitOp.BREAK_OUT_OF_DETACHED -> BreakOutOfDetached(this)
GitOp.RESET -> ResetToRemoteOperation(this)
+ GitOp.GC -> GcOperation(this)
}
- return op.executeAfterAuthentication(gitSettings.authMode).mapError(::transformGitError)
+ return (if (op.requiresAuth) {
+ op.executeAfterAuthentication(gitSettings.authMode)
+ } else {
+ op.execute()
+ })
+ .mapError(::transformGitError)
}
fun finishOnSuccessHandler(@Suppress("UNUSED_PARAMETER") nothing: Unit) {
diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/git/config/GitConfigActivity.kt b/app/src/main/java/dev/msfjarvis/aps/ui/git/config/GitConfigActivity.kt
index 04014e17..4fed7b99 100644
--- a/app/src/main/java/dev/msfjarvis/aps/ui/git/config/GitConfigActivity.kt
+++ b/app/src/main/java/dev/msfjarvis/aps/ui/git/config/GitConfigActivity.kt
@@ -124,6 +124,15 @@ class GitConfigActivity : BaseGitActivity() {
)
}
}
+ binding.gitGc.setOnClickListener {
+ lifecycleScope.launch {
+ launchGitOperation(GitOp.GC)
+ .fold(
+ success = ::finishOnSuccessHandler,
+ failure = { err -> promptOnErrorHandler(err) { finish() } },
+ )
+ }
+ }
}
/**