Commit c64880bd authored by Chris Lu's avatar Chris Lu Committed by Commit Bot

[ios] Subclass MDCAppBarViewController to prevent it from dismissing on...

[ios] Subclass MDCAppBarViewController to prevent it from dismissing on Accessibility Z-gesture in Settings

This is already managed well by SettingsNavigationController.

Video: https://drive.google.com/open?id=1P3kKX_m8_xnaS2lF58BKvaRL5tTbsuyw


Bug: 877162, 874471
Change-Id: Ieb95fe427cece1d1fdb8f223bb16c0f0bbf05ce3
Reviewed-on: https://chromium-review.googlesource.com/1197411
Commit-Queue: Chris Lu <thegreenfrog@chromium.org>
Reviewed-by: default avatarRohit Rao <rohitrao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588875}
parent 863a2dfc
...@@ -57,6 +57,7 @@ source_set("authentication") { ...@@ -57,6 +57,7 @@ source_set("authentication") {
"//ios/chrome/browser/ui/collection_view/cells", "//ios/chrome/browser/ui/collection_view/cells",
"//ios/chrome/browser/ui/colors", "//ios/chrome/browser/ui/colors",
"//ios/chrome/browser/ui/commands", "//ios/chrome/browser/ui/commands",
"//ios/chrome/browser/ui/material_components",
"//ios/chrome/browser/ui/signin_interaction/public", "//ios/chrome/browser/ui/signin_interaction/public",
"//ios/chrome/browser/ui/util", "//ios/chrome/browser/ui/util",
"//ios/chrome/browser/unified_consent", "//ios/chrome/browser/unified_consent",
......
...@@ -14,13 +14,13 @@ ...@@ -14,13 +14,13 @@
#import "ios/chrome/browser/ui/collection_view/cells/collection_view_footer_item.h" #import "ios/chrome/browser/ui/collection_view/cells/collection_view_footer_item.h"
#import "ios/chrome/browser/ui/collection_view/cells/collection_view_text_item.h" #import "ios/chrome/browser/ui/collection_view/cells/collection_view_text_item.h"
#import "ios/chrome/browser/ui/collection_view/collection_view_model.h" #import "ios/chrome/browser/ui/collection_view/collection_view_model.h"
#import "ios/chrome/browser/ui/material_components/chrome_app_bar_view_controller.h"
#import "ios/chrome/common/ui_util/constraints_ui_util.h" #import "ios/chrome/common/ui_util/constraints_ui_util.h"
#include "ios/chrome/grit/ios_chromium_strings.h" #include "ios/chrome/grit/ios_chromium_strings.h"
#include "ios/chrome/grit/ios_strings.h" #include "ios/chrome/grit/ios_strings.h"
#include "ios/public/provider/chrome/browser/chrome_browser_provider.h" #include "ios/public/provider/chrome/browser/chrome_browser_provider.h"
#import "ios/public/provider/chrome/browser/signin/chrome_identity.h" #import "ios/public/provider/chrome/browser/signin/chrome_identity.h"
#include "ios/public/provider/chrome/browser/signin/chrome_identity_service.h" #include "ios/public/provider/chrome/browser/signin/chrome_identity_service.h"
#import "ios/third_party/material_components_ios/src/components/AppBar/src/MaterialAppBar.h"
#import "ios/third_party/material_components_ios/src/components/Palettes/src/MaterialPalettes.h" #import "ios/third_party/material_components_ios/src/components/Palettes/src/MaterialPalettes.h"
#import "ios/third_party/material_components_ios/src/components/Typography/src/MaterialTypography.h" #import "ios/third_party/material_components_ios/src/components/Typography/src/MaterialTypography.h"
#import "ui/base/l10n/l10n_util.h" #import "ui/base/l10n/l10n_util.h"
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#import "ios/chrome/browser/ui/collection_view/cells/MDCCollectionViewCell+Chrome.h" #import "ios/chrome/browser/ui/collection_view/cells/MDCCollectionViewCell+Chrome.h"
#import "ios/chrome/browser/ui/collection_view/cells/collection_view_footer_item.h" #import "ios/chrome/browser/ui/collection_view/cells/collection_view_footer_item.h"
#import "ios/chrome/browser/ui/collection_view/collection_view_model.h" #import "ios/chrome/browser/ui/collection_view/collection_view_model.h"
#import "ios/chrome/browser/ui/material_components/chrome_app_bar_view_controller.h"
#import "ios/chrome/browser/ui/uikit_ui_util.h" #import "ios/chrome/browser/ui/uikit_ui_util.h"
#import "ios/chrome/common/string_util.h" #import "ios/chrome/common/string_util.h"
#import "ios/chrome/common/ui_util/constraints_ui_util.h" #import "ios/chrome/common/ui_util/constraints_ui_util.h"
...@@ -24,7 +25,6 @@ ...@@ -24,7 +25,6 @@
#import "ios/public/provider/chrome/browser/signin/chrome_identity.h" #import "ios/public/provider/chrome/browser/signin/chrome_identity.h"
#import "ios/public/provider/chrome/browser/signin/chrome_identity_service.h" #import "ios/public/provider/chrome/browser/signin/chrome_identity_service.h"
#include "ios/public/provider/chrome/browser/signin/signin_resources_provider.h" #include "ios/public/provider/chrome/browser/signin/signin_resources_provider.h"
#import "ios/third_party/material_components_ios/src/components/AppBar/src/MaterialAppBar.h"
#import "ios/third_party/material_components_ios/src/components/Palettes/src/MaterialPalettes.h" #import "ios/third_party/material_components_ios/src/components/Palettes/src/MaterialPalettes.h"
#import "ios/third_party/material_components_ios/src/components/Typography/src/MaterialTypography.h" #import "ios/third_party/material_components_ios/src/components/Typography/src/MaterialTypography.h"
#import "ui/base/l10n/l10n_util.h" #import "ui/base/l10n/l10n_util.h"
......
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
#include "base/mac/foundation_util.h" #include "base/mac/foundation_util.h"
#import "ios/chrome/browser/ui/collection_view/cells/collection_view_item.h" #import "ios/chrome/browser/ui/collection_view/cells/collection_view_item.h"
#import "ios/chrome/browser/ui/collection_view/collection_view_model.h" #import "ios/chrome/browser/ui/collection_view/collection_view_model.h"
#import "ios/chrome/browser/ui/material_components/chrome_app_bar_view_controller.h"
#import "ios/chrome/browser/ui/material_components/utils.h" #import "ios/chrome/browser/ui/material_components/utils.h"
#import "ios/third_party/material_components_ios/src/components/AppBar/src/MaterialAppBar.h"
#import "ios/third_party/material_components_ios/src/components/CollectionCells/src/MaterialCollectionCells.h" #import "ios/third_party/material_components_ios/src/components/CollectionCells/src/MaterialCollectionCells.h"
#if !defined(__has_feature) || !__has_feature(objc_arc) #if !defined(__has_feature) || !__has_feature(objc_arc)
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
self = [super initWithCollectionViewLayout:layout]; self = [super initWithCollectionViewLayout:layout];
if (self) { if (self) {
if (style == CollectionViewControllerStyleAppBar) { if (style == CollectionViewControllerStyleAppBar) {
_appBarViewController = [[MDCAppBarViewController alloc] init]; _appBarViewController = [[ChromeAppBarViewController alloc] init];
} }
} }
return self; return self;
......
...@@ -9,6 +9,8 @@ source_set("material_components") { ...@@ -9,6 +9,8 @@ source_set("material_components") {
"activity_indicator.mm", "activity_indicator.mm",
"app_bar_presenting.h", "app_bar_presenting.h",
"app_bar_view_controller_presenting.h", "app_bar_view_controller_presenting.h",
"chrome_app_bar_view_controller.h",
"chrome_app_bar_view_controller.m",
"utils.h", "utils.h",
"utils.mm", "utils.mm",
] ]
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
@class MDCAppBarViewController; @class ChromeAppBarViewController;
// An object conforming to this protocol is capable of creating and managing an // An object conforming to this protocol is capable of creating and managing an
// MDCAppBar. Typically, UIViewControllers can implement this protocol to // MDCAppBar. Typically, UIViewControllers can implement this protocol to
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
// The installed app bar view controller, if any. // The installed app bar view controller, if any.
@property(nonatomic, readonly, strong) @property(nonatomic, readonly, strong)
MDCAppBarViewController* appBarViewController; ChromeAppBarViewController* appBarViewController;
@end @end
......
// Copyright 2018 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_MATERIAL_COMPONENTS_CHROME_APP_BAR_VIEW_CONTROLLER_H_
#define IOS_CHROME_BROWSER_UI_MATERIAL_COMPONENTS_CHROME_APP_BAR_VIEW_CONTROLLER_H_
#import "ios/third_party/material_components_ios/src/components/AppBar/src/MDCAppBarViewController.h"
// Used as substitute to MDCAppBarViewController to prevent default behavior of
// managing accessiblity dismiss gesture itself. Usually the view controller or
// its navigation controller has logic that handles it.
@interface ChromeAppBarViewController : MDCAppBarViewController
@end
#endif // IOS_CHROME_BROWSER_UI_MATERIAL_COMPONENTS_CHROME_APP_BAR_VIEW_CONTROLLER_H_
// Copyright 2018 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/material_components/chrome_app_bar_view_controller.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
@implementation ChromeAppBarViewController
// Return NO so same method signal can be passed to view controller or its
// navigation controller.
- (BOOL)accessibilityPerformEscape {
return NO;
}
@end
...@@ -130,6 +130,7 @@ source_set("reading_list_ui") { ...@@ -130,6 +130,7 @@ source_set("reading_list_ui") {
"//ios/chrome/browser/ui/colors", "//ios/chrome/browser/ui/colors",
"//ios/chrome/browser/ui/keyboard", "//ios/chrome/browser/ui/keyboard",
"//ios/chrome/browser/ui/list_model", "//ios/chrome/browser/ui/list_model",
"//ios/chrome/browser/ui/material_components",
"//ios/chrome/browser/ui/table_view", "//ios/chrome/browser/ui/table_view",
"//ios/chrome/browser/ui/table_view/cells", "//ios/chrome/browser/ui/table_view/cells",
"//ios/chrome/browser/ui/table_view/cells/resources:table_view_cell_check_mark", "//ios/chrome/browser/ui/table_view/cells/resources:table_view_cell_check_mark",
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#import "ios/chrome/browser/ui/collection_view/cells/collection_view_text_item.h" #import "ios/chrome/browser/ui/collection_view/cells/collection_view_text_item.h"
#import "ios/chrome/browser/ui/collection_view/collection_view_model.h" #import "ios/chrome/browser/ui/collection_view/collection_view_model.h"
#import "ios/chrome/browser/ui/list_model/list_item+Controller.h" #import "ios/chrome/browser/ui/list_model/list_item+Controller.h"
#import "ios/chrome/browser/ui/material_components/chrome_app_bar_view_controller.h"
#import "ios/chrome/browser/ui/reading_list/empty_reading_list_background_view.h" #import "ios/chrome/browser/ui/reading_list/empty_reading_list_background_view.h"
#import "ios/chrome/browser/ui/reading_list/legacy_reading_list_toolbar.h" #import "ios/chrome/browser/ui/reading_list/legacy_reading_list_toolbar.h"
#import "ios/chrome/browser/ui/reading_list/reading_list_data_sink.h" #import "ios/chrome/browser/ui/reading_list/reading_list_data_sink.h"
...@@ -22,7 +23,6 @@ ...@@ -22,7 +23,6 @@
#import "ios/chrome/browser/ui/reading_list/reading_list_list_view_controller_audience.h" #import "ios/chrome/browser/ui/reading_list/reading_list_list_view_controller_audience.h"
#import "ios/chrome/browser/ui/reading_list/reading_list_list_view_controller_delegate.h" #import "ios/chrome/browser/ui/reading_list/reading_list_list_view_controller_delegate.h"
#include "ios/chrome/grit/ios_strings.h" #include "ios/chrome/grit/ios_strings.h"
#import "ios/third_party/material_components_ios/src/components/AppBar/src/MaterialAppBar.h"
#import "ios/third_party/material_components_ios/src/components/Palettes/src/MaterialPalettes.h" #import "ios/third_party/material_components_ios/src/components/Palettes/src/MaterialPalettes.h"
#include "ui/base/l10n/l10n_util_mac.h" #include "ui/base/l10n/l10n_util_mac.h"
......
...@@ -12,13 +12,13 @@ ...@@ -12,13 +12,13 @@
#import "ios/chrome/browser/ui/collection_view/cells/collection_view_cell_constants.h" #import "ios/chrome/browser/ui/collection_view/cells/collection_view_cell_constants.h"
#import "ios/chrome/browser/ui/commands/application_commands.h" #import "ios/chrome/browser/ui/commands/application_commands.h"
#import "ios/chrome/browser/ui/commands/open_new_tab_command.h" #import "ios/chrome/browser/ui/commands/open_new_tab_command.h"
#import "ios/chrome/browser/ui/material_components/chrome_app_bar_view_controller.h"
#import "ios/chrome/browser/ui/settings/bar_button_activity_indicator.h" #import "ios/chrome/browser/ui/settings/bar_button_activity_indicator.h"
#import "ios/chrome/browser/ui/settings/settings_navigation_controller.h" #import "ios/chrome/browser/ui/settings/settings_navigation_controller.h"
#import "ios/chrome/browser/ui/settings/settings_utils.h" #import "ios/chrome/browser/ui/settings/settings_utils.h"
#include "ios/chrome/browser/ui/ui_util.h" #include "ios/chrome/browser/ui/ui_util.h"
#import "ios/chrome/browser/ui/uikit_ui_util.h" #import "ios/chrome/browser/ui/uikit_ui_util.h"
#include "ios/chrome/grit/ios_strings.h" #include "ios/chrome/grit/ios_strings.h"
#import "ios/third_party/material_components_ios/src/components/AppBar/src/MaterialAppBar.h"
#import "ios/third_party/material_components_ios/src/components/Collections/src/MaterialCollections.h" #import "ios/third_party/material_components_ios/src/components/Collections/src/MaterialCollections.h"
#include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util.h"
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#import "ios/chrome/browser/ui/table_view/chrome_table_view_controller.h" #import "ios/chrome/browser/ui/table_view/chrome_table_view_controller.h"
#include "base/logging.h" #include "base/logging.h"
#import "ios/chrome/browser/ui/material_components/chrome_app_bar_view_controller.h"
#import "ios/chrome/browser/ui/material_components/utils.h" #import "ios/chrome/browser/ui/material_components/utils.h"
#import "ios/chrome/browser/ui/table_view/cells/table_view_header_footer_item.h" #import "ios/chrome/browser/ui/table_view/cells/table_view_header_footer_item.h"
#import "ios/chrome/browser/ui/table_view/cells/table_view_item.h" #import "ios/chrome/browser/ui/table_view/cells/table_view_item.h"
...@@ -13,7 +14,6 @@ ...@@ -13,7 +14,6 @@
#import "ios/chrome/browser/ui/table_view/table_view_loading_view.h" #import "ios/chrome/browser/ui/table_view/table_view_loading_view.h"
#import "ios/chrome/browser/ui/table_view/table_view_model.h" #import "ios/chrome/browser/ui/table_view/table_view_model.h"
#import "ios/chrome/browser/ui/uikit_ui_util.h" #import "ios/chrome/browser/ui/uikit_ui_util.h"
#import "ios/third_party/material_components_ios/src/components/AppBar/src/MaterialAppBar.h"
#if !defined(__has_feature) || !__has_feature(objc_arc) #if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support." #error "This file requires ARC support."
...@@ -40,8 +40,7 @@ ...@@ -40,8 +40,7 @@
_styler = [[ChromeTableViewStyler alloc] init]; _styler = [[ChromeTableViewStyler alloc] init];
if (appBarStyle == ChromeTableViewControllerStyleWithAppBar) { if (appBarStyle == ChromeTableViewControllerStyleWithAppBar) {
_appBarViewController = [[MDCAppBarViewController alloc] init]; _appBarViewController = [[ChromeAppBarViewController alloc] init];
[self addChildViewController:_appBarViewController];
} }
} }
return self; return self;
...@@ -86,6 +85,7 @@ ...@@ -86,6 +85,7 @@
ConfigureAppBarViewControllerWithCardStyle(self.appBarViewController); ConfigureAppBarViewControllerWithCardStyle(self.appBarViewController);
self.appBarViewController.headerView.trackingScrollView = self.tableView; self.appBarViewController.headerView.trackingScrollView = self.tableView;
// Add the AppBar's views after all other views have been registered. // Add the AppBar's views after all other views have been registered.
[self addChildViewController:_appBarViewController];
[self.view addSubview:self.appBarViewController.view]; [self.view addSubview:self.appBarViewController.view];
[self.appBarViewController didMoveToParentViewController:self]; [self.appBarViewController didMoveToParentViewController:self];
} }
......
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