chromium/ios/chrome/browser/ui/fullscreen/test/test_fullscreen_controller_observer.h

// Copyright 2017 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_UI_FULLSCREEN_TEST_TEST_FULLSCREEN_CONTROLLER_OBSERVER_H_
#define IOS_CHROME_BROWSER_UI_FULLSCREEN_TEST_TEST_FULLSCREEN_CONTROLLER_OBSERVER_H_

#import "ios/chrome/browser/ui/fullscreen/fullscreen_controller_observer.h"

// Test version of FullscreenControllerObserver.
class TestFullscreenControllerObserver : public FullscreenControllerObserver {
 public:
  UIEdgeInsets min_viewport_insets() const { return min_viewport_insets_; }
  UIEdgeInsets max_viewport_insets() const { return max_viewport_insets_; }
  UIEdgeInsets current_viewport_insets() const {
    return current_viewport_insets_;
  }
  CGFloat progress() const { return progress_; }
  bool enabled() const { return enabled_; }
  FullscreenAnimator* animator() const { return animator_; }
  bool is_shut_down() const { return is_shut_down_; }

 private:
  // FullscreenControllerObserver:
  void FullscreenViewportInsetRangeChanged(
      FullscreenController* controller,
      UIEdgeInsets min_viewport_insets,
      UIEdgeInsets max_viewport_insets) override;
  void FullscreenProgressUpdated(FullscreenController* controller,
                                 CGFloat progress) override;
  void FullscreenEnabledStateChanged(FullscreenController* controller,
                                     bool enabled) override;
  void FullscreenWillAnimate(FullscreenController* controller,
                             FullscreenAnimator* animator) override;
  void FullscreenControllerWillShutDown(
      FullscreenController* controller) override;

  UIEdgeInsets min_viewport_insets_ = UIEdgeInsetsZero;
  UIEdgeInsets max_viewport_insets_ = UIEdgeInsetsZero;
  UIEdgeInsets current_viewport_insets_ = UIEdgeInsetsZero;
  CGFloat progress_ = 0.0;
  bool enabled_ = true;
  __weak FullscreenAnimator* animator_ = nil;
  bool is_shut_down_ = false;
};

#endif  // IOS_CHROME_BROWSER_UI_FULLSCREEN_TEST_TEST_FULLSCREEN_CONTROLLER_OBSERVER_H_