Skip to content

Commit c12cef1

Browse files
committed
fix file detection
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
1 parent 03c3f4b commit c12cef1

File tree

7 files changed

+24
-13
lines changed

7 files changed

+24
-13
lines changed

app/src/main/java/com/nextcloud/client/database/dao/FileSystemDao.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,16 @@ interface FileSystemDao {
6666
"""
6767
)
6868
fun getFileByPathAndFolder(localPath: String, syncedFolderId: String): FilesystemEntity?
69+
70+
@Query(
71+
"""
72+
SELECT COUNT(*) > 0
73+
FROM ${ProviderMeta.ProviderTableMeta.FILESYSTEM_TABLE_NAME}
74+
WHERE ${ProviderMeta.ProviderTableMeta.FILESYSTEM_SYNCED_FOLDER_ID} = :syncedFolderId
75+
AND ${ProviderMeta.ProviderTableMeta.FILESYSTEM_FILE_SENT_FOR_UPLOAD} = 0
76+
AND ${ProviderMeta.ProviderTableMeta.FILESYSTEM_FILE_IS_FOLDER} = 0
77+
LIMIT 1
78+
"""
79+
)
80+
suspend fun hasPendingFiles(syncedFolderId: String): Boolean
6981
}

app/src/main/java/com/nextcloud/client/jobs/BackgroundJobFactory.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,6 @@ class BackgroundJobFactory @Inject constructor(
182182
connectivityService = connectivityService,
183183
powerManagementService = powerManagementService,
184184
syncedFolderProvider = syncedFolderProvider,
185-
backgroundJobManager = backgroundJobManager.get(),
186185
repository = FileSystemRepository(dao = database.fileSystemDao(), uploadsStorageManager, context),
187186
viewThemeUtils = viewThemeUtils.get(),
188187
localBroadcastManager = localBroadcastManager.get()

app/src/main/java/com/nextcloud/client/jobs/BackgroundJobManager.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,10 +120,7 @@ interface BackgroundJobManager {
120120

121121
fun startImmediateFilesExportJob(files: Collection<OCFile>): LiveData<JobInfo?>
122122

123-
fun startAutoUpload(
124-
syncedFolder: SyncedFolder,
125-
overridePowerSaving: Boolean = false
126-
)
123+
fun startAutoUpload(syncedFolder: SyncedFolder, overridePowerSaving: Boolean = false)
127124

128125
fun cancelTwoWaySyncJob()
129126

app/src/main/java/com/nextcloud/client/jobs/BackgroundJobManagerImpl.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -474,10 +474,7 @@ internal class BackgroundJobManagerImpl(
474474
)
475475
}
476476

477-
override fun startAutoUpload(
478-
syncedFolder: SyncedFolder,
479-
overridePowerSaving: Boolean
480-
) {
477+
override fun startAutoUpload(syncedFolder: SyncedFolder, overridePowerSaving: Boolean) {
481478
val syncedFolderID = syncedFolder.id
482479

483480
val arguments = Data.Builder()

app/src/main/java/com/nextcloud/client/jobs/ContentObserverWork.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import kotlinx.coroutines.withContext
2424
* It fires media detection worker and auto upload worker and finishes immediately.
2525
*
2626
*/
27-
@Suppress("TooGenericExceptionCaught")
27+
@Suppress("TooGenericExceptionCaught", "LongParameterList")
2828
class ContentObserverWork(
2929
context: Context,
3030
private val params: WorkerParameters,

app/src/main/java/com/nextcloud/client/jobs/autoUpload/AutoUploadWorker.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ class AutoUploadWorker(
5858
private val connectivityService: ConnectivityService,
5959
private val powerManagementService: PowerManagementService,
6060
private val syncedFolderProvider: SyncedFolderProvider,
61-
private val backgroundJobManager: BackgroundJobManager,
6261
private val repository: FileSystemRepository,
6362
val viewThemeUtils: ViewThemeUtils,
6463
localBroadcastManager: LocalBroadcastManager
@@ -85,7 +84,6 @@ class AutoUploadWorker(
8584

8685
Log_OC.d(TAG, syncedFolder.getLog())
8786

88-
8987
if (canExitEarly(syncFolderId)) {
9088
return Result.success()
9189
}
@@ -171,7 +169,7 @@ class AutoUploadWorker(
171169
}
172170

173171
@Suppress("ReturnCount")
174-
private fun canExitEarly(syncedFolderID: Long): Boolean {
172+
private suspend fun canExitEarly(syncedFolderID: Long): Boolean {
175173
val overridePowerSaving = inputData.getBoolean(OVERRIDE_POWER_SAVING, false)
176174
if ((powerManagementService.isPowerSavingEnabled && !overridePowerSaving)) {
177175
Log_OC.w(TAG, "⚡ Skipping: device is in power saving mode")
@@ -183,6 +181,12 @@ class AutoUploadWorker(
183181
return true
184182
}
185183

184+
val hasPendingFiles = repository.hasPendingFiles(syncedFolder)
185+
if (hasPendingFiles) {
186+
Log_OC.d(TAG, "pending files found, starting...")
187+
return false
188+
}
189+
186190
val totalScanInterval = syncedFolder.getTotalScanInterval(connectivityService, powerManagementService)
187191
val currentTime = System.currentTimeMillis()
188192
val passedScanInterval = totalScanInterval <= currentTime

app/src/main/java/com/nextcloud/client/jobs/autoUpload/FileSystemRepository.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ class FileSystemRepository(
4646
dao.delete(entity)
4747
}
4848

49+
suspend fun hasPendingFiles(syncedFolder: SyncedFolder): Boolean = dao.hasPendingFiles(syncedFolder.id.toString())
50+
4951
suspend fun deleteByLocalPathAndId(path: String, id: Int) {
5052
dao.deleteByLocalPathAndId(path, id)
5153
}

0 commit comments

Comments
 (0)