diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 14203ec711..86ddab5bb2 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -289,6 +289,7 @@ dependencies { implementation(libs.serialization.json) implementation(libs.matrix.emojibase.bindings) + implementation(libs.unifiedpush) testImplementation(libs.test.junit) testImplementation(libs.test.robolectric) diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/ElementCallActivity.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/ElementCallActivity.kt index 0169029359..bf210b0a42 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/ElementCallActivity.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/ElementCallActivity.kt @@ -79,7 +79,7 @@ class ElementCallActivity : override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - applicationContext.bindings().inject(this) + bindings().inject(this) window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/IncomingCallActivity.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/IncomingCallActivity.kt index f6357e5dfb..daf0e26797 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/IncomingCallActivity.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/IncomingCallActivity.kt @@ -64,7 +64,7 @@ class IncomingCallActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - applicationContext.bindings().inject(this) + bindings().inject(this) // Set flags so it can be displayed in the lock screen @Suppress("DEPRECATION") diff --git a/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/VectorFirebaseMessagingService.kt b/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/VectorFirebaseMessagingService.kt index 0b407e467c..6d13143ddc 100644 --- a/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/VectorFirebaseMessagingService.kt +++ b/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/VectorFirebaseMessagingService.kt @@ -29,7 +29,7 @@ class VectorFirebaseMessagingService : FirebaseMessagingService() { override fun onCreate() { super.onCreate() - applicationContext.bindings().inject(this) + bindings().inject(this) } override fun onNewToken(token: String) { diff --git a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/VectorUnifiedPushMessagingReceiver.kt b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/VectorUnifiedPushMessagingReceiver.kt index b28f1b406f..97ef0b27f1 100644 --- a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/VectorUnifiedPushMessagingReceiver.kt +++ b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/VectorUnifiedPushMessagingReceiver.kt @@ -10,8 +10,8 @@ package io.element.android.libraries.pushproviders.unifiedpush import android.content.Context import android.content.Intent import dev.zacsweers.metro.Inject +import io.element.android.libraries.architecture.bindings import io.element.android.libraries.core.log.logger.LoggerTag -import io.element.android.libraries.di.DaggerComponentOwner import io.element.android.libraries.di.annotations.AppCoroutineScope import io.element.android.libraries.pushproviders.api.PushHandler import io.element.android.libraries.pushproviders.unifiedpush.registration.EndpointRegistrationHandler @@ -39,7 +39,7 @@ class VectorUnifiedPushMessagingReceiver : MessagingReceiver() { @Inject lateinit var coroutineScope: CoroutineScope override fun onReceive(context: Context, intent: Intent) { - ((context.applicationContext as DaggerComponentOwner).daggerComponent as VectorUnifiedPushMessagingReceiverBindings).inject(this) + context.bindings().inject(this) super.onReceive(context, intent) } diff --git a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/VectorUnifiedPushMessagingReceiverBindings.kt b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/VectorUnifiedPushMessagingReceiverBindings.kt index 0bd58dcca3..bbec3f272c 100644 --- a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/VectorUnifiedPushMessagingReceiverBindings.kt +++ b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/VectorUnifiedPushMessagingReceiverBindings.kt @@ -8,9 +8,14 @@ package io.element.android.libraries.pushproviders.unifiedpush import dev.zacsweers.metro.AppScope -import dev.zacsweers.metro.GraphExtension +import dev.zacsweers.metro.Binds +import dev.zacsweers.metro.ContributesTo +import org.unifiedpush.android.connector.MessagingReceiver -@GraphExtension(AppScope::class) +@ContributesTo(AppScope::class) interface VectorUnifiedPushMessagingReceiverBindings { fun inject(receiver: VectorUnifiedPushMessagingReceiver) + + @Binds + fun bindsMessagingReceiver(vectorUnifiedPushMessagingReceiver: VectorUnifiedPushMessagingReceiver): MessagingReceiver }