From 2ffd1abb279bb0e1a8895ef26b805a1a1651516c Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sun, 16 Aug 2020 02:16:02 +0530 Subject: Fix external storage UX (#1022) * build: update to Kotlin 1.4 Signed-off-by: Harsh Shandilya * UserPreference: finish if directory selection was triggered from an intent Signed-off-by: Harsh Shandilya * PasswordStore: switch permission request to ActivityResultContracts Signed-off-by: Harsh Shandilya * PasswordStore: fix activity reference Signed-off-by: Harsh Shandilya * GitOperationActivity: make invalid values more obvious Would have caught this issue much sooner if I had just done this Fixes: 3d8cea596600 ("Improve permission handling logic (#732)") Signed-off-by: Harsh Shandilya * Assorted collection of hackery to make external storage use palatable Signed-off-by: Harsh Shandilya * Update changelog Signed-off-by: Harsh Shandilya --- .../java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt') diff --git a/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt b/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt index 4d744821..82e97e17 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt @@ -17,9 +17,12 @@ import com.zeapo.pwdstore.git.config.ConnectionMode import com.zeapo.pwdstore.git.config.GitSettings import com.zeapo.pwdstore.git.config.Protocol import com.zeapo.pwdstore.utils.PasswordRepository +import com.zeapo.pwdstore.utils.snackbar import com.zeapo.pwdstore.utils.viewBinding import java.io.IOException +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext /** * Activity that encompasses both the initial clone as well as editing the server config for future @@ -125,8 +128,14 @@ class GitServerConfigActivity : BaseGitActivity() { .setCancelable(false) .setPositiveButton(R.string.dialog_delete) { dialog, _ -> try { - localDir.deleteRecursively() - lifecycleScope.launch { launchGitOperation(REQUEST_CLONE) } + lifecycleScope.launch { + val snackbar = snackbar(message = getString(R.string.delete_directory_progress_text), length = Snackbar.LENGTH_INDEFINITE) + withContext(Dispatchers.IO) { + localDir.deleteRecursively() + } + snackbar.dismiss() + launchGitOperation(REQUEST_CLONE) + } } catch (e: IOException) { // TODO Handle the exception correctly if we are unable to delete the directory... e.printStackTrace() -- cgit v1.2.3