mirror of
https://github.com/nextcloud/android.git
synced 2024-11-26 23:28:42 +03:00
Add showNewNotification
Signed-off-by: alperozturk <alper_ozturk@proton.me>
This commit is contained in:
parent
444e22c8c7
commit
633bc1e22a
3 changed files with 24 additions and 18 deletions
|
@ -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())
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Reference in a new issue