From 3840f43fa0026b06b15913379761c1bf6b6a1c68 Mon Sep 17 00:00:00 2001 From: Fabian Henneke Date: Thu, 3 Sep 2020 10:48:14 +0200 Subject: Refactor Git operations and auth (#1066) Co-authored-by: Harsh Shandilya --- .../java/com/zeapo/pwdstore/utils/Extensions.kt | 29 ++++++++-------------- .../main/java/com/zeapo/pwdstore/utils/Result.kt | 16 ------------ 2 files changed, 10 insertions(+), 35 deletions(-) delete mode 100644 app/src/main/java/com/zeapo/pwdstore/utils/Result.kt (limited to 'app/src/main/java/com/zeapo/pwdstore/utils') diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt b/app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt index f41899b9..eea69dc4 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt +++ b/app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt @@ -7,7 +7,6 @@ package com.zeapo.pwdstore.utils import android.app.KeyguardManager import android.content.ClipboardManager import android.content.Context -import android.content.Intent import android.content.SharedPreferences import android.os.Build import android.util.Base64 @@ -24,8 +23,10 @@ import androidx.preference.PreferenceManager import androidx.security.crypto.EncryptedSharedPreferences import androidx.security.crypto.MasterKey import com.github.ajalt.timberkt.d +import com.github.michaelbull.result.Ok +import com.github.michaelbull.result.Result import com.google.android.material.snackbar.Snackbar -import com.zeapo.pwdstore.git.GitCommandExecutor +import com.zeapo.pwdstore.R import com.zeapo.pwdstore.git.operation.GitOperation import com.zeapo.pwdstore.utils.PasswordRepository.Companion.getRepositoryDirectory import java.io.File @@ -59,6 +60,7 @@ fun FragmentActivity.snackbar( length: Int = Snackbar.LENGTH_SHORT, ): Snackbar { val snackbar = Snackbar.make(view, message, length) + snackbar.anchorView = findViewById(R.id.fab) snackbar.show() return snackbar } @@ -108,17 +110,11 @@ fun SharedPreferences.getString(key: String): String? = getString(key, null) suspend fun FragmentActivity.commitChange( message: String, - finishWithResultOnEnd: Intent? = null, - finishActivityOnEnd: Boolean = true, -) { +): Result { if (!PasswordRepository.isGitRepo()) { - if (finishWithResultOnEnd != null) { - setResult(FragmentActivity.RESULT_OK, finishWithResultOnEnd) - finish() - } - return + return Ok(Unit) } - object : GitOperation(getRepositoryDirectory(), this@commitChange) { + return object : GitOperation(this@commitChange) { override val commands = arrayOf( // Stage all files git.add().addFilepattern("."), @@ -128,14 +124,9 @@ suspend fun FragmentActivity.commitChange( git.commit().setAll(true).setMessage(message), ) - override suspend fun execute() { - d { "Comitting with message: '$message'" } - GitCommandExecutor( - this@commitChange, - this, - finishWithResultOnEnd, - finishActivityOnEnd, - ).execute() + override fun preExecute(): Boolean { + d { "Committing with message: '$message'" } + return true } }.execute() } diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/Result.kt b/app/src/main/java/com/zeapo/pwdstore/utils/Result.kt deleted file mode 100644 index d152cba6..00000000 --- a/app/src/main/java/com/zeapo/pwdstore/utils/Result.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. - * SPDX-License-Identifier: GPL-3.0-only - */ - -package com.zeapo.pwdstore.utils - -/** - * Emulates the Rust Result enum but without returning a value in the [Ok] case. - * https://doc.rust-lang.org/std/result/enum.Result.html - */ -sealed class Result { - - object Ok : Result() - data class Err(val err: Exception) : Result() -} -- cgit v1.2.3