chromium/ios/chrome/browser/shared/ui/elements/home_waiting_view.h

// 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.

#ifndef IOS_CHROME_BROWSER_SHARED_UI_ELEMENTS_HOME_WAITING_VIEW_H_
#define IOS_CHROME_BROWSER_SHARED_UI_ELEMENTS_HOME_WAITING_VIEW_H_

#import <UIKit/UIKit.h>

#include "base/ios/block_types.h"

// Displays a waiting UI.
// It displays an activity indicator with an optional colored background.
// The activity indicator appears after a delay, starting from the moment
// `startWaiting` is called.
@interface HomeWaitingView : UIView

- (instancetype)initWithFrame:(CGRect)frame backgroundColor:(UIColor*)color;

// Call this method when this view is added to the visible view hierarchy.
// After a delay, an activity indicator will be presented if this view is still
// in the view hierarchy at that time.
- (void)startWaiting;

// Call this method when this view is removed from the visible view hierarchy.
// `completion` will be called when this view is done animating out.
- (void)stopWaitingWithCompletion:(ProceduralBlock)completion;

@end

#endif  // IOS_CHROME_BROWSER_SHARED_UI_ELEMENTS_HOME_WAITING_VIEW_H_