blob: b518bc6e94470635500d76f1c1d72479eb6ed9e5 [file] [log] [blame]
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "ios/chrome/browser/shared/ui/elements/home_waiting_view.h"
#import "ios/chrome/browser/shared/ui/util/rtl_geometry.h"
#import "ios/chrome/common/ui/colors/semantic_color_names.h"
@implementation HomeWaitingView {
UIActivityIndicatorView* _activityIndicator;
}
- (instancetype)initWithFrame:(CGRect)frame backgroundColor:(UIColor*)color {
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = color;
self.autoresizingMask =
UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}
return self;
}
- (void)startWaiting {
dispatch_time_t delayForIndicatorAppearance =
dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC));
__weak __typeof(self) weakSelf = self;
dispatch_after(delayForIndicatorAppearance, dispatch_get_main_queue(), ^{
[weakSelf startActivityIndiactor];
});
}
- (void)stopWaitingWithCompletion:(ProceduralBlock)completion {
[_activityIndicator stopAnimating];
if (completion) {
completion();
}
}
#pragma mark - Private
// Configures and starts the activity indicator.
- (void)startActivityIndiactor {
_activityIndicator = [[UIActivityIndicatorView alloc] init];
_activityIndicator.color = [UIColor colorNamed:kBlueColor];
_activityIndicator.autoresizingMask =
UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self addSubview:_activityIndicator];
[_activityIndicator startAnimating];
}
@end