Skip to content

Commit bbebf56

Browse files
authored
fix(android): missing check before unregistering receiver (#66)
1 parent 6826ae4 commit bbebf56

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

android/src/main/java/com/orientationdirector/implementation/ConfigurationChangedBroadcastReceiver.kt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import com.facebook.react.bridge.ReactApplicationContext
1717
class ConfigurationChangedBroadcastReceiver internal constructor(private val context: ReactApplicationContext) :
1818
BroadcastReceiver() {
1919

20+
private var isRegistered = false
21+
2022
private var onReceiveCallback: ((intent: Intent?) -> Unit)? = null
2123

2224
override fun onReceive(context: Context?, intent: Intent?) {
@@ -40,10 +42,21 @@ class ConfigurationChangedBroadcastReceiver internal constructor(private val con
4042
} else {
4143
context.registerReceiver(this, filter)
4244
}
45+
46+
isRegistered = true
4347
}
4448

4549
fun unregister() {
46-
context.unregisterReceiver(this)
50+
if (!isRegistered) {
51+
return
52+
}
53+
54+
try {
55+
context.unregisterReceiver(this)
56+
} catch(_: IllegalArgumentException) {
57+
} finally {
58+
isRegistered = false
59+
}
4760
}
4861

4962
companion object {

0 commit comments

Comments
 (0)