From 15aa92980239d6d61c3b0febc0407b7f63e152b3 Mon Sep 17 00:00:00 2001 From: Fabian Henneke Date: Tue, 11 Aug 2020 18:11:39 +0200 Subject: Switch to URL-based Git config and refactor Git settings (#1008) * Make Git config URL-based and refactor * Use Kotlin style null handling for string prefs * Also show an error if generated URL can't be parsed * Add some testcases for migration strategy Signed-off-by: Harsh Shandilya Co-authored-by: Harsh Shandilya --- .../com/zeapo/pwdstore/git/GitConfigActivity.kt | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 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 e84c87e1..5138b50b 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/GitConfigActivity.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/GitConfigActivity.kt @@ -7,15 +7,14 @@ package com.zeapo.pwdstore.git import android.os.Bundle import android.os.Handler import android.util.Patterns -import androidx.core.content.edit import androidx.core.os.postDelayed import androidx.lifecycle.lifecycleScope import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.snackbar.Snackbar import com.zeapo.pwdstore.R import com.zeapo.pwdstore.databinding.ActivityGitConfigBinding +import com.zeapo.pwdstore.git.config.GitSettings import com.zeapo.pwdstore.utils.PasswordRepository -import com.zeapo.pwdstore.utils.PreferenceKeys import com.zeapo.pwdstore.utils.viewBinding import kotlinx.coroutines.launch import org.eclipse.jgit.lib.Constants @@ -29,16 +28,16 @@ class GitConfigActivity : BaseGitActivity() { setContentView(binding.root) supportActionBar?.setDisplayHomeAsUpEnabled(true) - if (username.isEmpty()) + if (GitSettings.authorName.isEmpty()) binding.gitUserName.requestFocus() else - binding.gitUserName.setText(username) - binding.gitUserEmail.setText(email) + binding.gitUserName.setText(GitSettings.authorName) + binding.gitUserEmail.setText(GitSettings.authorEmail) val repo = PasswordRepository.getRepository(PasswordRepository.getRepositoryDirectory()) if (repo != null) { try { val objectId = repo.resolve(Constants.HEAD) - val ref = repo.getRef("refs/heads/$branch") + val ref = repo.getRef("refs/heads/${GitSettings.branch}") val head = if (ref.objectId.equals(objectId)) ref.name else "DETACHED" binding.gitCommitHash.text = String.format("%s (%s)", objectId.abbreviate(8).name(), head) @@ -60,12 +59,10 @@ class GitConfigActivity : BaseGitActivity() { .setPositiveButton(getString(R.string.dialog_ok), null) .show() } else { - settings.edit { - putString(PreferenceKeys.GIT_CONFIG_USER_EMAIL, email) - putString(PreferenceKeys.GIT_CONFIG_USER_NAME, name) - } - PasswordRepository.setUserName(name) - PasswordRepository.setUserEmail(email) + GitSettings.authorEmail = email + GitSettings.authorName = name + PasswordRepository.setGitAuthorEmail(email) + PasswordRepository.setGitAuthorName(name) Snackbar.make(binding.root, getString(R.string.git_server_config_save_success), Snackbar.LENGTH_SHORT).show() Handler().postDelayed(500) { finish() } } -- cgit v1.2.3