mirror of
https://github.com/binwiederhier/ntfy-android.git
synced 2024-09-29 17:11:11 +13:00
Make sure Firebase crash does not crash the app or coroutine
This commit is contained in:
parent
e6c3a2e2bd
commit
42188d5152
1 changed files with 15 additions and 7 deletions
|
@ -5,21 +5,29 @@ import io.heckel.ntfy.log.Log
|
||||||
|
|
||||||
class FirebaseMessenger {
|
class FirebaseMessenger {
|
||||||
fun subscribe(topic: String) {
|
fun subscribe(topic: String) {
|
||||||
FirebaseMessaging
|
val firebase = maybeInstance() ?: return
|
||||||
.getInstance()
|
firebase
|
||||||
.subscribeToTopic(topic)
|
.subscribeToTopic(topic)
|
||||||
.addOnCompleteListener {
|
.addOnCompleteListener {
|
||||||
Log.d(TAG, "Subscribing to topic $topic complete: result=${it.result}, exception=${it.exception}, successful=${it.isSuccessful}")
|
Log.d(TAG, "Subscribing to topic $topic complete: result=${it.result}, exception=${it.exception}, successful=${it.isSuccessful}")
|
||||||
}
|
}
|
||||||
.addOnFailureListener {
|
.addOnFailureListener { e ->
|
||||||
Log.e(TAG, "Subscribing to topic $topic failed: $it")
|
Log.e(TAG, "Subscribing to topic $topic failed: ${e.message}", e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun unsubscribe(topic: String) {
|
fun unsubscribe(topic: String) {
|
||||||
FirebaseMessaging
|
val firebase = maybeInstance() ?: return
|
||||||
.getInstance()
|
firebase.unsubscribeFromTopic(topic)
|
||||||
.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 {
|
companion object {
|
||||||
|
|
Loading…
Reference in a new issue