From 4bce690fe1df048e2ab411c50bd68842c64b984c Mon Sep 17 00:00:00 2001 From: furenster <123000419+furenster@users.noreply.github.com> Date: Thu, 28 Aug 2025 00:42:43 -0700 Subject: [PATCH 1/2] Fix notificaions --- app/build.gradle.kts | 1 + .../com/gemwallet/android/di/BuildInfoModule.kt | 14 ++++++++++++-- .../data/repositoreis/device/DeviceRepository.kt | 6 +++--- .../gemwallet/android/flavors/RequestrPushToken.kt | 11 ++++++++++- .../gemwallet/android/flavors/RequestrPushToken.kt | 6 +++++- .../android/cases/device/RequestPushToken.kt | 9 +++++++-- 6 files changed, 38 insertions(+), 9 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6361f9453..71d4e09a0 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -10,6 +10,7 @@ plugins { id("com.google.devtools.ksp") id("androidx.room") alias(libs.plugins.compose.compiler) + id("com.google.gms.google-services") } repositories { diff --git a/app/src/main/kotlin/com/gemwallet/android/di/BuildInfoModule.kt b/app/src/main/kotlin/com/gemwallet/android/di/BuildInfoModule.kt index e5e20ed44..82243c556 100644 --- a/app/src/main/kotlin/com/gemwallet/android/di/BuildInfoModule.kt +++ b/app/src/main/kotlin/com/gemwallet/android/di/BuildInfoModule.kt @@ -1,6 +1,7 @@ package com.gemwallet.android.di import android.content.Context +import com.gemwallet.android.cases.device.RequestPushToken import com.gemwallet.android.cases.pushes.ShowSystemNotification import com.gemwallet.android.flavors.StoreRequestPushToken import com.gemwallet.android.flavors.isNotificationsAvailable @@ -20,14 +21,23 @@ object BuildInfoModule { @Provides @Singleton - fun provideBuildInfo(platformStore: PlatformStore): BuildInfo { + fun provideBuildInfo( + platformStore: PlatformStore, + requestPushToken: RequestPushToken, + ): BuildInfo { return BuildInfo( platformStore = platformStore, versionName = com.gemwallet.android.BuildConfig.VERSION_NAME, - requestPushToken = StoreRequestPushToken(), + requestPushToken = requestPushToken, ) } + @Provides + @Singleton + fun provideRequestPushToken(): RequestPushToken { + return StoreRequestPushToken() + } + @Provides @Singleton fun provideShowSystemNotification(@ApplicationContext context: Context): ShowSystemNotification { diff --git a/data/repositories/src/main/kotlin/com/gemwallet/android/data/repositoreis/device/DeviceRepository.kt b/data/repositories/src/main/kotlin/com/gemwallet/android/data/repositoreis/device/DeviceRepository.kt index c1eacf01d..94f7ba479 100644 --- a/data/repositories/src/main/kotlin/com/gemwallet/android/data/repositoreis/device/DeviceRepository.kt +++ b/data/repositories/src/main/kotlin/com/gemwallet/android/data/repositoreis/device/DeviceRepository.kt @@ -54,13 +54,13 @@ class DeviceRepository( override suspend fun syncDeviceInfo() { val pushToken = getPushToken() - val pushEnabled = pushToken.isNotEmpty() + val pushEnabled = getPushEnabled() val deviceId = getDeviceIdCase.getDeviceId() val device = Device( id = deviceId, platform = Platform.Android, platformStore = platformStore, - token = "", + token = pushToken, locale = getLocale(Locale.getDefault()), isPushEnabled = pushEnabled, isPriceAlertsEnabled = enablePriceAlert.isPriceAlertEnabled(), @@ -74,7 +74,7 @@ class DeviceRepository( } } if (pushEnabled && pushToken.isEmpty()) { - requestPushToken.invoke { pushToken -> + requestPushToken.requestToken { pushToken -> setPushToken(pushToken) register() } diff --git a/flavors/fcm/src/main/kotlin/com/gemwallet/android/flavors/RequestrPushToken.kt b/flavors/fcm/src/main/kotlin/com/gemwallet/android/flavors/RequestrPushToken.kt index 2bfcb0b23..ae5a92543 100644 --- a/flavors/fcm/src/main/kotlin/com/gemwallet/android/flavors/RequestrPushToken.kt +++ b/flavors/fcm/src/main/kotlin/com/gemwallet/android/flavors/RequestrPushToken.kt @@ -1,10 +1,18 @@ package com.gemwallet.android.flavors +import android.content.Context +import android.util.Log import com.gemwallet.android.cases.device.RequestPushToken +import com.google.firebase.FirebaseApp import com.google.firebase.messaging.FirebaseMessaging class StoreRequestPushToken : RequestPushToken { - override suspend fun invoke(callback: (String) -> Unit) { + + override fun init(context: Context) { + FirebaseApp.initializeApp(context) + } + + override suspend fun requestToken(callback: (String) -> Unit) { try { FirebaseMessaging.getInstance().token.addOnCompleteListener { task -> val token = if (task.isSuccessful) { task.result } else { "" } @@ -14,6 +22,7 @@ class StoreRequestPushToken : RequestPushToken { callback("") } } + } diff --git a/flavors/pushes-stub/src/main/kotlin/com/gemwallet/android/flavors/RequestrPushToken.kt b/flavors/pushes-stub/src/main/kotlin/com/gemwallet/android/flavors/RequestrPushToken.kt index eae97edb1..be97e5757 100644 --- a/flavors/pushes-stub/src/main/kotlin/com/gemwallet/android/flavors/RequestrPushToken.kt +++ b/flavors/pushes-stub/src/main/kotlin/com/gemwallet/android/flavors/RequestrPushToken.kt @@ -1,9 +1,13 @@ package com.gemwallet.android.flavors +import android.content.Context import com.gemwallet.android.cases.device.RequestPushToken class StoreRequestPushToken : RequestPushToken { - override suspend fun invoke(callback: (String) -> Unit) { + + override fun init(context: Context) {} + + override suspend fun requestToken(callback: (String) -> Unit) { callback("") } } diff --git a/gemcore/src/main/kotlin/com/gemwallet/android/cases/device/RequestPushToken.kt b/gemcore/src/main/kotlin/com/gemwallet/android/cases/device/RequestPushToken.kt index 5ed431752..293cad15a 100644 --- a/gemcore/src/main/kotlin/com/gemwallet/android/cases/device/RequestPushToken.kt +++ b/gemcore/src/main/kotlin/com/gemwallet/android/cases/device/RequestPushToken.kt @@ -1,5 +1,10 @@ package com.gemwallet.android.cases.device -fun interface RequestPushToken { - suspend fun invoke(callback: (String) -> Unit) +import android.content.Context + +interface RequestPushToken { + + fun init(context: Context) + + suspend fun requestToken(callback: (String) -> Unit) } \ No newline at end of file From 27ec91a4bb96620b491aa57121c343f6ad09e13b Mon Sep 17 00:00:00 2001 From: furenster <123000419+furenster@users.noreply.github.com> Date: Thu, 28 Aug 2025 03:45:09 -0700 Subject: [PATCH 2/2] Fix typo --- .../kotlin/com/gemwallet/android/flavors/RequestrPushToken.kt | 3 +-- .../flavors/{RequestrPushToken.kt => RequestPushToken.kt} | 2 +- .../com/gemwallet/android/cases/device/RequestPushToken.kt | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) rename flavors/pushes-stub/src/main/kotlin/com/gemwallet/android/flavors/{RequestrPushToken.kt => RequestPushToken.kt} (85%) diff --git a/flavors/fcm/src/main/kotlin/com/gemwallet/android/flavors/RequestrPushToken.kt b/flavors/fcm/src/main/kotlin/com/gemwallet/android/flavors/RequestrPushToken.kt index ae5a92543..16df46bb6 100644 --- a/flavors/fcm/src/main/kotlin/com/gemwallet/android/flavors/RequestrPushToken.kt +++ b/flavors/fcm/src/main/kotlin/com/gemwallet/android/flavors/RequestrPushToken.kt @@ -1,14 +1,13 @@ package com.gemwallet.android.flavors import android.content.Context -import android.util.Log import com.gemwallet.android.cases.device.RequestPushToken import com.google.firebase.FirebaseApp import com.google.firebase.messaging.FirebaseMessaging class StoreRequestPushToken : RequestPushToken { - override fun init(context: Context) { + override fun initRequester(context: Context) { FirebaseApp.initializeApp(context) } diff --git a/flavors/pushes-stub/src/main/kotlin/com/gemwallet/android/flavors/RequestrPushToken.kt b/flavors/pushes-stub/src/main/kotlin/com/gemwallet/android/flavors/RequestPushToken.kt similarity index 85% rename from flavors/pushes-stub/src/main/kotlin/com/gemwallet/android/flavors/RequestrPushToken.kt rename to flavors/pushes-stub/src/main/kotlin/com/gemwallet/android/flavors/RequestPushToken.kt index be97e5757..267fab584 100644 --- a/flavors/pushes-stub/src/main/kotlin/com/gemwallet/android/flavors/RequestrPushToken.kt +++ b/flavors/pushes-stub/src/main/kotlin/com/gemwallet/android/flavors/RequestPushToken.kt @@ -5,7 +5,7 @@ import com.gemwallet.android.cases.device.RequestPushToken class StoreRequestPushToken : RequestPushToken { - override fun init(context: Context) {} + override fun initRequester(context: Context) {} override suspend fun requestToken(callback: (String) -> Unit) { callback("") diff --git a/gemcore/src/main/kotlin/com/gemwallet/android/cases/device/RequestPushToken.kt b/gemcore/src/main/kotlin/com/gemwallet/android/cases/device/RequestPushToken.kt index 293cad15a..2b1f9141f 100644 --- a/gemcore/src/main/kotlin/com/gemwallet/android/cases/device/RequestPushToken.kt +++ b/gemcore/src/main/kotlin/com/gemwallet/android/cases/device/RequestPushToken.kt @@ -4,7 +4,7 @@ import android.content.Context interface RequestPushToken { - fun init(context: Context) + fun initRequester(context: Context) suspend fun requestToken(callback: (String) -> Unit) } \ No newline at end of file