ambient_container_view.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // Copyright 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef ASH_AMBIENT_UI_AMBIENT_CONTAINER_VIEW_H_
  5. #define ASH_AMBIENT_UI_AMBIENT_CONTAINER_VIEW_H_
  6. #include <memory>
  7. #include "ash/ash_export.h"
  8. #include "ui/views/view.h"
  9. namespace ash {
  10. class AmbientAnimationProgressTracker;
  11. class AmbientAnimationStaticResources;
  12. class AmbientMultiScreenMetricsRecorder;
  13. class AmbientViewDelegateImpl;
  14. namespace ambient {
  15. class AmbientOrientationMetricsRecorder;
  16. } // namespace ambient
  17. // Container view to display all Ambient Mode related views, i.e. photo frame,
  18. // weather info.
  19. class ASH_EXPORT AmbientContainerView : public views::View {
  20. public:
  21. METADATA_HEADER(AmbientContainerView);
  22. // |animation_static_resources| contains the Lottie animation file to render
  23. // along with its accompanying static image assets. If null, that means the
  24. // slideshow UI should be rendered instead.
  25. AmbientContainerView(
  26. AmbientViewDelegateImpl* delegate,
  27. AmbientAnimationProgressTracker* progress_tracker,
  28. std::unique_ptr<AmbientAnimationStaticResources>
  29. animation_static_resources,
  30. AmbientMultiScreenMetricsRecorder* multi_screen_metrics_recorder);
  31. ~AmbientContainerView() override;
  32. private:
  33. friend class AmbientAshTestBase;
  34. std::unique_ptr<ambient::AmbientOrientationMetricsRecorder>
  35. orientation_metrics_recorder_;
  36. };
  37. } // namespace ash
  38. #endif // ASH_AMBIENT_UI_AMBIENT_CONTAINER_VIEW_H_