From 2efc38454b03e6b79e8e078efa5f4460c1f9e15e Mon Sep 17 00:00:00 2001 From: Julian Raufelder Date: Tue, 5 Oct 2021 01:06:23 +0200 Subject: [PATCH] Upload instantly when auto upload enabled and vault unlocked (#181) --- .../org/cryptomator/presentation/CryptomatorApp.kt | 11 +++++++++++ .../presentation/service/AutoUploadService.java | 2 +- .../presentation/service/PhotoContentJob.kt | 9 +++++++++ presentation/src/main/res/values/strings.xml | 2 ++ presentation/src/main/res/xml/preferences.xml | 6 ++++++ .../cryptomator/util/SharedPreferencesHandler.kt | 13 +++++++++---- 6 files changed, 38 insertions(+), 5 deletions(-) diff --git a/presentation/src/main/java/org/cryptomator/presentation/CryptomatorApp.kt b/presentation/src/main/java/org/cryptomator/presentation/CryptomatorApp.kt index 630b07bc..120870fc 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/CryptomatorApp.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/CryptomatorApp.kt @@ -120,6 +120,17 @@ class CryptomatorApp : MultiDexApplication(), HasComponent }, BIND_AUTO_CREATE) } + fun startAutoUpload() { + val sharedPreferencesHandler = SharedPreferencesHandler(applicationContext()) + if(sharedPreferencesHandler.usePhotoUpload()) { + val vault = applicationComponent.vaultRepository().load(sharedPreferencesHandler.photoUploadVault()) + if(vault.isUnlocked) { + val cloud = applicationComponent.cloudRepository().decryptedViewOf(vault) + applicationContext().startService(AutoUploadService.startAutoUploadIntent(applicationContext(), cloud)) + } + } + } + private fun setupLogging() { setupLoggingFramework() setup() diff --git a/presentation/src/main/java/org/cryptomator/presentation/service/AutoUploadService.java b/presentation/src/main/java/org/cryptomator/presentation/service/AutoUploadService.java index a56c9050..452934c7 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/service/AutoUploadService.java +++ b/presentation/src/main/java/org/cryptomator/presentation/service/AutoUploadService.java @@ -212,7 +212,7 @@ public class AutoUploadService extends Service { public void onCreate() { super.onCreate(); Timber.tag("AutoUploadService").d("created"); - notification = new AutoUploadNotification(this, 5); + notification = new AutoUploadNotification(this, 0); } @Override diff --git a/presentation/src/main/java/org/cryptomator/presentation/service/PhotoContentJob.kt b/presentation/src/main/java/org/cryptomator/presentation/service/PhotoContentJob.kt index f70972bb..d9d1e929 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/service/PhotoContentJob.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/service/PhotoContentJob.kt @@ -13,6 +13,7 @@ import android.net.Uri import android.os.Handler import android.provider.MediaStore import org.cryptomator.domain.exception.FatalBackendException +import org.cryptomator.presentation.CryptomatorApp import org.cryptomator.presentation.R import org.cryptomator.presentation.util.FileUtil import org.cryptomator.presentation.util.ResourceHelper @@ -38,6 +39,8 @@ class PhotoContentJob : JobService() { runningParams = params + var filesCaptured = false + params.triggeredContentAuthorities?.let { if (params.triggeredContentUris != null) { val ids = getIds(params) @@ -49,6 +52,8 @@ class PhotoContentJob : JobService() { fileUtil.addImageToAutoUploads(dir) Timber.tag("PhotoContentJob").i("Added file to UploadList") Timber.tag("PhotoContentJob").d(String.format("Added file to UploadList %s", dir)) + + filesCaptured = true } catch (e: FatalBackendException) { Timber.tag("PhotoContentJob").e(e, "Failed to add image to auto upload list") } catch (e: SecurityException) { @@ -65,6 +70,10 @@ class PhotoContentJob : JobService() { } } ?: Timber.tag("PhotoContentJob").w("No photos content") + if(filesCaptured && SharedPreferencesHandler(applicationContext).usePhotoUploadInstant()) { + (application as CryptomatorApp).startAutoUpload() + } + handler.post(worker) return false } diff --git a/presentation/src/main/res/values/strings.xml b/presentation/src/main/res/values/strings.xml index 6fb9018d..8a87b0b0 100644 --- a/presentation/src/main/res/values/strings.xml +++ b/presentation/src/main/res/values/strings.xml @@ -244,6 +244,8 @@ Choose vault for upload Activate Capture images in the background and once the selected vault is unlocked, start upload + Upload instant + Upload directly if the vault is unlocked Upload only using WIFI Upload videos diff --git a/presentation/src/main/res/xml/preferences.xml b/presentation/src/main/res/xml/preferences.xml index c1c98343..be07dbd7 100644 --- a/presentation/src/main/res/xml/preferences.xml +++ b/presentation/src/main/res/xml/preferences.xml @@ -105,6 +105,12 @@ android:summary="@string/screen_settings_section_auto_photo_upload_toggle_summary" android:title="@string/screen_settings_section_auto_photo_upload_toggle" /> + +