1fb299fa2Sopenharmony_ci/*
2fb299fa2Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
3fb299fa2Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4fb299fa2Sopenharmony_ci * you may not use this file except in compliance with the License.
5fb299fa2Sopenharmony_ci * You may obtain a copy of the License at
6fb299fa2Sopenharmony_ci *
7fb299fa2Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8fb299fa2Sopenharmony_ci *
9fb299fa2Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10fb299fa2Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11fb299fa2Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12fb299fa2Sopenharmony_ci * See the License for the specific language governing permissions and
13fb299fa2Sopenharmony_ci * limitations under the License.
14fb299fa2Sopenharmony_ci */
15fb299fa2Sopenharmony_ci
16fb299fa2Sopenharmony_ci#include "auto_layout.h"
17fb299fa2Sopenharmony_ci#include "log/log.h"
18fb299fa2Sopenharmony_cinamespace Updater {
19fb299fa2Sopenharmony_civoid AutoLayout::RegisterHelper(std::unique_ptr<LayoutInterface> ptr)
20fb299fa2Sopenharmony_ci{
21fb299fa2Sopenharmony_ci    helper_ = std::move(ptr);
22fb299fa2Sopenharmony_ci}
23fb299fa2Sopenharmony_ci
24fb299fa2Sopenharmony_ciAutoLayout &AutoLayout::GetInstance()
25fb299fa2Sopenharmony_ci{
26fb299fa2Sopenharmony_ci    static AutoLayout layout;
27fb299fa2Sopenharmony_ci    return layout;
28fb299fa2Sopenharmony_ci}
29fb299fa2Sopenharmony_ci
30fb299fa2Sopenharmony_civoid AutoLayout::Init()
31fb299fa2Sopenharmony_ci{
32fb299fa2Sopenharmony_ci    if (isInited_ || helper_ == nullptr) {
33fb299fa2Sopenharmony_ci        LOG(ERROR) << "helper_ null error or already has been inited";
34fb299fa2Sopenharmony_ci        return;
35fb299fa2Sopenharmony_ci    }
36fb299fa2Sopenharmony_ci    helper_->Init();
37fb299fa2Sopenharmony_ci    isInited_ = true;
38fb299fa2Sopenharmony_ci}
39fb299fa2Sopenharmony_ci
40fb299fa2Sopenharmony_civoid AutoLayout::SetJsonLocation(JsonNode &root)
41fb299fa2Sopenharmony_ci{
42fb299fa2Sopenharmony_ci    if (helper_ == nullptr) {
43fb299fa2Sopenharmony_ci        LOG(ERROR) << "helper_ null error";
44fb299fa2Sopenharmony_ci        return;
45fb299fa2Sopenharmony_ci    }
46fb299fa2Sopenharmony_ci    helper_->SetJsonLocation(root);
47fb299fa2Sopenharmony_ci}
48fb299fa2Sopenharmony_ci
49fb299fa2Sopenharmony_cibool AutoLayout::IsInited()
50fb299fa2Sopenharmony_ci{
51fb299fa2Sopenharmony_ci    return isInited_;
52fb299fa2Sopenharmony_ci}
53fb299fa2Sopenharmony_ci}