From 4883f629640ce38f03ec5fee11ec5c8c256ed050 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Wed, 1 Mar 2023 17:30:57 +0100 Subject: [PATCH] Show upload failed notification when failed normal upload MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit avoid: 2023-03-01 16:47:40.443 23569-23628 UploadAndS...ilesWorker com.nextcloud.talk2 E Something went wrong when trying to upload file java.lang.NullPointerException at com.nextcloud.talk.jobs.UploadAndShareFilesWorker.showFailedToUploadNotification(UploadAndShareFilesWorker.kt:258) at com.nextcloud.talk.jobs.UploadAndShareFilesWorker.doWork(UploadAndShareFilesWorker.kt:163) at androidx.work.Worker$1.run(Worker.java:86) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919) 2023-03-01 16:47:40.444 23569-23607 WM-WorkerWrapper com.nextcloud.talk2 E Work [ id=27e4e319-a966-4515-ac07-d6ad7ee68268, tags={ com.nextcloud.talk.jobs.UploadAndShareFilesWorker } ] failed because it threw an exception/error java.util.concurrent.ExecutionException: java.lang.NullPointerException at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:516) at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475) at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:311) at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919) Caused by: java.lang.NullPointerException at com.nextcloud.talk.jobs.UploadAndShareFilesWorker.showFailedToUploadNotification(UploadAndShareFilesWorker.kt:258) at com.nextcloud.talk.jobs.UploadAndShareFilesWorker.doWork(UploadAndShareFilesWorker.kt:167) at androidx.work.Worker$1.run(Worker.java:86) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)  at java.lang.Thread.run(Thread.java:919)  2023-03-01 16:47:40.446 23569-23607 WM-WorkerWrapper com.nextcloud.talk2 I Worker result FAILURE for Work [ id=27e4e319-a966- Signed-off-by: Marcel Hibbe --- .../talk/jobs/UploadAndShareFilesWorker.kt | 9 ++++++-- .../main/res/drawable/baseline_error_24.xml | 22 +++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/drawable/baseline_error_24.xml diff --git a/app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt b/app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt index 47ca9e8d8..bf157467b 100644 --- a/app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt +++ b/app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt @@ -121,10 +121,12 @@ class UploadAndShareFilesWorker(val context: Context, workerParameters: WorkerPa val remotePath = getRemotePath(currentUser) val uploadSuccess: Boolean + initNotificationSetup() + if (file != null && file.length() > CHUNK_UPLOAD_THRESHOLD_SIZE) { Log.d(TAG, "starting chunked upload because size is " + file.length()) - initNotification() + initNotificationWithPercentage() val mimeType = context.contentResolver.getType(sourceFileUri)?.toMediaTypeOrNull() uploadSuccess = ChunkedFileUploader( @@ -190,14 +192,16 @@ class UploadAndShareFilesWorker(val context: Context, workerParameters: WorkerPa mNotifyManager!!.notify(notificationId, notification) } - private fun initNotification() { + private fun initNotificationSetup() { mNotifyManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager mBuilder = NotificationCompat.Builder( context, NotificationUtils.NotificationChannels .NOTIFICATION_CHANNEL_UPLOADS.name ) + } + private fun initNotificationWithPercentage() { notification = mBuilder!! .setContentTitle(context.resources.getString(R.string.nc_upload_in_progess)) .setContentText(getNotificationContentText(ZERO_PERCENT)) @@ -258,6 +262,7 @@ class UploadAndShareFilesWorker(val context: Context, workerParameters: WorkerPa notification = mBuilder!! .setContentTitle(failureTitle) .setContentText(failureText) + .setSmallIcon(R.drawable.baseline_error_24) .setOngoing(false) .build() diff --git a/app/src/main/res/drawable/baseline_error_24.xml b/app/src/main/res/drawable/baseline_error_24.xml new file mode 100644 index 000000000..6e6f1d780 --- /dev/null +++ b/app/src/main/res/drawable/baseline_error_24.xml @@ -0,0 +1,22 @@ + + + + +