Commit 22116927 authored by adamta's avatar adamta Committed by Chromium LUCI CQ

[iOS] Custom UIScrollViewDelegate for feed

Upstream implementation for adding a custom UIScrollViewDelegate to
the feed. Uses NewTabPageCoordinator as UIScrollViewDelegate for the
feed collection view. This allows for us to monitor scroll actions in
the NTP when the feed is the primary scroll view.

Downstream: crrev.com/c/3466483
google3: cl/347390497

Bug: 1114792
Change-Id: I0b9fc60f6de1856270bdda7cf71ce4dcc40e3bb9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2588639Reviewed-by: default avatarSergio Collazos <sczs@chromium.org>
Commit-Queue: Adam Trudeau-Arcaro <adamta@google.com>
Cr-Commit-Position: refs/heads/master@{#836869}
parent f0862de2
......@@ -97,6 +97,7 @@
[self.contentSuggestionsCoordinator start];
if (IsRefactoredNTP()) {
// TODO(crbug.com/1114792): Use function with scroll delegate.
UIViewController* discoverFeed =
ios::GetChromeBrowserProvider()
->GetDiscoverFeedProvider()
......
......@@ -12,7 +12,7 @@
// View controller containing all the content presented on a standard,
// non-incognito new tab page.
@interface NewTabPageViewController : UIViewController
@interface NewTabPageViewController : UIViewController <UIScrollViewDelegate>
// Initializes view controller with NTP content view controllers.
// |discoverFeedViewController| represents the Discover feed for suggesting
......
......@@ -82,4 +82,45 @@
UIEdgeInsetsMake(collectionView.contentSize.height, 0, 0, 0);
}
#pragma mark - UIScrollViewDelegate
- (void)scrollViewDidScroll:(UIScrollView*)scrollView {
// TODO(crbug.com/1114792): Handle scrolling.
}
- (void)scrollViewWillBeginDragging:(UIScrollView*)scrollView {
// TODO(crbug.com/1114792): Handle scrolling.
}
- (void)scrollViewWillEndDragging:(UIScrollView*)scrollView
withVelocity:(CGPoint)velocity
targetContentOffset:(inout CGPoint*)targetContentOffset {
// TODO(crbug.com/1114792): Handle scrolling.
}
- (void)scrollViewDidEndDragging:(UIScrollView*)scrollView
willDecelerate:(BOOL)decelerate {
// TODO(crbug.com/1114792): Handle scrolling.
}
- (void)scrollViewDidScrollToTop:(UIScrollView*)scrollView {
// TODO(crbug.com/1114792): Handle scrolling.
}
- (void)scrollViewWillBeginDecelerating:(UIScrollView*)scrollView {
// TODO(crbug.com/1114792): Handle scrolling.
}
- (void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView {
// TODO(crbug.com/1114792): Handle scrolling.
}
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView*)scrollView {
// TODO(crbug.com/1114792): Handle scrolling.
}
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView*)scrollView {
return NO;
}
@end
......@@ -44,6 +44,11 @@ class DiscoverFeedProvider {
virtual bool IsDiscoverFeedEnabled();
// Returns the Discover Feed ViewController.
virtual UIViewController* NewFeedViewController(Browser* browser);
// Returns the Discover Feed ViewController with a custom
// UIScrollViewDelegate.
virtual UIViewController* NewFeedViewControllerWithScrollDelegate(
Browser* browser,
id<UIScrollViewDelegate> scrollDelegate);
// Removes the Discover |feedViewController|. It should be called whenever
// |feedViewController| will no longer be used.
virtual void RemoveFeedViewController(UIViewController* feedViewController);
......
......@@ -21,6 +21,12 @@ UIViewController* DiscoverFeedProvider::NewFeedViewController(
return nil;
}
UIViewController* DiscoverFeedProvider::NewFeedViewControllerWithScrollDelegate(
Browser* browser,
id<UIScrollViewDelegate> scrollDelegate) {
return nil;
}
void DiscoverFeedProvider::RemoveFeedViewController(
UIViewController* feedViewController) {}
......
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