blob: 029ee8eb4d88c7978d965d91a67f7a1ea034af7f [file] [log] [blame]
// Copyright 2021 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 ASH_CONSTANTS_AMBIENT_ANIMATION_THEME_H_
#define ASH_CONSTANTS_AMBIENT_ANIMATION_THEME_H_
#include "base/component_export.h"
#include "base/strings/string_piece.h"
namespace ash {
// Each corresponds to an animation design for ambient mode that UX created and
// has its own Lottie file.
//
// These values are persisted in user pref storage and logs, so they should
// never be renumbered or reused.
enum class AmbientAnimationTheme {
// This is the one exception in the list, and it describes the mode where
// IMAX photos are displayed at full screen in a slideshow fashion. This is
// not currently implemented as an "animation" and doesn't have a Lottie file.
// It is currently implemented entirely as a native UI view.
kSlideshow = 0,
kFeelTheBreeze = 1,
kFloatOnBy = 2,
kMaxValue = kFloatOnBy,
};
inline constexpr AmbientAnimationTheme kDefaultAmbientAnimationTheme =
AmbientAnimationTheme::kSlideshow;
// The returned StringPiece is guaranteed to be null-terminated and point to
// memory valid for the lifetime of the program.
COMPONENT_EXPORT(ASH_CONSTANTS)
base::StringPiece ToString(AmbientAnimationTheme theme);
} // namespace ash
#endif // ASH_CONSTANTS_AMBIENT_ANIMATION_THEME_H_