From 597c235783cea4c3ab5b69ab75caf8039abb7800 Mon Sep 17 00:00:00 2001 From: Kyle Hickinson Date: Fri, 6 Oct 2023 10:43:40 -0400 Subject: [PATCH] Fix #7755: Reinsert the favs overlay when bottom bar mode changes --- .../Browser/BrowserViewController.swift | 5 +++++ ...rowserViewController+ToolbarDelegate.swift | 22 +++++++++++-------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/Sources/Brave/Frontend/Browser/BrowserViewController.swift b/Sources/Brave/Frontend/Browser/BrowserViewController.swift index ae67f3a8977..8e5a75c27bb 100644 --- a/Sources/Brave/Frontend/Browser/BrowserViewController.swift +++ b/Sources/Brave/Frontend/Browser/BrowserViewController.swift @@ -600,6 +600,11 @@ public class BrowserViewController: UIViewController { traitCollection.horizontalSizeClass == .compact && traitCollection.verticalSizeClass == .regular && traitCollection.userInterfaceIdiom == .phone + + // Reinserts the fav controller whos parent is based on bottom bar + if let favoritesController { + insertFavoritesControllerView(favoritesController: favoritesController) + } } public override func viewSafeAreaInsetsDidChange() { diff --git a/Sources/Brave/Frontend/Browser/BrowserViewController/BrowserViewController+ToolbarDelegate.swift b/Sources/Brave/Frontend/Browser/BrowserViewController/BrowserViewController+ToolbarDelegate.swift index 19c0f8ed8c3..f0cc13f53b2 100644 --- a/Sources/Brave/Frontend/Browser/BrowserViewController/BrowserViewController+ToolbarDelegate.swift +++ b/Sources/Brave/Frontend/Browser/BrowserViewController/BrowserViewController+ToolbarDelegate.swift @@ -661,6 +661,18 @@ extension BrowserViewController: TopToolbarDelegate { favoritesController?.view.isHidden = true } + + func insertFavoritesControllerView(favoritesController: FavoritesViewController) { + if let ntpController = self.activeNewTabPageViewController, ntpController.parent != nil { + view.insertSubview(favoritesController.view, aboveSubview: ntpController.view) + } else { + // Two different behaviors here: + // 1. For bottom bar we do not want to show the status bar color + // 2. For top bar we do so it matches the address bar background + let subview = isUsingBottomBar ? statusBarOverlay : footer + view.insertSubview(favoritesController.view, aboveSubview: subview) + } + } private func displayFavoritesController() { if favoritesController == nil { @@ -730,15 +742,7 @@ extension BrowserViewController: TopToolbarDelegate { self.favoritesController = favoritesController addChild(favoritesController) - if let ntpController = self.activeNewTabPageViewController, ntpController.parent != nil { - view.insertSubview(favoritesController.view, aboveSubview: ntpController.view) - } else { - // Two different behaviors here: - // 1. For bottom bar we do not want to show the status bar color - // 2. For top bar we do so it matches the address bar background - let subview = isUsingBottomBar ? statusBarOverlay : footer - view.insertSubview(favoritesController.view, aboveSubview: subview) - } + insertFavoritesControllerView(favoritesController: favoritesController) favoritesController.didMove(toParent: self) favoritesController.view.snp.makeConstraints {