diff --git a/Client/Frontend/Browser/BrowserViewController.swift b/Client/Frontend/Browser/BrowserViewController.swift index a47d2ac02c45..b716c24aad4f 100644 --- a/Client/Frontend/Browser/BrowserViewController.swift +++ b/Client/Frontend/Browser/BrowserViewController.swift @@ -1133,7 +1133,7 @@ class BrowserViewController: UIViewController, func removeBookmark(url: String) { profile.places.deleteBookmarksWithURL(url: url).uponQueue(.main) { result in guard result.isSuccess else { return } - self.showToast(message: .AppMenu.RemoveBookmarkConfirmMessage, toastAction: .removeBookmark, url: url) + self.showToast(message: .AppMenu.RemoveBookmarkConfirmMessage, toastAction: .removeBookmark) } } diff --git a/Client/Frontend/Browser/BrowserViewController/BrowserViewController+TabToolbarDelegate.swift b/Client/Frontend/Browser/BrowserViewController/BrowserViewController+TabToolbarDelegate.swift index 004a7c4673a9..cbc2d37b8060 100644 --- a/Client/Frontend/Browser/BrowserViewController/BrowserViewController+TabToolbarDelegate.swift +++ b/Client/Frontend/Browser/BrowserViewController/BrowserViewController+TabToolbarDelegate.swift @@ -212,15 +212,16 @@ extension BrowserViewController: ToolBarActionMenuDelegate { presentWithModalDismissIfNeeded(viewController, animated: true) } - func showToast(message: String, toastAction: MenuButtonToastAction, url: String?) { + func showToast(message: String, toastAction: MenuButtonToastAction) { switch toastAction { case .removeBookmark: let viewModel = ButtonToastViewModel(labelText: message, buttonText: .UndoString, textAlignment: .left) let toast = ButtonToast(viewModel: viewModel, - theme: themeManager.currentTheme) { isButtonTapped in - isButtonTapped ? self.addBookmark(url: url ?? "") : nil + theme: themeManager.currentTheme) { [weak self] isButtonTapped in + guard let strongSelf = self, let currentTab = strongSelf.tabManager.selectedTab else { return } + isButtonTapped ? strongSelf.addBookmark(url: currentTab.url?.absoluteString ?? "", title: currentTab.title) : nil } show(toast: toast) default: diff --git a/Client/Frontend/Browser/MainMenuActionHelper.swift b/Client/Frontend/Browser/MainMenuActionHelper.swift index 26b6fb3b7750..e87560750ef2 100644 --- a/Client/Frontend/Browser/MainMenuActionHelper.swift +++ b/Client/Frontend/Browser/MainMenuActionHelper.swift @@ -20,7 +20,7 @@ protocol ToolBarActionMenuDelegate: AnyObject { func showLibrary(panel: LibraryPanelType) func showViewController(viewController: UIViewController) - func showToast(message: String, toastAction: MenuButtonToastAction, url: String?) + func showToast(message: String, toastAction: MenuButtonToastAction) func showMenuPresenter(url: URL, tab: Tab, view: UIView) func showFindInPage() func showCustomizeHomePage() @@ -378,7 +378,7 @@ class MainMenuActionHelper: PhotonActionSheetProtocol, TelemetryWrapper.recordEvent(category: .action, method: .tap, object: .copyAddress) if let url = self.selectedTab?.canonicalURL?.displayURL { UIPasteboard.general.url = url - self.delegate?.showToast(message: .AppMenu.AppMenuCopyURLConfirmMessage, toastAction: .copyUrl, url: nil) + self.delegate?.showToast(message: .AppMenu.AppMenuCopyURLConfirmMessage, toastAction: .copyUrl) } }.items } @@ -670,7 +670,7 @@ class MainMenuActionHelper: PhotonActionSheetProtocol, self.profile.readingList.createRecordWithURL(url.absoluteString, title: tab.title ?? "", addedBy: UIDevice.current.name) TelemetryWrapper.recordEvent(category: .action, method: .add, object: .readingListItem, value: .pageActionMenu) - self.delegate?.showToast(message: .AppMenu.AddToReadingListConfirmMessage, toastAction: .addToReadingList, url: nil) + self.delegate?.showToast(message: .AppMenu.AddToReadingListConfirmMessage, toastAction: .addToReadingList) } } @@ -683,8 +683,7 @@ class MainMenuActionHelper: PhotonActionSheetProtocol, self.profile.readingList.deleteRecord(record, completion: nil) self.delegate?.showToast(message: .AppMenu.RemoveFromReadingListConfirmMessage, - toastAction: .removeFromReadingList, - url: nil) + toastAction: .removeFromReadingList) TelemetryWrapper.recordEvent(category: .action, method: .delete, object: .readingListItem, @@ -737,7 +736,7 @@ class MainMenuActionHelper: PhotonActionSheetProtocol, self.profile.places.deleteBookmarksWithURL(url: url.absoluteString).uponQueue(.main) { result in guard result.isSuccess else { return } - self.delegate?.showToast(message: .AppMenu.RemoveBookmarkConfirmMessage, toastAction: .removeBookmark, url: url.absoluteString) + self.delegate?.showToast(message: .AppMenu.RemoveBookmarkConfirmMessage, toastAction: .removeBookmark) self.removeBookmarkShortcut() } @@ -759,7 +758,7 @@ class MainMenuActionHelper: PhotonActionSheetProtocol, let site = Site(url: url.absoluteString, title: title) self.profile.pinnedSites.addPinnedTopSite(site).uponQueue(.main) { result in guard result.isSuccess else { return } - self.delegate?.showToast(message: .AppMenu.AddPinToShortcutsConfirmMessage, toastAction: .pinPage, url: nil) + self.delegate?.showToast(message: .AppMenu.AddPinToShortcutsConfirmMessage, toastAction: .pinPage) } TelemetryWrapper.recordEvent(category: .action, method: .tap, object: .pinToTopSites) @@ -774,7 +773,7 @@ class MainMenuActionHelper: PhotonActionSheetProtocol, let site = Site(url: url.absoluteString, title: title) self.profile.pinnedSites.removeFromPinnedTopSites(site).uponQueue(.main) { result in if result.isSuccess { - self.delegate?.showToast(message: .AppMenu.RemovePinFromShortcutsConfirmMessage, toastAction: .removePinPage, url: nil) + self.delegate?.showToast(message: .AppMenu.RemovePinFromShortcutsConfirmMessage, toastAction: .removePinPage) } } TelemetryWrapper.recordEvent(category: .action, method: .tap, object: .removePinnedSite)