mirror of
https://github.com/nextcloud/android.git
synced 2024-11-27 17:46:37 +03:00
Try to reproduce 'Twitter style': notify success and then remove the notification, instead of just removing it
This commit is contained in:
parent
c9ce39241e
commit
c407a568e0
2 changed files with 43 additions and 19 deletions
|
@ -461,8 +461,9 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis
|
|||
*/
|
||||
private void notifyDownloadResult(DownloadFileOperation download, RemoteOperationResult downloadResult) {
|
||||
mNotificationManager.cancel(R.string.downloader_download_in_progress_ticker);
|
||||
if (!downloadResult.isCancelled() && !downloadResult.isSuccess()) {
|
||||
int tickerId = R.string.downloader_download_failed_ticker;
|
||||
if (!downloadResult.isCancelled()) {
|
||||
int tickerId = (downloadResult.isSuccess()) ? R.string.downloader_download_succeeded_ticker :
|
||||
R.string.downloader_download_failed_ticker;
|
||||
|
||||
boolean needsToUpdateCredentials = (downloadResult.getCode() == ResultCode.UNAUTHORIZED ||
|
||||
(downloadResult.isIdPRedirection()
|
||||
|
@ -501,8 +502,20 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis
|
|||
}
|
||||
|
||||
mNotificationBuilder.setContentText(ErrorMessageAdapter.getErrorCauseMessage(downloadResult, download, getResources()));
|
||||
|
||||
mNotificationManager.notify(tickerId, mNotificationBuilder.build());
|
||||
|
||||
// Remove success notification
|
||||
if (downloadResult.isSuccess()) {
|
||||
// Sleep 2 seconds, so show the notification before remove it
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
public void run() {
|
||||
mNotificationManager.cancel(R.string.downloader_download_succeeded_ticker);
|
||||
}
|
||||
}, 2000);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -723,16 +723,15 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
|
|||
*/
|
||||
private void notifyUploadResult(RemoteOperationResult uploadResult, UploadFileOperation upload) {
|
||||
Log_OC.d(TAG, "NotifyUploadResult with resultCode: " + uploadResult.getCode());
|
||||
if (uploadResult.isCancelled() || uploadResult.isSuccess()) {
|
||||
// / cancelled operation or success -> silent removal of progress notification
|
||||
mNotificationManager.cancel(R.string.uploader_upload_in_progress_ticker);
|
||||
// / cancelled operation or success -> silent removal of progress notification
|
||||
mNotificationManager.cancel(R.string.uploader_upload_in_progress_ticker);
|
||||
|
||||
// Show the result: success or fail notification
|
||||
if (!uploadResult.isCancelled()) {
|
||||
int tickerId = (uploadResult.isSuccess()) ? R.string.uploader_upload_succeeded_ticker :
|
||||
R.string.uploader_upload_failed_ticker;
|
||||
|
||||
} else {
|
||||
|
||||
// / fail -> explicit failure notification
|
||||
mNotificationManager.cancel(R.string.uploader_upload_in_progress_ticker);
|
||||
|
||||
NotificationCompat.Builder errorBuilder = new NotificationCompat.Builder(this);
|
||||
NotificationCompat.Builder resultBuilder = new NotificationCompat.Builder(this);
|
||||
|
||||
String content = null;
|
||||
|
||||
|
@ -740,10 +739,10 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
|
|||
boolean needsToUpdateCredentials = (uploadResult.getCode() == ResultCode.UNAUTHORIZED ||
|
||||
(uploadResult.isIdPRedirection() &&
|
||||
mUploadClient.getCredentials() == null));
|
||||
int tickerId = (needsToUpdateCredentials) ?
|
||||
R.string.uploader_upload_failed_credentials_error : R.string.uploader_upload_failed_ticker;
|
||||
tickerId = (needsToUpdateCredentials) ?
|
||||
R.string.uploader_upload_failed_credentials_error : tickerId;
|
||||
|
||||
errorBuilder
|
||||
resultBuilder
|
||||
.setSmallIcon(R.drawable.notification_icon)
|
||||
.setTicker(getString(tickerId))
|
||||
.setContentTitle(getString(tickerId))
|
||||
|
@ -759,7 +758,7 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
|
|||
updateAccountCredentials.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
updateAccountCredentials.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
|
||||
updateAccountCredentials.addFlags(Intent.FLAG_FROM_BACKGROUND);
|
||||
errorBuilder.setContentIntent(PendingIntent.getActivity(
|
||||
resultBuilder.setContentIntent(PendingIntent.getActivity(
|
||||
this, (int) System.currentTimeMillis(), updateAccountCredentials, PendingIntent.FLAG_ONE_SHOT
|
||||
));
|
||||
|
||||
|
@ -777,7 +776,7 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
|
|||
detailUploadIntent = new Intent(this, FailedUploadActivity.class);
|
||||
detailUploadIntent.putExtra(FailedUploadActivity.MESSAGE, content);
|
||||
}
|
||||
errorBuilder
|
||||
resultBuilder
|
||||
.setContentIntent(PendingIntent.getActivity(
|
||||
this, (int) System.currentTimeMillis(), detailUploadIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT
|
||||
))
|
||||
|
@ -804,8 +803,20 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
|
|||
}
|
||||
}
|
||||
|
||||
errorBuilder.setContentText(content);
|
||||
mNotificationManager.notify(tickerId, errorBuilder.build());
|
||||
resultBuilder.setContentText(content);
|
||||
mNotificationManager.notify(tickerId, resultBuilder.build());
|
||||
|
||||
// Remove success notification
|
||||
if (uploadResult.isSuccess()) {
|
||||
// Sleep 2 seconds, so show the notification before remove it
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
public void run() {
|
||||
mNotificationManager.cancel(R.string.uploader_upload_succeeded_ticker);
|
||||
}
|
||||
}, 2000);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue