Skip to content

Commit

Permalink
feat: Use notifyCompat instead of notify from NotificationManagerCompat
Browse files Browse the repository at this point in the history
  • Loading branch information
sirambd committed Sep 20, 2023
1 parent cf53029 commit 57aa750
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 19 deletions.
3 changes: 2 additions & 1 deletion app/src/main/java/com/infomaniak/drive/MainApplication.kt
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ import com.infomaniak.drive.ui.LaunchActivity
import com.infomaniak.drive.utils.AccountUtils
import com.infomaniak.drive.utils.NotificationUtils.buildGeneralNotification
import com.infomaniak.drive.utils.NotificationUtils.initNotificationChannel
import com.infomaniak.drive.utils.NotificationUtils.notifyCompat
import com.infomaniak.lib.core.InfomaniakCore
import com.infomaniak.lib.core.auth.TokenInterceptorListener
import com.infomaniak.lib.core.models.user.User
Expand Down Expand Up @@ -152,7 +153,7 @@ class MainApplication : Application(), ImageLoaderFactory {
val notificationManagerCompat = NotificationManagerCompat.from(this)
buildGeneralNotification(getString(R.string.refreshTokenError)).apply {
setContentIntent(pendingIntent)
notificationManagerCompat.notify(hashCode, build())
notificationManagerCompat.notifyCompat(this@MainApplication, hashCode, build())
}
Sentry.withScope { scope ->
scope.level = SentryLevel.ERROR
Expand Down
11 changes: 4 additions & 7 deletions app/src/main/java/com/infomaniak/drive/data/api/UploadTask.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
*/
package com.infomaniak.drive.data.api

import android.annotation.SuppressLint
import android.content.Context
import android.net.Uri
import android.util.Log
Expand All @@ -34,6 +33,7 @@ import com.infomaniak.drive.data.services.UploadWorker
import com.infomaniak.drive.data.sync.UploadNotifications.progressPendingIntent
import com.infomaniak.drive.utils.NotificationUtils.CURRENT_UPLOAD_ID
import com.infomaniak.drive.utils.NotificationUtils.ELAPSED_TIME
import com.infomaniak.drive.utils.NotificationUtils.notifyCompat
import com.infomaniak.drive.utils.NotificationUtils.uploadProgressNotification
import com.infomaniak.drive.utils.getAvailableMemory
import com.infomaniak.lib.core.api.ApiController
Expand Down Expand Up @@ -74,14 +74,13 @@ class UploadTask(
private var uploadNotificationElapsedTime = ELAPSED_TIME
private var uploadNotificationStartTime = 0L

@SuppressLint("MissingPermission")
suspend fun start() = withContext(Dispatchers.IO) {
notificationManagerCompat = NotificationManagerCompat.from(context)

uploadNotification = context.uploadProgressNotification()
uploadNotification.apply {
setContentTitle(uploadFile.fileName)
notificationManagerCompat.notify(CURRENT_UPLOAD_ID, build())
notificationManagerCompat.notifyCompat(context, CURRENT_UPLOAD_ID, build())
}

try {
Expand Down Expand Up @@ -187,7 +186,6 @@ class UploadTask(
onFinish(uri)
}

@SuppressLint("MissingPermission")
private suspend fun onFinish(uri: Uri) = with(uploadFile) {
with(ApiRepository.finishSession(driveId, uploadToken!!, okHttpClient)) {
if (!isSuccess()) manageUploadErrors()
Expand All @@ -197,7 +195,7 @@ class UploadTask(
setContentText("100%")
setSmallIcon(android.R.drawable.stat_sys_upload_done)
setProgress(0, 0, false)
notificationManagerCompat.notify(CURRENT_UPLOAD_ID, build())
notificationManagerCompat.notifyCompat(context, CURRENT_UPLOAD_ID, build())
}
shareProgress(100, true)
UploadFile.uploadFinished(uri)
Expand Down Expand Up @@ -283,7 +281,6 @@ class UploadTask(
}
}

@SuppressLint("MissingPermission")
private fun CoroutineScope.updateProgress(currentBytes: Int, bytesWritten: Long, contentLength: Long) {
val totalBytesWritten = currentBytes + previousChunkBytesWritten
val progress = ((totalBytesWritten.toDouble() / uploadFile.fileSize.toDouble()) * 100).toInt()
Expand Down Expand Up @@ -318,7 +315,7 @@ class UploadTask(
setContentIntent(uploadFile.progressPendingIntent(context))
setContentText("${currentProgress}%")
setProgress(100, currentProgress, false)
notificationManagerCompat.notify(CURRENT_UPLOAD_ID, build())
notificationManagerCompat.notifyCompat(context, CURRENT_UPLOAD_ID, build())
uploadNotificationStartTime = System.currentTimeMillis()
uploadNotificationElapsedTime = 0L
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import androidx.work.WorkerParameters
import com.google.common.util.concurrent.ListenableFuture
import com.infomaniak.drive.data.models.BulkOperationType
import com.infomaniak.drive.data.models.MqttNotification
import com.infomaniak.drive.utils.NotificationUtils.notifyCompat
import com.infomaniak.lib.core.utils.Utils.createRefreshTimer
import java.util.Date

Expand Down Expand Up @@ -76,7 +77,7 @@ class BulkOperationWorker(context: Context, workerParams: WorkerParameters) : Li
}

private fun launchObserver(onOperationFinished: () -> Unit) {
mqttNotificationsObserver = Observer<MqttNotification> { notification ->
mqttNotificationsObserver = Observer { notification ->
if (notification.isProgressNotification() && notification.actionUuid == actionUuid) {
lastReception = Date()
if (notification.progress!!.todo == 0) {
Expand All @@ -88,7 +89,7 @@ class BulkOperationWorker(context: Context, workerParams: WorkerParameters) : Li
setContentTitle(string)
setContentText("${notification.progress.percent}%")
setProgress(100, notification.progress.percent, false)
notificationManagerCompat.notify(notificationId, build())
notificationManagerCompat.notifyCompat(applicationContext, notificationId, build())
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import com.infomaniak.drive.utils.AccountUtils
import com.infomaniak.drive.utils.MediaUtils
import com.infomaniak.drive.utils.MediaUtils.isMedia
import com.infomaniak.drive.utils.NotificationUtils.downloadProgressNotification
import com.infomaniak.drive.utils.NotificationUtils.notifyCompat
import com.infomaniak.lib.core.api.ApiController
import com.infomaniak.lib.core.models.ApiResponse
import com.infomaniak.lib.core.networking.HttpClient
Expand Down Expand Up @@ -138,7 +139,7 @@ class DownloadWorker(context: Context, workerParams: WorkerParameters) : Corouti
downloadNotification.apply {
setContentText("$progress%")
setProgress(100, progress, false)
notificationManagerCompat.notify(file.id, build())
notificationManagerCompat.notifyCompat(applicationContext, file.id, build())
}
}

Expand All @@ -153,7 +154,7 @@ class DownloadWorker(context: Context, workerParams: WorkerParameters) : Corouti
downloadNotification.apply {
setContentText("100%")
setProgress(100, 100, false)
notificationManagerCompat.notify(file.id, build())
notificationManagerCompat.notifyCompat(applicationContext, file.id, build())
}
Result.success()
} else Result.failure()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
*/
package com.infomaniak.drive.data.services

import android.annotation.SuppressLint
import android.content.ContentResolver
import android.content.Context
import android.database.Cursor
Expand Down Expand Up @@ -46,14 +45,18 @@ import com.infomaniak.drive.utils.MediaFoldersProvider.IMAGES_BUCKET_ID
import com.infomaniak.drive.utils.MediaFoldersProvider.VIDEO_BUCKET_ID
import com.infomaniak.drive.utils.NotificationUtils.buildGeneralNotification
import com.infomaniak.drive.utils.NotificationUtils.cancelNotification
import com.infomaniak.drive.utils.NotificationUtils.notifyCompat
import com.infomaniak.drive.utils.SyncUtils.syncImmediately
import com.infomaniak.lib.core.api.ApiController
import com.infomaniak.lib.core.utils.*
import com.infomaniak.lib.core.utils.calculateFileSize
import com.infomaniak.lib.core.utils.getFileName
import com.infomaniak.lib.core.utils.getFileSize
import com.infomaniak.lib.core.utils.hasPermissions
import io.sentry.Breadcrumb
import io.sentry.Sentry
import io.sentry.SentryLevel
import kotlinx.coroutines.*
import java.util.*
import java.util.Date

class UploadWorker(appContext: Context, params: WorkerParameters) : CoroutineWorker(appContext, params) {
private lateinit var contentResolver: ContentResolver
Expand Down Expand Up @@ -463,14 +466,13 @@ class UploadWorker(appContext: Context, params: WorkerParameters) : CoroutineWor
.build()
}

@SuppressLint("MissingPermission")
fun Context.showSyncConfigNotification() {
val pendingIntent = syncSettingsActivityPendingIntent()
val notificationManagerCompat = NotificationManagerCompat.from(this)
buildGeneralNotification(getString(R.string.noSyncFolderNotificationTitle)).apply {
setContentText(getString(R.string.noSyncFolderNotificationDescription))
setContentIntent(pendingIntent)
notificationManagerCompat.notify(NotificationUtils.SYNC_CONFIG_ID, this.build())
notificationManagerCompat.notifyCompat(applicationContext, NotificationUtils.SYNC_CONFIG_ID, this.build())
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import com.infomaniak.drive.ui.MainActivity
import com.infomaniak.drive.ui.menu.settings.SyncSettingsActivity
import com.infomaniak.drive.utils.NotificationUtils
import com.infomaniak.drive.utils.NotificationUtils.UPLOAD_SERVICE_ID
import com.infomaniak.drive.utils.NotificationUtils.notifyCompat
import com.infomaniak.drive.utils.NotificationUtils.uploadNotification
import com.infomaniak.drive.utils.SyncUtils.disableAutoSync
import com.infomaniak.lib.core.utils.NotificationUtilsCore.Companion.pendingIntentFlags
Expand Down Expand Up @@ -209,7 +210,7 @@ object UploadNotifications {
) {
val notificationManagerCompat = NotificationManagerCompat.from(context)
val notificationBuilder = getNotificationBuilder(context, title, description, contentIntent, locateButton)
notificationManagerCompat.notify(notificationId, notificationBuilder.build())
notificationManagerCompat.notifyCompat(context, notificationId, notificationBuilder.build())
}

private fun getNotificationBuilder(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import com.infomaniak.drive.data.models.MediaFolder
import com.infomaniak.drive.ui.LaunchActivity
import com.infomaniak.drive.ui.login.MigrationActivity.Companion.getOldkDriveUser
import com.infomaniak.drive.utils.NotificationUtils.buildGeneralNotification
import com.infomaniak.drive.utils.NotificationUtils.notifyCompat
import com.infomaniak.drive.utils.SyncUtils.activateSyncIfNeeded
import com.infomaniak.drive.utils.SyncUtils.startContentObserverService
import com.infomaniak.drive.utils.SyncUtils.syncImmediately
Expand Down Expand Up @@ -58,7 +59,7 @@ class RebootReceiver : BroadcastReceiver() {
buildGeneralNotification(getString(R.string.migrateNotificationTitle)).apply {
setContentText(getString(R.string.migrateNotificationDescription))
setContentIntent(pendingIntent)
notificationManagerCompat.notify(hashCode, build())
notificationManagerCompat.notifyCompat(context, hashCode, build())
}
}

Expand Down

0 comments on commit 57aa750

Please sign in to comment.