Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(280)

Unified Diff: ios/clean/chrome/browser/ui/toolbar/toolbar_view_controller.mm

Issue 2859363002: [ios clean] Adds Progress Bar to Toolbar. (Closed)
Patch Set: Uses MDCProgressView and adds unittest. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ios/clean/chrome/browser/ui/toolbar/toolbar_view_controller.mm
diff --git a/ios/clean/chrome/browser/ui/toolbar/toolbar_view_controller.mm b/ios/clean/chrome/browser/ui/toolbar/toolbar_view_controller.mm
index 48003841e5e842087ebc234347379bafe143ab22..50a9e6a7c6d0dd9fec9f180d7c2c14ce42627b5d 100644
--- a/ios/clean/chrome/browser/ui/toolbar/toolbar_view_controller.mm
+++ b/ios/clean/chrome/browser/ui/toolbar/toolbar_view_controller.mm
@@ -11,6 +11,7 @@
#import "ios/clean/chrome/browser/ui/commands/tools_menu_commands.h"
#import "ios/clean/chrome/browser/ui/toolbar/toolbar_button+factory.h"
#import "ios/clean/chrome/browser/ui/toolbar/toolbar_component_options.h"
+#import "ios/third_party/material_components_ios/src/components/ProgressView/src/MaterialProgressView.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
@@ -21,6 +22,8 @@ namespace {
CGFloat kVerticalMargin = 5.0f;
// Stackview Horizontal Margin.
CGFloat kHorizontalMargin = 8.0f;
+// Progress Bar Height.
+CGFloat kProgressBarHeight = 2.0f;
} // namespace
@interface ToolbarViewController ()
@@ -34,6 +37,7 @@ CGFloat kHorizontalMargin = 8.0f;
@property(nonatomic, strong) ToolbarButton* shareButton;
@property(nonatomic, strong) ToolbarButton* reloadButton;
@property(nonatomic, strong) ToolbarButton* stopButton;
+@property(nonatomic, strong) MDCProgressView* progressBar;
@end
@implementation ToolbarViewController
@@ -49,35 +53,44 @@ CGFloat kHorizontalMargin = 8.0f;
@synthesize shareButton = _shareButton;
@synthesize reloadButton = _reloadButton;
@synthesize stopButton = _stopButton;
+@synthesize progressBar = _progressBar;
- (instancetype)init {
self = [super init];
if (self) {
[self setUpToolbarButtons];
[self setUpLocationBarContainer];
+ [self setUpProgressBar];
}
return self;
}
- (void)viewDidLoad {
self.view.backgroundColor = [UIColor lightGrayColor];
-
[self addChildViewController:self.locationBarViewController
toSubview:self.locationBarContainer];
+ [self setUpToolbarStackView];
+ [self.view addSubview:self.stackView];
+ [self.view addSubview:self.progressBar];
+ [self setConstraints];
+}
+
+#pragma mark - View Setup
- // Stack view to contain toolbar items.
+// Sets up the StackView that contains toolbar navigation items.
+- (void)setUpToolbarStackView {
self.stackView = [[UIStackView alloc] initWithArrangedSubviews:@[
self.backButton, self.forwardButton, self.reloadButton, self.stopButton,
self.locationBarContainer, self.shareButton, self.tabSwitchStripButton,
self.tabSwitchGridButton, self.toolsMenuButton
]];
- [self updateAllButtonsVisibility];
self.stackView.translatesAutoresizingMaskIntoConstraints = NO;
self.stackView.spacing = 16.0;
self.stackView.distribution = UIStackViewDistributionFill;
- [self.view addSubview:self.stackView];
+ [self updateAllButtonsVisibility];
+}
- // Set constraints.
+- (void)setConstraints {
[self.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight];
[NSLayoutConstraint activateConstraints:@[
@@ -91,6 +104,14 @@ CGFloat kHorizontalMargin = 8.0f;
[self.stackView.trailingAnchor
constraintEqualToAnchor:self.view.trailingAnchor
constant:-kHorizontalMargin],
+ [self.progressBar.leadingAnchor
+ constraintEqualToAnchor:self.view.leadingAnchor],
+ [self.progressBar.trailingAnchor
+ constraintEqualToAnchor:self.view.trailingAnchor],
+ [self.progressBar.bottomAnchor
+ constraintEqualToAnchor:self.view.bottomAnchor],
+ [self.progressBar.heightAnchor
+ constraintEqualToConstant:kProgressBarHeight],
]];
}
@@ -173,6 +194,13 @@ CGFloat kHorizontalMargin = 8.0f;
self.locationBarContainer = locationBarContainer;
}
+- (void)setUpProgressBar {
+ MDCProgressView* progressBar = [[MDCProgressView alloc] init];
+ progressBar.translatesAutoresizingMaskIntoConstraints = NO;
+ progressBar.hidden = YES;
+ self.progressBar = progressBar;
+}
+
#pragma mark - View Controller Containment
- (void)addChildViewController:(UIViewController*)viewController
@@ -226,9 +254,6 @@ CGFloat kHorizontalMargin = 8.0f;
#pragma mark - ToolbarWebStateConsumer
-- (void)setCurrentPageText:(NSString*)text {
-}
-
- (void)setCanGoForward:(BOOL)canGoForward {
self.forwardButton.enabled = canGoForward;
// Update the visibility since the Forward button will be hidden on
@@ -243,9 +268,14 @@ CGFloat kHorizontalMargin = 8.0f;
- (void)setIsLoading:(BOOL)isLoading {
self.reloadButton.hiddenInCurrentState = isLoading;
self.stopButton.hiddenInCurrentState = !isLoading;
+ [self.progressBar setHidden:!isLoading animated:YES completion:nil];
[self updateAllButtonsVisibility];
}
+- (void)setLoadingProgress:(double)progress {
+ [self.progressBar setProgress:progress animated:YES completion:nil];
+}
+
#pragma mark - ZoomTransitionDelegate
- (CGRect)rectForZoomWithKey:(NSObject*)key inView:(UIView*)view {

Powered by Google App Engine
This is Rietveld 408576698