• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 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 "form_special_style.h"
17 
18 #include "form_info.h"
19 #include "form_constants.h"
20 namespace OHOS::Ace::NG {
21 constexpr char TIME_LIMIT_RESOURCE_NAME[] = "form_disable_time_limit";
22 constexpr char APP_LOCK_RESOURCE_NAME[] = "ohos_app_has_locked";
23 
SetIsForbiddenByParentControl(bool isForbiddenByParentControl)24 void FormSpecialStyle::SetIsForbiddenByParentControl(bool isForbiddenByParentControl)
25 {
26     isForbiddenByParentControl_ = isForbiddenByParentControl;
27 }
28 
SetIsLockedByAppLock(bool isLockedByAppLock)29 void FormSpecialStyle::SetIsLockedByAppLock(bool isLockedByAppLock)
30 {
31     isLockedByAppLock_ = isLockedByAppLock;
32 }
33 
IsForbidden() const34 bool FormSpecialStyle::IsForbidden() const
35 {
36     return isForbiddenByParentControl_;
37 }
38 
IsLocked() const39 bool FormSpecialStyle::IsLocked() const
40 {
41     return isLockedByAppLock_;
42 }
43 
GetResource()44 const char* FormSpecialStyle::GetResource()
45 {
46     auto formStyleAttribution = GetFormStyleAttribution();
47     if (formStyleAttribution == FormStyleAttribution::PARENT_CONTROL) {
48         return TIME_LIMIT_RESOURCE_NAME;
49     }
50     if (formStyleAttribution == FormStyleAttribution::APP_LOCK) {
51         return APP_LOCK_RESOURCE_NAME;
52     }
53     return nullptr;
54 }
55 
GetOperationToNewFormStyle(const FormSpecialStyle & formSpecialStyle)56 FormOperation FormSpecialStyle::GetOperationToNewFormStyle(const FormSpecialStyle& formSpecialStyle)
57 {
58     auto oldFormStyleAttribution = GetFormStyleAttribution();
59     auto newFormStyleAttribution = formSpecialStyle.GetFormStyleAttribution();
60     if (oldFormStyleAttribution == newFormStyleAttribution) {
61         return FormOperation::KEEP;
62     }
63     if (oldFormStyleAttribution == FormStyleAttribution::NORMAL) {
64         return FormOperation::LOAD;
65     }
66     if (newFormStyleAttribution == FormStyleAttribution::NORMAL) {
67         return FormOperation::UNLOAD;
68     }
69     return FormOperation::REFRESH;
70 }
71 
GetFormStyleAttribution() const72 FormStyleAttribution FormSpecialStyle::GetFormStyleAttribution() const
73 {
74     if (isForbiddenByParentControl_ && !isMultiAppForm_) {
75         return FormStyleAttribution::PARENT_CONTROL;
76     }
77     if (isLockedByAppLock_ && !isMultiAppForm_) {
78         return FormStyleAttribution::APP_LOCK;
79     }
80     return FormStyleAttribution::NORMAL;
81 }
82 
IsNeedToShowSpecialStyle()83 bool FormSpecialStyle::IsNeedToShowSpecialStyle()
84 {
85     return GetFormStyleAttribution() != FormStyleAttribution::NORMAL;
86 }
87 
IsLockedByAppLock() const88 bool FormSpecialStyle::IsLockedByAppLock() const
89 {
90     return isLockedByAppLock_ && !isMultiAppForm_;
91 }
92 
SetInitDone()93 void FormSpecialStyle::SetInitDone()
94 {
95     isInited_ = true;
96 }
97 
IsInited() const98 bool FormSpecialStyle::IsInited() const
99 {
100     return isInited_;
101 }
102 
SetIsMultiAppForm(AppExecFwk::FormInfo & formInfo)103 void FormSpecialStyle::SetIsMultiAppForm(AppExecFwk::FormInfo &formInfo)
104 {
105     bool isMultiAppForm = false;
106     for (auto dataIter = formInfo.customizeDatas.begin(); dataIter != formInfo.customizeDatas.end();) {
107         if (OHOS::AppExecFwk::Constants::IS_MULTI_APP_FORM == dataIter->name &&
108             OHOS::AppExecFwk::Constants::IS_MULTI_APP_FORM_TRUE == dataIter->value) {
109             isMultiAppForm = true;
110             break;
111         }
112         ++dataIter;
113     }
114     isMultiAppForm_ = isMultiAppForm;
115 }
116 
IsMultiAppForm() const117 bool FormSpecialStyle::IsMultiAppForm() const
118 {
119     return isMultiAppForm_;
120 }
121 } // namespace OHOS::Ace::NG
122