/* * Copyright (c) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import router from '@ohos.router'; import utils from '../../common/utils' import doubleButtonComponent from '../component/autoManager/doubleButtonComponent' import logger from '../../common/logger' import Want from '@ohos.app.ability.Want'; import common from '@ohos.app.ability.common'; const TAG = 'ManagerStart'; @Entry @Component struct ManagerStart { @State textContext: Resource = $r('app.string.unitManageDevice'); @State textManager: Resource = $r('app.string.unitManage'); @State textManagerBefore: Resource = $r('app.string.textManagerBefore'); @State textManagerAfter: Resource = $r('app.string.textManagerAfter'); @State textTerms: Resource = $r('app.string.textTerms'); @State textTermsBefore: Resource = $r('app.string.textTermsBefore'); private storage = LocalStorage.getShared(); build() { Column() { GridContainer({ columns: utils.isLargeDevice(), sizeType: SizeType.Auto, gutter: '12vp', margin: '12vp' }) { Column() { Image($r('app.media.ic_start')) .width($r('app.float.wh_value_40')) .height($r('app.float.wh_value_40')) .margin({ top: '72vp', bottom: '16vp' }) .objectFit(ImageFit.Contain) Text(this.textContext) .height('40vp') .textAlign(TextAlign.Center) .fontWeight(FontWeight.Medium) .lineHeight($r('app.float.lineHeight_vp_41')) .fontSize($r('app.float.font_vp_30')) .fontFamily('HarmonyHeiTi') } .useSizeType({ xs: { span: 8, offset: 0 }, sm: { span: 8, offset: 0 }, md: { span: 8, offset: 0 }, lg: { span: 8, offset: 2 } }) .width('100%') .align(Alignment.Center) Column() { Row() { Text() { Span(this.textTermsBefore) .fontWeight(FontWeight.Regular) .fontSize($r('app.float.font_vp_16')) .fontFamily('HarmonyHeiTi') Span(this.textTerms) .decoration({ type: TextDecorationType.None }) .fontColor(0x007DFF) .fontSize($r('app.float.font_vp_16')) .fontFamily('HarmonyHeiTi') .fontWeight(FontWeight.Regular) .onClick(() => { router.pushUrl({ url: 'pages/autoManager/termsShowPage' }) }) Span(this.textManagerBefore) .fontWeight(FontWeight.Regular) .fontSize($r('app.float.font_vp_16')) .fontFamily('HarmonyHeiTi') Span(this.textManager) .decoration({ type: TextDecorationType.None }) .fontColor(0x007DFF) .fontSize($r('app.float.font_vp_16')) .fontFamily('HarmonyHeiTi') .fontWeight(FontWeight.Regular) .onClick(() => { router.pushUrl({ url: 'pages/autoManager/unitManagerShowPage' }) }) Span(this.textManagerAfter) .fontWeight(FontWeight.Regular) .fontSize($r('app.float.font_vp_16')) .fontFamily('HarmonyHeiTi') } .lineHeight($r('app.float.lineHeight_vp_21_5')) } .useSizeType({ xs: { span: 8, offset: 0 }, sm: { span: 8, offset: 0 }, md: { span: 8, offset: 0 }, lg: { span: 8, offset: 2 } }) .width('100%') .margin({ top: '48vp' }) .justifyContent(FlexAlign.Center) } .width('100%') } Blank() GridContainer({ columns: utils.isLargeDevice(), sizeType: SizeType.Auto, gutter: '12vp', margin: '12vp' }) { Column() { Button() { Text($r('app.string.buttonAcceptAndContinue')) .fontSize($r('app.float.font_vp_16')) .fontFamily('HarmonyHeiTi') .fontWeight(FontWeight.Medium) .fontColor(0xFFFFFF) .lineHeight($r('app.float.lineHeight_vp_22')) } .backgroundColor(0x007DFF) .onClick(() => { router.pushUrl({ url: 'pages/autoManager/loadingInfo' }) }) .width('100%') .height('40vp') .useSizeType({ xs: { span: 2, offset: 3 }, sm: { span: 2, offset: 3 }, md: { span: 2, offset: 3 }, lg: { span: 2, offset: 3 } }) } .width('100%') .useSizeType({ xs: { span: 8, offset: 0 }, sm: { span: 8, offset: 0 }, md: { span: 8, offset: 0 }, lg: { span: 8, offset: 2 } }) .margin({ bottom: '100vp' }) } GridContainer({ columns: utils.isLargeDevice(), sizeType: SizeType.Auto, gutter: '12vp', margin: '12vp' }) { Column() { doubleButtonComponent({ nextFlag: true, returnDialogFlag: false }) } .useSizeType({ xs: { span: 8, offset: 0 }, sm: { span: 8, offset: 0 }, md: { span: 8, offset: 0 }, lg: { span: 12, offset: 0 } }) .width('100%') .margin({ bottom: '16vp' }) } } .backgroundColor(0xF1F3F5) .width('100%') .height('100%') } aboutToAppear() { this.parseManageParameter(); } parseManageParameter() { this.storage = LocalStorage.getShared(); let data = this.storage.get('autoManagerAbilityWant'); if (!utils.checkObjPropertyValid(data, 'parameters.elementName.abilityName') || !utils.checkObjPropertyValid(data, 'parameters.enterprise.name') || !utils.isValid((data.parameters?.elementName as Record).bundleName) || !utils.isValid(data.parameters?.url) || !utils.isValid(data.parameters?.termsName) || (!utils.isValid(data.parameters?.termsContent) || !(data.parameters?.termsContent instanceof Array)) || !utils.isValid((data.parameters?.enterprise as Record).description)) { logger.error(TAG, 'parseManageParameter fail! parameters is not valid'); (getContext(this) as common.UIAbilityContext).terminateSelf(); return; } let mapVal = new Map([ ['manageAbilityName', (data.parameters?.elementName as Record).abilityName], ['manageBundleName', (data.parameters?.elementName as Record).bundleName], ['manageUrl', data.parameters?.url], ['manageTermsName', data.parameters?.termsName], ['manageTermsContent', data.parameters?.termsContent], ['manageEnterpriseName', (data.parameters?.enterprise as Record).name], ['manageEnterpriseDescription', (data.parameters?.enterprise as Record).description] ]); for (let item of Array.from(mapVal.keys())) { AppStorage.setOrCreate(item, mapVal.get(item)); } } }