diff --git a/app/src/play/java/io/heckel/ntfy/firebase/FirebaseMessenger.kt b/app/src/play/java/io/heckel/ntfy/firebase/FirebaseMessenger.kt index 380d34d..3c2b673 100644 --- a/app/src/play/java/io/heckel/ntfy/firebase/FirebaseMessenger.kt +++ b/app/src/play/java/io/heckel/ntfy/firebase/FirebaseMessenger.kt @@ -5,21 +5,29 @@ import io.heckel.ntfy.log.Log class FirebaseMessenger { fun subscribe(topic: String) { - FirebaseMessaging - .getInstance() + val firebase = maybeInstance() ?: return + firebase .subscribeToTopic(topic) .addOnCompleteListener { Log.d(TAG, "Subscribing to topic $topic complete: result=${it.result}, exception=${it.exception}, successful=${it.isSuccessful}") } - .addOnFailureListener { - Log.e(TAG, "Subscribing to topic $topic failed: $it") + .addOnFailureListener { e -> + Log.e(TAG, "Subscribing to topic $topic failed: ${e.message}", e) } } fun unsubscribe(topic: String) { - FirebaseMessaging - .getInstance() - .unsubscribeFromTopic(topic) + val firebase = maybeInstance() ?: return + firebase.unsubscribeFromTopic(topic) + } + + private fun maybeInstance(): FirebaseMessaging? { + return try { + FirebaseMessaging.getInstance() + } catch (e: Exception) { + Log.e(TAG, "Firebase instance unavailable: ${e.message}", e) + null + } } companion object {