Use new RestoreUseCase in A-C to handle tab timeouts
This commit is contained in:
parent
397383b900
commit
9a53054b28
|
@ -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()
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue