|
@@ -33,6 +33,7 @@ import android.provider.MediaStore;
|
|
|
|
|
|
import com.nextcloud.client.account.UserAccountManager;
|
|
import com.nextcloud.client.account.UserAccountManager;
|
|
import com.nextcloud.client.core.Clock;
|
|
import com.nextcloud.client.core.Clock;
|
|
|
|
+import com.nextcloud.client.device.BatteryStatus;
|
|
import com.nextcloud.client.device.PowerManagementService;
|
|
import com.nextcloud.client.device.PowerManagementService;
|
|
import com.nextcloud.client.jobs.BackgroundJobManager;
|
|
import com.nextcloud.client.jobs.BackgroundJobManager;
|
|
import com.nextcloud.client.network.ConnectivityService;
|
|
import com.nextcloud.client.network.ConnectivityService;
|
|
@@ -185,10 +186,20 @@ public final class FilesSyncHelper {
|
|
|
|
|
|
boolean accountExists;
|
|
boolean accountExists;
|
|
|
|
|
|
|
|
+ boolean whileChargingOnly = true;
|
|
|
|
+ boolean useWifiOnly = true;
|
|
|
|
+
|
|
OCUpload[] failedUploads = uploadsStorageManager.getFailedUploads();
|
|
OCUpload[] failedUploads = uploadsStorageManager.getFailedUploads();
|
|
|
|
|
|
for (OCUpload failedUpload : failedUploads) {
|
|
for (OCUpload failedUpload : failedUploads) {
|
|
accountExists = false;
|
|
accountExists = false;
|
|
|
|
+ if(!failedUpload.isWhileChargingOnly()){
|
|
|
|
+ whileChargingOnly = false;
|
|
|
|
+ }
|
|
|
|
+ if(!failedUpload.isUseWifiOnly())
|
|
|
|
+ {
|
|
|
|
+ useWifiOnly = false;
|
|
|
|
+ }
|
|
|
|
|
|
// check if accounts still exists
|
|
// check if accounts still exists
|
|
for (Account account : accountManager.getAccounts()) {
|
|
for (Account account : accountManager.getAccounts()) {
|
|
@@ -203,6 +214,27 @@ public final class FilesSyncHelper {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ failedUploads = uploadsStorageManager.getFailedUploads();
|
|
|
|
+ if(failedUploads.length == 0)
|
|
|
|
+ {
|
|
|
|
+ //nothing to do
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(whileChargingOnly){
|
|
|
|
+ final BatteryStatus batteryStatus = powerManagementService.getBattery();
|
|
|
|
+ final boolean charging = batteryStatus.isCharging() || batteryStatus.isFull();
|
|
|
|
+ if(!charging){
|
|
|
|
+ //all uploads requires charging
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (useWifiOnly && !connectivityService.getConnectivity().isWifi()){
|
|
|
|
+ //all uploads requires wifi
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
new Thread(() -> {
|
|
new Thread(() -> {
|
|
if (connectivityService.getConnectivity().isConnected() && !connectivityService.isInternetWalled()) {
|
|
if (connectivityService.getConnectivity().isConnected() && !connectivityService.isInternetWalled()) {
|
|
FileUploader.retryFailedUploads(
|
|
FileUploader.retryFailedUploads(
|