Skip to content

Commit 680fd44

Browse files
committed
feat(notifications): trigger contact sync on CONTACT_JOIN push
When a CONTACT_JOIN push notification is received, sync contacts to update the isOnFlipcash status for the newly joined contact. Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent 9d31e99 commit 680fd44

2 files changed

Lines changed: 12 additions & 2 deletions

File tree

apps/flipcash/shared/notifications/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ android {
99

1010
dependencies {
1111
implementation(project(":apps:flipcash:shared:authentication"))
12+
implementation(project(":apps:flipcash:shared:contacts"))
1213
implementation(project(":apps:flipcash:shared:persistence:sources"))
1314
implementation(project(":apps:flipcash:shared:phone"))
1415
implementation(project(":apps:flipcash:shared:push"))

apps/flipcash/shared/notifications/src/main/kotlin/com/flipcash/app/notifications/NotificationService.kt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import androidx.core.app.NotificationCompat
1111
import androidx.core.app.NotificationManagerCompat
1212
import androidx.core.net.toUri
1313
import com.flipcash.app.auth.AuthManager
14+
import com.flipcash.app.contacts.ContactCoordinator
1415
import com.flipcash.app.core.util.Linkify
1516
import com.flipcash.app.persistence.sources.ContactDataSource
1617
import com.flipcash.app.phone.PhoneUtils
@@ -61,6 +62,9 @@ class NotificationService : FirebaseMessagingService(),
6162
@Inject
6263
lateinit var contactDataSource: ContactDataSource
6364

65+
@Inject
66+
lateinit var contactCoordinator: ContactCoordinator
67+
6468
@Inject
6569
lateinit var phoneUtils: PhoneUtils
6670

@@ -102,8 +106,13 @@ class NotificationService : FirebaseMessagingService(),
102106
.takeIf { it.isNotEmpty() }
103107
?.let { NotificationPayload.fromEncoded(it) }
104108

105-
if (payload?.navigation is NavigationTrigger.CurrencyInfo) {
106-
launch { tokenCoordinator.update() }
109+
when {
110+
payload?.navigation is NavigationTrigger.CurrencyInfo -> {
111+
launch { tokenCoordinator.update() }
112+
}
113+
payload?.category == NotificationCategory.CONTACT_JOIN -> {
114+
launch { contactCoordinator.sync() }
115+
}
107116
}
108117

109118
launch {

0 commit comments

Comments
 (0)