1/*
2 * Copyright (c) 2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16#include "window_display.h"
17
18namespace OHOS {
19namespace Previewer {
20
21PreviewerDisplay& PreviewerDisplay::GetInstance()
22{
23    static PreviewerDisplay instance;
24    return instance;
25}
26
27void PreviewerDisplay::SetFoldable(const bool foldable)
28{
29    foldable_ = foldable;
30}
31
32void PreviewerDisplay::SetFoldStatus(const FoldStatus foldStatus)
33{
34    foldStatus_ = foldStatus;
35}
36
37void PreviewerDisplay::SetCurrentFoldCreaseRegion(const sptr<FoldCreaseRegion> currentFoldCreaseRegion)
38{
39    currentFoldCreaseRegion_ = currentFoldCreaseRegion;
40}
41
42void PreviewerDisplay::ExecStatusChangedCallback()
43{
44    if (!displayCallback_) {
45        return;
46    }
47    displayCallback_(GetFoldStatus());
48}
49
50bool PreviewerDisplay::IsFoldable() const
51{
52    return foldable_;
53}
54
55FoldStatus PreviewerDisplay::GetFoldStatus() const
56{
57    return foldStatus_;
58}
59
60sptr<FoldCreaseRegion> PreviewerDisplay::GetCurrentFoldCreaseRegion() const
61{
62    return currentFoldCreaseRegion_;
63}
64
65void PreviewerDisplay::RegisterStatusChangedCallback(const DisplayCallback callback)
66{
67    displayCallback_ = std::move(callback);
68}
69} // namespace Previewer
70} // namespace OHOS