diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index 47ccedf2f2..63c35e527c 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -178,7 +178,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity() { final override fun onStop() { super.onStop() - browsingModeManager.unregisterBrowsingModeListener() + browsingModeManager.unregisterBrowsingModeListener(browsingModeListener) } final override fun onPause() { diff --git a/app/src/main/java/org/mozilla/fenix/browser/browsingmode/BrowsingModeManager.kt b/app/src/main/java/org/mozilla/fenix/browser/browsingmode/BrowsingModeManager.kt index abb856b062..811434f0fe 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/browsingmode/BrowsingModeManager.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/browsingmode/BrowsingModeManager.kt @@ -42,21 +42,21 @@ class DefaultBrowsingModeManager( private var _mode: BrowsingMode = BrowsingMode.Normal ) : BrowsingModeManager { - private var _browsingModeListener: BrowsingModeListener? = null + private val browsingModeListeners = mutableSetOf() fun registerBrowsingModeListener(browsingModeListener: BrowsingModeListener) { - _browsingModeListener = browsingModeListener + browsingModeListeners.add(browsingModeListener) } - fun unregisterBrowsingModeListener() { - _browsingModeListener = null + fun unregisterBrowsingModeListener(browsingModeListener: BrowsingModeListener) { + browsingModeListeners.remove(browsingModeListener) } override var mode: BrowsingMode get() = _mode set(value) { _mode = value - _browsingModeListener?.onBrowsingModeChange(value) + browsingModeListeners.forEach { it.onBrowsingModeChange(value) } Settings.instance?.lastKnownMode = value } }