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

Commit 84818c3b authored by Vincent Bourgmayer's avatar Vincent Bourgmayer
Browse files

chore: add debug & comment at many place in the code

parent 16537346
Loading
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ class FullScanWorker(private val context: Context, private val workerParams: Wor
    }

    override fun doWork(): Result {
        Timber.d("Fahim: FullScanWorker.doWork()")
        try {
            val requestCollector: SyncRequestCollector = SyncProxy

@@ -58,27 +59,31 @@ class FullScanWorker(private val context: Context, private val workerParams: Wor
                return Result.failure()
            }

            // Get list of syncable folders from Database
            val syncFolders = loadSyncedFolders(account!!)
            if (syncFolders.isEmpty()) {
                requestCollector.startListeningFiles(applicationContext as Application)
                return Result.success()
            }


            //Run scanning process for remote files
            val remoteSyncRequests = scanRemoteFiles(account, syncFolders.toMutableList())
            syncRequests.putAll(remoteSyncRequests)

            Timber.d("${remoteSyncRequests.size} request collected from cloud")
            Timber.d("Fahim: ${remoteSyncRequests.size} request collected from cloud")

            //Run scanning process for local files
            val localSyncRequests = scanLocalFiles(syncFolders.toMutableList())
            syncRequests.putAll(localSyncRequests)
            Timber.d("${localSyncRequests.size} request collected from device")
            Timber.d("Fahim: ${localSyncRequests.size} request collected from device")

            prefs.edit()
                .putLong(KEY_LAST_SCAN_TIME, System.currentTimeMillis())
                .apply();

            if (syncRequests.isEmpty()) {
                Timber.d("Nothing to sync")
                Timber.d("Fahim: FullScanWorker.doWork(): Nothing to sync")
                requestCollector.startListeningFiles(applicationContext as Application)
                return Result.success()
            }
@@ -184,6 +189,7 @@ class FullScanWorker(private val context: Context, private val workerParams: Wor
     * generate SyncRequest for files on the cloud
     */
    private fun scanRemoteFiles(account: Account, syncedFolders: List<SyncedFolder>): HashMap<Int, SyncRequest> {
        Timber.d("--> Fahim: FullScanWorker.scanRemoteFiles")
        val ocClient = DavClientProvider.getInstance().getClientInstance(account, context)?: return HashMap()
        val listRemoteFilesOperation =
            ListFileRemoteOperation(
@@ -193,6 +199,7 @@ class FullScanWorker(private val context: Context, private val workerParams: Wor

        try {
            @Suppress("DEPRECATION")
            //List all files from remote Folder
            val result = listRemoteFilesOperation.execute(ocClient) as RemoteOperationResult<ArrayList<RemoteFile>>
            if (!result.isSuccess) {
                Timber.d("Fails to check remote files")
+2 −0
Original line number Diff line number Diff line
@@ -52,6 +52,8 @@ public class ListFileRemoteOperation extends RemoteOperation<ArrayList<RemoteFil
    @Override
    @NonNull
    protected RemoteOperationResult<ArrayList<RemoteFile>> run(@NonNull OwnCloudClient ownCloudClient) {
        Timber.d("---->  Fahim: ListFileRemoteOperation.run()");

        final RemoteFileLister fileLister = new RemoteFileLister(syncedFolders, ownCloudClient);
        final boolean isContentToScan = fileLister.listContentToScan(context);

+2 −1
Original line number Diff line number Diff line
@@ -39,12 +39,13 @@ public class PeriodicScanWorker extends Worker {
    @NonNull
    @Override
    public Result doWork() {
        Timber.d("Fahim: PeriodicScanWorker: doWork() ");
        try {
            final WorkManager workManager = WorkManager.getInstance(getApplicationContext());
            final WorkRequestFactory workRequestFactory = WorkRequestFactory.INSTANCE;

            final List<OneTimeWorkRequest> workRequestsLists = new ArrayList<>();
            workRequestsLists.add(workRequestFactory.createOneTimeWorkRequest(OneTimeWorkType.LIST_APPS, null));
            //workRequestsLists.add(workRequestFactory.createOneTimeWorkRequest(OneTimeWorkType.LIST_APPS, null));
            workRequestsLists.add(workRequestFactory.createOneTimeWorkRequest(OneTimeWorkType.FULL_SCAN, null));

            workManager.beginUniqueWork(FullScanWorker.UNIQUE_WORK_NAME, ExistingWorkPolicy.KEEP, workRequestsLists)
+23 −2
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.owncloud.android.lib.resources.files.FileUtils;
import com.owncloud.android.lib.resources.files.model.RemoteFile;

import java.util.ArrayList;
import java.util.List;
@@ -92,16 +93,20 @@ public abstract class AbstractFileLister <T> {
     * @return
     */
    public boolean listContentToScan(@NonNull Context context) {
        //List files that need to be synchronized
        final ListIterator<SyncedFolder> iterator = folders.listIterator() ;
        boolean isSomeContentToSync = false;
        //Loop over synced folder
        while (iterator.hasNext()) {
            final SyncedFolder syncedFolder = iterator.next();
            if (syncedFolder == null) continue;
            Timber.v("SyncedFolder : %s, %s, %s, %s, %s", syncedFolder.getLibelle(), syncedFolder.getLocalFolder(), syncedFolder.getLastModified(), syncedFolder.isScanLocal(), syncedFolder.getId());
            //check if the given synced Folder need to be synced or has subfiles that need to be synced
            isSomeContentToSync =  hasDirectoryContentToScan(syncedFolder, iterator, context) || isSomeContentToSync;
        }

        if (isSomeContentToSync) {
            Timber.d("Fahim: Found some content to sync");
            DbHelper.updateSyncedFolders(folders, context); //@todo: maybe do this when all contents will be synced.
        }
        return isSomeContentToSync;
@@ -116,21 +121,34 @@ public abstract class AbstractFileLister <T> {
     */
    private boolean hasDirectoryContentToScan(@NonNull SyncedFolder folder, @NonNull ListIterator<SyncedFolder> iterator, @NonNull Context context) {

        final FolderLoader<T> dirLoader = createFolderLoader();
        final FolderLoader<T> dirLoader = createFolderLoader(); //mechanism that read the folder

        //check if data in DB say to skip the given syncable folder
        if (skipSyncedFolder(folder)
                || !isSyncedFolderInDb(folder, context)
                || !dirLoader.load(folder)) {  // I try to get the real directory  (File or RemoteFile).
            Timber.d("------> Fahim: skip SyncedFolder: %s", folder.getLibelle());
            iterator.remove();
            return false;
        }

        final FolderWrapper<T> currentDirectory = dirLoader.getFolderWrapper();
        // load real directory corresponding to syncable directory depending on implementation
        final FolderWrapper<T> currentDirectory = dirLoader.getFolderWrapper(); //folder wrapper is like a "Future"

        // check if real directory is missing (would mean it has been deleted)
        if (currentDirectory.isMissing()) {
            if ( currentDirectory instanceof RemoteFileLister.FolderLoader ) {
                Timber.d("------> Fahim: Cannot find remote directory : %s", ((RemoteFile) currentDirectory.getFolder()).getRemotePath());
            }
            return true;
        }

        //Check if we must skip the real directory (reasp, depends on implementation)
        if (skipDirectory(currentDirectory.getFolder(), folder, context)) {
            if ( currentDirectory instanceof RemoteFileLister.FolderLoader ) {
                Timber.d("------> Fahim: skip remote directory : %s", ((RemoteFile) currentDirectory.getFolder()).getRemotePath());
            }

            iterator.remove();
            folder.setToSync(false);
            /**
@@ -146,8 +164,11 @@ public abstract class AbstractFileLister <T> {

        //todo: look where to put in subclasses : syncedFolder.setLastEtag(directory.getEtag()).setToSync(true);

        //Get subfiles & sub directory
        final List<T> dirContent = currentDirectory.getContent();
        if (dirContent != null && !dirContent.isEmpty()) {
            //add them to file to sync if there are some
            Timber.d("Fahim: adding %d files to scan from directory %s", dirContent.size(), folder.getLibelle());
            contentToScan.addAll(sortContent(iterator, folder, dirContent));
        }
        return true;
+1 −1
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ public class DebugCmdReceiver extends BroadcastReceiver {

        switch (intent.getAction()) {
            case ACTION_FORCE_SCAN:
                Timber.d("Force Sync intent received");
                Timber.d("Fahim: Force Sync intent received");
                WorkLauncher.getInstance(context).enqueueOneTimeFullScan(true);
                break;
            case ACTION_DUMP_DATABASE: