diff --git a/Client/Frontend/Home/JumpBackIn/JumpBackInViewModel.swift b/Client/Frontend/Home/JumpBackIn/JumpBackInViewModel.swift index a42f77010cfa..961f59017de6 100644 --- a/Client/Frontend/Home/JumpBackIn/JumpBackInViewModel.swift +++ b/Client/Frontend/Home/JumpBackIn/JumpBackInViewModel.swift @@ -177,7 +177,7 @@ class JumpBackInViewModel: FeatureFlaggable { // MARK: - Private: Prepare UI data private extension JumpBackInViewModel { - func refreshData(maxItemsToDisplay: JumpBackInDisplayGroupCount) { + private func refreshData(maxItemsToDisplay: JumpBackInDisplayGroupCount) { jumpBackInList = createJumpBackInList( from: recentTabs, withMaxTabsCount: maxItemsToDisplay.tabsCount, @@ -465,11 +465,9 @@ extension JumpBackInViewModel: HomepageViewModelProtocol { func refreshData(for traitCollection: UITraitCollection, isPortrait: Bool = UIWindow.isPortrait, device: UIUserInterfaceIdiom = UIDevice.current.userInterfaceIdiom) { - getLatestData() updateSectionLayout(for: traitCollection, isPortrait: isPortrait, device: device) - let maxItemsToDisplay = sectionLayout.maxItemsToDisplay( hasAccount: jumpBackInDataAdaptor.hasSyncedTabFeatureEnabled, device: device @@ -477,12 +475,6 @@ extension JumpBackInViewModel: HomepageViewModelProtocol { refreshData(maxItemsToDisplay: maxItemsToDisplay) } - private func getLatestData() { - recentTabs = jumpBackInDataAdaptor.getRecentTabData() - recentGroups = jumpBackInDataAdaptor.getGroupsData() - recentSyncedTab = jumpBackInDataAdaptor.getSyncedTabData() - } - func updatePrivacyConcernedSection(isPrivate: Bool) { self.isPrivate = isPrivate } @@ -559,7 +551,9 @@ extension JumpBackInViewModel: HomepageSectionHandler { extension JumpBackInViewModel: JumpBackInDelegate { func didLoadNewData() { ensureMainThread { - self.getLatestData() + self.recentTabs = self.jumpBackInDataAdaptor.getRecentTabData() + self.recentGroups = self.jumpBackInDataAdaptor.getGroupsData() + self.recentSyncedTab = self.jumpBackInDataAdaptor.getSyncedTabData() guard self.isEnabled else { return } self.delegate?.reloadView() } diff --git a/Tests/ClientTests/Frontend/Home/JumpBackIn/JumpBackInViewModelTests.swift b/Tests/ClientTests/Frontend/Home/JumpBackIn/JumpBackInViewModelTests.swift index c531a448d5cc..05b09f285049 100644 --- a/Tests/ClientTests/Frontend/Home/JumpBackIn/JumpBackInViewModelTests.swift +++ b/Tests/ClientTests/Frontend/Home/JumpBackIn/JumpBackInViewModelTests.swift @@ -169,6 +169,7 @@ class JumpBackInViewModelTests: XCTestCase { trait.overridenHorizontalSizeClass = .compact trait.overridenVerticalSizeClass = .regular + subject.didLoadNewData() subject.refreshData(for: trait, isPortrait: true, device: .phone) let maxItems = subject.sectionLayout.maxItemsToDisplay(hasAccount: false, device: .phone) @@ -186,6 +187,7 @@ class JumpBackInViewModelTests: XCTestCase { let trait = MockTraitCollection() trait.overridenHorizontalSizeClass = .compact trait.overridenVerticalSizeClass = .regular + subject.didLoadNewData() subject.refreshData(for: trait, isPortrait: true, device: .phone) let maxItems = subject.sectionLayout.maxItemsToDisplay(hasAccount: true, device: .phone) @@ -206,6 +208,7 @@ class JumpBackInViewModelTests: XCTestCase { let trait = MockTraitCollection() trait.overridenHorizontalSizeClass = .compact trait.overridenVerticalSizeClass = .regular + subject.didLoadNewData() subject.refreshData(for: trait, isPortrait: true, device: .phone) let maxItems = subject.sectionLayout.maxItemsToDisplay(hasAccount: true, device: .phone) @@ -244,6 +247,7 @@ class JumpBackInViewModelTests: XCTestCase { let trait = MockTraitCollection() trait.overridenHorizontalSizeClass = .regular trait.overridenVerticalSizeClass = .compact + subject.didLoadNewData() subject.refreshData(for: trait, isPortrait: false, device: .phone) let maxItems = subject.sectionLayout.maxItemsToDisplay(hasAccount: true, device: .phone) @@ -282,6 +286,7 @@ class JumpBackInViewModelTests: XCTestCase { let trait = MockTraitCollection() trait.overridenHorizontalSizeClass = .regular trait.overridenVerticalSizeClass = .regular + subject.didLoadNewData() subject.refreshData(for: trait, isPortrait: true, device: .pad) let maxItems = subject.sectionLayout.maxItemsToDisplay(hasAccount: true, device: .pad) @@ -321,6 +326,7 @@ class JumpBackInViewModelTests: XCTestCase { let trait = MockTraitCollection() trait.overridenHorizontalSizeClass = .regular trait.overridenVerticalSizeClass = .compact + subject.didLoadNewData() subject.refreshData(for: trait, isPortrait: true, device: .phone) let maxItems = subject.sectionLayout.maxItemsToDisplay(hasAccount: true, device: .phone) @@ -340,6 +346,8 @@ class JumpBackInViewModelTests: XCTestCase { let trait = MockTraitCollection() trait.overridenHorizontalSizeClass = .regular trait.overridenVerticalSizeClass = .regular + + subject.didLoadNewData() subject.refreshData(for: trait, isPortrait: false, device: .pad) let maxItems = subject.sectionLayout.maxItemsToDisplay(hasAccount: true, device: .pad) @@ -360,6 +368,7 @@ class JumpBackInViewModelTests: XCTestCase { let trait = MockTraitCollection() trait.overridenHorizontalSizeClass = .regular trait.overridenVerticalSizeClass = .compact + subject.didLoadNewData() subject.refreshData(for: trait, isPortrait: true, device: .phone) let maxItems = subject.sectionLayout.maxItemsToDisplay(hasAccount: true, device: .phone) @@ -396,6 +405,7 @@ class JumpBackInViewModelTests: XCTestCase { let trait = MockTraitCollection() trait.overridenHorizontalSizeClass = .regular trait.overridenVerticalSizeClass = .regular + subject.didLoadNewData() subject.refreshData(for: trait, isPortrait: false, device: .pad) let maxItems = subject.sectionLayout.maxItemsToDisplay(hasAccount: true, device: .pad) @@ -411,6 +421,7 @@ class JumpBackInViewModelTests: XCTestCase { let tab2 = createTab(profile: mockProfile, urlString: "www.firefox1.com") let tab3 = createTab(profile: mockProfile, urlString: "www.firefox1.com") adaptor.recentTabs = [tab1, tab2, tab3] + subject.didLoadNewData() // Start in portrait let portraitTrait = MockTraitCollection() @@ -455,6 +466,7 @@ class JumpBackInViewModelTests: XCTestCase { func testRefreshData_noData() { let subject = createSubject() + subject.didLoadNewData() subject.refreshData(for: MockTraitCollection()) XCTAssertEqual(subject.jumpBackInList.tabs.count, 0) @@ -465,6 +477,7 @@ class JumpBackInViewModelTests: XCTestCase { let subject = createSubject() let tab1 = createTab(profile: mockProfile, urlString: "www.firefox1.com") adaptor.recentTabs = [tab1] + subject.didLoadNewData() subject.refreshData(for: MockTraitCollection()) XCTAssertEqual(subject.jumpBackInList.tabs.count, 1) @@ -474,6 +487,7 @@ class JumpBackInViewModelTests: XCTestCase { func testRefreshData_syncedTab() { let subject = createSubject() adaptor.syncedTab = JumpBackInSyncedTab(client: remoteClient, tab: remoteTab) + subject.didLoadNewData() subject.refreshData(for: MockTraitCollection()) XCTAssertEqual(subject.jumpBackInList.tabs.count, 0) @@ -493,6 +507,7 @@ class JumpBackInViewModelTests: XCTestCase { let trait = MockTraitCollection() trait.overridenHorizontalSizeClass = .compact trait.overridenVerticalSizeClass = .regular + subject.didLoadNewData() subject.refreshData(for: trait, isPortrait: true, device: .phone) XCTAssertEqual(subject.sectionLayout, .compactJumpBackIn) @@ -512,6 +527,7 @@ class JumpBackInViewModelTests: XCTestCase { let trait = MockTraitCollection() trait.overridenHorizontalSizeClass = .compact trait.overridenVerticalSizeClass = .regular + subject.didLoadNewData() subject.refreshData(for: trait, isPortrait: true, device: .phone) XCTAssertEqual(subject.sectionLayout, .compactJumpBackIn) @@ -532,6 +548,7 @@ class JumpBackInViewModelTests: XCTestCase { let trait = MockTraitCollection() trait.overridenHorizontalSizeClass = .compact trait.overridenVerticalSizeClass = .regular + subject.didLoadNewData() subject.refreshData(for: trait, isPortrait: true, device: .phone) let jumpBackIn = subject.jumpBackInList @@ -556,6 +573,7 @@ class JumpBackInViewModelTests: XCTestCase { let trait = MockTraitCollection() trait.overridenHorizontalSizeClass = .regular trait.overridenVerticalSizeClass = .compact + subject.didLoadNewData() subject.refreshData(for: trait, isPortrait: false, device: .phone) let jumpBackIn = subject.jumpBackInList @@ -581,6 +599,7 @@ class JumpBackInViewModelTests: XCTestCase { let trait = MockTraitCollection() trait.overridenHorizontalSizeClass = .regular trait.overridenVerticalSizeClass = .compact + subject.didLoadNewData() subject.refreshData(for: trait, isPortrait: false, device: .phone) let jumpBackIn = subject.jumpBackInList