Add showNewNotification

Signed-off-by: alperozturk <alper_ozturk@proton.me>
This commit is contained in:
alperozturk 2024-01-08 13:46:43 +01:00 committed by Alper Öztürk
parent 444e22c8c7
commit 633bc1e22a
3 changed files with 24 additions and 18 deletions

View file

@ -37,6 +37,7 @@ import com.owncloud.android.operations.DownloadFileOperation
import com.owncloud.android.ui.notifications.NotificationUtils import com.owncloud.android.ui.notifications.NotificationUtils
import com.owncloud.android.utils.theme.ViewThemeUtils import com.owncloud.android.utils.theme.ViewThemeUtils
import java.io.File import java.io.File
import java.security.SecureRandom
@Suppress("TooManyFunctions") @Suppress("TooManyFunctions")
class DownloadNotificationManager( class DownloadNotificationManager(
@ -120,7 +121,16 @@ class DownloadNotificationManager(
}, 2000) }, 2000)
} }
fun updateNotificationText(text: String) { fun showNewNotification(text: String) {
val notifyId = SecureRandom().nextInt()
notificationBuilder.run {
setContentText(text)
notificationManager.notify(notifyId, this.build())
}
}
private fun updateNotificationText(text: String) {
notificationBuilder.run { notificationBuilder.run {
setContentText(text) setContentText(text)
notificationManager.notify(id, this.build()) notificationManager.notify(id, this.build())

View file

@ -122,7 +122,6 @@ class FileDownloadWorker(
private var fileDataStorageManager: FileDataStorageManager? = null private var fileDataStorageManager: FileDataStorageManager? = null
private var folder: OCFile? = null private var folder: OCFile? = null
private var failedFileNames: ArrayList<String> = arrayListOf()
@Suppress("TooGenericExceptionCaught") @Suppress("TooGenericExceptionCaught")
override fun doWork(): Result { override fun doWork(): Result {
@ -164,7 +163,6 @@ class FileDownloadWorker(
} }
private fun setIdleWorkerState() { private fun setIdleWorkerState() {
failedFileNames.clear()
pendingDownloads.all.clear() pendingDownloads.all.clear()
pendingDownloadFileIds.clear() pendingDownloadFileIds.clear()
currentDownload = null currentDownload = null
@ -181,14 +179,9 @@ class FileDownloadWorker(
pendingDownloads.remove(accountName) pendingDownloads.remove(accountName)
} }
@Suppress("MagicNumber")
private fun showCompleteNotification() { private fun showCompleteNotification() {
val result = if (failedFileNames.isEmpty()) { val result = getSuccessNotificationText()
getSuccessNotificationText()
} else {
val fileNames = failedFileNames.joinToString()
context.getString(R.string.downloader_files_download_failed, fileNames)
}
notificationManager.showCompleteNotification(result) notificationManager.showCompleteNotification(result)
} }
@ -377,7 +370,7 @@ class FileDownloadWorker(
private fun cleanupDownloadProcess(result: RemoteOperationResult<*>?) { private fun cleanupDownloadProcess(result: RemoteOperationResult<*>?) {
result?.let { result?.let {
checkOperationFailures(it) showFailedDownloadNotifications(it)
} }
val removeResult = pendingDownloads.removePayload( val removeResult = pendingDownloads.removePayload(
@ -401,11 +394,15 @@ class FileDownloadWorker(
} }
} }
private fun checkOperationFailures(result: RemoteOperationResult<*>) { private fun showFailedDownloadNotifications(result: RemoteOperationResult<*>) {
if (!result.isSuccess) { if (!result.isSuccess) {
currentDownload?.file?.fileName?.let { fileName -> val fileName = currentDownload?.file?.fileName ?: ""
failedFileNames.add(fileName) notificationManager.showNewNotification(
} context.getString(
R.string.downloader_file_download_failed,
fileName
)
)
} }
} }
@ -422,7 +419,7 @@ class FileDownloadWorker(
prepareForResult() prepareForResult()
if (needsToUpdateCredentials) { if (needsToUpdateCredentials) {
updateNotificationText(context.getString(R.string.downloader_download_failed_credentials_error)) showNewNotification(context.getString(R.string.downloader_download_failed_credentials_error))
setContentIntent( setContentIntent(
intents.credentialContentIntent(download.user), intents.credentialContentIntent(download.user),
PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_IMMUTABLE PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_IMMUTABLE

View file

@ -175,8 +175,7 @@
<string name="downloader_download_failed_ticker">Download failed</string> <string name="downloader_download_failed_ticker">Download failed</string>
<string name="downloader_download_failed_content">Could not download %1$s</string> <string name="downloader_download_failed_content">Could not download %1$s</string>
<string name="downloader_not_downloaded_yet">Not downloaded yet</string> <string name="downloader_not_downloaded_yet">Not downloaded yet</string>
<string name="downloader_files_download_failed">Error occurred while downloading %s files</string> <string name="downloader_file_download_failed">Error occurred while downloading %s file</string>
<string name="downloader_folder_download_failed">Error occurred while downloading %s folder</string>
<string name="downloader_folder_downloaded">%s folder successfully downloaded</string> <string name="downloader_folder_downloaded">%s folder successfully downloaded</string>
<string name="downloader_file_downloaded">%s file successfully downloaded</string> <string name="downloader_file_downloaded">%s file successfully downloaded</string>
<string name="downloader_unexpected_error">Unexpected error occurred while downloading files</string> <string name="downloader_unexpected_error">Unexpected error occurred while downloading files</string>