
Matthew Finkel pushed to branch tor-browser-82.0.0b4-10.0-1 at The Tor Project / Applications / fenix Commits: a061d49c by Matthew Finkel at 2020-10-16T17:04:37+00:00 fixup! Bug 40028: Integrate Tor Controller into HomeFragment Bug 40068: Tor Service closes when changing theme - - - - - e7ca4137 by Matthew Finkel at 2020-10-23T14:11:39+00:00 Merge branch 'bug_40068_01' into tor-browser-82.0.0b4-10.0-1 - - - - - 2 changed files: - app/src/main/java/org/mozilla/fenix/FenixApplication.kt - app/src/main/java/org/mozilla/fenix/HomeActivity.kt Changes: ===================================== app/src/main/java/org/mozilla/fenix/FenixApplication.kt ===================================== @@ -67,6 +67,8 @@ open class FenixApplication : LocaleAwareApplication(), Provider { private val logger = Logger("FenixApplication") + var terminating = false + open val components by lazy { Components(this) } var visibilityLifecycleCallback: VisibilityLifecycleCallback? = null @@ -96,9 +98,19 @@ open class FenixApplication : LocaleAwareApplication(), Provider { setupInMainProcessOnly() } + fun isTerminating() = terminating + + fun terminate() { + onTerminate() + System.exit(0) + } + override fun onTerminate() { + terminating = true + super.onTerminate() components.torController.stop() + components.torController.stopTor() } protected open fun initializeGlean() { ===================================== app/src/main/java/org/mozilla/fenix/HomeActivity.kt ===================================== @@ -131,6 +131,8 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { private var isToolbarInflated = false + private var isBeingRecreated = false + private val webExtensionPopupFeature by lazy { WebExtensionPopupFeature(components.core.store, ::openPopup) } @@ -362,10 +364,14 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { ) privateNotificationObserver?.stop() - components.torController.stopTor() - // Explicitly change our internal state because the status broadcast from tor-android-service may - // arrive after we unregister the broadcast listener when the app is exiting. - components.torController.setTorStopped() + if (!isBeingRecreated && !(application as FenixApplication).isTerminating()) { + // We assume the Activity is being destroyed because the user + // swiped away the app on the Recent screen. When this happens, + // we assume the user expects the entire Application is destroyed + // and not only the top Activity/Task. Therefore we kill the + // underlying Application, as well. + (application as FenixApplication).terminate() + } } override fun onConfigurationChanged(newConfig: Configuration) { @@ -385,6 +391,8 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { message = "recreate()" ) + isBeingRecreated = true + super.recreate() } View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/compare/8c969c0c9aa52... -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/compare/8c969c0c9aa52... You're receiving this email because of your account on gitlab.torproject.org.
participants (1)
-
Matthew Finkel