Commit fcf9267f authored by Nazerke's avatar Nazerke Committed by Commit Bot

[iOS][coordinator] Modernize Badge Popup Menu Coordinator.

This CL modernizes the BadgePopupMenuCoordinator to use the superclass
-initWithBaseViewController:browser:  initializer.

Also this CL updates showcase coordinator for Badge Popup Menu
Coordinator.

Bug: 1029346
Change-Id: Ib683cdb45452b90412e953a4c9a25495ef2389f6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2033161Reviewed-by: default avatarMark Cogan <marq@chromium.org>
Commit-Queue: Nazerke Kalidolda <nazerke@google.com>
Cr-Commit-Position: refs/heads/master@{#737713}
parent 937716d2
......@@ -88,6 +88,7 @@ source_set("badges_popup_menu") {
"//base",
"//ios/chrome/app/strings:ios_strings_grit",
"//ios/chrome/browser/infobars:public",
"//ios/chrome/browser/main:public",
"//ios/chrome/browser/ui/commands",
"//ios/chrome/browser/ui/commands",
"//ios/chrome/browser/ui/coordinators:chrome_coordinators",
......
......@@ -7,15 +7,19 @@
#import "ios/chrome/browser/ui/coordinators/chrome_coordinator.h"
#import "ios/chrome/browser/ui/commands/infobar_commands.h"
@protocol BadgeItem;
// Coordinator for the badge overflow popup menu.
@interface BadgePopupMenuCoordinator : ChromeCoordinator
// The dispatcher for this Coordinator.
@property(nonatomic, weak) id<InfobarCommands> dispatcher;
// Use -initWithBaseViewController:browser:
- (instancetype)initWithBaseViewController:(UIViewController*)viewController
NS_UNAVAILABLE;
// Use -initWithBaseViewController:browser:
- (instancetype)initWithBaseViewController:(UIViewController*)viewController
browserState:(ChromeBrowserState*)browserState
NS_UNAVAILABLE;
// Updates the popup menu with |badgesItems|.
- (void)setBadgeItemsToShow:(NSArray<id<BadgeItem>>*)badgeItems;
......
......@@ -6,9 +6,12 @@
#include "base/logging.h"
#import "ios/chrome/browser/infobars/infobar_type.h"
#import "ios/chrome/browser/main/browser.h"
#import "ios/chrome/browser/ui/badges/badge_constants.h"
#import "ios/chrome/browser/ui/badges/badge_item.h"
#import "ios/chrome/browser/ui/badges/badge_popup_menu_item.h"
#import "ios/chrome/browser/ui/commands/command_dispatcher.h"
#import "ios/chrome/browser/ui/commands/infobar_commands.h"
#import "ios/chrome/browser/ui/popup_menu/public/cells/popup_menu_item.h"
#import "ios/chrome/browser/ui/popup_menu/public/popup_menu_consumer.h"
#import "ios/chrome/browser/ui/popup_menu/public/popup_menu_presenter.h"
......@@ -88,23 +91,23 @@
didSelectItem:(TableViewItem<PopupMenuItem>*)item
origin:(CGPoint)origin {
[self dismissPopupMenu];
id<InfobarCommands> handler =
HandlerForProtocol(self.browser->GetCommandDispatcher(), InfobarCommands);
switch (item.actionIdentifier) {
case PopupMenuActionShowSavePasswordOptions: {
[self.dispatcher
displayModalInfobar:InfobarType::kInfobarTypePasswordSave];
[handler displayModalInfobar:InfobarType::kInfobarTypePasswordSave];
break;
}
case PopupMenuActionShowUpdatePasswordOptions: {
[self.dispatcher
displayModalInfobar:InfobarType::kInfobarTypePasswordUpdate];
[handler displayModalInfobar:InfobarType::kInfobarTypePasswordUpdate];
break;
}
case PopupMenuActionShowSaveCardOptions: {
[self.dispatcher displayModalInfobar:InfobarType::kInfobarTypeSaveCard];
[handler displayModalInfobar:InfobarType::kInfobarTypeSaveCard];
break;
}
case PopupMenuActionShowTranslateOptions: {
[self.dispatcher displayModalInfobar:InfobarType::kInfobarTypeTranslate];
[handler displayModalInfobar:InfobarType::kInfobarTypeTranslate];
break;
}
default:
......
......@@ -240,9 +240,8 @@
- (void)displayPopupMenuWithBadgeItems:(NSArray<id<BadgeItem>>*)badgeItems {
self.badgePopupMenuCoordinator = [[BadgePopupMenuCoordinator alloc]
initWithBaseViewController:self.viewController];
self.badgePopupMenuCoordinator.dispatcher =
static_cast<id<InfobarCommands>>(self.dispatcher);
initWithBaseViewController:self.viewController
browser:self.browser];
[self.badgePopupMenuCoordinator setBadgeItemsToShow:badgeItems];
[self.badgePopupMenuCoordinator start];
}
......
......@@ -10,6 +10,7 @@ source_set("badges") {
deps = [
":badges_constants",
"//ios/chrome/browser/infobars:badge_public",
"//ios/chrome/browser/main:public",
"//ios/chrome/browser/ui/badges",
"//ios/chrome/browser/ui/badges:badges_popup_menu",
"//ios/chrome/browser/ui/util",
......
......@@ -147,7 +147,8 @@
- (void)overflowBadgeButtonTapped:(id)sender {
self.badgePopupMenuCoordinator = [[BadgePopupMenuCoordinator alloc]
initWithBaseViewController:self.containerViewController];
initWithBaseViewController:self.containerViewController
browser:nil];
NSArray* badgeItems = @[ [[InfobarBadgeModel alloc]
initWithInfobarType:InfobarType::kInfobarTypePasswordSave] ];
[self.badgePopupMenuCoordinator setBadgeItemsToShow:badgeItems];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment