Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0eff79bb authored by Vincent Bourgmayer's avatar Vincent Bourgmayer
Browse files

Use DownloadRequest and syncRequest

- ObserverService: Replace DownloadFileOperation instanciation by DownloadRequest
- ObserverService: Replace RemoveFileOperation instanciation by SyncRequest
- OperationManagerService: Create DownloadFileOperation from DownloadRequest
- OperationManagerService: skip Remote deletion request for now accordingly to discussion with PO
parent 1d4e044f
Loading
Loading
Loading
Loading
Loading
+5 −9
Original line number Diff line number Diff line
@@ -39,13 +39,12 @@ import foundation.e.drive.database.DbHelper;
import foundation.e.drive.fileFilters.CrashlogsFileFilter;
import foundation.e.drive.fileFilters.FileFilterFactory;
import foundation.e.drive.fileFilters.OnlyFileFilter;
import foundation.e.drive.models.DownloadRequest;
import foundation.e.drive.models.SyncRequest;
import foundation.e.drive.models.SyncedFolder;
import foundation.e.drive.models.SyncedFileState;
import foundation.e.drive.operations.DownloadFileOperation;
import foundation.e.drive.operations.ListFileRemoteOperation;
import foundation.e.drive.operations.RemoveFileOperation;
import foundation.e.drive.operations.UploadFileOperation;
import foundation.e.drive.receivers.ForceSyncReceiver;
import foundation.e.drive.utils.AppConstants;
import foundation.e.drive.utils.CommonUtils;
@@ -413,9 +412,7 @@ public class ObserverService extends Service implements OnRemoteOperationListene
                        } else {
                            Log.i(TAG, "Add download operation for file "+syncedFileState.getId());


                            DownloadFileOperation downloadFileOperation = new DownloadFileOperation(remoteFile, syncedFileState);
                            this.syncRequests.put(syncedFileState.getId(), downloadFileOperation);
                            this.syncRequests.put(syncedFileState.getId(), new DownloadRequest(remoteFile, syncedFileState));
                        }
                    }
                    syncedFileListIterator.remove(); //we can delete syncedFile from list because its correspondant has already been found and handled
@@ -448,7 +445,7 @@ public class ObserverService extends Service implements OnRemoteOperationListene
                            newRemoteFile.setId(storedId);
                            Log.i(TAG, "Add download operation for new file "+storedId);
                            //Create Download operation and add it into Bundle
                            this.syncRequests.put(storedId, new DownloadFileOperation(remoteFile, newRemoteFile));
                            this.syncRequests.put(storedId, new DownloadRequest(remoteFile, newRemoteFile));

                        } else {
                            Log.w(TAG, "Can't save new remote File in DB. Ignore file.");
@@ -750,9 +747,8 @@ public class ObserverService extends Service implements OnRemoteOperationListene
                if (file.exists()){
                    Log.w(TAG, "The file still exist. There is a problem!");
                } else {
                    Log.i(TAG, "Add remove operation for file "+fileState.getId());
                    RemoveFileOperation removeOperation = new RemoveFileOperation(fileState);
                    this.syncRequests.put(fileState.getId(), removeOperation);
                    Log.i(TAG, "Add remote remove request for file "+fileState.getId());
                    this.syncRequests.put(fileState.getId(), new SyncRequest(fileState, SyncRequest.Type.REMOTE_DELETE));
                }
            }
        }
+9 −9
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import java.util.Hashtable;
import java.util.concurrent.ConcurrentLinkedDeque;

import foundation.e.drive.database.DbHelper;
import foundation.e.drive.models.DownloadRequest;
import foundation.e.drive.models.SyncRequest;
import foundation.e.drive.models.SyncedFileState;
import foundation.e.drive.operations.DownloadFileOperation;
@@ -110,17 +111,16 @@ public class SynchronizationService extends Service implements OnRemoteOperation
        if (syncedRequestQueue.isEmpty()) return;
        if (!threadWorkingState[threadIndex] && CommonUtils.haveNetworkConnexion(getApplicationContext())) { //check if the thread corresponding to threadIndex isn't already working

            SyncRequest request = this.syncedRequestQueue.poll(); //return null if deque is empty

            RemoteOperation operation = this.createRemoteOperation(request);
            final SyncRequest request = this.syncedRequestQueue.poll(); //return null if deque is empty

            final RemoteOperation operation = this.createRemoteOperation(request);

            if (operation != null) {
                Log.v(TAG, " an operation has been poll from queue");

                if (CommonUtils.isThisSyncAllowed(account, operation.isMediaType())) {
                    startedOperations.put(operation.toRemoteOperation(), threadIndex);
                    threadPool[threadIndex] = operation.toRemoteOperation().execute(client, this, handler);
                if (CommonUtils.isThisSyncAllowed(account, request.getSyncedFileState().isMediaType())) {
                    startedOperations.put(operation, threadIndex);
                    threadPool[threadIndex] = operation.execute(client, this, handler);
                    threadWorkingState[threadIndex] = true;
                }
            }
@@ -216,11 +216,11 @@ public class SynchronizationService extends Service implements OnRemoteOperation
                operation = new UploadFileOperation(sfs, sfs.isMediaType());
                break;
            case DOWNLOAD:
                operation = new DownloadFileOperation();
                final DownloadRequest downloadRequest = (DownloadRequest) request;
                operation = new DownloadFileOperation(downloadRequest.getRemoteFile(), downloadRequest.getSyncedFileState());
                break;
            case REMOTE_DELETE:
                operation = new RemoveFileOperation();
                break;
                //operation = new RemoveFileOperation();
            default:
                operation = null;
                break;