mirror of
https://github.com/nextcloud/android.git
synced 2024-11-27 17:46:37 +03:00
Fixed bug: failed upload notification not appearing in Android 2.x devices
This commit is contained in:
parent
055be96386
commit
9778f720dc
1 changed files with 36 additions and 18 deletions
|
@ -724,7 +724,8 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
|
|||
* @param uploadResult Result of the upload operation.
|
||||
* @param upload Finished upload operation
|
||||
*/
|
||||
private void notifyUploadResult(RemoteOperationResult uploadResult, UploadFileOperation upload) {
|
||||
private void notifyUploadResult(
|
||||
RemoteOperationResult uploadResult, UploadFileOperation upload) {
|
||||
Log_OC.d(TAG, "NotifyUploadResult with resultCode: " + uploadResult.getCode());
|
||||
// / cancelled operation or success -> silent removal of progress notification
|
||||
mNotificationManager.cancel(R.string.uploader_upload_in_progress_ticker);
|
||||
|
@ -734,8 +735,6 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
|
|||
int tickerId = (uploadResult.isSuccess()) ? R.string.uploader_upload_succeeded_ticker :
|
||||
R.string.uploader_upload_failed_ticker;
|
||||
|
||||
NotificationCompat.Builder resultBuilder = new NotificationCompat.Builder(this);
|
||||
|
||||
String content = null;
|
||||
|
||||
// check credentials error
|
||||
|
@ -746,41 +745,60 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
|
|||
tickerId = (needsToUpdateCredentials) ?
|
||||
R.string.uploader_upload_failed_credentials_error : tickerId;
|
||||
|
||||
resultBuilder
|
||||
.setSmallIcon(R.drawable.notification_icon)
|
||||
mNotificationBuilder
|
||||
.setTicker(getString(tickerId))
|
||||
.setContentTitle(getString(tickerId))
|
||||
.setAutoCancel(true);
|
||||
.setAutoCancel(true)
|
||||
.setOngoing(false)
|
||||
.setProgress(0, 0, false);
|
||||
|
||||
content = ErrorMessageAdapter.getErrorCauseMessage(uploadResult, upload, getResources());
|
||||
content = ErrorMessageAdapter.getErrorCauseMessage(
|
||||
uploadResult, upload, getResources()
|
||||
);
|
||||
|
||||
if (needsToUpdateCredentials) {
|
||||
// let the user update credentials with one click
|
||||
Intent updateAccountCredentials = new Intent(this, AuthenticatorActivity.class);
|
||||
updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACCOUNT, upload.getAccount());
|
||||
updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACTION, AuthenticatorActivity.ACTION_UPDATE_EXPIRED_TOKEN);
|
||||
updateAccountCredentials.putExtra(
|
||||
AuthenticatorActivity.EXTRA_ACCOUNT, upload.getAccount()
|
||||
);
|
||||
updateAccountCredentials.putExtra(
|
||||
AuthenticatorActivity.EXTRA_ACTION,
|
||||
AuthenticatorActivity.ACTION_UPDATE_EXPIRED_TOKEN
|
||||
);
|
||||
updateAccountCredentials.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
updateAccountCredentials.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
|
||||
updateAccountCredentials.addFlags(Intent.FLAG_FROM_BACKGROUND);
|
||||
resultBuilder.setContentIntent(PendingIntent.getActivity(
|
||||
this, (int) System.currentTimeMillis(), updateAccountCredentials, PendingIntent.FLAG_ONE_SHOT
|
||||
mNotificationBuilder.setContentIntent(PendingIntent.getActivity(
|
||||
this,
|
||||
(int) System.currentTimeMillis(),
|
||||
updateAccountCredentials,
|
||||
PendingIntent.FLAG_ONE_SHOT
|
||||
));
|
||||
|
||||
mUploadClient = null; // grant that future retries on the same account will get the fresh credentials
|
||||
mUploadClient = null;
|
||||
// grant that future retries on the same account will get the fresh credentials
|
||||
} else {
|
||||
resultBuilder.setContentText(content);
|
||||
mNotificationBuilder.setContentText(content);
|
||||
|
||||
if (upload.isInstant()) {
|
||||
DbHandler db = null;
|
||||
try {
|
||||
db = new DbHandler(this.getBaseContext());
|
||||
String message = uploadResult.getLogMessage() + " errorCode: " + uploadResult.getCode();
|
||||
String message = uploadResult.getLogMessage() + " errorCode: " +
|
||||
uploadResult.getCode();
|
||||
Log_OC.e(TAG, message + " Http-Code: " + uploadResult.getHttpCode());
|
||||
if (uploadResult.getCode() == ResultCode.QUOTA_EXCEEDED) {
|
||||
message = getString(R.string.failed_upload_quota_exceeded_text);
|
||||
if (db.updateFileState(upload.getOriginalStoragePath(), DbHandler.UPLOAD_STATUS_UPLOAD_FAILED,
|
||||
if (db.updateFileState(
|
||||
upload.getOriginalStoragePath(),
|
||||
DbHandler.UPLOAD_STATUS_UPLOAD_FAILED,
|
||||
message) == 0) {
|
||||
db.putFileForLater(upload.getOriginalStoragePath(), upload.getAccount().name, message);
|
||||
db.putFileForLater(
|
||||
upload.getOriginalStoragePath(),
|
||||
upload.getAccount().name,
|
||||
message
|
||||
);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
|
@ -791,8 +809,8 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
|
|||
}
|
||||
}
|
||||
|
||||
resultBuilder.setContentText(content);
|
||||
mNotificationManager.notify(tickerId, resultBuilder.build());
|
||||
mNotificationBuilder.setContentText(content);
|
||||
mNotificationManager.notify(tickerId, mNotificationBuilder.build());
|
||||
|
||||
if (uploadResult.isSuccess()) {
|
||||
|
||||
|
|
Loading…
Reference in a new issue