diff --git a/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java b/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java index 27de63693aad..c30be30c7d42 100644 --- a/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java +++ b/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java @@ -141,6 +141,17 @@ public OCFile getFileByLocalPath(String path) { return file; } + public @Nullable + OCFile getFileByRemoteId(String remoteId) { + Cursor c = getFileCursorForValue(ProviderTableMeta.FILE_REMOTE_ID, remoteId); + OCFile file = null; + if (c.moveToFirst()) { + file = createFileInstance(c); + } + c.close(); + return file; + } + public boolean fileExists(long id) { return fileExists(ProviderTableMeta._ID, String.valueOf(id)); } diff --git a/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java index 4b5e02881f1c..bde6d8d542d4 100644 --- a/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -1489,8 +1489,9 @@ public void onReceive(Context context, Intent intent) { } if (mWaitingToSend != null) { - mWaitingToSend = getStorageManager().getFileByPath(mWaitingToSend.getRemotePath()); - if (mWaitingToSend.isDown() && downloadBehaviour != null) { + // update file after downloading + mWaitingToSend = getStorageManager().getFileByRemoteId(mWaitingToSend.getRemoteId()); + if (mWaitingToSend != null && mWaitingToSend.isDown() && downloadBehaviour != null) { switch (downloadBehaviour) { case OCFileListFragment.DOWNLOAD_SEND: String packageName = intent.getStringExtra(SendShareDialog.PACKAGE_NAME);