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)24void FormSpecialStyle::SetIsForbiddenByParentControl(bool isForbiddenByParentControl) 25 { 26 isForbiddenByParentControl_ = isForbiddenByParentControl; 27 } 28 SetIsLockedByAppLock(bool isLockedByAppLock)29void FormSpecialStyle::SetIsLockedByAppLock(bool isLockedByAppLock) 30 { 31 isLockedByAppLock_ = isLockedByAppLock; 32 } 33 IsForbidden() const34bool FormSpecialStyle::IsForbidden() const 35 { 36 return isForbiddenByParentControl_; 37 } 38 IsLocked() const39bool FormSpecialStyle::IsLocked() const 40 { 41 return isLockedByAppLock_; 42 } 43 GetResource()44const 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)56FormOperation 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() const72FormStyleAttribution 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()83bool FormSpecialStyle::IsNeedToShowSpecialStyle() 84 { 85 return GetFormStyleAttribution() != FormStyleAttribution::NORMAL; 86 } 87 IsLockedByAppLock() const88bool FormSpecialStyle::IsLockedByAppLock() const 89 { 90 return isLockedByAppLock_ && !isMultiAppForm_; 91 } 92 SetInitDone()93void FormSpecialStyle::SetInitDone() 94 { 95 isInited_ = true; 96 } 97 IsInited() const98bool FormSpecialStyle::IsInited() const 99 { 100 return isInited_; 101 } 102 SetIsMultiAppForm(AppExecFwk::FormInfo & formInfo)103void 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() const117bool FormSpecialStyle::IsMultiAppForm() const 118 { 119 return isMultiAppForm_; 120 } 121 } // namespace OHOS::Ace::NG 122