Skip to content

Commit ebe43e3

Browse files
@W-16797266: [TRUST] Ensure all WorkManager Jobs have an associated tag or unique name (#2629)
1 parent d2de1e7 commit ebe43e3

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

libs/SalesforceSDK/src/com/salesforce/androidsdk/analytics/AnalyticsPublishingWorker.kt

+6-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ package com.salesforce.androidsdk.analytics
2929
import android.content.Context
3030
import androidx.work.Constraints
3131
import androidx.work.ExistingPeriodicWorkPolicy.CANCEL_AND_REENQUEUE
32+
import androidx.work.ExistingWorkPolicy.REPLACE
3233
import androidx.work.ListenableWorker.Result.success
3334
import androidx.work.NetworkType.CONNECTED
3435
import androidx.work.OneTimeWorkRequest
@@ -127,7 +128,11 @@ internal class AnalyticsPublishingWorker(
127128
).build().also { publishAnalyticsOneTimeWorkRequest ->
128129
runCatching {
129130
getInstance(context)
130-
}.getOrNull()?.enqueue(publishAnalyticsOneTimeWorkRequest)
131+
}.getOrNull()?.enqueueUniqueWork(
132+
PUBLISH_ANALYTICS_WORK_NAME,
133+
REPLACE,
134+
publishAnalyticsOneTimeWorkRequest
135+
)
131136
}.id
132137

133138
PublishPeriodically -> PeriodicWorkRequest.Builder(

libs/SalesforceSDK/src/com/salesforce/androidsdk/push/PushService.kt

+11-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ import com.salesforce.androidsdk.push.PushMessaging.getRegistrationId
4949
import com.salesforce.androidsdk.push.PushMessaging.setRegistrationId
5050
import com.salesforce.androidsdk.push.PushMessaging.setRegistrationInfo
5151
import com.salesforce.androidsdk.push.PushNotificationsRegistrationChangeWorker.PushNotificationsRegistrationAction
52-
import com.salesforce.androidsdk.push.PushNotificationsRegistrationChangeWorker.PushNotificationsRegistrationAction.Deregister
5352
import com.salesforce.androidsdk.push.PushNotificationsRegistrationChangeWorker.PushNotificationsRegistrationAction.Register
5453
import com.salesforce.androidsdk.push.PushService.PushNotificationReRegistrationType.ReRegisterPeriodically
5554
import com.salesforce.androidsdk.push.PushService.PushNotificationReRegistrationType.ReRegistrationDisabled
@@ -447,6 +446,12 @@ open class PushService {
447446
protected const val UNREGISTRATION_STATUS_SUCCEEDED = 2
448447
protected const val UNREGISTRATION_STATUS_FAILED = 3
449448

449+
/**
450+
* The Android background tasks name of the push notifications
451+
* unregistration work request
452+
*/
453+
private const val PUSH_NOTIFICATIONS_UNREGISTRATION_WORK_NAME = "SalesforcePushNotificationsUnregistrationWork"
454+
450455
/**
451456
* The Android background tasks name of the push notifications
452457
* registration work request
@@ -520,7 +525,11 @@ open class PushService {
520525
.setInputData(workData)
521526
.setConstraints(constraints)
522527
.build().also { workRequest ->
523-
workManager.enqueue(workRequest)
528+
workManager.enqueueUniqueWork(
529+
PUSH_NOTIFICATIONS_UNREGISTRATION_WORK_NAME,
530+
REPLACE,
531+
workRequest
532+
)
524533
}
525534

526535
// Send broadcast now to finish logout if we are offline.

0 commit comments

Comments
 (0)