Commit c252b4af authored by Roberto Moura's avatar Roberto Moura Committed by Commit Bot

Make the Tab Grid conform to the View Revealing Animatee protocol.

When the Tab Grid is visible, set |scrollEnabled| to YES to allow the
user to switch between recent tabs, incognito, and regular browser, and
set to NO otherwise (when the Thumb Strip or Tab Strip are visible).

Change-Id: I61bd079d50c9ab27b7970dcacaf149438595a269
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2445881
Commit-Queue: Gauthier Ambard <gambard@chromium.org>
Reviewed-by: default avatarGauthier Ambard <gambard@chromium.org>
Auto-Submit: Roberto Moura <mouraroberto@google.com>
Cr-Commit-Position: refs/heads/master@{#813659}
parent ba087cd9
...@@ -112,6 +112,7 @@ source_set("tab_grid_ui") { ...@@ -112,6 +112,7 @@ source_set("tab_grid_ui") {
"//ios/chrome/browser/ui/recent_tabs:recent_tabs_ui", "//ios/chrome/browser/ui/recent_tabs:recent_tabs_ui",
"//ios/chrome/browser/ui/tab_grid/transitions", "//ios/chrome/browser/ui/tab_grid/transitions",
"//ios/chrome/browser/ui/table_view:styler", "//ios/chrome/browser/ui/table_view:styler",
"//ios/chrome/browser/ui/thumb_strip:feature_flags",
"//ios/chrome/browser/ui/util", "//ios/chrome/browser/ui/util",
"//ios/chrome/common/ui/util", "//ios/chrome/common/ui/util",
"//ios/web/public", "//ios/web/public",
......
...@@ -351,6 +351,7 @@ ...@@ -351,6 +351,7 @@
[self.thumbStripCoordinator start]; [self.thumbStripCoordinator start];
self.thumbStripCoordinator.panHandler.layoutSwitcherProvider = self.thumbStripCoordinator.panHandler.layoutSwitcherProvider =
baseViewController; baseViewController;
[self.thumbStripCoordinator.panHandler addAnimatee:baseViewController];
[self setUpThumbStripAttachers]; [self setUpThumbStripAttachers];
} }
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#import "ios/chrome/browser/ui/gestures/layout_switcher_provider.h" #import "ios/chrome/browser/ui/gestures/layout_switcher_provider.h"
#import "ios/chrome/browser/ui/gestures/view_revealing_animatee.h"
#import "ios/chrome/browser/ui/tab_grid/tab_grid_paging.h" #import "ios/chrome/browser/ui/tab_grid/tab_grid_paging.h"
#import "ios/chrome/browser/ui/tab_grid/transitions/grid_transition_animation_layout_providing.h" #import "ios/chrome/browser/ui/tab_grid/transitions/grid_transition_animation_layout_providing.h"
...@@ -32,7 +33,8 @@ ...@@ -32,7 +33,8 @@
@interface TabGridViewController @interface TabGridViewController
: UIViewController <GridTransitionAnimationLayoutProviding, : UIViewController <GridTransitionAnimationLayoutProviding,
LayoutSwitcherProvider, LayoutSwitcherProvider,
TabGridPaging> TabGridPaging,
ViewRevealingAnimatee>
@property(nonatomic, weak) id<ApplicationCommands> handler; @property(nonatomic, weak) id<ApplicationCommands> handler;
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#import "ios/chrome/browser/ui/tab_grid/tab_grid_top_toolbar.h" #import "ios/chrome/browser/ui/tab_grid/tab_grid_top_toolbar.h"
#import "ios/chrome/browser/ui/tab_grid/transitions/grid_transition_layout.h" #import "ios/chrome/browser/ui/tab_grid/transitions/grid_transition_layout.h"
#import "ios/chrome/browser/ui/table_view/chrome_table_view_styler.h" #import "ios/chrome/browser/ui/table_view/chrome_table_view_styler.h"
#import "ios/chrome/browser/ui/thumb_strip/thumb_strip_feature.h"
#include "ios/chrome/browser/ui/ui_feature_flags.h" #include "ios/chrome/browser/ui/ui_feature_flags.h"
#import "ios/chrome/browser/ui/util/rtl_geometry.h" #import "ios/chrome/browser/ui/util/rtl_geometry.h"
#import "ios/chrome/browser/ui/util/uikit_ui_util.h" #import "ios/chrome/browser/ui/util/uikit_ui_util.h"
...@@ -434,6 +435,21 @@ NSUInteger GetPageIndexFromPage(TabGridPage page) { ...@@ -434,6 +435,21 @@ NSUInteger GetPageIndexFromPage(TabGridPage page) {
return [self gridViewControllerForPage:self.activePage]; return [self gridViewControllerForPage:self.activePage];
} }
#pragma mark - ViewRevealingAnimatee
- (void)willAnimateViewReveal:(ViewRevealState)currentViewRevealState {
self.scrollView.scrollEnabled = NO;
}
- (void)animateViewReveal:(ViewRevealState)viewRevealState {
}
- (void)didAnimateViewReveal:(ViewRevealState)viewRevealState {
if (viewRevealState == ViewRevealState::Revealed) {
self.scrollView.scrollEnabled = YES;
}
}
#pragma mark - Private #pragma mark - Private
// Sets the proper insets for the Remote Tabs ViewController to accomodate for // Sets the proper insets for the Remote Tabs ViewController to accomodate for
...@@ -611,6 +627,9 @@ NSUInteger GetPageIndexFromPage(TabGridPage page) { ...@@ -611,6 +627,9 @@ NSUInteger GetPageIndexFromPage(TabGridPage page) {
self.scrollContentView = contentView; self.scrollContentView = contentView;
self.scrollView = scrollView; self.scrollView = scrollView;
self.scrollView.accessibilityIdentifier = kTabGridScrollViewIdentifier; self.scrollView.accessibilityIdentifier = kTabGridScrollViewIdentifier;
if (IsThumbStripEnabled()) {
self.scrollView.scrollEnabled = NO;
}
NSArray* constraints = @[ NSArray* constraints = @[
[contentView.topAnchor constraintEqualToAnchor:scrollView.topAnchor], [contentView.topAnchor constraintEqualToAnchor:scrollView.topAnchor],
[contentView.bottomAnchor constraintEqualToAnchor:scrollView.bottomAnchor], [contentView.bottomAnchor constraintEqualToAnchor:scrollView.bottomAnchor],
......
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