Commit 4101e841 authored by Gauthier Ambard's avatar Gauthier Ambard Committed by Commit Bot

[iOS] Remove the ToolsMenuButtonObserver

This CL removes the class triggering the animations for the tools menu
button in the toolbar. It is now directly triggered by the BVC.

Bug: 800266
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: I19feafb03776741bbde51fe54ace27b990811b2e
Reviewed-on: https://chromium-review.googlesource.com/1236655
Commit-Queue: Gauthier Ambard <gambard@chromium.org>
Reviewed-by: default avatarOlivier Robin <olivierrobin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592838}
parent 9f7e07f6
...@@ -3215,6 +3215,8 @@ applicationCommandEndpoint:(id<ApplicationCommands>)applicationCommandEndpoint { ...@@ -3215,6 +3215,8 @@ applicationCommandEndpoint:(id<ApplicationCommands>)applicationCommandEndpoint {
readingModel->AddEntry(URL, base::SysNSStringToUTF8(title), readingModel->AddEntry(URL, base::SysNSStringToUTF8(title),
reading_list::ADDED_VIA_CURRENT_APP); reading_list::ADDED_VIA_CURRENT_APP);
[self.dispatcher triggerToolsMenuButtonAnimation];
TriggerHapticFeedbackForNotification(UINotificationFeedbackTypeSuccess); TriggerHapticFeedbackForNotification(UINotificationFeedbackTypeSuccess);
[self showSnackbar:l10n_util::GetNSString( [self showSnackbar:l10n_util::GetNSString(
IDS_IOS_READING_LIST_SNACKBAR_MESSAGE)]; IDS_IOS_READING_LIST_SNACKBAR_MESSAGE)];
......
...@@ -6,14 +6,12 @@ ...@@ -6,14 +6,12 @@
#include "ios/chrome/browser/bookmarks/bookmark_model_factory.h" #include "ios/chrome/browser/bookmarks/bookmark_model_factory.h"
#include "ios/chrome/browser/browser_state/chrome_browser_state.h" #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
#include "ios/chrome/browser/reading_list/reading_list_model_factory.h"
#import "ios/chrome/browser/ui/ntp/ntp_util.h" #import "ios/chrome/browser/ui/ntp/ntp_util.h"
#import "ios/chrome/browser/ui/toolbar/adaptive/adaptive_toolbar_coordinator+subclassing.h" #import "ios/chrome/browser/ui/toolbar/adaptive/adaptive_toolbar_coordinator+subclassing.h"
#import "ios/chrome/browser/ui/toolbar/adaptive/adaptive_toolbar_view_controller.h" #import "ios/chrome/browser/ui/toolbar/adaptive/adaptive_toolbar_view_controller.h"
#import "ios/chrome/browser/ui/toolbar/buttons/toolbar_button_factory.h" #import "ios/chrome/browser/ui/toolbar/buttons/toolbar_button_factory.h"
#import "ios/chrome/browser/ui/toolbar/buttons/toolbar_button_visibility_configuration.h" #import "ios/chrome/browser/ui/toolbar/buttons/toolbar_button_visibility_configuration.h"
#import "ios/chrome/browser/ui/toolbar/buttons/toolbar_tools_menu_button.h" #import "ios/chrome/browser/ui/toolbar/buttons/toolbar_tools_menu_button.h"
#import "ios/chrome/browser/ui/toolbar/buttons/tools_menu_button_observer_bridge.h"
#import "ios/chrome/browser/ui/toolbar/clean/toolbar_mediator.h" #import "ios/chrome/browser/ui/toolbar/clean/toolbar_mediator.h"
#import "ios/chrome/browser/ui/uikit_ui_util.h" #import "ios/chrome/browser/ui/uikit_ui_util.h"
#import "ios/chrome/browser/web_state_list/web_state_list.h" #import "ios/chrome/browser/web_state_list/web_state_list.h"
...@@ -29,9 +27,6 @@ ...@@ -29,9 +27,6 @@
@property(nonatomic, assign) BOOL started; @property(nonatomic, assign) BOOL started;
// Mediator for updating the toolbar when the WebState changes. // Mediator for updating the toolbar when the WebState changes.
@property(nonatomic, strong) ToolbarMediator* mediator; @property(nonatomic, strong) ToolbarMediator* mediator;
// Button observer for the ToolsMenu button.
@property(nonatomic, strong)
ToolsMenuButtonObserverBridge* toolsMenuButtonObserverBridge;
@end @end
...@@ -40,7 +35,6 @@ ...@@ -40,7 +35,6 @@
@synthesize longPressDelegate = _longPressDelegate; @synthesize longPressDelegate = _longPressDelegate;
@synthesize mediator = _mediator; @synthesize mediator = _mediator;
@synthesize started = _started; @synthesize started = _started;
@synthesize toolsMenuButtonObserverBridge = _toolsMenuButtonObserverBridge;
@synthesize viewController = _viewController; @synthesize viewController = _viewController;
@synthesize webStateList = _webStateList; @synthesize webStateList = _webStateList;
...@@ -63,17 +57,10 @@ ...@@ -63,17 +57,10 @@
self.mediator.webStateList = self.webStateList; self.mediator.webStateList = self.webStateList;
self.mediator.bookmarkModel = self.mediator.bookmarkModel =
ios::BookmarkModelFactory::GetForBrowserState(self.browserState); ios::BookmarkModelFactory::GetForBrowserState(self.browserState);
DCHECK(self.viewController.toolsMenuButton);
self.toolsMenuButtonObserverBridge = [[ToolsMenuButtonObserverBridge alloc]
initWithModel:ReadingListModelFactory::GetForBrowserState(
self.browserState)
toolbarButton:self.viewController.toolsMenuButton];
} }
- (void)stop { - (void)stop {
[super stop]; [super stop];
self.toolsMenuButtonObserverBridge = nil;
[self.mediator disconnect]; [self.mediator disconnect];
self.mediator = nil; self.mediator = nil;
} }
......
...@@ -23,8 +23,6 @@ source_set("buttons") { ...@@ -23,8 +23,6 @@ source_set("buttons") {
"toolbar_tools_menu_button.h", "toolbar_tools_menu_button.h",
"toolbar_tools_menu_button.mm", "toolbar_tools_menu_button.mm",
"toolbar_type.h", "toolbar_type.h",
"tools_menu_button_observer_bridge.h",
"tools_menu_button_observer_bridge.mm",
] ]
deps = [ deps = [
"resources:toolbar_back", "resources:toolbar_back",
...@@ -37,8 +35,6 @@ source_set("buttons") { ...@@ -37,8 +35,6 @@ source_set("buttons") {
"resources:toolbar_stop", "resources:toolbar_stop",
"resources:toolbar_switcher", "resources:toolbar_switcher",
"//base", "//base",
"//components/reading_list/core",
"//components/reading_list/ios",
"//components/strings", "//components/strings",
"//ios/chrome/app/strings", "//ios/chrome/app/strings",
"//ios/chrome/app/theme", "//ios/chrome/app/theme",
......
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef IOS_CHROME_BROWSER_UI_TOOLBAR_BUTTONS_TOOLS_MENU_BUTTON_OBSERVER_BRIDGE_H_
#define IOS_CHROME_BROWSER_UI_TOOLBAR_BUTTONS_TOOLS_MENU_BUTTON_OBSERVER_BRIDGE_H_
#import <UIKit/UIKit.h>
#include "components/reading_list/ios/reading_list_model_bridge_observer.h"
@class ToolbarToolsMenuButton;
// Objective-C bridge informing a ToolbarToolsMenuButton whether the Reading
// List Model contains unseen items.
@interface ToolsMenuButtonObserverBridge
: NSObject<ReadingListModelBridgeObserver>
// Creates the bridge to the ToolbarToolsMenuButton |button|.
- (instancetype)initWithModel:(ReadingListModel*)readingListModel
toolbarButton:(ToolbarToolsMenuButton*)button
NS_DESIGNATED_INITIALIZER;
- (instancetype)init NS_UNAVAILABLE;
@end
#endif // IOS_CHROME_BROWSER_UI_TOOLBAR_BUTTONS_TOOLS_MENU_BUTTON_OBSERVER_BRIDGE_H_
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "ios/chrome/browser/ui/toolbar/buttons/tools_menu_button_observer_bridge.h"
#include <memory>
#include "base/logging.h"
#include "components/reading_list/core/reading_list_model.h"
#import "ios/chrome/browser/ui/toolbar/buttons/toolbar_tools_menu_button.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
@implementation ToolsMenuButtonObserverBridge {
ToolbarToolsMenuButton* _button;
ReadingListModel* _model;
std::unique_ptr<ReadingListModelBridge> _modelBridge;
}
- (instancetype)initWithModel:(ReadingListModel*)readingListModel
toolbarButton:(ToolbarToolsMenuButton*)button {
self = [super init];
if (self) {
_button = button;
_model = readingListModel;
_modelBridge = std::make_unique<ReadingListModelBridge>(self, _model);
}
return self;
}
#pragma mark - ReadingListModelBridgeObserver
- (void)readingListModelDidApplyChanges:(const ReadingListModel*)model {
}
- (void)readingListModelLoaded:(const ReadingListModel*)model {
}
- (void)readingListModelBeingDeleted:(const ReadingListModel*)model {
DCHECK(model == _model);
_modelBridge.reset();
_model = nullptr;
}
- (void)readingListModel:(const ReadingListModel*)model
didAddEntry:(const GURL&)url
entrySource:(reading_list::EntrySource)source {
if (source == reading_list::ADDED_VIA_CURRENT_APP)
[_button triggerAnimation];
}
@end
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
#import "ios/chrome/browser/ui/reversed_animation.h" #import "ios/chrome/browser/ui/reversed_animation.h"
#include "ios/chrome/browser/ui/rtl_geometry.h" #include "ios/chrome/browser/ui/rtl_geometry.h"
#import "ios/chrome/browser/ui/toolbar/buttons/toolbar_tools_menu_button.h" #import "ios/chrome/browser/ui/toolbar/buttons/toolbar_tools_menu_button.h"
#import "ios/chrome/browser/ui/toolbar/buttons/tools_menu_button_observer_bridge.h"
#import "ios/chrome/browser/ui/toolbar/legacy/toolbar_controller+protected.h" #import "ios/chrome/browser/ui/toolbar/legacy/toolbar_controller+protected.h"
#import "ios/chrome/browser/ui/toolbar/legacy/toolbar_utils.h" #import "ios/chrome/browser/ui/toolbar/legacy/toolbar_utils.h"
#include "ios/chrome/browser/ui/toolbar/toolbar_resource_macros.h" #include "ios/chrome/browser/ui/toolbar/toolbar_resource_macros.h"
...@@ -76,7 +75,6 @@ using ios::material::TimingFunction; ...@@ -76,7 +75,6 @@ using ios::material::TimingFunction;
UIButton* stackButton_; UIButton* stackButton_;
UIButton* shareButton_; UIButton* shareButton_;
NSArray* standardButtons_; NSArray* standardButtons_;
ToolsMenuButtonObserverBridge* toolsMenuButtonObserverBridge_;
ToolbarControllerStyle style_; ToolbarControllerStyle style_;
} }
...@@ -289,12 +287,8 @@ using ios::material::TimingFunction; ...@@ -289,12 +287,8 @@ using ios::material::TimingFunction;
#pragma mark - Public API #pragma mark - Public API
- (void)setReadingListModel:(ReadingListModel*)readingListModel { - (void)setReadingListModel:(ReadingListModel*)readingListModel {
NOTREACHED();
readingListModel_ = readingListModel; readingListModel_ = readingListModel;
if (readingListModel_) {
toolsMenuButtonObserverBridge_ =
[[ToolsMenuButtonObserverBridge alloc] initWithModel:readingListModel_
toolbarButton:toolsMenuButton_];
}
} }
- (void)activateFakeSafeAreaInsets:(UIEdgeInsets)fakeSafeAreaInsets { - (void)activateFakeSafeAreaInsets:(UIEdgeInsets)fakeSafeAreaInsets {
......
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