1c41cb6d2Sopenharmony_ci/**
2c41cb6d2Sopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
3c41cb6d2Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4c41cb6d2Sopenharmony_ci * you may not use this file except in compliance with the License.
5c41cb6d2Sopenharmony_ci * You may obtain a copy of the License at
6c41cb6d2Sopenharmony_ci *
7c41cb6d2Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8c41cb6d2Sopenharmony_ci *
9c41cb6d2Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10c41cb6d2Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11c41cb6d2Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12c41cb6d2Sopenharmony_ci * See the License for the specific language governing permissions and
13c41cb6d2Sopenharmony_ci * limitations under the License.
14c41cb6d2Sopenharmony_ci */
15c41cb6d2Sopenharmony_ci
16c41cb6d2Sopenharmony_ciimport prompt from '@ohos.prompt'
17c41cb6d2Sopenharmony_ciimport ConfigData from '../../../../../../common/utils/src/main/ets/default/baseUtil/ConfigData';
18c41cb6d2Sopenharmony_ciimport SettingListModel from '../../../../../../product/phone/src/main/ets/model/settingListImpl/SettingListModel';
19c41cb6d2Sopenharmony_ci
20c41cb6d2Sopenharmony_ci@Component
21c41cb6d2Sopenharmony_ciexport struct SettingItemComponent {
22c41cb6d2Sopenharmony_ci  @Link settingEndText: string;
23c41cb6d2Sopenharmony_ci  @State isTouched: boolean = false;
24c41cb6d2Sopenharmony_ci  private targetPage: string = '';
25c41cb6d2Sopenharmony_ci  private settingTitle: string | Resource = '';
26c41cb6d2Sopenharmony_ci  private settingIcon: string | Resource = '';
27c41cb6d2Sopenharmony_ci
28c41cb6d2Sopenharmony_ci  onPageShow() {
29c41cb6d2Sopenharmony_ci    console.info(`CCCC onPageShow: ${this.targetPage}`)
30c41cb6d2Sopenharmony_ci  }
31c41cb6d2Sopenharmony_ci
32c41cb6d2Sopenharmony_ci  aboutToAppear(): void {
33c41cb6d2Sopenharmony_ci    console.info(`CCCC aboutToAppear: ${this.targetPage}`)
34c41cb6d2Sopenharmony_ci  }
35c41cb6d2Sopenharmony_ci
36c41cb6d2Sopenharmony_ci  build() {
37c41cb6d2Sopenharmony_ci    Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) {
38c41cb6d2Sopenharmony_ci      Row() {
39c41cb6d2Sopenharmony_ci        Image(this.settingIcon)
40c41cb6d2Sopenharmony_ci          .visibility(this.targetPage === 'mobileData' ? Visibility.None : Visibility.Visible)
41c41cb6d2Sopenharmony_ci          .width($r("app.float.wh_value_24"))
42c41cb6d2Sopenharmony_ci          .height($r("app.float.wh_value_24"))
43c41cb6d2Sopenharmony_ci          .margin({
44c41cb6d2Sopenharmony_ci            left: $r("app.float.distance_8"),
45c41cb6d2Sopenharmony_ci            top: $r("app.float.distance_15"),
46c41cb6d2Sopenharmony_ci            bottom: $r("app.float.distance_17")
47c41cb6d2Sopenharmony_ci          })
48c41cb6d2Sopenharmony_ci
49c41cb6d2Sopenharmony_ci        Text(this.settingTitle)
50c41cb6d2Sopenharmony_ci          .fontSize($r("app.float.font_16"))
51c41cb6d2Sopenharmony_ci          .lineHeight($r("app.float.lineHeight_22"))
52c41cb6d2Sopenharmony_ci          .fontWeight(FontWeight.Medium)
53c41cb6d2Sopenharmony_ci          .fontFamily('HarmonyHeiTi')
54c41cb6d2Sopenharmony_ci          .fontColor($r("sys.color.ohos_id_color_text_primary"))
55c41cb6d2Sopenharmony_ci          .align(Alignment.Start)
56c41cb6d2Sopenharmony_ci          .margin({
57c41cb6d2Sopenharmony_ci            left: this.targetPage === 'mobileData' ? $r("app.float.distance_8") : $r("app.float.distance_16"),
58c41cb6d2Sopenharmony_ci            top: $r("app.float.distance_17"),
59c41cb6d2Sopenharmony_ci            bottom: $r("app.float.distance_17")
60c41cb6d2Sopenharmony_ci          })
61c41cb6d2Sopenharmony_ci      }
62c41cb6d2Sopenharmony_ci      .align(Alignment.Start)
63c41cb6d2Sopenharmony_ci      .height(ConfigData.WH_100_100)
64c41cb6d2Sopenharmony_ci
65c41cb6d2Sopenharmony_ci      Row() {
66c41cb6d2Sopenharmony_ci        Text(this.settingEndText)
67c41cb6d2Sopenharmony_ci          .fontSize($r("app.float.font_14"))
68c41cb6d2Sopenharmony_ci          .lineHeight($r("app.float.lineHeight_19"))
69c41cb6d2Sopenharmony_ci          .align(Alignment.End)
70c41cb6d2Sopenharmony_ci          .fontWeight(FontWeight.Regular)
71c41cb6d2Sopenharmony_ci          .fontFamily('HarmonyHeiTi')
72c41cb6d2Sopenharmony_ci          .fontColor($r('sys.color.ohos_id_color_text_secondary'))
73c41cb6d2Sopenharmony_ci          .margin({ top: $r("app.float.distance_19"), bottom: $r("app.float.distance_18") });
74c41cb6d2Sopenharmony_ci
75c41cb6d2Sopenharmony_ci        Image('/res/image/ic_settings_arrow.svg')
76c41cb6d2Sopenharmony_ci          .width($r("app.float.wh_value_12"))
77c41cb6d2Sopenharmony_ci          .height($r("app.float.wh_value_24"))
78c41cb6d2Sopenharmony_ci          .margin({
79c41cb6d2Sopenharmony_ci            left: $r("app.float.distance_4"),
80c41cb6d2Sopenharmony_ci            right: $r("app.float.distance_8"),
81c41cb6d2Sopenharmony_ci            top: $r("app.float.distance_16"),
82c41cb6d2Sopenharmony_ci            bottom: $r("app.float.distance_16")
83c41cb6d2Sopenharmony_ci          })
84c41cb6d2Sopenharmony_ci          .fillColor($r("sys.color.ohos_id_color_fourth"))
85c41cb6d2Sopenharmony_ci      }
86c41cb6d2Sopenharmony_ci      .align(Alignment.End)
87c41cb6d2Sopenharmony_ci      .height(ConfigData.WH_100_100);
88c41cb6d2Sopenharmony_ci    }
89c41cb6d2Sopenharmony_ci    .width(ConfigData.WH_100_100)
90c41cb6d2Sopenharmony_ci    .height($r("app.float.wh_value_56"))
91c41cb6d2Sopenharmony_ci    .borderRadius($r("app.float.radius_16"))
92c41cb6d2Sopenharmony_ci    .linearGradient(this.isTouched ? {
93c41cb6d2Sopenharmony_ci      angle: 90,
94c41cb6d2Sopenharmony_ci      direction: GradientDirection.Right,
95c41cb6d2Sopenharmony_ci      colors: [[$r("app.color.DCEAF9"), 0.0], [$r("app.color.FAFAFA"), 1.0]]
96c41cb6d2Sopenharmony_ci    } : {
97c41cb6d2Sopenharmony_ci      angle: 90,
98c41cb6d2Sopenharmony_ci      direction: GradientDirection.Right,
99c41cb6d2Sopenharmony_ci      colors: [[$r("sys.color.ohos_id_color_foreground_contrary"), 1], [$r("sys.color.ohos_id_color_foreground_contrary"), 1]]
100c41cb6d2Sopenharmony_ci    })
101c41cb6d2Sopenharmony_ci    .onTouch((event?: TouchEvent | undefined) => {
102c41cb6d2Sopenharmony_ci      if (event?.type === TouchType.Down) {
103c41cb6d2Sopenharmony_ci        this.isTouched = true;
104c41cb6d2Sopenharmony_ci      }
105c41cb6d2Sopenharmony_ci      if (event?.type === TouchType.Up) {
106c41cb6d2Sopenharmony_ci        this.isTouched = false;
107c41cb6d2Sopenharmony_ci      }
108c41cb6d2Sopenharmony_ci    })
109c41cb6d2Sopenharmony_ci    .onClick(() => {
110c41cb6d2Sopenharmony_ci      SettingListModel.onSettingItemClick(this.targetPage);
111c41cb6d2Sopenharmony_ci    })
112c41cb6d2Sopenharmony_ci  }
113c41cb6d2Sopenharmony_ci}