mirror of
https://github.com/nextcloud/android.git
synced 2024-11-23 13:45:35 +03:00
Uploads delayed for Wifi processed as any other upload -> notifications sent, uploads view refreshed correctly
This commit is contained in:
parent
94aaff3af8
commit
163e9e7bbe
2 changed files with 37 additions and 49 deletions
|
@ -51,7 +51,6 @@ import com.owncloud.android.datamodel.OCFile;
|
|||
import com.owncloud.android.datamodel.UploadsStorageManager;
|
||||
import com.owncloud.android.datamodel.UploadsStorageManager.UploadStatus;
|
||||
import com.owncloud.android.db.OCUpload;
|
||||
import com.owncloud.android.db.PreferenceReader;
|
||||
import com.owncloud.android.db.UploadResult;
|
||||
import com.owncloud.android.lib.common.OwnCloudAccount;
|
||||
import com.owncloud.android.lib.common.OwnCloudClient;
|
||||
|
@ -67,7 +66,6 @@ import com.owncloud.android.notifications.NotificationDelayer;
|
|||
import com.owncloud.android.operations.UploadFileOperation;
|
||||
import com.owncloud.android.ui.activity.FileActivity;
|
||||
import com.owncloud.android.ui.activity.UploadListActivity;
|
||||
import com.owncloud.android.utils.ConnectivityUtils;
|
||||
import com.owncloud.android.utils.ErrorMessageAdapter;
|
||||
|
||||
import java.util.AbstractList;
|
||||
|
@ -888,11 +886,6 @@ public class FileUploader extends Service
|
|||
return;
|
||||
}
|
||||
|
||||
/// Check that connectivity conditions are met and delayes the upload otherwise
|
||||
if (delayForWifi()) {
|
||||
return;
|
||||
}
|
||||
|
||||
/// OK, let's upload
|
||||
mUploadsStorageManager.updateDatabaseUploadStart(mCurrentUpload);
|
||||
|
||||
|
@ -955,40 +948,6 @@ public class FileUploader extends Service
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checks origin of current upload and network type to decide if should be delayed, according to
|
||||
* current user preferences.
|
||||
*
|
||||
* @return 'True' if the upload was delayed until WiFi connectivity is available, 'false' otherwise.
|
||||
*/
|
||||
private boolean delayForWifi() {
|
||||
|
||||
boolean delayInstantPicture = (
|
||||
mCurrentUpload.isInstantPicture() &&
|
||||
PreferenceReader.instantPictureUploadViaWiFiOnly(this)
|
||||
);
|
||||
boolean delayInstantVideo = (mCurrentUpload.isInstantVideo() &&
|
||||
PreferenceReader.instantVideoUploadViaWiFiOnly(this)
|
||||
);
|
||||
if ((delayInstantPicture || delayInstantVideo) &&
|
||||
!ConnectivityUtils.isAppConnectedViaWiFi(this)) {
|
||||
|
||||
Log_OC.d(TAG, "Upload delayed until WiFi is available: " + mCurrentUpload.getRemotePath());
|
||||
mPendingUploads.removePayload(
|
||||
mCurrentUpload.getAccount().name,
|
||||
mCurrentUpload.getRemotePath()
|
||||
);
|
||||
mUploadsStorageManager.updateDatabaseUploadResult(
|
||||
new RemoteOperationResult(ResultCode.DELAYED_FOR_WIFI),
|
||||
mCurrentUpload
|
||||
);
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates a status notification to show the upload progress
|
||||
*
|
||||
|
@ -1006,8 +965,8 @@ public class FileUploader extends Service
|
|||
.setContentTitle(getString(R.string.uploader_upload_in_progress_ticker))
|
||||
.setProgress(100, 0, false)
|
||||
.setContentText(
|
||||
String.format(getString(R.string.uploader_upload_in_progress_content), 0, upload.getFileName
|
||||
()));
|
||||
String.format(getString(R.string.uploader_upload_in_progress_content), 0, upload.getFileName())
|
||||
);
|
||||
|
||||
/// includes a pending intent in the notification showing the details
|
||||
Intent showUploadListIntent = new Intent(this, UploadListActivity.class);
|
||||
|
|
|
@ -27,6 +27,7 @@ import android.net.Uri;
|
|||
import com.owncloud.android.datamodel.FileDataStorageManager;
|
||||
import com.owncloud.android.datamodel.OCFile;
|
||||
import com.owncloud.android.db.OCUpload;
|
||||
import com.owncloud.android.db.PreferenceReader;
|
||||
import com.owncloud.android.files.services.FileUploader;
|
||||
import com.owncloud.android.lib.common.OwnCloudClient;
|
||||
import com.owncloud.android.lib.common.network.OnDatatransferProgressListener;
|
||||
|
@ -42,6 +43,7 @@ import com.owncloud.android.lib.resources.files.ReadRemoteFileOperation;
|
|||
import com.owncloud.android.lib.resources.files.RemoteFile;
|
||||
import com.owncloud.android.lib.resources.files.UploadRemoteFileOperation;
|
||||
import com.owncloud.android.operations.common.SyncOperation;
|
||||
import com.owncloud.android.utils.ConnectivityUtils;
|
||||
import com.owncloud.android.utils.FileStorageUtils;
|
||||
import com.owncloud.android.utils.MimetypeIconUtil;
|
||||
import com.owncloud.android.utils.UriUtils;
|
||||
|
@ -338,13 +340,20 @@ public class UploadFileOperation extends SyncOperation {
|
|||
RemoteOperationResult result = null;
|
||||
File temporalFile = null, originalFile = new File(mOriginalStoragePath), expectedFile = null;
|
||||
|
||||
// check if the file continues existing before schedule the operation
|
||||
if (!originalFile.exists()) {
|
||||
Log_OC.d(TAG, mOriginalStoragePath.toString() + " not exists anymore");
|
||||
return new RemoteOperationResult(ResultCode.LOCAL_FILE_NOT_FOUND);
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
/// Check that connectivity conditions are met and delays the upload otherwise
|
||||
if (delayForWifi()) {
|
||||
Log_OC.d(TAG, "Upload delayed until WiFi is available: " + getRemotePath());
|
||||
return new RemoteOperationResult(ResultCode.DELAYED_FOR_WIFI);
|
||||
}
|
||||
|
||||
/// check if the file continues existing before schedule the operation
|
||||
if (!originalFile.exists()) {
|
||||
Log_OC.d(TAG, mOriginalStoragePath.toString() + " not exists anymore");
|
||||
return new RemoteOperationResult(ResultCode.LOCAL_FILE_NOT_FOUND);
|
||||
}
|
||||
|
||||
/// check the existence of the parent folder for the file to upload
|
||||
String remoteParentPath = new File(getRemotePath()).getParent();
|
||||
remoteParentPath = remoteParentPath.endsWith(OCFile.PATH_SEPARATOR) ?
|
||||
|
@ -482,6 +491,26 @@ public class UploadFileOperation extends SyncOperation {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checks origin of current upload and network type to decide if should be delayed, according to
|
||||
* current user preferences.
|
||||
*
|
||||
* @return 'True' if the upload was delayed until WiFi connectivity is available, 'false' otherwise.
|
||||
*/
|
||||
private boolean delayForWifi() {
|
||||
boolean delayInstantPicture = (
|
||||
isInstantPicture() && PreferenceReader.instantPictureUploadViaWiFiOnly(mContext)
|
||||
);
|
||||
boolean delayInstantVideo = (
|
||||
isInstantVideo() && PreferenceReader.instantVideoUploadViaWiFiOnly(mContext)
|
||||
);
|
||||
return (
|
||||
(delayInstantPicture || delayInstantVideo) &&
|
||||
!ConnectivityUtils.isAppConnectedViaWiFi(mContext)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checks the existence of the folder where the current file will be uploaded both
|
||||
* in the remote server and in the local database.
|
||||
|
|
Loading…
Reference in a new issue