Commit 5bd895ee authored by Kurt Horimoto's avatar Kurt Horimoto Committed by Commit Bot

[iOS] Remove unused parameters from InfobarBannerDelegate function.

|sender| was unused in InfobarCoordinator's implementation, and
The InfobarBannerViewController only ever requested animated dismissals
with no completion blocks.  These unused parameters were removed
to simplify the delegate interface.

Bug: 1030357
Change-Id: I248b4a956d0b41e6f8acd54b4c603f6acc29784d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1974894
Commit-Queue: Kurt Horimoto <kkhorimoto@chromium.org>
Reviewed-by: default avatarSergio Collazos <sczs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#727529}
parent 0caeb71b
......@@ -7,23 +7,17 @@
#import <Foundation/Foundation.h>
#include "base/ios/block_types.h"
// Delegate to handle InfobarBanner actions.
@protocol InfobarBannerDelegate
// Called when the InfobarBanner button was pressed.
- (void)bannerInfobarButtonWasPressed:(UIButton*)sender;
// Asks the delegate to dismiss the InfobarBanner. |completion| will always run.
// If dismissal is directly triggered by a user action e.g. swiping up the
// banner, |userInitiated| is YES. For all other cases, even if the banner is
// dismissed indirectly by a user action e.g. Accepting the banner, presenting
// settings, etc. |userInitiated| is NO.
- (void)dismissInfobarBanner:(id)sender
animated:(BOOL)animated
completion:(ProceduralBlock)completion
userInitiated:(BOOL)userInitiated;
// Asks the delegate to dismiss the banner UI. |userInitiated| is YES if
// directly triggered by a user action (e.g. swiping up the banner), and NO for
// all other cases, even if the banner is dismissed indirectly by a user action
// (e.g. accepting the banner, presenting settings).
- (void)dismissInfobarBannerForUserInteraction:(BOOL)userInitiated;
// Asks the delegate to present the InfobarModal for this InfobarBanner.
- (void)presentInfobarModalFromBanner;
......
......@@ -4,6 +4,7 @@
#import "ios/chrome/browser/ui/infobars/banners/infobar_banner_view_controller.h"
#import "base/ios/block_types.h"
#include "base/metrics/user_metrics.h"
#include "base/metrics/user_metrics_action.h"
#include "ios/chrome/browser/infobars/infobar_metrics_recorder.h"
......@@ -338,10 +339,7 @@ const CGFloat kLongPressTimeDurationInSeconds = 0.4;
if (!self.touchInProgress) {
[self.metricsRecorder
recordBannerDismissType:MobileMessagesBannerDismissType::TimedOut];
[self.delegate dismissInfobarBanner:self
animated:YES
completion:nil
userInitiated:NO];
[self.delegate dismissInfobarBannerForUserInteraction:NO];
}
self.shouldDismissAfterTouchesEnded = YES;
}
......@@ -413,17 +411,11 @@ const CGFloat kLongPressTimeDurationInSeconds = 0.4;
if (dragUpExceededThreshold) {
[self.metricsRecorder
recordBannerDismissType:MobileMessagesBannerDismissType::SwipedUp];
[self.delegate dismissInfobarBanner:self
animated:YES
completion:nil
userInitiated:YES];
[self.delegate dismissInfobarBannerForUserInteraction:YES];
} else {
[self.metricsRecorder
recordBannerDismissType:MobileMessagesBannerDismissType::TimedOut];
[self.delegate dismissInfobarBanner:self
animated:YES
completion:nil
userInitiated:NO];
[self.delegate dismissInfobarBannerForUserInteraction:NO];
}
} else {
[self.metricsRecorder
......@@ -567,10 +559,7 @@ const CGFloat kLongPressTimeDurationInSeconds = 0.4;
}
- (BOOL)dismiss {
[self.delegate dismissInfobarBanner:self
animated:YES
completion:nil
userInitiated:YES];
[self.delegate dismissInfobarBannerForUserInteraction:YES];
return NO;
}
......
......@@ -190,17 +190,12 @@ const CGFloat kiPadBannerOverlapWithOmnibox = 10.0;
if (self.baseViewController.presentedViewController &&
self.baseViewController.presentedViewController ==
self.bannerViewController) {
[self dismissInfobarBanner:self animated:NO completion:modalPresentation];
[self dismissInfobarBannerAnimated:NO completion:modalPresentation];
} else {
modalPresentation();
}
}
- (void)dismissInfobarBannerAnimated:(BOOL)animated
completion:(void (^)())completion {
[self dismissInfobarBanner:self animated:animated completion:completion];
}
#pragma mark - Protocols
#pragma mark InfobarUIDelegate
......@@ -208,14 +203,14 @@ const CGFloat kiPadBannerOverlapWithOmnibox = 10.0;
- (void)removeView {
// Do not animate the dismissal since the Coordinator might have been stopped
// and the animation can cause undefined behavior.
[self dismissInfobarBanner:self animated:NO completion:nil];
[self dismissInfobarBannerAnimated:NO completion:nil];
}
- (void)detachView {
// Do not animate the dismissals since the Coordinator might have been stopped
// and the animation can cause undefined behavior.
if (self.bannerViewController)
[self dismissInfobarBanner:self animated:NO completion:nil];
[self dismissInfobarBannerAnimated:NO completion:nil];
if (self.modalViewController)
[self dismissInfobarModal:self animated:NO completion:nil];
[self stop];
......@@ -234,7 +229,7 @@ const CGFloat kiPadBannerOverlapWithOmnibox = 10.0;
// If the Banner Button will present the Modal then the banner shouldn't be
// dismissed.
if (![self infobarBannerActionWillPresentModal]) {
[self dismissInfobarBanner:sender animated:YES completion:nil];
[self dismissInfobarBannerAnimated:YES completion:nil];
}
}
......@@ -251,28 +246,10 @@ const CGFloat kiPadBannerOverlapWithOmnibox = 10.0;
}];
}
- (void)dismissInfobarBanner:(id)sender
animated:(BOOL)animated
completion:(void (^)())completion
userInitiated:(BOOL)userInitiated {
DCHECK(self.baseViewController);
// Make sure the banner is completely presented before trying to dismiss it.
[self.bannerTransitionDriver completePresentationTransitionIfRunning];
if (self.baseViewController.presentedViewController &&
self.baseViewController.presentedViewController ==
self.bannerViewController) {
[self infobarBannerWillBeDismissed:userInitiated];
[self.baseViewController
dismissViewControllerAnimated:animated
completion:^{
if (completion)
completion();
}];
} else {
if (completion)
completion();
}
- (void)dismissInfobarBannerForUserInteraction:(BOOL)userInitiated {
[self dismissInfobarBannerAnimated:YES
userInitiated:userInitiated
completion:nil];
}
- (void)infobarBannerWasDismissed {
......@@ -485,13 +462,30 @@ const CGFloat kiPadBannerOverlapWithOmnibox = 10.0;
}
// Helper method for non-user initiated InfobarBanner dismissals.
- (void)dismissInfobarBanner:(id)sender
animated:(BOOL)animated
- (void)dismissInfobarBannerAnimated:(BOOL)animated
completion:(void (^)())completion {
[self dismissInfobarBanner:sender
animated:animated
completion:completion
userInitiated:NO];
[self dismissInfobarBannerAnimated:animated
userInitiated:NO
completion:completion];
}
// Helper for banner dismissals.
- (void)dismissInfobarBannerAnimated:(BOOL)animated
userInitiated:(BOOL)userInitiated
completion:(void (^)())completion {
DCHECK(self.baseViewController);
// Make sure the banner is completely presented before trying to dismiss it.
[self.bannerTransitionDriver completePresentationTransitionIfRunning];
if (self.baseViewController.presentedViewController &&
self.baseViewController.presentedViewController ==
self.bannerViewController) {
[self infobarBannerWillBeDismissed:userInitiated];
[self.baseViewController dismissViewControllerAnimated:YES
completion:completion];
} else if (completion) {
completion();
}
}
@end
......@@ -13,6 +13,7 @@ source_set("infobars") {
]
deps = [
":constants",
"//base",
"//ios/chrome/browser/infobars:public",
"//ios/chrome/browser/ui/infobars/banners",
"//ios/chrome/browser/ui/infobars/coordinators",
......
......@@ -4,6 +4,7 @@
#import "ios/showcase/infobars/sc_infobar_banner_coordinator.h"
#import "base/ios/block_types.h"
#import "ios/chrome/browser/infobars/infobar_type.h"
#import "ios/chrome/browser/ui/infobars/banners/infobar_banner_delegate.h"
#import "ios/chrome/browser/ui/infobars/banners/infobar_banner_view_controller.h"
......@@ -49,13 +50,17 @@
}
- (void)dealloc {
[self dismissInfobarBanner:nil animated:YES completion:nil userInitiated:NO];
[self dismissInfobarBannerForUserInteraction:NO];
}
#pragma mark InfobarBannerDelegate
- (void)bannerInfobarButtonWasPressed:(id)sender {
[self dismissInfobarBanner:nil animated:YES completion:nil userInitiated:NO];
- (void)bannerInfobarButtonWasPressed:(UIButton*)sender {
[self dismissInfobarBannerForUserInteraction:NO];
}
- (void)dismissInfobarBannerForUserInteraction:(BOOL)userInitiated {
[self.baseViewController dismissViewControllerAnimated:YES completion:nil];
}
- (void)presentInfobarModalFromBanner {
......@@ -76,14 +81,6 @@
completion:nil];
}
- (void)dismissInfobarBanner:(id)sender
animated:(BOOL)animated
completion:(ProceduralBlock)completion
userInitiated:(BOOL)userInitiated {
[self.baseViewController dismissViewControllerAnimated:animated
completion:nil];
}
- (void)infobarBannerWasDismissed {
self.bannerViewController = nil;
}
......
......@@ -4,6 +4,7 @@
#import "ios/showcase/infobars/sc_infobar_banner_no_modal_coordinator.h"
#import "base/ios/block_types.h"
#import "ios/chrome/browser/infobars/infobar_type.h"
#import "ios/chrome/browser/ui/infobars/banners/infobar_banner_delegate.h"
#import "ios/chrome/browser/ui/infobars/banners/infobar_banner_view_controller.h"
......@@ -45,25 +46,21 @@
}
- (void)dealloc {
[self dismissInfobarBanner:nil animated:YES completion:nil userInitiated:NO];
[self dismissInfobarBannerForUserInteraction:NO];
}
#pragma mark InfobarBannerDelegate
- (void)bannerInfobarButtonWasPressed:(id)sender {
[self dismissInfobarBanner:nil animated:YES completion:nil userInitiated:NO];
[self dismissInfobarBannerForUserInteraction:NO];
}
- (void)presentInfobarModalFromBanner {
// NO-OP.
}
- (void)dismissInfobarBanner:(id)sender
animated:(BOOL)animated
completion:(ProceduralBlock)completion
userInitiated:(BOOL)userInitiated {
[self.baseViewController dismissViewControllerAnimated:animated
completion:nil];
- (void)dismissInfobarBannerForUserInteraction:(BOOL)userInitiated {
[self.baseViewController dismissViewControllerAnimated:YES completion:nil];
}
- (void)infobarBannerWasDismissed {
......
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