From c9c4241406805524c9a26981632bfe693330a5d2 Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Thu, 12 Mar 2026 13:16:14 +0100 Subject: [PATCH] fix(auto-upload): instant directory scan Signed-off-by: alperozturk96 --- .../com/nextcloud/client/jobs/BackgroundJobFactory.kt | 9 ++++++--- .../com/nextcloud/client/jobs/ContentObserverWork.kt | 1 + .../nextcloud/client/jobs/autoUpload/AutoUploadWorker.kt | 5 ++++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/nextcloud/client/jobs/BackgroundJobFactory.kt b/app/src/main/java/com/nextcloud/client/jobs/BackgroundJobFactory.kt index 8ca9ac512cdd..a5a1a7f8ab35 100644 --- a/app/src/main/java/com/nextcloud/client/jobs/BackgroundJobFactory.kt +++ b/app/src/main/java/com/nextcloud/client/jobs/BackgroundJobFactory.kt @@ -88,7 +88,7 @@ class BackgroundJobFactory @Inject constructor( when (workerClass) { ContactsBackupWork::class -> createContactsBackupWork(context, workerParameters) ContactsImportWork::class -> createContactsImportWork(context, workerParameters) - AutoUploadWorker::class -> createFilesSyncWork(context, workerParameters) + AutoUploadWorker::class -> createAutoUploadWorker(context, workerParameters) OfflineSyncWork::class -> createOfflineSyncWork(context, workerParameters) MediaFoldersDetectionWork::class -> createMediaFoldersDetectionWork(context, workerParameters) NotificationWork::class -> createNotificationWork(context, workerParameters) @@ -174,7 +174,7 @@ class BackgroundJobFactory @Inject constructor( contentResolver ) - private fun createFilesSyncWork(context: Context, params: WorkerParameters): AutoUploadWorker = AutoUploadWorker( + private fun createAutoUploadWorker(context: Context, params: WorkerParameters): AutoUploadWorker = AutoUploadWorker( context = context, params = params, userAccountManager = accountManager, @@ -184,7 +184,10 @@ class BackgroundJobFactory @Inject constructor( syncedFolderProvider = syncedFolderProvider, repository = FileSystemRepository(dao = database.fileSystemDao(), uploadsStorageManager, context), viewThemeUtils = viewThemeUtils.get(), - localBroadcastManager = localBroadcastManager.get() + localBroadcastManager = localBroadcastManager.get(), + autoUploadHelper = AutoUploadHelper( + FileSystemRepository(dao = database.fileSystemDao(), uploadsStorageManager, context) + ) ) private fun createOfflineSyncWork(context: Context, params: WorkerParameters): OfflineSyncWork = OfflineSyncWork( diff --git a/app/src/main/java/com/nextcloud/client/jobs/ContentObserverWork.kt b/app/src/main/java/com/nextcloud/client/jobs/ContentObserverWork.kt index 35ef582ec71b..214b85239b43 100644 --- a/app/src/main/java/com/nextcloud/client/jobs/ContentObserverWork.kt +++ b/app/src/main/java/com/nextcloud/client/jobs/ContentObserverWork.kt @@ -90,6 +90,7 @@ class ContentObserverWork( Log_OC.d(TAG, "📄 Content uris detected") + // insert entries based on content uris try { syncedFolderProvider.syncedFolders .filter { it.isEnabled } diff --git a/app/src/main/java/com/nextcloud/client/jobs/autoUpload/AutoUploadWorker.kt b/app/src/main/java/com/nextcloud/client/jobs/autoUpload/AutoUploadWorker.kt index 3e7ae41a9396..e174365a4a9e 100644 --- a/app/src/main/java/com/nextcloud/client/jobs/autoUpload/AutoUploadWorker.kt +++ b/app/src/main/java/com/nextcloud/client/jobs/autoUpload/AutoUploadWorker.kt @@ -62,7 +62,8 @@ class AutoUploadWorker( private val syncedFolderProvider: SyncedFolderProvider, private val repository: FileSystemRepository, val viewThemeUtils: ViewThemeUtils, - localBroadcastManager: LocalBroadcastManager + localBroadcastManager: LocalBroadcastManager, + private val autoUploadHelper: AutoUploadHelper ) : CoroutineWorker(context, params) { companion object { @@ -97,6 +98,8 @@ class AutoUploadWorker( Log_OC.w(TAG, "power saving mode enabled") } + // insert entries based on selected local storage path + autoUploadHelper.insertEntries(syncedFolder) uploadFiles(syncedFolder) // only update last scan time after uploading files