+\r
+\r
+ public void updateChildFragment(String downloadEvent, String downloadedRemotePath, boolean success) {\r
+ Fragment fragment = getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
+ if (fragment != null && fragment instanceof FileDetailFragment) {\r
+ FileDetailFragment detailsFragment = (FileDetailFragment) fragment;\r
+ OCFile fileInFragment = detailsFragment.getFile();\r
+ if (fileInFragment != null && !downloadedRemotePath.equals(fileInFragment.getRemotePath())) {\r
+ // this never should happen; fileInFragment should be always equals to mFile, that was compared to downloadedRemotePath in DownloadReceiver \r
+ mWaitingToPreview = false;\r
+ \r
+ } else if (downloadEvent.equals(FileDownloader.DOWNLOAD_ADDED_MESSAGE)) {\r
+ // grants that the progress bar is updated\r
+ detailsFragment.listenForTransferProgress();\r
+ detailsFragment.updateFileDetails(true, false);\r
+ \r
+ } else if (downloadEvent.equals(FileDownloader.DOWNLOAD_FINISH_MESSAGE)) {\r
+ // refresh the details fragment \r
+ if (success && mWaitingToPreview) {\r
+ mFile = mStorageManager.getFileById(mFile.getFileId()); // update the file from database, for the local storage path\r
+ FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();\r
+ transaction.replace(R.id.fragment, new PreviewMediaFragment(mFile, mAccount), FileDetailFragment.FTAG);\r
+ transaction.commit();\r
+ mWaitingToPreview = false;\r
+ \r
+ } else {\r
+ detailsFragment.updateFileDetails(false, (success));\r
+ // TODO error message if !success ¿?\r
+ }\r
+ }\r
+ } // TODO else if (fragment != null && fragment )\r
+ \r
+ \r
+ }\r
+\r