Use new RestoreUseCase in A-C to handle tab timeouts

This commit is contained in:
Christian Sadilek 2021-01-07 14:40:32 -05:00
parent 397383b900
commit 9a53054b28
4 changed files with 7 additions and 27 deletions

View File

@ -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()
}

View File

@ -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 {

View File

@ -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

View File

@ -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"
}