// Copyright 2013 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 UI_ANDROID_WINDOW_ANDROID_OBSERVER_H_
#define UI_ANDROID_WINDOW_ANDROID_OBSERVER_H_

#include "ui/android/ui_android_export.h"

namespace ui {

class UI_ANDROID_EXPORT WindowAndroidObserver {
 public:
  virtual void OnCompositingDidCommit() = 0;
  virtual void OnRootWindowVisibilityChanged(bool visible) = 0;
  virtual void OnAttachCompositor() = 0;
  virtual void OnDetachCompositor() = 0;
  virtual void OnVSync(base::TimeTicks frame_time,
                       base::TimeDelta vsync_period) = 0;
  virtual void OnAnimate(base::TimeTicks frame_begin_time) {}

  // Note that activity state callbacks will only be made if the WindowAndroid
  // has been explicitly subscribed to receive them. The observer instance
  // should account for whether or not this is the case.
  virtual void OnActivityStopped() = 0;
  virtual void OnActivityStarted() = 0;

 protected:
  virtual ~WindowAndroidObserver() {}
};

}  // namespace ui

#endif  // UI_ANDROID_WINDOW_ANDROID_OBSERVER_H_
