1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- // Copyright 2022 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_STYLE_DARK_LIGHT_MODE_NUDGE_CONTROLLER_H_
- #define ASH_STYLE_DARK_LIGHT_MODE_NUDGE_CONTROLLER_H_
- #include "ash/ash_export.h"
- #include "ash/system/tray/system_nudge_controller.h"
- namespace ash {
- class SystemNudge;
- // Controls the showing and hiding of the dark/light mode educational nudge.
- // SystemNudgeController will control the animation, time duration etc of the
- // nudge.
- class ASH_EXPORT DarkLightModeNudgeController : public SystemNudgeController {
- public:
- DarkLightModeNudgeController();
- DarkLightModeNudgeController(const DarkLightModeNudgeController&) = delete;
- DarkLightModeNudgeController& operator=(const DarkLightModeNudgeController&) =
- delete;
- ~DarkLightModeNudgeController() override;
- // Gets the remaining number of times that the educational nudge can be shown.
- static int GetRemainingShownCount();
- // If possible, this will show the nudge that educates the user how to switch
- // between the dark and light mode.
- void MaybeShowNudge();
- // Called when the feature's state is toggled manually by the user.
- void ToggledByUser();
- void set_show_nudge_for_testing(bool value) {
- hide_nudge_for_testing_ = !value;
- }
- protected:
- // SystemNudgeController:
- std::unique_ptr<SystemNudge> CreateSystemNudge() override;
- private:
- // Returns true if the educational nudge should be shown.
- bool ShouldShowNudge() const;
- // Used to indicate whether to hide the nudge in tests. Will be initialized to
- // hide for ash tests through `set_show_nudge_for_testing` above. See
- // AshTestHelper::SetUp for more details.
- bool hide_nudge_for_testing_ = false;
- };
- } // namespace ash
- #endif // ASH_STYLE_DARK_LIGHT_MODE_NUDGE_CONTROLLER_H_
|