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