import com.owncloud.android.ui.activity.FileDisplayActivity;
import com.owncloud.android.ui.preview.PreviewImageActivity;
import com.owncloud.android.ui.preview.PreviewImageFragment;
+import com.owncloud.android.utils.ErrorMessageAdapter;
import com.owncloud.android.utils.Log_OC;
import com.owncloud.android.utils.NotificationBuilderWithProgressBar;
*/
private void notifyDownloadResult(DownloadFileOperation download, RemoteOperationResult downloadResult) {
mNotificationManager.cancel(R.string.downloader_download_in_progress_ticker);
- if (!downloadResult.isCancelled()) {
- int tickerId = (downloadResult.isSuccess()) ? R.string.downloader_download_succeeded_ticker : R.string.downloader_download_failed_ticker;
- int contentId = (downloadResult.isSuccess()) ? R.string.downloader_download_succeeded_content : R.string.downloader_download_failed_content;
-
+ if (!downloadResult.isCancelled() && !downloadResult.isSuccess()) {
+ int tickerId = R.string.downloader_download_failed_ticker;
+
boolean needsToUpdateCredentials = (downloadResult.getCode() == ResultCode.UNAUTHORIZED ||
(downloadResult.isIdPRedirection()
&& mDownloadClient.getCredentials() == null));
updateAccountCredentials.addFlags(Intent.FLAG_FROM_BACKGROUND);
mNotificationBuilder
.setContentIntent(PendingIntent.getActivity(
- this, (int) System.currentTimeMillis(), updateAccountCredentials, PendingIntent.FLAG_ONE_SHOT
- ))
- .setContentText(String.format(getString(contentId), new File(download.getSavePath()).getName()));
+ this, (int) System.currentTimeMillis(), updateAccountCredentials, PendingIntent.FLAG_ONE_SHOT));
+
mDownloadClient = null; // grant that future retries on the same account will get the fresh credentials
} else {
- Intent showDetailsIntent = null;
- if (downloadResult.isSuccess()) {
- if (PreviewImageFragment.canBePreviewed(download.getFile())) {
- showDetailsIntent = new Intent(this, PreviewImageActivity.class);
- } else {
- showDetailsIntent = new Intent(this, FileDisplayActivity.class);
- }
- showDetailsIntent.putExtra(FileActivity.EXTRA_FILE, download.getFile());
- showDetailsIntent.putExtra(FileActivity.EXTRA_ACCOUNT, download.getAccount());
- showDetailsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-
- } else {
- // TODO put something smart in showDetailsIntent
- showDetailsIntent = new Intent();
- }
+ // TODO put something smart in showDetailsIntent
+ Intent showDetailsIntent = new Intent();
mNotificationBuilder
.setContentIntent(PendingIntent.getActivity(
- this, (int) System.currentTimeMillis(), showDetailsIntent, 0
- ))
- .setContentText(String.format(getString(contentId), new File(download.getSavePath()).getName()));
+ this, (int) System.currentTimeMillis(), showDetailsIntent, 0));
}
+
+ mNotificationBuilder.setContentText(ErrorMessageAdapter.getErrorCauseMessage(downloadResult, download, getResources()));
+
mNotificationManager.notify(tickerId, mNotificationBuilder.build());
}
}