Skip to content

Commit d66919e

Browse files
committed
add debounce
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
1 parent 28f3d00 commit d66919e

2 files changed

Lines changed: 18 additions & 8 deletions

File tree

app/src/main/java/com/nextcloud/ui/component/UploadWarningCard.kt

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import android.content.Context
1313
import android.content.Intent
1414
import android.content.IntentFilter
1515
import android.os.PowerManager
16+
import android.os.SystemClock
1617
import android.provider.Settings
1718
import android.view.View
1819
import androidx.core.net.toUri
@@ -25,6 +26,7 @@ import com.owncloud.android.datamodel.SyncedFolderProvider
2526
import com.owncloud.android.utils.DisplayUtils
2627
import com.owncloud.android.utils.FilesSyncHelper
2728
import com.owncloud.android.utils.theme.ViewThemeUtils
29+
import java.util.concurrent.TimeUnit
2830

2931
class UploadWarningCard(
3032
private val context: Context,
@@ -110,20 +112,28 @@ class UploadWarningCard(
110112
}
111113

112114
private fun startAutoUploadViaIgnoringBatteryOptimization(view: View) {
113-
val startedFolderCount = FilesSyncHelper.startAutoUploadForEnabledSyncedFolders(
115+
val now = SystemClock.elapsedRealtime()
116+
if (now - lastSyncNowTime < SYNC_NOW_COOLDOWN_MS) {
117+
DisplayUtils.showSnackMessage(view, R.string.auto_upload_sync_now_min_warning)
118+
return
119+
}
120+
121+
FilesSyncHelper.startAutoUploadForEnabledSyncedFolders(
114122
syncedFolderProvider,
115123
backgroundJobManager,
116124
overridePowerSaving = true
117125
)
118126

119127
backgroundJobManager.scheduleContentObserverJob(overridePowerSaving = true)
120128

121-
val message = if (startedFolderCount > 0) {
122-
R.string.auto_upload_sync_now_started
123-
} else {
124-
R.string.auto_upload_sync_now_no_folder
125-
}
129+
lastSyncNowTime = now
130+
131+
DisplayUtils.showSnackMessage(view, R.string.auto_upload_sync_now_started)
132+
}
126133

127-
DisplayUtils.showSnackMessage(view, message)
134+
companion object {
135+
private val SYNC_NOW_COOLDOWN_MS = TimeUnit.MINUTES.toMillis(SYNC_NOW_COOLDOWN_MINUTES)
136+
private const val SYNC_NOW_COOLDOWN_MINUTES = 5L
137+
private var lastSyncNowTime = 0L
128138
}
129139
}

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1502,7 +1502,7 @@
15021502
<string name="auto_upload_background_activity_action">Allow background activity</string>
15031503
<string name="auto_upload_sync_now_action">Sync now</string>
15041504
<string name="auto_upload_sync_now_started">Auto upload started</string>
1505-
<string name="auto_upload_sync_now_no_folder">No auto upload folder is enabled</string>
1505+
<string name="auto_upload_sync_now_min_warning">Auto upload was started recently, please try again later.</string>
15061506
<string name="auto_upload_delete_dialog_description">This will remove the folder and auto-upload configuration. Any unfinished uploads will be canceled.</string>
15071507
<string name="auto_upload_sub_folder_warning">This folder is already included in the parent folder’s sync, which may cause duplicate uploads</string>
15081508
<string name="sync_anyway">Sync anyway</string>

0 commit comments

Comments
 (0)