chromium/ash/ambient/ui/ambient_container_view.cc

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ash/ambient/ui/ambient_container_view.h"

#include <memory>
#include <utility>

#include "ash/ambient/ambient_ui_settings.h"
#include "ash/ambient/metrics/ambient_metrics.h"
#include "ash/ambient/resources/ambient_animation_static_resources.h"
#include "ash/ambient/ui/ambient_animation_view.h"
#include "ash/ambient/ui/ambient_view_ids.h"
#include "base/check.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/views/background.h"
#include "ui/views/layout/fill_layout.h"
#include "ui/views/view.h"
#include "ui/views/widget/widget.h"

namespace ash {

AmbientContainerView::AmbientContainerView(
    AmbientUiSettings ui_settings,
    std::unique_ptr<views::View> main_rendering_view) {
  CHECK(main_rendering_view);
  InitializeCommonSettings();
  // Set up metrics common to all ambient UIs.
  orientation_metrics_recorder_ =
      std::make_unique<ambient::AmbientOrientationMetricsRecorder>(
          main_rendering_view.get(), std::move(ui_settings));
  AddChildView(std::move(main_rendering_view));
}

AmbientContainerView::~AmbientContainerView() = default;

void AmbientContainerView::InitializeCommonSettings() {
  SetID(AmbientViewID::kAmbientContainerView);
  // TODO(b/139954108): Choose a better dark mode theme color.
  SetBackground(views::CreateSolidBackground(SK_ColorBLACK));
  SetLayoutManager(std::make_unique<views::FillLayout>());
}

BEGIN_METADATA(AmbientContainerView)
END_METADATA

}  // namespace ash