end.putExtra(EXTRA_DOWNLOAD_RESULT, downloadResult.isSuccess());\r
end.putExtra(ACCOUNT_NAME, download.getAccount().name);\r
end.putExtra(EXTRA_REMOTE_PATH, download.getRemotePath());\r
- if (downloadResult.isSuccess()) {\r
- end.putExtra(EXTRA_FILE_PATH, download.getSavePath());\r
- }\r
+ end.putExtra(EXTRA_FILE_PATH, download.getSavePath());\r
sendBroadcast(end);\r
}\r
\r
package com.owncloud.android.files.services;
+import java.io.File;
import java.util.ArrayList;
import java.util.List;
@Override
public void onReceive(Context context, Intent intent) {
- if (mPath.equals(intent.getStringExtra(FileDownloader.EXTRA_FILE_PATH))) { // ISSUE 3: this condition will be false if the download failed; in that case, the download won't ever be retried
- context.unregisterReceiver(this);
- removeReceiverFromList(this);
- mObserver.startWatching();
- Log.d(TAG, "Started watching " + mPath);
- return;
+ if (mPath.equals(intent.getStringExtra(FileDownloader.EXTRA_FILE_PATH))) {
+ if ((new File(mPath)).exists()) {
+ // the download could be successful, or not; in both cases, the file could be down, due to a former download or upload
+ context.unregisterReceiver(this);
+ removeReceiverFromList(this);
+ mObserver.startWatching();
+ Log.d(TAG, "Started watching " + mPath);
+ return;
+ } // else - keep waiting for a future retry of the download ;
+ // mObserver.startWatching() won't ever work if the file is not in the device when it's called
}
}