- if (duplicate) return;
- observer = new OwnCloudFileObserver(path, OwnCloudFileObserver.CHANGES_ONLY);
- observer.setContext(getApplicationContext());
- Account account = AccountUtils.getCurrentOwnCloudAccount(getApplicationContext());
- observer.setAccount(account);
- FileDataStorageManager storage =
- new FileDataStorageManager(account, getContentResolver());
- observer.setStorageManager(storage);
- observer.setOCFile(storage.getFileByLocalPath(path)); // ISSUE 10 - the fix in FileDetailsFragment to avoid path == null was not enough; it the file was never down before, this sets a NULL OCFile in the observer
- observer.addObserverStatusListener(this);
-
- DownloadCompletedReceiver receiver = new DownloadCompletedReceiver(path, observer);
- registerReceiver(receiver, new IntentFilter(FileDownloader.DOWNLOAD_FINISH_MESSAGE));
+ OwnCloudFileObserver observer = mObserversMap.get(localPath);
+ if (observer == null) {
+ /// the local file was never registered to observe before
+ observer = new OwnCloudFileObserver(localPath, OwnCloudFileObserver.CHANGES_ONLY);
+ //Account account = AccountUtils.getCurrentOwnCloudAccount(getApplicationContext());
+ observer.setAccount(account);
+ FileDataStorageManager storage =
+ new FileDataStorageManager(account, getContentResolver()); // I don't trust in this resolver's life span...
+ observer.setStorageManager(storage);
+ //observer.setOCFile(storage.getFileByLocalPath(path)); // ISSUE 10 - the fix in FileDetailsFragment to avoid path == null was not enough; it the file was never down before, this sets a NULL OCFile in the observer
+ observer.setOCFile(file);
+ observer.addObserverStatusListener(this);
+ observer.setContext(getApplicationContext());