diff --git a/android/src/main/java/com/candlefinance/push/ContextHolder.kt b/android/src/main/java/com/candlefinance/push/ContextHolder.kt index ef85f41..73ec1cf 100644 --- a/android/src/main/java/com/candlefinance/push/ContextHolder.kt +++ b/android/src/main/java/com/candlefinance/push/ContextHolder.kt @@ -20,9 +20,9 @@ class ContextHolder private constructor() { } } - fun getApplicationContext(): ReactContext { + fun getApplicationContext(): ReactContext? { if (!::applicationContext.isInitialized) { - throw IllegalStateException("Application context not initialized. Call setApplicationContext() first.") + return null } return applicationContext } diff --git a/android/src/main/java/com/candlefinance/push/FirebaseMessagingService.kt b/android/src/main/java/com/candlefinance/push/FirebaseMessagingService.kt index 15138de..e9356ab 100644 --- a/android/src/main/java/com/candlefinance/push/FirebaseMessagingService.kt +++ b/android/src/main/java/com/candlefinance/push/FirebaseMessagingService.kt @@ -35,10 +35,12 @@ class FirebaseMessagingService : FirebaseMessagingService() { // Send the event RNEventEmitter.sendEvent(notificationReceived, formattedData.toString()) - NotificationUtils - .sendNotification( - ContextHolder.getInstance().getApplicationContext(), title, body - ) + ContextHolder.getInstance().getApplicationContext()?.let { + NotificationUtils + .sendNotification( + it, title, body + ) + } if (remoteMessage.data.isNotEmpty()) { Log.d(TAG, "Message data payload: ${remoteMessage.data}") } @@ -58,7 +60,7 @@ class FirebaseMessagingService : FirebaseMessagingService() { // TODO: make this actually work private fun getAppState(): String { val reactContext = ContextHolder.getInstance().getApplicationContext() - val currentActivity = reactContext.currentActivity + val currentActivity = reactContext?.currentActivity return if (currentActivity == null) { "background" } else { diff --git a/android/src/main/java/com/candlefinance/push/NotificationUtils.kt b/android/src/main/java/com/candlefinance/push/NotificationUtils.kt index b3c31d0..f81eb69 100644 --- a/android/src/main/java/com/candlefinance/push/NotificationUtils.kt +++ b/android/src/main/java/com/candlefinance/push/NotificationUtils.kt @@ -62,8 +62,12 @@ object NotificationUtils { synchronized(ResourceUtils::class.java) { val context = ContextHolder.getInstance().getApplicationContext() - val packageName = context.packageName - return context.resources.getIdentifier(name, type, packageName) + val packageName = context?.packageName + if (context != null) { + return context.resources.getIdentifier(name, type, packageName) + } else { + return -1 + } } } } diff --git a/android/src/main/java/com/candlefinance/push/RNEventEmitter.kt b/android/src/main/java/com/candlefinance/push/RNEventEmitter.kt index 6cb979d..eaa6572 100644 --- a/android/src/main/java/com/candlefinance/push/RNEventEmitter.kt +++ b/android/src/main/java/com/candlefinance/push/RNEventEmitter.kt @@ -7,9 +7,7 @@ object RNEventEmitter { fun sendEvent(eventName: String?, eventMap: String?) { val reactContext = ContextHolder.getInstance().getApplicationContext() try { - reactContext - .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java) - .emit(eventName!!, eventMap) + reactContext?.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)?.emit(eventName!!, eventMap) } catch (e: Exception) { Log.e("SEND_EVENT", "", e) }