From 9a53054b28fe156c364f854899683568e1ac172d Mon Sep 17 00:00:00 2001 From: Christian Sadilek Date: Thu, 7 Jan 2021 14:40:32 -0500 Subject: [PATCH] Use new RestoreUseCase in A-C to handle tab timeouts --- .../org/mozilla/fenix/FenixApplication.kt | 23 +------------------ .../java/org/mozilla/fenix/utils/Settings.kt | 2 +- .../org/mozilla/fenix/utils/SettingsTest.kt | 7 +++--- buildSrc/src/main/java/AndroidComponents.kt | 2 +- 4 files changed, 7 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt index 5b99912430..cbb9e1ea24 100644 --- a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +++ b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt @@ -132,8 +132,6 @@ open class FenixApplication : LocaleAwareApplication(), Provider { } initializeWebExtensionSupport() restoreBrowserState() - removeTimedOutTabs() - restoreDownloads() // Just to make sure it is impossible for any application-services pieces @@ -166,7 +164,7 @@ open class FenixApplication : LocaleAwareApplication(), Provider { val store = components.core.store val sessionStorage = components.core.sessionStorage - components.useCases.tabsUseCases.restore(sessionStorage) + components.useCases.tabsUseCases.restore(sessionStorage, settings().getTabTimeout()) // Now that we have restored our previous state (if there's one) let's setup auto saving the state while // the app is used. @@ -176,25 +174,6 @@ open class FenixApplication : LocaleAwareApplication(), Provider { .whenSessionsChange() } - private fun removeTimedOutTabs() { - val store = components.core.store - val tabsUseCases = components.useCases.tabsUseCases - - // Now that we have restored our previous state (if there's one) let's remove timed out tabs - if (!settings().manuallyCloseTabs) { - val now = System.currentTimeMillis() - val tabTimeout = settings().getTabTimeout() - - val tabsToRemove = store.state.tabs - .filter { tab -> now - tab.lastAccess > tabTimeout } - .map { tab -> tab.id } - - if (tabsToRemove.isNotEmpty()) { - tabsUseCases.removeTabs(tabsToRemove) - } - } - } - private fun restoreDownloads() { components.useCases.downloadUseCases.restoreDownloads() } diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index 98b726a8b6..be2614ae97 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -326,7 +326,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { closeTabsAfterOneDay -> ONE_DAY_MS closeTabsAfterOneWeek -> ONE_WEEK_MS closeTabsAfterOneMonth -> ONE_MONTH_MS - else -> System.currentTimeMillis() + else -> Long.MAX_VALUE } enum class TabView { diff --git a/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt b/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt index 1b0a6a85ac..6c7b08ba7e 100644 --- a/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt +++ b/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt @@ -236,27 +236,28 @@ class SettingsTest { // When just created // Then assertTrue(settings.manuallyCloseTabs) + assertEquals(Long.MAX_VALUE, settings.getTabTimeout()) // When settings.manuallyCloseTabs = false settings.closeTabsAfterOneDay = true // Then - assertEquals(settings.getTabTimeout(), Settings.ONE_DAY_MS) + assertEquals(Settings.ONE_DAY_MS, settings.getTabTimeout()) // When settings.closeTabsAfterOneDay = false settings.closeTabsAfterOneWeek = true // Then - assertEquals(settings.getTabTimeout(), Settings.ONE_WEEK_MS) + assertEquals(Settings.ONE_WEEK_MS, settings.getTabTimeout()) // When settings.closeTabsAfterOneWeek = false settings.closeTabsAfterOneMonth = true // Then - assertEquals(settings.getTabTimeout(), Settings.ONE_MONTH_MS) + assertEquals(Settings.ONE_MONTH_MS, settings.getTabTimeout()) } @Test diff --git a/buildSrc/src/main/java/AndroidComponents.kt b/buildSrc/src/main/java/AndroidComponents.kt index 71e51f9a7c..029980bd7d 100644 --- a/buildSrc/src/main/java/AndroidComponents.kt +++ b/buildSrc/src/main/java/AndroidComponents.kt @@ -3,5 +3,5 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ object AndroidComponents { - const val VERSION = "71.0.20210107143131" + const val VERSION = "71.0.20210107190115" }