From ffbb7cae33778eb248e3486f5cacb1820cb345e5 Mon Sep 17 00:00:00 2001 From: chenbosongcode Date: Sun, 26 Oct 2025 16:44:07 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=90=8C=E6=AD=A5openHarmony=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=8CButtonComponent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chenbosongcode --- ArkUIKit/ButtonComponent/AppScope/app.json5 | 25 +++ .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 2777 bytes ArkUIKit/ButtonComponent/README_zh.md | 112 +++++++++++ ArkUIKit/ButtonComponent/build-profile.json5 | 58 ++++++ ArkUIKit/ButtonComponent/code-linter.json5 | 35 ++++ .../ButtonComponent/entry/build-profile.json5 | 43 +++++ ArkUIKit/ButtonComponent/entry/hvigorfile.ts | 21 ++ .../ButtonComponent/entry/oh-package.json5 | 25 +++ .../main/ets/entryability/EntryAbility.ets | 57 ++++++ .../entrybackupability/EntryBackupAbility.ets | 27 +++ .../src/main/ets/pages/ButtonAlignBottom.ets | 50 +++++ .../src/main/ets/pages/ButtonAlignTop.ets | 50 +++++ .../src/main/ets/pages/ButtonBcgColor.ets | 38 ++++ .../src/main/ets/pages/ButtonBrightness.ets | 87 +++++++++ .../src/main/ets/pages/ButtonFontColor.ets | 39 ++++ .../entry/src/main/ets/pages/ButtonShadow.ets | 38 ++++ .../entry/src/main/ets/pages/Index.ets | 98 ++++++++++ .../entry/src/main/module.json5 | 71 +++++++ .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 32 ++++ .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 11 ++ .../main/resources/dark/element/color.json | 8 + .../main/resources/en_US/element/string.json | 32 ++++ .../main/resources/zh_CN/element/string.json | 32 ++++ .../entry/src/main/syscap.json | 17 ++ .../src/ohosTest/ets/test/Ability.test.ets | 50 +++++ .../src/ohosTest/ets/test/Index.test.ets | 180 ++++++++++++++++++ .../entry/src/ohosTest/ets/test/List.test.ets | 23 +++ .../entry/src/ohosTest/module.json5 | 27 +++ .../entry/src/ohosTest/syscap.json | 17 ++ .../hvigor/hvigor-config.json5 | 37 ++++ ArkUIKit/ButtonComponent/hvigorfile.ts | 21 ++ ArkUIKit/ButtonComponent/oh-package.json5 | 25 +++ ArkUIKit/ButtonComponent/ohosTest.md | 10 + .../screenshots/device/img1.png | Bin 0 -> 23587 bytes .../screenshots/device/img2.png | Bin 0 -> 23007 bytes 40 files changed, 1422 insertions(+) create mode 100644 ArkUIKit/ButtonComponent/AppScope/app.json5 create mode 100644 ArkUIKit/ButtonComponent/AppScope/resources/base/element/string.json create mode 100644 ArkUIKit/ButtonComponent/AppScope/resources/base/media/app_icon.png create mode 100644 ArkUIKit/ButtonComponent/README_zh.md create mode 100644 ArkUIKit/ButtonComponent/build-profile.json5 create mode 100644 ArkUIKit/ButtonComponent/code-linter.json5 create mode 100644 ArkUIKit/ButtonComponent/entry/build-profile.json5 create mode 100644 ArkUIKit/ButtonComponent/entry/hvigorfile.ts create mode 100644 ArkUIKit/ButtonComponent/entry/oh-package.json5 create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonAlignBottom.ets create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonAlignTop.ets create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonBcgColor.ets create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonBrightness.ets create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonFontColor.ets create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonShadow.ets create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/ets/pages/Index.ets create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/module.json5 create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/resources/base/element/color.json create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/resources/base/element/string.json create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/resources/base/media/layered_image.json create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/resources/base/media/startIcon.png create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/resources/base/profile/backup_config.json create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/resources/base/profile/main_pages.json create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/resources/dark/element/color.json create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/resources/en_US/element/string.json create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/resources/zh_CN/element/string.json create mode 100644 ArkUIKit/ButtonComponent/entry/src/main/syscap.json create mode 100644 ArkUIKit/ButtonComponent/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkUIKit/ButtonComponent/entry/src/ohosTest/ets/test/Index.test.ets create mode 100644 ArkUIKit/ButtonComponent/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkUIKit/ButtonComponent/entry/src/ohosTest/module.json5 create mode 100644 ArkUIKit/ButtonComponent/entry/src/ohosTest/syscap.json create mode 100644 ArkUIKit/ButtonComponent/hvigor/hvigor-config.json5 create mode 100644 ArkUIKit/ButtonComponent/hvigorfile.ts create mode 100644 ArkUIKit/ButtonComponent/oh-package.json5 create mode 100644 ArkUIKit/ButtonComponent/ohosTest.md create mode 100644 ArkUIKit/ButtonComponent/screenshots/device/img1.png create mode 100644 ArkUIKit/ButtonComponent/screenshots/device/img2.png diff --git a/ArkUIKit/ButtonComponent/AppScope/app.json5 b/ArkUIKit/ButtonComponent/AppScope/app.json5 new file mode 100644 index 000000000..a06e3dc3d --- /dev/null +++ b/ArkUIKit/ButtonComponent/AppScope/app.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + "app": { + "bundleName": "com.samples.buttoncomponent", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name" + } +} diff --git a/ArkUIKit/ButtonComponent/AppScope/resources/base/element/string.json b/ArkUIKit/ButtonComponent/AppScope/resources/base/element/string.json new file mode 100644 index 000000000..7aa13a433 --- /dev/null +++ b/ArkUIKit/ButtonComponent/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "DialogProject" + } + ] +} diff --git a/ArkUIKit/ButtonComponent/AppScope/resources/base/media/app_icon.png b/ArkUIKit/ButtonComponent/AppScope/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a39445dc87828b76fed6d2ec470dd455c45319e3 GIT binary patch literal 2777 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 literal 0 HcmV?d00001 diff --git a/ArkUIKit/ButtonComponent/README_zh.md b/ArkUIKit/ButtonComponent/README_zh.md new file mode 100644 index 000000000..74095fe0e --- /dev/null +++ b/ArkUIKit/ButtonComponent/README_zh.md @@ -0,0 +1,112 @@ +# ArkUI使用文本控件指南文档示例 + +### 介绍 + +本示例通过使用[ArkUI指南文档](https://gitcode.com/openharmony/docs/tree/master/zh-cn/application-dev/ui)中各场景的开发示例,展示在工程中,帮助开发者更好地理解ArkUI提供的弧形组件及组件属性并合理使用。该工程中展示的代码详细描述可查链接:[弧形按钮 (arcbutton)](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/arkts-advanced-components-arcbutton.md)。 +### 效果预览 + +| 下弧形按钮效果 | 上弧形按钮效果 | +|----------------------------------|----------------------------------| +| ![](screenshots/device/img1.png) | ![](screenshots/device/img2.png) | + +### 使用说明 + +1. 在主界面,可以点击对应卡片,选择需要参考的组件示例。 + +3. 进入示例界面,查看参考示例。 + +4. 通过自动测试框架可进行测试及维护。 + +### 工程目录 +``` +entry/src/main/ets/ +|---entryability +|---pages +| |---ButtonAlignBottom.ets +| |---ButtonAlignTop.ets +| |---ButtonBcgColor.ets +| |---ButtonBrightness.ets +| |---ButtonFontColor.ets +| |---ButtonShadow.ets +| |---Index.ets // 应用主页面 +entry/src/ohosTest/ +|---ets +| |---index.test.ets // 示例代码测试代码 +``` +### 具体实现 +实现了弧形按钮使用用例,包含亮度值显示、滑动调节滑块和重置按钮。以下是详细实现过程: +1. 数据定义 + 在结构体BrightnessPage中定义了两个核心数据: + @Local brightnessValue: number = 30:用@Local装饰器声明的本地状态变量,记录当前亮度值,初始值为 30(单位:%)。 + private defaultBrightnessValue: number = 50:私有变量,存储默认亮度值(50%),用于重置功能。 +2. 布局容器 + 使用RelativeContainer作为根容器,通过对齐规则(alignRules) 管理子组件的位置关系,特点是: + 容器尺寸设置为width('100%')和height('100%'),占满整个父容器。 + 背景色设为Color.Black(黑色),形成深色主题。 +3. 子组件实现 + (1)标题文本(Text) + 显示内容:$r('app.string.Brightness'),通过资源管理器引用字符串资源(“亮度”)。 + 样式:白色字体(Color.White)、字号 24、顶部外边距 16px。 + 位置:通过alignRules设置水平居中(middle对齐容器的HorizontalAlign.Center)。 + (2)亮度值显示文本(Text) + 显示内容:${this.brightnessValue} %,动态展示当前亮度值(如 “30 %”)。 + 样式:白色字体、左侧外边距 16px。 + 位置: + start对齐容器的HorizontalAlign.Start(左对齐容器左侧)。 + center对齐容器的VerticalAlign.Center(垂直居中于容器)。 + (3)亮度调节滑块(Slider) + 核心配置: + value: this.brightnessValue:滑块当前值绑定到brightnessValue。 + min: 0、max: 100:调节范围 0~100(对应亮度百分比)。 + style: SliderStyle.InSet:滑块样式为内嵌模式(通常用于紧凑布局)。 + 样式: + 滑块轨道未选中部分:trackColor('#ADD8E6')(浅蓝色)。 + 选中部分:selectedColor('#4169E1')(皇家蓝)。 + 滑块按钮:blockColor('#191970')(深靛蓝)。 + 宽度 150px,左右外边距 16px。 + 交互:onChange事件监听滑块值变化,实时更新brightnessValue(双向绑定)。 + 位置: + center对齐亮度文本(id_brightness_min_text)的垂直中心。 + start对齐亮度文本的右侧(HorizontalAlign.End),即滑块紧接在文本右侧。 + (4)重置按钮(ArcButton) + 配置:通过ArcButtonOptions设置弧形按钮属性: + 文本:$r('app.string.Reset')(引用 “重置” 字符串资源)。 + 样式:styleMode: ArcButtonStyleMode.EMPHASIZED_LIGHT(高亮浅色模式,适合深色背景)。 + 字号:19fp(基于字体像素的自适应单位)。 + 点击事件:onClick回调中将brightnessValue重置为defaultBrightnessValue(50%)。 + 位置: + middle对齐容器水平中心(水平居中)。 + bottom对齐容器底部(垂直靠下)。 +4. 整体效果 + 页面呈现一个深色背景的亮度调节界面: + 顶部居中显示 “亮度” 标题。 + 中间左侧显示当前亮度值(如 “30 %”),右侧紧接一个滑块,可拖动调节亮度(0~100%),滑块值实时同步到文本。 + 底部居中显示 “重置” 按钮,点击后亮度值恢复为 50%。 + +### 相关权限 + +不涉及。 + +### 依赖 + +不涉及。 + +### 约束与限制 + +1.本示例仅支持标准系统上运行, 支持设备:RK3568。 + +2.本示例为Stage模型,支持API21版本SDK,版本号:6.0.0.254,镜像版本号:OpenHarmony_5.0.2.57。 + +3.本示例需要使用DevEco Studio NEXT Developer Preview2 (Build Version: 5.0.5.306, built on December 12, 2024)及以上版本才可编译运行。 + +### 下载 + +如需单独下载本工程,执行如下命令: + +```` +git init +git config core.sparsecheckout true +echo code/DocsSample/ArkUISample/ButtonComponent > .git/info/sparse-checkout +git remote add origin https://gitee.com/openharmony/applications_app_samples.git +git pull origin master +```` \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/build-profile.json5 b/ArkUIKit/ButtonComponent/build-profile.json5 new file mode 100644 index 000000000..e93cdb10e --- /dev/null +++ b/ArkUIKit/ButtonComponent/build-profile.json5 @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + "app": { + "signingConfigs": [], + "products": [ + { + "name": "default", + "signingConfig": "default", + "compileSdkVersion": "6.0.0(20)", + "compatibleSdkVersion": "6.0.0(20)", + "targetSdkVersion": "6.0.0(20)", + "runtimeOS": "HarmonyOS", + "buildOption": { + "strictMode": { + "caseSensitiveCheck": true, + "useNormalizedOHMUrl": true + } + }, + } + ], + "buildModeSet": [ + { + "name": "debug", + }, + { + "name": "release" + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/code-linter.json5 b/ArkUIKit/ButtonComponent/code-linter.json5 new file mode 100644 index 000000000..28586467e --- /dev/null +++ b/ArkUIKit/ButtonComponent/code-linter.json5 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + "files": [ + "**/*.ets" + ], + "ignore": [ + "**/src/ohosTest/**/*", + "**/src/test/**/*", + "**/src/mock/**/*", + "**/node_modules/**/*", + "**/oh_modules/**/*", + "**/build/**/*", + "**/.preview/**/*" + ], + "ruleSet": [ + "plugin:@performance/recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + } +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/build-profile.json5 b/ArkUIKit/ButtonComponent/entry/build-profile.json5 new file mode 100644 index 000000000..e7569e305 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/build-profile.json5 @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + "apiType": "stageMode", + "buildOption": { + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/hvigorfile.ts b/ArkUIKit/ButtonComponent/entry/hvigorfile.ts new file mode 100644 index 000000000..e4f43d546 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/hvigorfile.ts @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 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 { hapTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/ArkUIKit/ButtonComponent/entry/oh-package.json5 b/ArkUIKit/ButtonComponent/entry/oh-package.json5 new file mode 100644 index 000000000..c9cb6c817 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/oh-package.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + "name": "entry", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "", + "author": "", + "license": "", + "dependencies": {} +} + diff --git a/ArkUIKit/ButtonComponent/entry/src/main/ets/entryability/EntryAbility.ets b/ArkUIKit/ButtonComponent/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 000000000..edc2839f2 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2025 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 { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { window } from '@kit.ArkUI'; + +export default class EntryAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + } + + onDestroy(): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/Index', (err) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); + } +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/ArkUIKit/ButtonComponent/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets new file mode 100644 index 000000000..b1e212947 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2025 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 { hilog } from '@kit.PerformanceAnalysisKit'; +import { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; + +export default class EntryBackupAbility extends BackupExtensionAbility { + async onBackup() { + hilog.info(0x0000, 'testTag', 'onBackup ok'); + } + + async onRestore(bundleVersion: BundleVersion) { + hilog.info(0x0000, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); + } +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonAlignBottom.ets b/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonAlignBottom.ets new file mode 100644 index 000000000..4fd6f070b --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonAlignBottom.ets @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2025 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 { ArcButton, ArcButtonOptions, ArcButtonPosition, ArcButtonStyleMode } from '@kit.ArkUI'; +import { hilog } from '@kit.PerformanceAnalysisKit'; + +const DOMAIN = 0xF811; +const TAG = '[Sample_Button_Component]' + +@Entry +@ComponentV2 +struct ButtonAlignBottom { + build() { + RelativeContainer() { + // [Start button_align_bottom] + ArcButton({ + options: new ArcButtonOptions({ + label: 'OK', + // [StartExclude button_touch] + position: ArcButtonPosition.BOTTOM_EDGE, + styleMode: ArcButtonStyleMode.EMPHASIZED_LIGHT, + // [EndExclude button_touch] + // [StartExclude button_align_bottom] + onTouch: (event: TouchEvent) => { + hilog.info(DOMAIN, TAG, 'ArcButton onTouch'); + } + // [EndExclude button_align_bottom] + }) + + }) + // [End button_align_bottom] + .alignRules({ + middle: { anchor: '__container__', align: HorizontalAlign.Center }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + } + } +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonAlignTop.ets b/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonAlignTop.ets new file mode 100644 index 000000000..754df2be3 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonAlignTop.ets @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2025 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 { ArcButton, ArcButtonOptions, ArcButtonPosition, ArcButtonStyleMode } from '@kit.ArkUI'; +import { hilog } from '@kit.PerformanceAnalysisKit'; + +const DOMAIN = 0xF811; +const TAG = '[Sample_Button_Component]' + +@Entry +@ComponentV2 +struct ButtonAlignTop { + build() { + RelativeContainer() { + // [Start button_align_top] + // [Start button_click] + ArcButton({ + options: new ArcButtonOptions({ + label: 'OK', + // [StartExclude button_click] + position: ArcButtonPosition.TOP_EDGE, + styleMode: ArcButtonStyleMode.EMPHASIZED_LIGHT, + // [End button_click] + // [StartExclude button_align_top] + onClick: () => { + hilog.info(DOMAIN, TAG, 'ArcButton onClick'); + }, + // [EndExclude button_align_top] + }) + }) + // [End button_align_top] + // [End button_click] + .alignRules({ + middle: { anchor: '__container__', align: HorizontalAlign.Center }, + }) + } + } +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonBcgColor.ets b/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonBcgColor.ets new file mode 100644 index 000000000..3aab334a3 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonBcgColor.ets @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2025 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 { ArcButton, ArcButtonOptions, ArcButtonStyleMode, ColorMetrics } from '@kit.ArkUI'; + +@Entry +@ComponentV2 +struct ButtonBcgColor { + build() { + RelativeContainer() { + // [Start button_bcg_color] + ArcButton({ + options: new ArcButtonOptions({ + label: 'OK', + styleMode: ArcButtonStyleMode.CUSTOM, + backgroundColor: ColorMetrics.resourceColor('#707070') + }) + }) + // [End button_bcg_color] + .alignRules({ + middle: { anchor: '__container__', align: HorizontalAlign.Center }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + } + } +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonBrightness.ets b/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonBrightness.ets new file mode 100644 index 000000000..eca306f1b --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonBrightness.ets @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2025 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. + */ + +// [Start brightness_page] +import { LengthMetrics, LengthUnit, ArcButton, ArcButtonOptions, ArcButtonStyleMode } from '@kit.ArkUI'; + +@Entry +@ComponentV2 +struct BrightnessPage { + @Local brightnessValue: number = 30; + private defaultBrightnessValue: number = 50; + + build() { + RelativeContainer() { + // $r('app.string.Reset')需要替换为开发者所需的资源文件 + Text($r('app.string.Brightness')) + .fontColor(Color.White) + .id('id_brightness_set_text') + .fontSize(24) + .margin({ top: 16 }) + .alignRules({ + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }) + + Text(`${this.brightnessValue} %`) + .fontColor(Color.White) + .id('id_brightness_min_text') + .margin({ left: 16 }) + .alignRules({ + start: { anchor: '__container__', align: HorizontalAlign.Start }, + center: { anchor: '__container__', align: VerticalAlign.Center } + }) + + Slider({ + value: this.brightnessValue, + min: 0, + max: 100, + style: SliderStyle.InSet + }) + .blockColor('#191970') + .trackColor('#ADD8E6') + .selectedColor('#4169E1') + .width(150) + .id('id_brightness_slider') + .margin({ left: 16, right: 16 }) + .onChange((value: number, mode: SliderChangeMode) => { + this.brightnessValue = value; + }) + .alignRules({ + center: { anchor: 'id_brightness_min_text', align: VerticalAlign.Center }, + start: { anchor: 'id_brightness_min_text', align: HorizontalAlign.End } + }) + + ArcButton({ + options: new ArcButtonOptions({ + // $r('app.string.Reset')需要替换为开发者所需的资源文件 + label: $r('app.string.Reset'), + styleMode: ArcButtonStyleMode.EMPHASIZED_LIGHT, + fontSize: new LengthMetrics(19, LengthUnit.FP), + onClick: () => { + this.brightnessValue = this.defaultBrightnessValue; + } + }) + }) + .alignRules({ + middle: { anchor: '__container__', align: HorizontalAlign.Center }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + } + .height('100%') + .width('100%') + .backgroundColor(Color.Black) + } +} +// [End brightness_page] \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonFontColor.ets b/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonFontColor.ets new file mode 100644 index 000000000..a8c3e15f0 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonFontColor.ets @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2025 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 { ArcButton, ArcButtonOptions, ArcButtonStyleMode, ColorMetrics } from '@kit.ArkUI'; + +@Entry +@ComponentV2 +struct ButtonFontColor { + build() { + RelativeContainer() { + // [Start button_font_color] + ArcButton({ + options: new ArcButtonOptions({ + label: 'OK', + styleMode: ArcButtonStyleMode.CUSTOM, + backgroundColor: ColorMetrics.resourceColor('#E84026'), + fontColor: ColorMetrics.resourceColor('#707070') + }) + }) + // [End button_font_color] + .alignRules({ + middle: { anchor: '__container__', align: HorizontalAlign.Center }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + } + } +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonShadow.ets b/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonShadow.ets new file mode 100644 index 000000000..f332ad112 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/ButtonShadow.ets @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2025 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 { ArcButton, ArcButtonOptions, ColorMetrics } from '@kit.ArkUI'; + +@Entry +@ComponentV2 +struct ButtonShadowColor { + build() { + RelativeContainer() { + // [Start button_shadow_color] + ArcButton({ + options: new ArcButtonOptions({ + label: 'OK', + shadowEnabled: true, + shadowColor: ColorMetrics.resourceColor('#ffec1022') + }) + }) + // [End button_shadow_color] + .alignRules({ + middle: { anchor: '__container__', align: HorizontalAlign.Center }, + bottom: { anchor: '__container__', align: VerticalAlign.Bottom } + }) + } + } +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/Index.ets b/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/Index.ets new file mode 100644 index 000000000..fe760184d --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2025 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. + */ + +interface listItem { + router?: string; + name: string; +} + +let demandList: listItem[] = [ + { + name: "ButtonAlignTop", + router: "pages/ButtonAlignTop", + }, + { + name: "ButtonAlignBottom", + router: "pages/ButtonAlignBottom", + }, + { + name: "ButtonBcgColor", + router: "pages/ButtonBcgColor", + }, + { + name: "ButtonBrightness", + router: "pages/ButtonBrightness", + }, + { + name: "ButtonFontColor", + router: "pages/ButtonFontColor", + }, + { + name: "ButtonShadow", + router: "pages/ButtonShadow", + }, +] + +@Entry +@Component +struct Index { + @State bgColor: ResourceColor = "#39b5fa"; + build() { + Column() { + Text($r('app.string.ListShow')) + .height('5.00%') + .width('100%') + .textAlign(TextAlign.Center) + .fontSize(10) + .fontWeight(FontWeight.Bold) + .backgroundColor(this.bgColor) + .fontColor(Color.White) + Column() { + List({ space: 5, initialIndex: 0 }) { + ForEach(demandList, (listitem: listItem, index: number) => { + ListItem() { + Column({ space: 10 }) { + Text(listitem.name) + .fontSize(10) + .maxLines(1) + } + .padding('1%') + .width('100%') + .borderRadius(10) + .backgroundColor(this.bgColor) + .borderColor(this.bgColor) + .borderWidth(1) + .onClick(() => { + if (!!listitem.router) { + this.getUIContext().getRouter().pushUrl({ url: listitem.router }) + } + }) + } + }) + } + .listDirection(Axis.Vertical) // 排列方向 + .alignListItem(ListItemAlign.Center) + .scrollBar(BarState.Off) + .margin(1) + .edgeEffect(EdgeEffect.Spring) // 边缘效果设置为Spring + .width('90%') + } + .width('100%') + .height('100%') + .backgroundColor('#fff4f3f3') + .padding({ top: 5 }) + } + } +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/module.json5 b/ArkUIKit/ButtonComponent/entry/src/main/module.json5 new file mode 100644 index 000000000..f101ab97f --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/module.json5 @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + // [Start module_json_config] + "module": { + // [StartExclude module_json_config] + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + // [EndExclude module_json_config] + "deviceTypes": [ + "wearable" + ], + // [StartExclude module_json_config] + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ets", + "description": "$string:EntryAbility_desc", + "icon": "$media:layered_image", + "label": "$string:ButtonComponent", + "startWindowIcon": "$media:startIcon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ], + "extensionAbilities": [ + { + "name": "EntryBackupAbility", + "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", + "type": "backup", + "exported": false, + "metadata": [ + { + "name": "ohos.extension.backup", + "resource": "$profile:backup_config" + } + ] + } + ], + // [EndExclude module_json_config] + } + // [end module_json_config] +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/resources/base/element/color.json b/ArkUIKit/ButtonComponent/entry/src/main/resources/base/element/color.json new file mode 100644 index 000000000..3c712962d --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/resources/base/element/string.json b/ArkUIKit/ButtonComponent/entry/src/main/resources/base/element/string.json new file mode 100644 index 000000000..3b0f958f0 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/resources/base/element/string.json @@ -0,0 +1,32 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "label" + }, + { + "name": "ListShow", + "value": "Show List" + }, + { + "name": "Reset", + "value": "重置" + }, + { + "name": "Brightness", + "value": "设置亮度" + }, + { + "name": "ButtonComponent", + "value": "button" + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/resources/base/media/layered_image.json b/ArkUIKit/ButtonComponent/entry/src/main/resources/base/media/layered_image.json new file mode 100644 index 000000000..9921b5406 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/resources/base/media/layered_image.json @@ -0,0 +1,7 @@ + + "layered-image": + { + "background" : "$media:background", + "foreground" : "$media:foreground" + } +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/resources/base/media/startIcon.png b/ArkUIKit/ButtonComponent/entry/src/main/resources/base/media/startIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..205ad8b5a8a42e8762fbe4899b8e5e31ce822b8b GIT binary patch literal 20093 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

c)ijgxDm}8EsRXFt3h@+Ufr7@DN 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 literal 0 HcmV?d00001 diff --git a/ArkUIKit/ButtonComponent/entry/src/main/resources/base/profile/backup_config.json b/ArkUIKit/ButtonComponent/entry/src/main/resources/base/profile/backup_config.json new file mode 100644 index 000000000..78f40ae7c --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/resources/base/profile/main_pages.json b/ArkUIKit/ButtonComponent/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 000000000..0f2a97402 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,11 @@ +{ + "src": [ + "pages/ButtonAlignBottom", + "pages/ButtonAlignTop", + "pages/ButtonBcgColor", + "pages/ButtonBrightness", + "pages/ButtonFontColor", + "pages/ButtonShadow", + "pages/Index" + ] +} diff --git a/ArkUIKit/ButtonComponent/entry/src/main/resources/dark/element/color.json b/ArkUIKit/ButtonComponent/entry/src/main/resources/dark/element/color.json new file mode 100644 index 000000000..79b11c274 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/resources/dark/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#000000" + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/resources/en_US/element/string.json b/ArkUIKit/ButtonComponent/entry/src/main/resources/en_US/element/string.json new file mode 100644 index 000000000..3b0f958f0 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/resources/en_US/element/string.json @@ -0,0 +1,32 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "label" + }, + { + "name": "ListShow", + "value": "Show List" + }, + { + "name": "Reset", + "value": "重置" + }, + { + "name": "Brightness", + "value": "设置亮度" + }, + { + "name": "ButtonComponent", + "value": "button" + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/resources/zh_CN/element/string.json b/ArkUIKit/ButtonComponent/entry/src/main/resources/zh_CN/element/string.json new file mode 100644 index 000000000..de1a7c91d --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/resources/zh_CN/element/string.json @@ -0,0 +1,32 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "模块描述" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "label" + }, + { + "name": "ListShow", + "value": "Show List" + }, + { + "name": "Reset", + "value": "重置" + }, + { + "name": "Brightness", + "value": "设置亮度" + }, + { + "name": "ButtonComponent", + "value": "button" + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/main/syscap.json b/ArkUIKit/ButtonComponent/entry/src/main/syscap.json new file mode 100644 index 000000000..2b9fde62f --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/main/syscap.json @@ -0,0 +1,17 @@ +{ + "devices": { + "general": [ + "wearable" + ], + "custom": [ + { + "xts": [ + "SystemCapability.Account.AppAccount", + "SystemCapability.Account.OsAccount", + "SystemCapability.ArkUI.ArkUI.Circle", + "SystemCapability.ArkUI.ArkUI.Full" + ] + } + ] + } +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/ohosTest/ets/test/Ability.test.ets b/ArkUIKit/ButtonComponent/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 000000000..0f8ce9a2c --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/ohosTest/ets/test/Ability.test.ets @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2025 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 { hilog } from '@kit.PerformanceAnalysisKit'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function abilityTest() { + describe('ActsAbilityTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }) + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }) + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }) + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }) + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + hilog.info(0x0000, 'testTag', '%{public}s', 'it begin'); + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }) + }) +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/ohosTest/ets/test/Index.test.ets b/ArkUIKit/ButtonComponent/entry/src/ohosTest/ets/test/Index.test.ets new file mode 100644 index 000000000..ce5b692f2 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/ohosTest/ets/test/Index.test.ets @@ -0,0 +1,180 @@ +/* + * Copyright (c) 2025 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 { describe, it, expect, beforeAll } from '@ohos/hypium'; +import { abilityDelegatorRegistry, Driver, ON } from '@kit.TestKit'; +import { UIAbility, Want } from '@kit.AbilityKit'; +import hilog from '@ohos.hilog'; + +const delegator = abilityDelegatorRegistry.getAbilityDelegator(); +let driver: Driver; +const DOMAIN = 0xF811; +const TAG = '[Sample_Button_Component]' +const BUNDLE = 'ButtonComponent' + +export default function ArcButtonTest() { + describe('ArcButtonTest', () => { + beforeAll(async () => { + // 启动应用 + let want: Want = { + bundleName: "com.samples.buttoncomponent", + abilityName: 'EntryAbility' + }; + await delegator.startAbility(want); + driver = Driver.create(); + await driver.delayMs(1000); + + // 验证当前页面是否正确 + const ability: UIAbility = await delegator.getCurrentTopAbility(); + hilog.info(DOMAIN, TAG, 'get top ability'); + expect(ability.context.abilityInfo.name).assertEqual('EntryAbility'); + }); + + /** + * @tc.number LoadList_001 + * @tc.name test Load List + * @tc.desc 测试首页加载是否成功 + */ + it(BUNDLE + 'LoadList_001', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + "LoadList_001, begin"); + const title = await driver.findComponent(ON.text('Show List')); + expect(title === null).assertFalse(); + const list = await driver.findComponent(ON.type('List')); + expect(list === null).assertFalse(); + hilog.info(DOMAIN, TAG, BUNDLE + "LoadList_001, end"); + done(); + }); + + /** + * @tc.number ButtonClick_001 + * @tc.name test Top ArcButton And onClick Event + * @tc.desc 测试创建上弧形按钮和点击事件 + */ + it(BUNDLE + 'ButtonClick_001', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + "ButtonClick_001, begin"); + const listItem = await driver.findComponent(ON.text('ButtonAlignTop')); + expect(listItem === null).assertFalse(); + await listItem.click(); + await driver.delayMs(1000); + const arcButton = await driver.findComponent(ON.text('OK')); + expect(arcButton === null).assertFalse(); + await arcButton.click(); + await driver.delayMs(1000); + await driver.pressBack(); + await driver.delayMs(1000); + hilog.info(DOMAIN, TAG, BUNDLE + "ButtonClick_001, end"); + done(); + }); + + /** + * @tc.number ButtonTouch_001 + * @tc.name test Bottom ArcButton And onTouch Event + * @tc.desc 测试创建下弧形按钮和触摸事件 + */ + it(BUNDLE + 'ButtonTouch_001', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + "ButtonTouch_001, begin"); + const listItem = await driver.findComponent(ON.text('ButtonAlignBottom')); + expect(listItem === null).assertFalse(); + await listItem.click(); + await driver.delayMs(1000); + const arcButton = await driver.findComponent(ON.text('OK')); + expect(arcButton === null).assertFalse(); + await arcButton.click(); + await driver.delayMs(1000); + await driver.pressBack(); + await driver.delayMs(1000); + hilog.info(DOMAIN, TAG, BUNDLE + "ButtonTouch_001, end"); + done(); + }); + + /** + * @tc.number SetBackgroundColor_001 + * @tc.name test ArcButton Set BackgroundColor + * @tc.desc 测试弧形按钮设置背景色 + */ + it(BUNDLE + 'SetBackgroundColor_001', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + "SetBackgroundColor_001, begin"); + const listItem = await driver.findComponent(ON.text('ButtonBcgColor')); + expect(listItem === null).assertFalse(); + await listItem.click(); + await driver.delayMs(1000); + const arcButton = await driver.findComponent(ON.text('OK')); + expect(arcButton === null).assertFalse(); + await driver.pressBack(); + await driver.delayMs(1000); + hilog.info(DOMAIN, TAG, BUNDLE + "SetBackgroundColor_001, end"); + done(); + }); + + /** + * @tc.number SetFontColor_001 + * @tc.name test ArcButton Set FontColor + * @tc.desc 测试弧形按钮设置字体颜色 + */ + it(BUNDLE + 'SetFontColor_001', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + "SetFontColor_001, begin"); + const listItem = await driver.findComponent(ON.text('ButtonFontColor')); + expect(listItem === null).assertFalse(); + await listItem.click(); + await driver.delayMs(1000); + const arcButton = await driver.findComponent(ON.text('OK')); + expect(arcButton === null).assertFalse(); + await driver.pressBack(); + await driver.delayMs(1000); + hilog.info(DOMAIN, TAG, BUNDLE + "SetFontColor_001, end"); + done(); + }); + + /** + * @tc.number SetShadow_001 + * @tc.name test ArcButton Set Shadow + * @tc.desc 测试弧形按钮设置阴影和颜色 + */ + it(BUNDLE + 'SetShadow_001', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + "SetShadow_001, begin"); + const listItem = await driver.findComponent(ON.text('ButtonShadow')); + expect(listItem === null).assertFalse(); + await listItem.click(); + await driver.delayMs(1000); + const arcButton = await driver.findComponent(ON.text('OK')); + expect(arcButton === null).assertFalse(); + await driver.pressBack(); + await driver.delayMs(1000); + hilog.info(DOMAIN, TAG, BUNDLE + "SetShadow_001, end"); + done(); + }); + + /** + * @tc.number ChangeValue_001 + * @tc.name test ArcButton Change The Interface Value + * @tc.desc 测试弧形按钮更改界面值 + */ + it(BUNDLE + 'ChangeValue_001', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + "ChangeValue_001, begin"); + const listItem = await driver.findComponent(ON.text('ButtonBrightness')); + expect(listItem === null).assertFalse(); + await listItem.click(); + await driver.delayMs(1000); + let str = delegator.getAppContext().resourceManager.getStringByNameSync('Reset'); + const arcButton = await driver.findComponent(ON.text(str)); + expect(arcButton === null).assertFalse(); + await arcButton.click(); + await driver.pressBack(); + await driver.delayMs(1000); + hilog.info(DOMAIN, TAG, BUNDLE + "ChangeValue_001, end"); + done(); + }); + }); +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/ohosTest/ets/test/List.test.ets b/ArkUIKit/ButtonComponent/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 000000000..1069fdae6 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2025 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 ArcButtonTest from './Index.test' +import abilityTest from './Ability.test'; + +export default function testsuite() { + abilityTest(); + ArcButtonTest() +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/entry/src/ohosTest/module.json5 b/ArkUIKit/ButtonComponent/entry/src/ohosTest/module.json5 new file mode 100644 index 000000000..ce29d7116 --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/ohosTest/module.json5 @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2025 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. + */ + + +{ + "module": { + "name": "entry_test", + "type": "feature", + "deviceTypes": [ + "wearable" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/ArkUIKit/ButtonComponent/entry/src/ohosTest/syscap.json b/ArkUIKit/ButtonComponent/entry/src/ohosTest/syscap.json new file mode 100644 index 000000000..2b9fde62f --- /dev/null +++ b/ArkUIKit/ButtonComponent/entry/src/ohosTest/syscap.json @@ -0,0 +1,17 @@ +{ + "devices": { + "general": [ + "wearable" + ], + "custom": [ + { + "xts": [ + "SystemCapability.Account.AppAccount", + "SystemCapability.Account.OsAccount", + "SystemCapability.ArkUI.ArkUI.Circle", + "SystemCapability.ArkUI.ArkUI.Full" + ] + } + ] + } +} \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/hvigor/hvigor-config.json5 b/ArkUIKit/ButtonComponent/hvigor/hvigor-config.json5 new file mode 100644 index 000000000..d584c19c2 --- /dev/null +++ b/ArkUIKit/ButtonComponent/hvigor/hvigor-config.json5 @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + "modelVersion": "5.0.1", + "dependencies": { + }, + "execution": { + // "analyze": "normal", /* Define the build analyze mode. Value: [ "normal" | "advanced" | false ]. Default: "normal" */ + // "daemon": true, /* Enable daemon compilation. Value: [ true | false ]. Default: true */ + // "incremental": true, /* Enable incremental compilation. Value: [ true | false ]. Default: true */ + // "parallel": true, /* Enable parallel compilation. Value: [ true | false ]. Default: true */ + // "typeCheck": false, /* Enable typeCheck. Value: [ true | false ]. Default: false */ + }, + "logging": { + // "level": "info" /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */ + }, + "debugging": { + // "stacktrace": false /* Disable stacktrace compilation. Value: [ true | false ]. Default: false */ + }, + "nodeOptions": { + // "maxOldSpaceSize": 8192 /* Enable nodeOptions maxOldSpaceSize compilation. Unit M. Used for the daemon process. Default: 8192*/ + // "exposeGC": true /* Enable to trigger garbage collection explicitly. Default: true*/ + } +} diff --git a/ArkUIKit/ButtonComponent/hvigorfile.ts b/ArkUIKit/ButtonComponent/hvigorfile.ts new file mode 100644 index 000000000..2a5e543f1 --- /dev/null +++ b/ArkUIKit/ButtonComponent/hvigorfile.ts @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 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 { appTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/ArkUIKit/ButtonComponent/oh-package.json5 b/ArkUIKit/ButtonComponent/oh-package.json5 new file mode 100644 index 000000000..e41bae026 --- /dev/null +++ b/ArkUIKit/ButtonComponent/oh-package.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + "modelVersion": "5.0.1", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.19", + "@ohos/hamock": "1.0.0" + } +} diff --git a/ArkUIKit/ButtonComponent/ohosTest.md b/ArkUIKit/ButtonComponent/ohosTest.md new file mode 100644 index 000000000..093f273c1 --- /dev/null +++ b/ArkUIKit/ButtonComponent/ohosTest.md @@ -0,0 +1,10 @@ +| 测试功能 | 预置条件 | 输入 | 预期输出 | 测试结果 | +|-------------| ------------ |-----------|------------------| -------- | +| 创建上弧形按钮 | 设备正常运行 | 点击"ButtonAlignTop" | 页面和按钮创建成功 | Pass | +| 按钮点击事件 | 设备正常运行 | 点击"ButtonAlignTop"后点击页面上的OK | 打印日志“ArcButton onClick” | Pass | +| 创建下弧形按钮 | 设备正常运行 | 点击"ButtonAlignBottom" | 页面和按钮创建成功 | Pass | +| 按钮触摸事件 | 设备正常运行 | 点击"ButtonAlignBottom"后点击页面上的OK | 打印日志“ArcButton onTouch” | Pass | +| 设置按钮背景色 | 设备正常运行 | 点击"ButtonBcgColor" | 页面和按钮创建成功 | Pass | +| 设置按钮文本色 | 设备正常运行 | 点击"ButtonFontColor" | 页面和按钮创建成功 | Pass | +| 设置按钮阴影色 | 设备正常运行 | 点击"ButtonShadow" | 页面和按钮创建成功 | Pass | +| 通过按钮更改界面亮度值 | 设备正常运行 | 点击"ButtonBrightness"后点击页面上的OK | 当前亮度调数值更改 | Pass | \ No newline at end of file diff --git a/ArkUIKit/ButtonComponent/screenshots/device/img1.png b/ArkUIKit/ButtonComponent/screenshots/device/img1.png new file mode 100644 index 0000000000000000000000000000000000000000..96eee0a3cbb7440aded476ca6b5898fbb0beeb23 GIT binary patch literal 23587 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 literal 0 HcmV?d00001 diff --git a/ArkUIKit/ButtonComponent/screenshots/device/img2.png b/ArkUIKit/ButtonComponent/screenshots/device/img2.png new file mode 100644 index 0000000000000000000000000000000000000000..4206c55dbdda158c1c2ffcd6034ab685e0c34c4e GIT binary patch literal 23007 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 Date: Sun, 26 Oct 2025 16:50:15 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=90=8C=E6=AD=A5openHarmony=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=8CChooseComponent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chenbosongcode --- ArkUIKit/ChooseComponent/.gitignore | 12 + ArkUIKit/ChooseComponent/AppScope/app.json5 | 25 ++ .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 2777 bytes ArkUIKit/ChooseComponent/README_zh.md | 80 +++++ ArkUIKit/ChooseComponent/build-profile.json5 | 59 ++++ ArkUIKit/ChooseComponent/code-linter.json5 | 35 ++ ArkUIKit/ChooseComponent/entry/.gitignore | 6 + .../ChooseComponent/entry/build-profile.json5 | 43 +++ ArkUIKit/ChooseComponent/entry/hvigorfile.ts | 21 ++ .../entry/obfuscation-rules.txt | 23 ++ .../ChooseComponent/entry/oh-package.json5 | 25 ++ .../entry/src/main/ets/common/Card.ets | 137 ++++++++ .../entry/src/main/ets/common/Route.ets | 21 ++ .../entry/src/main/ets/common/resource.ets | 25 ++ .../main/ets/entryability/EntryAbility.ets | 57 ++++ .../entrybackupability/EntryBackupAbility.ets | 27 ++ .../entry/src/main/ets/pages/Index.ets | 103 ++++++ .../ets/pages/button/ButtonCustomStyle.ets | 71 ++++ .../main/ets/pages/button/CreateButton.ets | 58 ++++ .../main/ets/pages/button/FloatingButton.ets | 82 +++++ .../entry/src/main/ets/pages/button/Index.ets | 103 ++++++ .../main/ets/pages/button/SetButtonType.ets | 76 +++++ .../src/main/ets/pages/button/SubmitForm.ets | 66 ++++ .../entry/src/main/ets/pages/radio/Index.ets | 77 +++++ .../src/main/ets/pages/radio/RadioButton.ets | 69 ++++ .../src/main/ets/pages/radio/RadioSample.ets | 100 ++++++ .../main/ets/pages/toggle/CreateToggle.ets | 86 +++++ .../entry/src/main/ets/pages/toggle/Index.ets | 87 +++++ .../ets/pages/toggle/ToggleCaseExample.ets | 73 ++++ .../ets/pages/toggle/ToggleCustomStyle.ets | 72 ++++ .../entry/src/main/module.json5 | 65 ++++ .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 219 ++++++++++++ .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 14 + .../main/resources/dark/element/color.json | 8 + .../entry/src/main/syscap.json | 24 ++ .../entry/src/mock/mock-config.json5 | 17 + .../src/ohosTest/ets/test/Ability.test.ets | 50 +++ .../src/ohosTest/ets/test/Index.test.ets | 312 ++++++++++++++++++ .../entry/src/ohosTest/ets/test/List.test.ets | 22 ++ .../entry/src/ohosTest/module.json5 | 27 ++ .../entry/src/test/List.test.ets | 20 ++ .../entry/src/test/LocalUnit.test.ets | 48 +++ .../hvigor/hvigor-config.json5 | 37 +++ ArkUIKit/ChooseComponent/hvigorfile.ts | 21 ++ ArkUIKit/ChooseComponent/oh-package.json5 | 25 ++ ArkUIKit/ChooseComponent/ohosTest.md | 5 + .../screenshots/device/image1.png | Bin 0 -> 29661 bytes .../screenshots/device/image2.png | Bin 0 -> 59409 bytes .../screenshots/device/image3.png | Bin 0 -> 42068 bytes 56 files changed, 2659 insertions(+) create mode 100644 ArkUIKit/ChooseComponent/.gitignore create mode 100644 ArkUIKit/ChooseComponent/AppScope/app.json5 create mode 100644 ArkUIKit/ChooseComponent/AppScope/resources/base/element/string.json create mode 100644 ArkUIKit/ChooseComponent/AppScope/resources/base/media/app_icon.png create mode 100644 ArkUIKit/ChooseComponent/README_zh.md create mode 100644 ArkUIKit/ChooseComponent/build-profile.json5 create mode 100644 ArkUIKit/ChooseComponent/code-linter.json5 create mode 100644 ArkUIKit/ChooseComponent/entry/.gitignore create mode 100644 ArkUIKit/ChooseComponent/entry/build-profile.json5 create mode 100644 ArkUIKit/ChooseComponent/entry/hvigorfile.ts create mode 100644 ArkUIKit/ChooseComponent/entry/obfuscation-rules.txt create mode 100644 ArkUIKit/ChooseComponent/entry/oh-package.json5 create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/common/Card.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/common/Route.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/common/resource.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/pages/Index.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/ButtonCustomStyle.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/CreateButton.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/FloatingButton.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/Index.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/SetButtonType.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/SubmitForm.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/pages/radio/Index.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/pages/radio/RadioButton.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/pages/radio/RadioSample.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/pages/toggle/CreateToggle.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/pages/toggle/Index.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/pages/toggle/ToggleCaseExample.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/ets/pages/toggle/ToggleCustomStyle.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/module.json5 create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/resources/base/element/color.json create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/resources/base/element/string.json create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/resources/base/media/background.png create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/resources/base/media/foreground.png create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/resources/base/media/layered_image.json create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/resources/base/media/startIcon.png create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/resources/base/profile/backup_config.json create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/resources/base/profile/main_pages.json create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/resources/dark/element/color.json create mode 100644 ArkUIKit/ChooseComponent/entry/src/main/syscap.json create mode 100644 ArkUIKit/ChooseComponent/entry/src/mock/mock-config.json5 create mode 100644 ArkUIKit/ChooseComponent/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/ohosTest/ets/test/Index.test.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/ohosTest/module.json5 create mode 100644 ArkUIKit/ChooseComponent/entry/src/test/List.test.ets create mode 100644 ArkUIKit/ChooseComponent/entry/src/test/LocalUnit.test.ets create mode 100644 ArkUIKit/ChooseComponent/hvigor/hvigor-config.json5 create mode 100644 ArkUIKit/ChooseComponent/hvigorfile.ts create mode 100644 ArkUIKit/ChooseComponent/oh-package.json5 create mode 100644 ArkUIKit/ChooseComponent/ohosTest.md create mode 100644 ArkUIKit/ChooseComponent/screenshots/device/image1.png create mode 100644 ArkUIKit/ChooseComponent/screenshots/device/image2.png create mode 100644 ArkUIKit/ChooseComponent/screenshots/device/image3.png diff --git a/ArkUIKit/ChooseComponent/.gitignore b/ArkUIKit/ChooseComponent/.gitignore new file mode 100644 index 000000000..d2ff20141 --- /dev/null +++ b/ArkUIKit/ChooseComponent/.gitignore @@ -0,0 +1,12 @@ +/node_modules +/oh_modules +/local.properties +/.idea +**/build +/.hvigor +.cxx +/.clangd +/.clang-format +/.clang-tidy +**/.test +/.appanalyzer \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/AppScope/app.json5 b/ArkUIKit/ChooseComponent/AppScope/app.json5 new file mode 100644 index 000000000..e84cdde0e --- /dev/null +++ b/ArkUIKit/ChooseComponent/AppScope/app.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2024 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. + */ + +{ + "app": { + "bundleName": "com.samples.choosecomponent", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name" + } +} diff --git a/ArkUIKit/ChooseComponent/AppScope/resources/base/element/string.json b/ArkUIKit/ChooseComponent/AppScope/resources/base/element/string.json new file mode 100644 index 000000000..8e5e7e57b --- /dev/null +++ b/ArkUIKit/ChooseComponent/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "ChooseComponent" + } + ] +} diff --git a/ArkUIKit/ChooseComponent/AppScope/resources/base/media/app_icon.png b/ArkUIKit/ChooseComponent/AppScope/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a39445dc87828b76fed6d2ec470dd455c45319e3 GIT binary patch literal 2777 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 literal 0 HcmV?d00001 diff --git a/ArkUIKit/ChooseComponent/README_zh.md b/ArkUIKit/ChooseComponent/README_zh.md new file mode 100644 index 000000000..e1a335f5c --- /dev/null +++ b/ArkUIKit/ChooseComponent/README_zh.md @@ -0,0 +1,80 @@ +# ArkUI指南文档示例 + +### 介绍 + +本示例通过使用[ArkUI指南文档](https://gitcode.com/openharmony/docs/tree/master/zh-cn/application-dev/ui)中各场景的开发示例,展示在工程中,帮助开发者更好地理解ArkUI提供的组件及组件属性并合理使用。该工程中展示的代码详细描述可查如下链接: + +1. [按钮 (Button)开发指导](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/arkts-common-components-button.md)。 +2. [单选框 (Radio)开发指导](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/arkts-common-components-radio-button.md)。 +3. [切换按钮 (Toggle)开发指导](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/arkts-common-components-switch.md)。 +### 效果预览 + +| 首页 | 按钮组件目录 | 创建按钮场景示例 | +|------------------------------------|------------------------------------|------------------------------------| +| ![](screenshots/device/image1.png) | ![](screenshots/device/image2.png) | ![](screenshots/device/image3.png) | + +### 使用说明 + +1. 在主界面,可以点击对应卡片,选择需要参考的组件示例。 + +2. 在组件目录选择详细的示例参考。 + +3. 进入示例界面,查看参考示例。 + +4. 通过自动测试框架可进行测试及维护。 + +### 工程目录 +``` +entry/src/main/ets/ +|---entryability +|---pages +| |---button +| | |---CreateButton.ets // 按钮创建示例代码 +| | |---ButtonCustomStyle.ets // 按钮自定义示例代码 +| | |---FloatingButton.ets // 按钮悬浮场景示例代码 +| | |---Index.ets // 第二层级目录 +| | |---SetButtonType.ets // 按钮类型设置示例代码 +| | |---SubmitForm.ets // 按钮注册场景示例代码 +| |---radio +| | |---RadioButton.ets // 2个单选框场景示例代码 +| | |---RadioSample.ets // 单选框场景示例代码 +| | |---Index.ets // 第二层级目录 +| |---toggle +| | |---CreateToggle.ets // 切换按钮创建示例代码 +| | |---ToggleCustomStyle.ets // 切换按钮自定义示例代码 +| | |---ToggleCaseExample.ets // 切换按钮场景示例代码 +| | |---Index.ets // 第二层级目录 +|---pages +| |---Index.ets // 应用主页面 +entry/src/ohosTest/ +|---ets +| |---index.test.ets // 示例代码测试代码 +``` + +### 相关权限 + +不涉及。 + +### 依赖 + +不涉及。 + +### 约束与限制 + +1.本示例仅支持标准系统上运行, 支持设备:RK3568。 + +2.本示例为Stage模型,支持API18版本SDK,版本号:5.1.0.56,镜像版本号:OpenHarmony_5.1.0.56。 + +3.本示例需要使用DevEco Studio NEXT Developer Preview2 (Build Version: 5.0.5.306, built on December 12, 2024)及以上版本才可编译运行。 + +### 下载 + +如需单独下载本工程,执行如下命令: + +```` +git init +git config core.sparsecheckout true +echo code/DocsSample/ArkUISample/ChooseComponent > .git/info/sparse-checkout +git remote add origin https://gitcode.com/openharmony/applications_app_samples.git +git pull origin master +```` \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/build-profile.json5 b/ArkUIKit/ChooseComponent/build-profile.json5 new file mode 100644 index 000000000..31736e366 --- /dev/null +++ b/ArkUIKit/ChooseComponent/build-profile.json5 @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2024-2025 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. + */ + +{ + "app": { + "signingConfigs": [ + ], + "products": [ + { + "name": "default", + "signingConfig": "default", + "compileSdkVersion": "6.0.0(20)", + "compatibleSdkVersion": "6.0.0(20)", + "targetSdkVersion": "6.0.0(20)", + "runtimeOS": "HarmonyOS", + "buildOption": { + "strictMode": { + "caseSensitiveCheck": true, + "useNormalizedOHMUrl": true + } + } + } + ], + "buildModeSet": [ + { + "name": "debug", + }, + { + "name": "release" + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/code-linter.json5 b/ArkUIKit/ChooseComponent/code-linter.json5 new file mode 100644 index 000000000..eff2dbc9b --- /dev/null +++ b/ArkUIKit/ChooseComponent/code-linter.json5 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 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. + */ + +{ + "files": [ + "**/*.ets" + ], + "ignore": [ + "**/src/ohosTest/**/*", + "**/src/test/**/*", + "**/src/mock/**/*", + "**/node_modules/**/*", + "**/oh_modules/**/*", + "**/build/**/*", + "**/.preview/**/*" + ], + "ruleSet": [ + "plugin:@performance/recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + } +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/.gitignore b/ArkUIKit/ChooseComponent/entry/.gitignore new file mode 100644 index 000000000..e2713a277 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/build-profile.json5 b/ArkUIKit/ChooseComponent/entry/build-profile.json5 new file mode 100644 index 000000000..31bf2f4c4 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/build-profile.json5 @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2024 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. + */ + +{ + "apiType": "stageMode", + "buildOption": { + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/hvigorfile.ts b/ArkUIKit/ChooseComponent/entry/hvigorfile.ts new file mode 100644 index 000000000..ac00aaeaf --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/hvigorfile.ts @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2024 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 { hapTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/ArkUIKit/ChooseComponent/entry/obfuscation-rules.txt b/ArkUIKit/ChooseComponent/entry/obfuscation-rules.txt new file mode 100644 index 000000000..272efb6ca --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/obfuscation-rules.txt @@ -0,0 +1,23 @@ +# Define project specific obfuscation rules here. +# You can include the obfuscation configuration files in the current module's build-profile.json5. +# +# For more details, see +# https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5 + +# Obfuscation options: +# -disable-obfuscation: disable all obfuscations +# -enable-property-obfuscation: obfuscate the property names +# -enable-toplevel-obfuscation: obfuscate the names in the global scope +# -compact: remove unnecessary blank spaces and all line feeds +# -remove-log: remove all console.* statements +# -print-namecache: print the name cache that contains the mapping from the old names to new names +# -apply-namecache: reuse the given cache file + +# Keep options: +# -keep-property-name: specifies property names that you want to keep +# -keep-global-name: specifies names that you want to keep in the global scope + +-enable-property-obfuscation +-enable-toplevel-obfuscation +-enable-filename-obfuscation +-enable-export-obfuscation \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/oh-package.json5 b/ArkUIKit/ChooseComponent/entry/oh-package.json5 new file mode 100644 index 000000000..4e54d14e1 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/oh-package.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2024 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. + */ + +{ + "name": "entry", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "", + "author": "", + "license": "", + "dependencies": {} +} + diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/common/Card.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/common/Card.ets new file mode 100644 index 000000000..a9ce32e1f --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/common/Card.ets @@ -0,0 +1,137 @@ +/* + * Copyright (c) 2024 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. + */ + +@Component +export struct CompletedRoutableCard { + @Prop + symbol: Resource = $r('sys.symbol.label'); + @Prop + @Require + title: string; + @Prop + @Require + description: ResourceStr; + + build() { + Card({ verticalAlign: VerticalAlign.Top }) { + Button({ type: ButtonType.Circle }) { + SymbolGlyph(this.symbol) + .fontColor(['#fff']) + .fontSize(16) + } + .borderRadius(14) + + Column({ space: 8 }) { + Text(this.title) + .fontColor($r('sys.color.font_primary')) + + Text(this.description) + .fontColor($r('sys.color.font_secondary')) + .fontSize($r('sys.float.Body_S')) + } + .alignItems(HorizontalAlign.Start) + .layoutWeight(1) + } + } +} + +@Component +export struct Card { + @Prop + verticalAlign: VerticalAlign = VerticalAlign.Center; + @BuilderParam + content: () => void; + + build() { + Row({ space: 12 }) { + this.content() + } + .alignItems(this.verticalAlign) + .backgroundColor('#fff') + .borderRadius(12) + .padding(12) + .width('100%') + } +} + +@Component +export struct RoutableCard { + @Prop + icon: Resource = $r('sys.symbol.label'); + @Prop + @Require + title: ResourceStr; + + build() { + Card() { + Button({ type: ButtonType.Circle }) { + SymbolGlyph(this.icon) + .fontColor(['#fff']) + .fontSize(16) + } + .borderRadius(14) + + Text(this.title) + .fontColor($r('sys.color.font_primary')) + .minFontSize(12) + .maxFontSize(16) + .maxLines(1) + .textOverflow({ overflow: TextOverflow.Ellipsis }) + + Blank() + + Button({ type: ButtonType.Normal, buttonStyle: ButtonStyleMode.TEXTUAL }) { + SymbolGlyph($r('sys.symbol.chevron_right')) + .fontSize(18) + .fontColor([$r('sys.color.font_secondary')]) + } + } + } +} + +@Component +export struct ComponentCard { + @Prop + @Require + title: ResourceStr; + @BuilderParam content: () => void; + @Prop + description?: ResourceStr; + + build() { + Column({ space: 8 }) { + Text(this.title) + .fontSize(14) + .fontColor('#666') + Row({ space: 12}) { + this.content(); + } + if (this.description) { + Text(this.description) + .backgroundColor('#eee') + .borderRadius(4) + .padding(4) + .fontSize(12) + .fontColor('#999') + .width('100%') + } + } + .alignItems(HorizontalAlign.Start) + .backgroundColor('#fff') + .borderRadius(12) + .padding(12) + .width('100%') + } +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/common/Route.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/common/Route.ets new file mode 100644 index 000000000..67f364e87 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/common/Route.ets @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2024 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. + */ + +export interface Route { + title: string ; + name: string; + items?: Route[]; + description?: ResourceStr; +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/common/resource.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/common/resource.ets new file mode 100644 index 000000000..9d0cd43ad --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/common/resource.ets @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2024 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. + */ + +export class P2PManager { + public resourceToString(resource: Resource): string { + return getContext(this).resourceManager.getStringSync(resource); + } +} + +// 默认导出let +let p2pManager = new P2PManager(); + +export default p2pManager as P2PManager; \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/entryability/EntryAbility.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 000000000..51bdf8584 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2024 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 { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { window } from '@kit.ArkUI'; + +export default class EntryAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + } + + onDestroy(): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/Index', (err) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); + } +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets new file mode 100644 index 000000000..6b744d7ea --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2024 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 { hilog } from '@kit.PerformanceAnalysisKit'; +import { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; + +export default class EntryBackupAbility extends BackupExtensionAbility { + async onBackup() { + hilog.info(0x0000, 'testTag', 'onBackup ok'); + } + + async onRestore(bundleVersion: BundleVersion) { + hilog.info(0x0000, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); + } +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/Index.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/Index.ets new file mode 100644 index 000000000..d2728aad7 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2024 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 { BUTTON_ROUTE_PREFIX, buttonDestination } from './button/Index'; +import { LengthMetrics } from '@kit.ArkUI'; +import { radioDestination, RADIO_ROUTE_PREFIX } from './radio/Index'; +import { RoutableCard } from '../common/Card'; +import { Route } from '../common/Route'; +import { toggleDestination, TOGGLE_ROUTE_PREFIX } from './toggle/Index'; +import resource from '../common/resource'; + +const routes: Route[] = [ + { + title: resource.resourceToString($r('app.string.button')), + name: BUTTON_ROUTE_PREFIX + }, + { + title: resource.resourceToString($r('app.string.radio')), + name: RADIO_ROUTE_PREFIX + }, + { + title: resource.resourceToString($r('app.string.toggle')), + name: TOGGLE_ROUTE_PREFIX + } +]; + +@Builder +function destination(name: string) { + if (name.startsWith(BUTTON_ROUTE_PREFIX)) { + buttonDestination(name); + } else if (name.startsWith(RADIO_ROUTE_PREFIX)) { + radioDestination(name); + } else if (name.startsWith(TOGGLE_ROUTE_PREFIX)) { + toggleDestination(name); + } +} + +@Entry +@Component +struct Index { + @State condition: string = ''; + @Provide pathStack: NavPathStack = new NavPathStack(); + + getFilteredRoutes(): Route[] { + if (!this.condition) { + return routes; + } + return routes.filter((route: Route) => { + return route.title.includes(this.condition); + }) + } + + @LocalBuilder + Title() { + Column() { + Search({ value: this.condition }) + .onChange(value => { + this.condition = value; + }) + .margin({ start: LengthMetrics.vp(16), end: LengthMetrics.vp(16) }) + } + .justifyContent(FlexAlign.Center) + .height('100%') + } + + build() { + Navigation(this.pathStack) { + List({ space: 12 }) { + ForEach(this.getFilteredRoutes(), (route: Route) => { + ListItem() { + RoutableCard({ title: route.title }) + } + .width('100%') + .onClick(() => { + this.pathStack.pushPath({ name: route.name }); + }) + }) + } + .padding({ start: LengthMetrics.vp(16), end: LengthMetrics.vp(16) }) + .contentStartOffset(56) + .height('100%') + .width('100%') + } + .backgroundColor('#f1f3f5') + .title({ builder: this.Title, height: 56 }, { + backgroundBlurStyle: BlurStyle.COMPONENT_THICK, + barStyle: BarStyle.STACK + }) + .navDestination(destination) + } +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/ButtonCustomStyle.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/ButtonCustomStyle.ets new file mode 100644 index 000000000..dfbc79820 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/ButtonCustomStyle.ets @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2024 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 { ComponentCard } from '../../common/Card'; + +@Entry +@Component +export struct ButtonCustomStyle { + pathStack: NavPathStack = new NavPathStack(); + + resourceToString(resource: Resource): string { + return getContext(this).resourceManager.getStringSync(resource); + } + + build() { + NavDestination() { + Column({ space: 12 }) { + ComponentCard({ + title: $r('app.string.ButtonCustomStyle_titleOne'), + description: $r('app.string.ButtonCustomStyle_descriptionOne') + }) { + // [Start custom_button_border_radius] + Button('Button', { type: ButtonType.Normal }) + .id('circle_border') + .borderRadius(10) + // [End custom_button_border_radius] + } + + ComponentCard({ + title: $r('app.string.ButtonCustomStyle_titleTwo'), + description: $r('app.string.ButtonCustomStyle_descriptionTwo') + }) { + // [Start custom_font_style] + Button('Button').id('font_style') + .fontSize(20) + .fontColor(Color.Pink) + .fontWeight(800) + // [End custom_font_style] + } + + ComponentCard({ + title: $r('app.string.ButtonCustomStyle_titleThree'), + description: $r('app.string.ButtonCustomStyle_descriptionThree') + }) { + // [Start custom_background_color] + Button('Button').id('background_color') + .backgroundColor(Color.Red) + // [End custom_background_color] + } + } + .width('100%') + .height('100%') + .padding({ left: 12, right: 12 }) + } + .backgroundColor('#f1f2f3') + .title(this.resourceToString($r('app.string.ButtonCustomStyle_title'))) + } +} + diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/CreateButton.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/CreateButton.ets new file mode 100644 index 000000000..d903c8599 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/CreateButton.ets @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2024 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 { ComponentCard } from '../../common/Card'; + +@Entry +@Component +export struct CreateButton { + resourceToString(resource: Resource): string { + return getContext(this).resourceManager.getStringSync(resource); + } + + build() { + NavDestination() { + Column({ space: 12 }) { + ComponentCard({ + title: $r('app.string.CreateButton_titleOne'), + description: $r('app.string.CreateButton_descriptionOne') + }) { + // [Start create_button_by_label] + Button('Button', { type: ButtonType.Capsule, stateEffect: true }) + .id('button') + // [End create_button_by_label] + } + + ComponentCard({ + title: $r('app.string.CreateButton_titleTwo'), + description: $r('app.string.CreateButton_descriptionTwo') + }) { + // [Start create_button_by_button_options] + Button() { + Row({ space: 4 }) { + Image($r('sys.media.ohos_ic_back')).width(20).height(40).fillColor(0xffffff) + Text('back').fontColor(0xffffff) + }.alignItems(VerticalAlign.Center).justifyContent(FlexAlign.Center).width(90).height(40) + }.id('button_back') + // [End create_button_by_button_options] + } + } + .width('100%') + .height('100%') + .padding({ left: 12, right: 12 }) + } + .backgroundColor('#f1f2f3') + .title(this.resourceToString($r('app.string.CreateButton_title'))) + } +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/FloatingButton.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/FloatingButton.ets new file mode 100644 index 000000000..8d8cc3306 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/FloatingButton.ets @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2024 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. + */ + +// [Start floating_button] +@Entry +@Component +export struct FloatingButton { + @State private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; + // [StartExclude floating_button] + pathStack: NavPathStack = new NavPathStack(); + + resourceToString(resource: Resource): string { + return getContext(this).resourceManager.getStringSync(resource); + } + // [EndExclude floating_button] + + build() { + // [StartExclude floating_button] + NavDestination() { + // [EndExclude floating_button] + Stack() { + List({ space: 12, initialIndex: 0 }) { + ForEach(this.arr, (item: number) => { + ListItem() { + Text(`${item}`) + .width('100%') + .height(100) + .fontSize(16) + .textAlign(TextAlign.Center) + .borderRadius(10) + .backgroundColor(0xFFFFFF) + } + }, (item: number) => item.toString()) + } + .id('List') + .width('100%') + .padding({ + left: 15, + right: 15 + }) + + // [Start custom_button_function] + Button() { + Image($r('sys.media.ohos_ic_public_add')) + .fillColor(0xffffff) + .width(24) + .height(24) + } + .id('Button') + .width(40) + .height(40) + .position({ x: '80%', y: 570 }) + .onClick(() => { + // 需要执行的操作 + // [StartExclude custom_button_function] + this.arr.push(this.arr.length); + // [EndExclude custom_button_function] + }) + // [End custom_button_function] + } + .width('100%') + .height('100%') + .backgroundColor(0xDCDCDC) + .padding({ top: 6 }) + } + // [End floating_button] + .backgroundColor('#f1f2f3') + .title(this.resourceToString($r('app.string.FloatingButton_title'))) + } +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/Index.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/Index.ets new file mode 100644 index 000000000..f37f6f3bd --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/Index.ets @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2024 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 { ButtonCustomStyle } from './ButtonCustomStyle'; +import { CompletedRoutableCard } from '../../common/Card'; +import { CreateButton } from './CreateButton' +import { FloatingButton } from './FloatingButton'; +import { Route } from '../../common/Route'; +import { SetButtonType } from './SetButtonType'; +import { SubmitForm } from './SubmitForm'; +import resource from '../../common/resource' + +export const BUTTON_ROUTE_PREFIX: string = 'button'; + +const routes: Route[] = [ + { + name: `${BUTTON_ROUTE_PREFIX}/CreateButton`, + title: resource.resourceToString($r('app.string.CreateButton_title')), + description: $r('app.string.CreateButton_description') + }, + { + name: `${BUTTON_ROUTE_PREFIX}/SetButtonType`, + title: resource.resourceToString($r('app.string.SetButtonType_title')), + description: $r('app.string.SetButtonType_description') + }, + { + name: `${BUTTON_ROUTE_PREFIX}/ButtonCustomStyle`, + title: resource.resourceToString($r('app.string.ButtonCustomStyle_title')), + description: $r('app.string.ButtonCustomStyle_description') + }, + { + name: `${BUTTON_ROUTE_PREFIX}/SubmitForm`, + title: resource.resourceToString($r('app.string.SubmitForm_title')), + description: $r('app.string.SubmitForm_description') + }, + { + name: `${BUTTON_ROUTE_PREFIX}/FloatingButton`, + title: resource.resourceToString($r('app.string.FloatingButton_title')), + description: $r('app.string.FloatingButton_description') + }, +] + +@Builder +export function buttonDestination(name: string) { + if (name === BUTTON_ROUTE_PREFIX) { + ButtonExample(); + } else if (name === routes[0].name) { + CreateButton(); + } else if (name === routes[1].name) { + SetButtonType(); + } else if (name === routes[2].name) { + ButtonCustomStyle(); + } else if (name === routes[3].name) { + SubmitForm(); + } else if (name === routes[4].name) { + FloatingButton(); + } +} + +@Entry +@Component +struct ButtonExample { + @Consume pathStack: NavPathStack; + + resourceToString(resource: Resource): string { + return getContext(this).resourceManager.getStringSync(resource); + } + build() { + NavDestination() { + List({ space: 12 }) { + ForEach(routes, (route: Route) => { + ListItem() { + CompletedRoutableCard({ title: route.title, description: route.description }) + } + .width('100%') + .onClick(() => { + this.pathStack.pushPath({ name: route.name }); + }) + }) + } + .contentStartOffset(20) + .padding({ left: 16, right: 16 }) + } + .backgroundColor('#f1f3f5') + .title('Button', { + backgroundBlurStyle: BlurStyle.COMPONENT_THICK, + barStyle: BarStyle.STACK + }) + .title('Button') + } +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/SetButtonType.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/SetButtonType.ets new file mode 100644 index 000000000..489944cc9 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/SetButtonType.ets @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2024 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 { ComponentCard } from '../../common/Card'; + +@Entry +@Component +export struct SetButtonType { + pathStack: NavPathStack = new NavPathStack(); + + resourceToString(resource: Resource): string { + return getContext(this).resourceManager.getStringSync(resource); + } + + build() { + NavDestination() { + Column({ space: 12 }) { + ComponentCard({ + title: $r('app.string.SetButtonType_titleOne'), + description: $r('app.string.SetButtonType_descriptionOne') + }) { + // [Start create_capsule_button] + Button('Button', { type: ButtonType.Capsule }) + .id('Capsule') + // [End create_capsule_button] + } + + ComponentCard({ + title: $r('app.string.SetButtonType_titleTwo'), + description: $r('app.string.SetButtonType_descriptionTwo') + }) { + // [Start create_circle_button] + Button('Button', { type: ButtonType.Circle }) + .id('Circle') + .width(80) + // [End create_circle_button] + } + + ComponentCard({ + title: $r('app.string.SetButtonType_titleThree'), + description: $r('app.string.SetButtonType_descriptionThree') + }) { + // [Start create_normal_button] + Button('Button', { type: ButtonType.Normal }) + .id('Normal') + // [End create_normal_button] + } + + ComponentCard({ + title: $r('app.string.SetButtonType_titleFour'), + description: $r('app.string.SetButtonType_descriptionFour') + }) { + Button('Button', { type: ButtonType.ROUNDED_RECTANGLE }) + .id('Round') + } + } + .width('100%') + .height('100%') + .padding({ left: 12, right: 12 }) + } + .backgroundColor('#f1f2f3') + .title(this.resourceToString($r('app.string.SetButtonType_title'))) + } +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/SubmitForm.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/SubmitForm.ets new file mode 100644 index 000000000..8fa9b3a42 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/button/SubmitForm.ets @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2024 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. + */ + +// [Start button_to_log_in_or_register] +@Entry +@Component +export struct SubmitForm { + // [StartExclude button_to_log_in_or_register] + @State username: string = '' + @State password: string = '' + pathStack: NavPathStack = new NavPathStack(); + + resourceToString(resource: Resource): string { + return getContext(this).resourceManager.getStringSync(resource); + } + // [EndExclude button_to_log_in_or_register] + + build() { + // [StartExclude button_to_log_in_or_register] + NavDestination() { + // [EndExclude button_to_log_in_or_register] + Column({ space: 12 }) { + TextInput({ text: this.username, placeholder: 'input your username' }) + .id('username') + // [StartExclude button_to_log_in_or_register] + .onChange((value: string) => { + this.username = value; + }) + // [EndExclude button_to_log_in_or_register] + TextInput({ text: this.password, placeholder: 'input your password' }) + .type(InputType.Password) + .id('password') + // [StartExclude button_to_log_in_or_register] + .onChange((value: string) => { + this.password = value; + }) + // [EndExclude button_to_log_in_or_register] + Button('Register') + .width('100%') + .id('register') + .onClick(() => { + // 需要执行的操作 + // [StartExclude button_to_log_in_or_register] + this.username = 'your username'; + this.password = 'your password'; + // [EndExclude button_to_log_in_or_register] + }) + }.padding(12) + // [End button_to_log_in_or_register] + } + .backgroundColor('#f1f2f3') + .title(this.resourceToString($r('app.string.SubmitForm_title'))) + } +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/radio/Index.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/radio/Index.ets new file mode 100644 index 000000000..dd185448d --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/radio/Index.ets @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2024-2025 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 { RadioSample } from './RadioSample'; +import { RadioSample2 } from './RadioButton'; +import { CompletedRoutableCard } from '../../common/Card'; +import { Route } from '../../common/Route'; +import resource from '../../common/resource'; + +export const RADIO_ROUTE_PREFIX: string = 'radio'; + +const routes: Route[] = [ + { + // $r('app.string.xxx')Ҫ滻ΪַԴļ + name: `${RADIO_ROUTE_PREFIX}/RadioSample`, + title: resource.resourceToString($r('app.string.RadioSample_title')), + description: $r('app.string.RadioSample_description') + }, + { + // $r('app.string.xxx')Ҫ滻ΪַԴļ + name: `${RADIO_ROUTE_PREFIX}/RadioSample2`, + title: resource.resourceToString($r('app.string.RadioSample2_title')), + description: $r('app.string.RadioSample2_description') + } +] + +@Builder +export function radioDestination(name: string) { + if (name === RADIO_ROUTE_PREFIX) { + RadioExample(); + } else if (name === routes[0].name) { + RadioSample(); + } else if (name === routes[1].name) { + RadioSample2() + } +} + +@Entry +@Component +struct RadioExample { + @Consume pathStack: NavPathStack; + + build() { + NavDestination() { + List({ space: 12 }) { + ForEach(routes, (route: Route) => { + ListItem() { + CompletedRoutableCard({ title: route.title, description: route.description }) + } + .width('100%') + .onClick(() => { + this.pathStack.pushPath({ name: route.name }); + }) + }) + } + .contentStartOffset(56) + .padding({ left: 16, right: 16 }) + } + .backgroundColor('#f1f3f5') + .title('Radio', { + backgroundBlurStyle: BlurStyle.COMPONENT_THICK, + barStyle: BarStyle.STACK + }) + } +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/radio/RadioButton.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/radio/RadioButton.ets new file mode 100644 index 000000000..8740b6f5c --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/radio/RadioButton.ets @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2025 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 { promptAction } from '@kit.ArkUI'; + +@Entry +@Component +export struct RadioSample2 { + build() { + NavDestination() { + Row() { + compRadi1() + compRadi2().visibility(Visibility.None) + }.height('100%').width('100%').justifyContent(FlexAlign.Center) + } + } +} + +@Component struct compRadi1 { + build() { + Row(){ + // [Start click_radio_to_show_function] + Radio({ value: 'Radio1', group: 'radioGroup' }) + .checked(false) + Radio({ value: 'Radio2', group: 'radioGroup' }) + .checked(true) + // [End click_radio_to_show_function] + } + } +} + +@Component struct compRadi2 { + build() { + Row(){ + // [Start click_radio_event_function] + Radio({ value: 'Radio1', group: 'radioGroup' }) + .onChange((isChecked: boolean) => { + if(isChecked) { + //需要执行的操作 + // [StartExclude click_radio_event_function] + promptAction.openToast({ 'message': 'Radio1 is on.' }); + // [EndExclude click_radio_event_function] + } + }) + Radio({ value: 'Radio2', group: 'radioGroup' }) + .onChange((isChecked: boolean) => { + if(isChecked) { + //需要执行的操作 + // [StartExclude click_radio_event_function] + promptAction.openToast({ 'message': 'Radio2 is on.' }); + // [EndExclude click_radio_event_function] + } + }) + // [End click_radio_event_function] + } + } +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/radio/RadioSample.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/radio/RadioSample.ets new file mode 100644 index 000000000..405e44697 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/radio/RadioSample.ets @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2024-2025 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. + */ + +// [Start click_radio_to_change_function] +// xxx.ets +import { promptAction } from '@kit.ArkUI'; + +@Entry +@Component +export struct RadioSample { + @State message: string = 'Ringing'; + pathStack: NavPathStack = new NavPathStack(); + + build() { + // [StartExclude click_radio_to_change_function] + NavDestination() { + // [EndExclude click_radio_to_change_function] + Column({ space: 8 }) { + Column({ space: 8 }) { + Text(this.message).id('message') + Row() { + // [Start set_radio_status] + Radio({ value: 'Ringing', group: 'radioGroup' }) + .checked(true) + // [End set_radio_status] + .id('ringing') + .onChange((isChecked: boolean) => { + if (isChecked) { + // 切换为响铃模式 + // [StartExclude click_radio_to_change_function] + this.message = 'Ringing mode'; + // [EndExclude click_radio_to_change_function] + promptAction.openToast({ 'message': 'Ringing mode.' }); + } + }) + Text('Ringing') + }.width('25%') + + // [Start change_radio_function] + Row() { + Radio({ value: 'Vibration', group: 'radioGroup' }) + .id('vibration') + .onChange((isChecked: boolean) => { + if (isChecked) { + // 切换为振动模式 + // [StartExclude change_radio_function] + this.message = 'Vibration'; + // [EndExclude change_radio_function] + promptAction.openToast({ 'message': 'Vibration mode.' }); + } + }) + Text('Vibration') + }.width('25%') + + Row() { + Radio({ value: 'Silent', group: 'radioGroup' }) + .id('silent') + .onChange((isChecked: boolean) => { + if (isChecked) { + // 切换为静音模式 + // [StartExclude change_radio_function] + this.message = 'Silent'; + // [EndExclude change_radio_function] + promptAction.openToast({ 'message': 'Silent mode.' }); + } + }) + Text('Silent') + }.width('25%') + // [End change_radio_function] + } + .alignItems(HorizontalAlign.Center) + .backgroundColor('#fff') + .borderRadius(12) + .padding(12) + .width('100%') + } + .width('100%') + .height('100%') + .padding({ left: 12, right: 12 }) + // [StartExclude click_radio_to_change_function] + } + // [EndExclude click_radio_to_change_function] + .backgroundColor('#f1f2f3') + // $r('app.string.xxx')需要替换为开发者所需的字符串资源文件 + .title($r('app.string.RadioSample_title')) + } +} +// [End click_radio_to_change_function] \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/toggle/CreateToggle.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/toggle/CreateToggle.ets new file mode 100644 index 000000000..6ccb0078f --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/toggle/CreateToggle.ets @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2024-2025 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 { ComponentCard } from '../../common/Card'; +import { promptAction } from '@kit.ArkUI'; + +@Entry +@Component +export struct CreateToggle { + pathStack: NavPathStack = new NavPathStack(); + + build() { + NavDestination() { + Column({ space: 12 }) { + ComponentCard({ + title: 'ToggleType is Checkbox', + }) { + // [Start create_toggle_with_checkbox] + Toggle({ type: ToggleType.Checkbox, isOn: false }).id('toggle1') + Toggle({ type: ToggleType.Checkbox, isOn: true }).id('toggle2') + // [End create_toggle_with_checkbox] + } + + ComponentCard({ + title: 'ToggleType is Switch', + }) { + // [Start create_toggle_with_switch] + Toggle({ type: ToggleType.Switch, isOn: false }).id('toggle3') + Toggle({ type: ToggleType.Switch, isOn: true }).id('toggle4') + // [End create_toggle_with_switch] + + // [Start create_toggle_with_event] + Toggle({ type: ToggleType.Switch, isOn: false }) + .onChange((isOn: boolean) => { + if(isOn) { + // 需要执行的操作 + // [StartExclude create_toggle_with_event] + promptAction.openToast({ 'message': 'Switch is on.' }); + // [EndExclude create_toggle_with_event] + } + }) + // [StartExclude create_toggle_with_event] + .visibility(Visibility.None) + // [EndExclude create_toggle_case] + // [End create_toggle_with_event] + } + + ComponentCard({ + title: 'ToggleType is Button', + }) { + // [Start create_a_toggle_that_contains_subcomponents] + Toggle({ type: ToggleType.Button, isOn: false }) { + Text('status button') + .fontColor('#182431') + .fontSize(12) + }.width(100).id('toggle5') + + Toggle({ type: ToggleType.Button, isOn: true }) { + Text('status button') + .fontColor('#182431') + .fontSize(12) + }.width(100).id('toggle6') + // [End create_a_toggle_that_contains_subcomponents] + } + } + .width('100%') + .height('100%') + .padding({ left: 12, right: 12 }) + } + .backgroundColor('#f1f2f3') + // $r('app.string.xxx')需要替换为开发者所需的字符串资源文件 + .title($r('app.string.CreateToggle_title')) + } +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/toggle/Index.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/toggle/Index.ets new file mode 100644 index 000000000..84f34c50a --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/toggle/Index.ets @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2024 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 { CompletedRoutableCard } from '../../common/Card'; +import { CreateToggle } from './CreateToggle'; +import { CustomStyle } from './ToggleCustomStyle'; +import { Route } from '../../common/Route'; +import { ToggleSample } from './ToggleCaseExample'; +import resource from '../../common/resource'; + +export const TOGGLE_ROUTE_PREFIX: string = 'toggle'; + +const routes: Route[] = [ + { + // $r('app.string.xxx')Ҫ滻ΪַԴļ + name: `${TOGGLE_ROUTE_PREFIX}/CreateToggle`, + title: resource.resourceToString($r('app.string.CreateToggle_title')), + description: $r('app.string.CreateToggle_description') + }, + { + // $r('app.string.xxx')Ҫ滻ΪַԴļ + name: `${TOGGLE_ROUTE_PREFIX}/ToggleCustomStyle`, + title: resource.resourceToString($r('app.string.ToggleCustomStyle_title')), + description: $r('app.string.ToggleCustomStyle_description') + }, + { + // $r('app.string.xxx')Ҫ滻ΪַԴļ + name: `${TOGGLE_ROUTE_PREFIX}/ToggleCaseExample`, + title: resource.resourceToString($r('app.string.changeToggle_example')), + description: $r('app.string.ToggleCaseExample_description') + } +] + +@Builder +export function toggleDestination(name: string) { + if (name === TOGGLE_ROUTE_PREFIX) { + ToggleExample(); + } else if (name === routes[0].name) { + CreateToggle(); + } else if (name === routes[1].name) { + CustomStyle(); + } else if (name === routes[2].name) { + ToggleSample(); + } +} + +@Entry +@Component +struct ToggleExample { + @Consume pathStack: NavPathStack; + + build() { + NavDestination() { + List({ space: 12 }) { + ForEach(routes, (route: Route) => { + ListItem() { + CompletedRoutableCard({ title: route.title, description: route.description }) + } + .width('100%') + .onClick(() => { + this.pathStack.pushPath({ name: route.name }); + }) + }) + } + .contentStartOffset(56) + .padding({ left: 16, right: 16 }) + } + .backgroundColor('#f1f3f5') + .title('Toggle', { + backgroundBlurStyle: BlurStyle.COMPONENT_THICK, + barStyle: BarStyle.STACK + }) + } +} + diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/toggle/ToggleCaseExample.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/toggle/ToggleCaseExample.ets new file mode 100644 index 000000000..25bce6e8c --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/toggle/ToggleCaseExample.ets @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2024-2025 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. + */ + +// [Start the_example_of_bluetooth] +// xxx.ets +import { promptAction } from '@kit.ArkUI'; + +@Entry +@Component +export struct ToggleSample { + @State message: string = 'off'; + pathStack: NavPathStack = new NavPathStack(); + + build() { + // [StartExclude the_example_of_bluetooth] + NavDestination() { + // [EndExclude the_example_of_bluetooth] + Column({ space: 8 }) { + Column({ space: 8 }) { + Text('Bluetooth Mode: ' + this.message) + .id('message') + Row() { + Text('Bluetooth') + Blank() + // [Start create_toggle_case] + Toggle({ type: ToggleType.Switch }) + .id('toggle') + .onChange((isOn: boolean) => { + if (isOn) { + // [StartExclude create_toggle_case] + this.message = 'on'; + // [EndExclude create_toggle_case] + promptAction.openToast({ 'message': 'Bluetooth is on.' }); + } else { + // [StartExclude create_toggle_case] + this.message = 'off'; + // [EndExclude create_toggle_case] + promptAction.openToast({ 'message': 'Bluetooth is off.' }); + } + }) + // [End create_toggle_case] + }.width('100%') + } + .alignItems(HorizontalAlign.Start) + .backgroundColor('#fff') + .borderRadius(12) + .padding(12) + .width('100%') + } + .width('100%') + .height('100%') + .padding({ left: 12, right: 12 }) + // [StartExclude the_example_of_bluetooth] + } + // [EndExclude the_example_of_bluetooth] + .backgroundColor('#f1f2f3') + // $r('app.string.xxx')Ҫ滻ΪַԴļ + .title($r('app.string.ToggleCaseExample_title')) + } +} +// [End the_example_of_bluetooth] \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/toggle/ToggleCustomStyle.ets b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/toggle/ToggleCustomStyle.ets new file mode 100644 index 000000000..fe2db8b68 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/ets/pages/toggle/ToggleCustomStyle.ets @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2024 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 { ComponentCard } from '../../common/Card'; + +@Entry +@Component +export struct CustomStyle { + pathStack: NavPathStack = new NavPathStack(); + + build() { + NavDestination() { + Column({ space: 12 }) { + ComponentCard({ + // $r('app.string.xxx')Ҫ滻ΪַԴļ + title: $r('app.string.ToggleCustomStyle_titleOne'), + description: $r('app.string.ToggleCustomStyle_descriptionOne') + }) { + // [Start custom_toggle] + Toggle({ type: ToggleType.Button, isOn: true }) { + Text('status button') + .fontColor(Color.White) + .fontSize(12) + }.width(100) + .selectedColor(Color.Pink) + .id('toggle1') + + Toggle({ type: ToggleType.Checkbox, isOn: true }) + .selectedColor(Color.Pink) + .id('toggle2') + Toggle({ type: ToggleType.Switch, isOn: true }) + .selectedColor(Color.Pink) + .id('toggle3') + // [End custom_toggle] + } + + ComponentCard({ + // $r('app.string.xxx')Ҫ滻ΪַԴļ + title: $r('app.string.ToggleCustomStyle_titleTwo'), + description: $r('app.string.ToggleCustomStyle_descriptionTwo') + }) { + // [Start custom_switch_point_color] + Toggle({ type: ToggleType.Switch, isOn: false }) + .switchPointColor(Color.Pink) + .id('toggle4') + Toggle({ type: ToggleType.Switch, isOn: true }) + .switchPointColor(Color.Pink) + .id('toggle5') + // [End custom_switch_point_color] + } + } + .width('100%') + .height('100%') + .padding({ left: 12, right: 12 }) + } + .backgroundColor('#f1f2f3') + // $r('app.string.xxx')Ҫ滻ΪַԴļ + .title($r('app.string.ToggleCustomStyle_title')) + } +} diff --git a/ArkUIKit/ChooseComponent/entry/src/main/module.json5 b/ArkUIKit/ChooseComponent/entry/src/main/module.json5 new file mode 100644 index 000000000..f2f32268a --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/module.json5 @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2024 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. + */ + +{ + "module": { + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + "deviceTypes": [ + "default" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ets", + "description": "$string:EntryAbility_desc", + "icon": "$media:layered_image", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:startIcon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ], + "extensionAbilities": [ + { + "name": "EntryBackupAbility", + "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", + "type": "backup", + "exported": false, + "metadata": [ + { + "name": "ohos.extension.backup", + "resource": "$profile:backup_config" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/resources/base/element/color.json b/ArkUIKit/ChooseComponent/entry/src/main/resources/base/element/color.json new file mode 100644 index 000000000..3c712962d --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/resources/base/element/string.json b/ArkUIKit/ChooseComponent/entry/src/main/resources/base/element/string.json new file mode 100644 index 000000000..7de4f7438 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/resources/base/element/string.json @@ -0,0 +1,219 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "ChooseComponent" + }, + { + "name": "RadioSample_title", + "value": "单选框示例示例" + }, + { + "name": "Sample", + "value": "示例" + }, + { + "name": "RadioSample_description", + "value": "单选框示例,模拟单选框应用效果。" + }, + { + "name": "ToggleCaseExample_title", + "value": "toggle蓝牙示例" + }, + { + "name": "ToggleCaseExample_description", + "value": "Toggle 组件的场景示例,模拟toggle的使用场景。" + }, + { + "name": "ToggleCustomStyle_title", + "value": "自定义切换按钮" + }, + { + "name": "CreateToggle_title", + "value": "创建切换按钮" + }, + { + "name": "CreateToggle_description", + "value": "Toggle 组件的创建,分别创建默认不带子组件的按钮和自定义带子组件的切换按钮。" + }, + { + "name": "ToggleCustomStyle_titleOne", + "value": "selectedColor设置选中后的背景颜色" + }, + { + "name": "ToggleCustomStyle_titleTwo", + "value": "设置Switch类型的圆形滑块颜色" + }, + { + "name": "ToggleCustomStyle_description", + "value": "Toggle 组件具体样式的设置,可对字体、背景等要素进行设置。" + }, + { + "name": "ToggleCustomStyle_descriptionOne", + "value": "通过selectedColor属性设置Toggle打开选中后的背景颜色。" + }, + { + "name": "ToggleCustomStyle_descriptionTwo", + "value": "通过switchPointColor属性设置Switch类型的圆形滑块颜色,仅对type为ToggleType.Switch生效。" + }, + { + "name": "CreateButton_title", + "value": "创建按钮" + }, + { + "name": "CreateButton_titleOne", + "value": "不包含子组件的按钮" + }, + { + "name": "CreateButton_titleTwo", + "value": "包含子组件的按钮" + }, + { + "name": "CreateButton_description", + "value": "Button 组件的创建,分别创建默认不带子组件的按钮和自定义带子组件的按钮。" + }, + { + "name": "CreateButton_descriptionOne", + "value": "通过接口创建按钮,label用来设置按钮文字,type用于设置Button类型,stateEffect属性设置Button是否开启点击效果。" + }, + { + "name": "CreateButton_descriptionTwo", + "value": "通过接口创建带子组件的按钮。使用Row作为子组件容器,Image引用箭头图片,Text显示‘back’文本。" + }, + { + "name": "SetButtonType_test", + "value": "按钮类型" + }, + { + "name": "SetButtonType_title", + "value": "设置按钮类型" + }, + { + "name": "SetButtonType_titleOne", + "value": "胶囊型按钮" + }, + { + "name": "SetButtonType_titleTwo", + "value": "圆形按钮" + }, + { + "name": "SetButtonType_titleThree", + "value": "普通按钮" + }, + { + "name": "SetButtonType_titleFour", + "value": "圆角矩形按钮" + }, + { + "name": "SetButtonType_description", + "value": "Button 组件的类型的设置,共有四种类型:胶囊按钮、圆形按钮、普通按钮、圆角矩形按钮。" + }, + { + "name": "SetButtonType_descriptionOne", + "value": "通过type属性为ButtonType.Capsule,将按钮类型设置为胶囊型按钮(圆角默认为高度的一半)。" + }, + { + "name": "SetButtonType_descriptionTwo", + "value": "通过type属性为ButtonType.Circle,将按钮类型设置为圆形按钮。" + }, + { + "name": "SetButtonType_descriptionThree", + "value": "通过type属性为ButtonType.Normal,将按钮类型设置为普通按钮(默认不带圆角)。" + }, + { + "name": "SetButtonType_descriptionFour", + "value": "通过type属性为ButtonType.ROUNDED_RECTANGLE,将按钮类型设置为圆角矩形按钮。" + }, + { + "name": "ButtonCustomStyle_test", + "value": "按钮样式" + }, + { + "name": "ButtonCustomStyle_title", + "value": "自定义按钮样式" + }, + { + "name": "ButtonCustomStyle_titleOne", + "value": "设置边框弧度" + }, + { + "name": "ButtonCustomStyle_titleTwo", + "value": "设置文本样式" + }, + { + "name": "ButtonCustomStyle_titleThree", + "value": "设置背景颜色" + }, + { + "name": "ButtonCustomStyle_description", + "value": "Button 组件具体样式的设置,可对字体、背景等要素进行设置。" + }, + { + "name": "ButtonCustomStyle_descriptionOne", + "value": "按钮type属性为ButtonType.Normal,通过borderRadius设置边框圆角半径为10。" + }, + { + "name": "ButtonCustomStyle_descriptionTwo", + "value": "通过fontSize设置按钮中字体的大小为20,fontColor设置字体颜色为粉色,fontWeight设置字体的粗细值为800。" + }, + { + "name": "ButtonCustomStyle_descriptionThree", + "value": "通过backgroundColor属性设置按钮里的背景颜色为红色。" + }, + { + "name": "SubmitForm", + "value": "注册" + }, + { + "name": "SubmitForm_title", + "value": "注册登录示例" + }, + { + "name": "SubmitForm_description", + "value": "Button 组件使用的场景示例,对注册/登录页面的模拟。" + }, + { + "name": "FloatingButton_title", + "value": "悬浮按钮示例" + }, { + "name": "FloatingButton", + "value": "Button 组件悬浮按钮的场景示例,在场景中设置悬浮于容器的按钮。" + }, + { + "name": "FloatingButton_description", + "value": "Button 组件悬浮按钮的场景示例,在场景中设置悬浮于容器的按钮。" + }, + { + "name": "changeToggle_example", + "value": "切换按钮示例" + }, + { + "name": "button", + "value": "按钮/Button" + }, + { + "name": "radio", + "value": "单选框/Radio" + }, + { + "name": "toggle", + "value": "切换按钮/Toggle" + }, + { + "name": "RadioSample2_title", + "value": "单选框示例2" + }, + { + "name": "RadioSample2_description", + "value": "单选框示例2,模拟单选框应用效果。" + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/resources/base/media/background.png b/ArkUIKit/ChooseComponent/entry/src/main/resources/base/media/background.png new file mode 100644 index 0000000000000000000000000000000000000000..f939c9fa8cc8914832e602198745f592a0dfa34d GIT binary patch literal 57364 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 A4*&oF literal 0 HcmV?d00001 diff --git a/ArkUIKit/ChooseComponent/entry/src/main/resources/base/media/foreground.png b/ArkUIKit/ChooseComponent/entry/src/main/resources/base/media/foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..4483ddad1f079e1089d685bd204ee1cfe1d01902 GIT binary patch literal 12430 zcmeHuS6EX)+pUO#NL3(IK|}&d7YKwF5CM@UBE5tjTBw4Q5KwvxB2pw25vBJIB27p@ zOaSQt5eZd#CxmkF|4+F-=Q)?(#XNgvmzlk1)~tDFz3+~Fs;5bRo%8yoOPA=i9zS|^ z=@P~5f9V?4rAwDs!Yjfq4p(5Rx~i8hRVUG&*j~LT%Q>2AIqB+Nx_^yhg70E+c&i!%2~zqE0}mxIX= zz1$7|sWj&3yL#7D|4uLjQqV+x(Rz4WC{A9|^m@1A6`BNi38Cf3B^aJyqxF{TjS&2q=3$BC zB1Fu04C;%o9V_Yg;Ed;xpmge>%b<|5q52W_pTd9o;Qty2mQ+-Peu)^(K)RH^d5byH z>AGB-I7$|~9l)J0H_LPDsUUL#brIHpjO1>dJ9@_5&W zLV)s!AVn7*Hy{o<1zLA_Ky-TWzJ_^1=W=Gfyc#1ssqeY_2ww>;ANX%JT)(9uNHOtU zeqU2_{Wu6pLvCMBLgy+dx=13ZG-+cMrBf;#8KezD^}_F2x>_Nob0^iXEv>aML;8RQ@@sN(#bq~VsOa>) zW9RDe#_!zLkj)PyQ<05AjbPk5yJ^|B6q=sMX2L0JE|(P%=v2$6+4QL)cu$c*yt`EC z?)p#@xE12zK?QF2u^(xb0>KieYWS%DH`?=eOiFd!6)WRmCo6Joq6}7e=Nl_;oNJ{1 zu&szm^c0s*wAxfHSlk^+hb)aB<&B?9+_YvxC1LEy$(dDJ8J)d!>rwz?q zGTpJ5&uVwR#t4%B`T{*~RAd_Unnf&`*9c^zbZfsVc;v*@=BHOCX7VbyhnS5G*Pik} z@`U!W&dq$A-&GCYAWg@rG3W6ANL_2a)|;&HJSig{zyfyO87W{;ej&@-)yx~eu|G6S zO)U5U?QD)!ey@XcxEKX?m{R4VZN!*V9gT}6_lv@YD^}}y4OM(*#%kMMBij<9x4*by zCkGRQ3vqoZ)HvQ4oY~=kh{c09u`@Lzqk8)3R+$+hcYuhqajQqgq8qWy8X_QMy@1+T z0&yU)D$XzuW+GZpAB%%|^3*{x!r`8nOWhu6>t(2mvERH# zwD(@F(UyHL)A@d0q#?|SOaIrK7`~^_KhtD69y6E{G70hSpvkOuvhEmR1(|2efAmi@Xw9*}m%vZb>kVqe?t6*aL%179k2-;CD<(T2&{-rQ;%g&4b= zStwf@&UH8&T6lBt>jybuLy}~>HTF7(kmQuR6(8*l&xSQq79o~y=t@1Z0aSiA&-LWp z0NQ{@*q$n1m#1Z}?sFj0=6jxX!@eHh_D<=qD}vOG`kCQ^44In=iDu`srXYt8{4c&) z7G9;S9(*ydG({X#u#N%3l}&Yaq*lzrY-E%htNRQTrjCrX1NMi~a!soU$|=0*dXokbDxSFnm6OHLV@%5(K&ZQB%e+ZFne-TrP|veCOrVj;0pG zdbMMl{Z%MBfVA6b>SKLi zXyRQXFc}Krl(owbvDh?Um&9l0#P)rbdiZxK)8=RY8XvSG1@0=@vGxtW|3E{`T&9Zk zC0==A6=d?8`t>?}z3d12SZ$YU4KZHQPf~|w zJD7n^6bjSS+&0Kq6nxhj*9}9qDZC~A`nzEz{<+9lxx)v#qaCsGWko<{ahFVncU-R|715> z33|Jp;8Iq?Z)NXe;h$K{z8#lRB#JC*XUod!9+#hCfkg#-^FD5Jq@>Dt!SzYr@q0(& z;I!1>qg(PU*HMX7>G-#T5V;IOw~4L@XQ&5le>B4Va!sx0P1pm1PMa!%L##WB{CukUKwQLR#mw_r{d1DneIIJT(j#O#-det^FD zbdwZ-8R%84+Bo+g5iyd(a6x;*5F0xuclibP*ff{7PNPESiBNJu^Q2?h!4}38?XKcb z1cb%?RlBpM10D9~`7(D`#uzQxY}K)shcU_}%#WJZ`~FU)C1j&^b5i=Wc7uJW8^-NB z(rs3^Wms@#S~)+us~_(~uocjV^vU^euJHB^upc~CY%6gqBXHR3{FJ}D^V0uB8xrdo z%j>^}CvVUV6jaGJf5i$e;gXng&>{)uK?nWhEUaVrv+x8njtfCz>cqP8uUTn1`McQ;CD+jm zGle#Cefq~0!!v@W2XnNsA~8j@Gaaj+fT)QzP<&gR$L=bGEJ8^z*tHxS)sZ=vZPV!4 zw*)4rK3To_7<;de8PvEPu4Q5d;D=g00$bPnaG|sEP6(kDsxwc2+y=l@=8Gy3^DW?X z$=3@Y|B6^8mUadWxX-6z(Oh@9|3%Nv*Hz=bA3)}AiK3MrA@eOvp)YSd(Nf|v;6dz-v zI5xYnKImXz)PTM}jxK=GJh_OrE2HXqKgh*KB!U~;4W!DpXN6A98^kNt%~i7+I+`g5 zW}~Qod0A;Lw*Q@m73+!Rfuir!WXqcTd5mXE^DWV3AUSVk>5EA&b6Svd&!yh*!z+6( zh^>CvoV~2?y`UJ#Jho<+PlUEw=Y?Hyd8C#Oj$c!5d!Du*w4OQ9G&OxhDmQ=)tzD()srM-?#=f>aw-$x}3Z?qLOIJ{gnZu zd`Y3Pu@-6CD7)$*a6189&`vfy%c7^DmCj90Mw>5FgU_yh15-*dsMPOLpn%G&Gbq@c z)NN;i4jF!g3-}@w-}i(YUbp4WY;xYi8`sa3ep2V_UXf_!7A{;Fhp25CGF=6{xLd&d z!Mvrklt74KI=0hsCRMYBXM0Z?v1sDfN=Y&W2dW!hUyqiiU@A}R-XCxbIudes32?<&DQ!Hr>qn`aYQ?jSq?4X|x(CCDAB;b=wcWVCH1CfwqU1di z!|LlwpE@R5*{9XlM;`OM$(VZBN$c{`%$ZT3S3aYJwVO}kw)@4_EyP4SXgXkd)Q z7PtWeexnE98(N{TMKt-aG+YpQs`a~e_Y;}upm;CRXlTWI->sMI?cj%D`$7K@mQ<-e z6c3=23v>}kQ!+Z{G2&KQ99s+el!e053~lQJc`8%`$;xt_RQ&16M-jjl$HK)VZG-0esPL)%m(*xgTxhvj>YKkE?dOv3G%g-W9;dgR&pG1FoW|wrm7v|b_Y-VU zKV&S7NcSkHSjm4nrPIy#Wvwp8(lbN>^x7o60ICQ5m?QwOuUY9q(q~<6`0+a7 z_`Zhdli4>YUiT%XT1&z74m|S7pZ;||I*2@$Zd5=|9{V~xFLGS|sAE`ZQ=toXwPUzSz%(Ar!@#M}4%I2r*Ca<9 ze?7@cjo0^QC6zocYls~PXjm{I-w|^|?Hpmvl_!6;&?vERiS^(A2e-)2qxQ#IfuJ_M zgEhyUo8K;fE}w8OE$6nq26w$M-YgMyeYnhwguXF-@5ca=0xYn%I)Rl=_lZaUn5tgl zq{GPw`_E=ilA8s)Jy=%ks{*^ijmr0SqHYg5D%zYfzlqy~#fp6GHI7wm_SN!mo*B=(4jED535Cy$0WQgpMk_!VjQ zhjwgVnse1csNUVP_rkF)3q*bk`=D| zRm=kyT3qxBA7a}d4b433h)JR1r_zBVy6)DMRyM?5%=@^}YMnjurETi?w8)8Y2lox+B2Mc9(WcW709kmg&QO^PydT;QZ_K7tmYO8aA8M?Y);N zSn^>S4^jpy!tF}ZAn_;hcCNY$eyakky`&>*Nh{Yf8H17GR#{9&%f^ps6IAlo`0a7| z-5WT~hwWze!uONxb4D$Was0UyM#f|Al`@rMWg(+oyWOL{(2>P6$`ht&d;q3uD6W+D zQQKN!nzWpx$Ya8CUKa3dgn={(ad!Lm7qDcu`SB#dKHvAM#GW}Z>EZmS6yG22dWcVi zef}3H%>*xQE6XidovM|h{PD;~31ijm0ia9g=-tnlFk!0PDn12luSSt7gWP{nbUK-G z_;*xp66cFpR2OkYg+1wGZF$3SCHuNOh~T{QxmE}&DI?a%s+Q&BqRkJ^37TgbKmAKA z-lXW9)FAv@J#Z=C2lSk4@W5q7S0~BpAs>m(p{^)b2MCFka=_0~yTtPvSKJEH%6&GW zKv;f{iTBYXA0^wmTAmssRXI(3556s-FYRfgXSs2F7D?)Muw3X(n96>Fe~#_y!;5dQ zdOQ?Kp<{m8r8ee4PPIETr3Sr=L{BgNp=Hl~>nSiYS!vY-rs7>zJE&K9>k00!&bs>P zD`CMT*(GNFuh#^fdZE?R`V};&3K^rq3z5UT^^KE~V+Yq@nxU<{+Ug^t(FEIk@f~5* zgnEN(6_Zcdmg55!i|T1Xn2NBcinnnFghvgYxT5oG<#r&$ky|k5SaFs(+Vr@W6W!wc zhr8=;xACvw0kVQ6m+uK@w0M_|3*`l1D1SbQ1B%k-HMIa!=~kGkCfuQ8^C^ZQ&7xn%?zUs@ zJv~f?$}gE-(aEgrt|vKx z;}Q@0S-w8jTszP4_+Em>MvCg@+IT%eNk_MIr)gA`;*lhuP%vm}{=>pIah-$r^3{Da zp;l8BZIY#N3v`sN%POMh>Q=e-o^BM2OK_7-ztamrbZ{m49XWXIgg1Gqa+C!XfX?gxVvl@Yc z?lm`jKKariU3($HdVP4LPtp4+4mV=+tw*rjI~_q%R6DfIW|6`<`}My)W_VK!6c^i* zIvi5RI=c%+#{fOc1^%pnKBkmGk{n2 zC<)woa7^dmGd|$2v77jNVg{v9cP;?R<5Hz&w)i1YTrbpNc6%p0{Khx8hi!J94klTx zC9LuDS+2u)()U%ug}~voR<>Cq}#OQfXF2)TCm)4nk4dkJK<{Ji<% zcP30SBMi`eN&Lves%5zi8b`z0j<83Tc~cBqc7F%;N9zZcNAe!JR3!n;@j1h z1lCS;R&Xw6EFbwYNCw_`r4_DiPb}ogRDYy^watxfz7Xy(zQ=RKaRMV#RY}`WgLrrF zVY?S>T2T_0_gmfEc1P>euBpQk$h-TAw(GijhS$+YK=Tg$zQ6?>D}F1vFkHMoukc{a zEy_ED8Uf0r#&yr0HH7|2|B-{vV9-6x6%+AEp3Hd}4fvb`f5|t#1a^r!L``xWv0pYp zK_sWYo?M7Ka~?Ti?_2#VSWzD;+NOTq_0`+=>-+<27aH>r;wtxc2mAJdsVzr(62hGT z)&mW2D1I;#ot)2O9iIWid6J}Na=-qm<@K(sk9ppYVwcO*IkP(P8P9ER7!PsMfNBn& za^K3zdtRPHN^c^l9lmBs5m>rjxgOV7Io|5p!v}X)j;Ax&u7K?;q%XjX_~o%@lPr_8 z*9Uqq$6~D2?gL>l^=mP&+~8z3yT!99Io|+z9QCQwYR2S? z(t}t86UG(B`86l3E&Y`O1p($K!sj_~Szh|(peg0h(+?ymZ?)sk6C*iUD89q@SVAIS z4_&>H|FtF3pZ<_*-;w|rv%!y93`xISUXVWp-T~!8n*#@16?Q}v>{P^~9I69_ z%n*6qXY%Yy!%fWkW5OADjlkEKjP5d$8>`wRrhp=ra6@iEL)prjHQ=o3@+N$WN7maZarII1Zz-rqUrBVRY znukG8!4Q$))$$`IcgoPA;izr~)m2%Wl&%&EHeRmOXUJsiSwge{CQ5;l6K*f{(Y$dK zr+Ms$jZr918R?`Rysv0Z+#6wT~L%t0b;+Q^{rT$Y_J%=|3^Wd zt6$*epNax{<>cRLLyEm2t&MjM8j1U)pYxwc-MDWDwN~$V|G#;ney}e?-YB~f0-n-M zw?G0{JBvufZPvKoY*5O85X8y3)1IFwLkMFr+5G1knQdDje8Y{BGoelP12*9EUN%KY zxk|^L1xHs)rNCp_@p0*`=#9{%r)_7IsX3T&x{b&X;mgnjUOMtgKs#ylC}%kSdtkjl z8!FE;zg-elNMzzYzDjZ0)^Ieq?HW_G)|Sg=4mBA1EloCGZTG(+tr)OPwRZ{J7OY5O z-u^rg$|QACu3Cq*Al+><3gPrW!35XM#YAriTfXw+!m_NkpMN$HY+wKfNr4L9PYUX6 zzlS_jplR*TFaNt8ide7lbsipOGdSE!+zhi$@D8y%FCwjQ$r9L{z>FOk9`c^?Kjmj` zMuYzJ3lU=4n6Q;tr@a$L?%8~af{fraE2*s=hn>Cp;YCQ#>re~C6xoCO7}(mj#Xh*k zba*^&l5yo%qnHQd!W*<-IXZ+8vnMb>c^cM={07F5{v1ulw!aVecf>C42Ir44Vz);s zT-%=b<-{YEZ*nD{U;m4uIi#wyf4G^ggB0@5%#DRIbN7hz&!Bb!hl?A6#(~|dZ%%iN z%o^Sc0oq?wn5_;1HQ*s%km5+`HK!Bq9^dL$ZL7!o2j@&piKs-)bi>dGD9BCC4PSIk zrGJIk0P-Fv?{`4G0`eU>*i`V_XN2xXw%*xTUlVENh%_|iZDkl5p@Y866#=@Xg{cbE zjZtS75AB(^xEogv2B)1x^m!0XZdCqOZ~=~2%7kuI!6E74!u_j2iau*{do^aD^2Vk^O2eW~KSv(BzRD>xw` z&*Gb6ksujl^_Fg<9{Nxn%B8jSv6jcmU+Kw5-Q&psk7EU|G|_)%rogKwNzemwy6QX^ z@ujX`ZkT$alQ%3oWJ2VOJGz{G(ukN|LF&Ga)nKml$M>IY@1F)}2mL&m6~?A)CN|YS zLi^lZj;aN$DQnmlc~AgqcDB7)?<<0=D*JMD zM3%;`BX_AsO%3+;YjwAbOnkT+m^;*q5X>@S2hO@Aa1J zJCCx~6B|ewT}HQECVls)>JqY95!(x8tJTl^D9t}c_G8p6;&167Z{2*+*qbjZdPBKR zwYTwFdQwnL?Q_fZ1S5+O2`Bi&@(s_P_cQY7?>NOU&FL}U5YmlM6yw@TASK}~;pon& z&{?aE)kw+rf)rVR1R!KIA&R@6^&5tt+oJ8h+P)7GWpbZ0xhG1hCCSz8pFjdYT5mJUum4y`e6ST z&@%+@8U+Bx-^#X6vpu~G2`=~;;97zryltTvX_;q&`r%A)oV7(xhxX1-Obw!r%_aBq zXumue@LLi`iFY=9t~-zHYJC&!zW;W6TKK3YgAe-4E5@wu_HwjtlH4Ep5vqLS-2C5$ zSxHdkc#a7g$_vSgCJ_dxxPL&~SeaPflc=j>z18KsBxhHfhSRvim6wzyuJBI@*m2g@ zc2$Hh#1|Nide`x;s zFEY{lfS)AO1(&M2`md$eil6mNBxu2_M(#la)vUt>ub2uO+!3=jb#6Ic2xq$*jBF`n z%L9sP{NK&^17myQl!*yca`I%e*{%{^D5ld#5&5Dbmw2He%xl{Z?Bv@+UmIbjXEHB5 zH5Sh@UPidw19)2ZMmXkn`O@)IsF`Fbj+RLtb$qTJ#B-vXrZ?7??}cA6N56t|TzFj4 z=rAukcL+Zk?vE$J3_QP=HeaZiJ>sPUrar&8Ao}%X-FpDz+o?UsRbtr6!(ES)@vCo94^P>R%u%q(-9wy%Duenrn)jXuW z+2hV;WWLbrH-awRI4^BBwkb{USY=a|U+=L6IJbHc+!%aSb|KB}H$ z?;wmaMfCf`2o^LLsVRHayM++C2aVlLWRbMjawRSh!|`u4I8tjLx>H>?ZR&ba(LJXj z?DRP5gyUNUnznwc)C%qsQ!aTlw6i(@viQ+~|0fLN?FR=&Mz z!m?8%ms9Zm`@?A{S+a>p-JQ}TICnZa{gktp_;s>#3Wv_=7#GC;f$M! z&TRADKS2F7Grq42P=N2(^g3PHSv9Sr5khe~OZap~yE3UUWM-{Fh{H-BGK9MOV3L#y zw*TZQX^enrYRj7iXkEaCLTZF5z%T)MU*{_RxA-*;G{sl{7ry_e1h+X~HM>NyBnnV6 zzcFEEZvv5PId&nY^VG0nqu!l%4Ln9L8OVmkfQi1}=-j_u=t%I1_~|`SZ_zv+SV@2>e1;w+Y$vY75F((`NKQU2vax&tTw!~HE>c2M3z3d>g zk@W;ee$-qtx3IgJ&cQ;-5AmGPIIdtV0YQvcV7G)N!(PWkx#qq=;AiOzb$C@x+Z zu##CR=Q`hVF-LGTr?w9-umq+&6PrkTr)T1CJ!@XV9i+em9sS#E=UO}BNMwuBrCayH zAub{V#`%5ecrycz1$eSV8<2Ikv6CQ5E=h^K%3m6h74APzqFYP{oejD^Y7o_E2b3p| zeA*LbkS?zNs8`f>wX`CuZF=Vcnc?D9l|P;QF8KedIQiHkm!f>Y3}# zl9AL|w=FC#e&CG1Vj1SX@K&6z&wEdwI}i+9}=0 zD)hP8t2qSqGq-zz1>nRbHpsOX+Ou&rc&B>1K5Z`l|60?OVRG!%y@dyXhC`Y)1x&pBnbuTa%|7f^nM;OIHu%(W6&Ci`84e(2e5z z*ThM)rgG_sjP#cQ+Xs8;_5jS%p3?)1Cd0epUI+qH6)RAoaWyIr#O{wWN#wI+_de=e zPHAv`+(8DcYwZezvF?o<#{{xGw05-!dGx*J-i6B-YsG?>W6ke;g4Hg#P+$=@?s0UEI-*Bw6RE<{1I7> zjBlz61z%K{w(Fbs@*+5i`|zyRlh@qP_iu#(*1Wcpz$is&$q|YHc+dRFT7N)#@B@znBGn$2wXOi+ggc5BJ<+2( zlI3ksg*I$2(gaUp4h9pJY${1?hgh6#mU-3e=N{4cTb2V_4R`HbSASd)X&1AJD{hd8 z^}36_R=S?hhh>k{b|Q{V4g^$!<)__{4ZCIAOzE}*nn%8FpA_Bmaub%88)q94qdSj& zU&K}EwoAH(N;V`V{ZfKgP}7P8xX{2STb>)D)y3#SF&&=+6Jz=_o8pqGbBI1lUdL(1 zD2L567hm`YXfrYLV3fz4yv?7yE!3uaicqZ7ufRny<0U&B6qh8bcqsL`r9)-JOxkXy z+l@a1(ptpJ`{M2l$g!g@DX;KZcoPP93JT=vi}|dQ!tn5*k@U)brT5a*!NEAJ2Apj0 z3jNsKvYjiiy-sUG06+A3T)f+N_X|`ZAX$1+M8W1ZaK3Nm6Dd}Xw#CnL+A?Xi*n>}B z+g^J-yeBCQ;(6yjA1~5bLwIzXXp>6syw2d^&DXBrf$G@}~y*QOne;u_UdZD^Cl zXxza$QKpgXzp22W4GZI|8N{0M2?78Z`$wi+S>waN@uSr9`u5+ghvrjfhcjQNuoDp; zk9szfi0j_VBAd2M+55}LBoF!BASF5?QV6q5zf94lQ$2goh8#I@&N4tiMK&5WOgt0H zRiGPL-7G)N zj%2#teK$kweDwBL1+DK?B#>r?tjR02JIr zUq=)|zME?3CA9?-DRGfqM+;h7w&xgGmLjhTAOdy`b%#?iM;>=l7v)^GADOA64 zy}x#1eDIpJ^iQ-mHzp5#R2_{6(~wo;npi>z4tuCy@Z6Ovw1EGFOaCWi{Qog*{?+*F cSLciz6AsI{U0tD9;7S&f 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

c)ijgxDm}8EsRXFt3h@+Ufr7@DN z^55r2UpdZvo*$)c`MJ_3zXBARbH%T}ifygzYy6g*WBtspGU<*Ccb`wpyW!Ui$gZ}y zo>MwK`K>f-62KfvO2{S zXF|ni6T=gB=C>=mF~5ojWS?I%DBt!ouB^&}v*S8G>5&(6>bM<0W9)PIeSXbv;v2lq zgZx&0)nJZqzUPEz=3RZouldy~VSciFe9|fxrs_KoD#u$hYz3BTu8Twxs@yt>*lp{< zm_XbpVEfL5#v}%x;+@AY<0*cV$ZF-248A&7CXCUG-9e@z7Va=V8J*&{q4I$n{~M-~K{qUmg-Y{N~tC__Y!6wZ`uS zAN=8SKnb`wARia}P{>}4q*mFJ2rt$xz9z}40>2@prKgMpJ4y?1MK zsu;8LLY(s8tNKp-L`??i35r}^567PuI=u8S&*EdFoy9Nf;48%{S#m8d=h|q*N!*Hw zE&QzCc2jn4u4(uar*pTPKCQ7DC)&Cs49?>3$7+X~)XJA`!=HT>p7`~r%@S~FvIWT% zL)t28t$h|BY!xpHnSQNXihG*>p${(0U;hi2mrwZcOUrZh0ee^UiT1oYO{3$5Hop*u zLXEN0l1qM=vD`rN)XOLJdon_5oHz3`AzpsrE1f=|*Mk1={U^)6{EcJ3kodUYZmX=p z&l4~2a)h&L*mG4|<3d+3_?Prr)`vgu$Y1U7EWIl2?@iUEd5K>;n9zxxlFNU^0vTLl zH@o9AcfQkuuVr{d?>6N1tv`70$?|*eKGqA1!uC8^rS(s+P1LOQ9lYFac+7nk_^^=}_9|LQHrRm;gm z#jgtmwd-2xd;fSm;rGSZd-@wbDeXS|)%sP&lv@b1qs`Sf43!0V?3qvsHeeF4^Q(*h z^}o7zxuRcU@`@_U0N4FIMxo}rPTLvJc{K#}XhYWmowJJ2$Yjbl`u)zkPnNIv?#GvR zeQ>x@oZ)FOm|m&l>_ivC(ek;URCk@4f5BINBIPcJedSknv#$7sL09O4r%@qb_M zz2et2d?)PSD|vhJv?jf^coe^7;*5D_(i{GoNjc@GFgNZjMJ5=HK91L-#6s_k5ZsDS zGS%RQ&sF+5eNE*3{W~3);ByDsjH9O)4$S@$?yR>?gy?){V`EPI$n>{$7kZJt&E|jq z@9tl&>KhB0wjiX?fvux_ph<@^P`xU#l~@YcVmvoP|52 zFCDST=db-|m-UT`(xE24+%n&4gZ%FnLi&Yo)!)!<`8*?XqEn@~PlG4oI{hPQc|SBA-3UqQo@Ok7n} zIAZ21l@78Rn`X^sw|ukiJP&AnypS?sjm)BYgRrvd_2vm*-zj>cKd@`Ab&91Yp=>6{)F%4)7auKu@lUJhnvWozKNZb^uG+`E@Y3=U zeK~|@uUf1nf;jWRpXQgYuqA_|MTZQJmcB;TNR^GlS{T8}iC6rO{IH|tWqO{uY5h}C zK^05FmfvX7IMk$1hE*ehH{+tKyHIa1DdB;;rJvHi z@XysN8q8vy7k-&z&tLr~zqICPT-#vO+|kk)bI{UP%}!$rHS^6TDD1uXt~a|@W*~+c z8vo^wJW;Rw34f4ZJkG`2_D~Yj%WRNd2O^Mwn=s<$0*s{9@EYCPT5v)bA~e(n|~6M0EUxGtnrcN&$s(s zzN8S(XWAcol9+ za@NCPqQw`HsBTqo#8>DWj&U^~+CTP~&69^IHqX$ty#E|%_>m7|XO7~asM|V+|Xy_l(fh&fm#RNST>VcoN?=6S_DPi%0~BG=sQt4-78)-@|b)lahBHa~PL<9jHj zNE~dl9PG02qUPM@QPu+cEDu-Af8%z}zB%Ihfge*{9Wd$&G+)E(=&9+o!^CjO`cwNdjVRH+WU`h_MXAOitJp5x3ifW{$igPf9iBj$(b=HI#x==`-hy-E&gI#->XR(BW&pMdcoR19-nNcPkY4s2bR7uK27u z;T-wi{Jv$d3tg^Khr|3zu!D-f$3GV1rd-BjB{h8+psmB&uHFO}3e<>-KnIym}P_oSC zslstp61Dm&1NiV|^pEbaNt}ZX!rh1GA<@OoA~K`yhAgd{@foOROsg!`F}gM(u1!jB zP-&PeM7Vk8W1#d^)-p1e`o(13g|c~w?dj`;4_bZu^_E|g3d=E{cLES;rdxmDH283uG=7WUKG<2~ea{IxU4q0( zBCeM((XD0e;O571>R|^u&Ev*jpsQGwzvm-2(K$^ICifY)?_e`E(umG-isbY(H;sFS z_TV{-u;uIR9OWMt?$V=eCxZbQ9k$3lC>2^A@xz~@XvD&(_uWN31AO=Zpf(=jB!lHh zOT3|j8)NsuFr00(J`~5*Aa@-yCcZDeY#2MK^7+byjE?yuYo4B|14zoWZPTeh8BIOF zi#LZ9-0pPpQq1&2arSg`YF@vQoGhb26RLwnlb*1L_^M-Vlx>giHItHpV-y+pt6ZEK z556G7lZ4?GS?qbNp_S;OAM&IlDs9+mIL@;^vinA)D6z3H9OHAVWxzHP_n^luSJ#<< zbsIty2lS^g(Tp%sL>_Jx%DMrbLPR&IRuN*2au@Mv3b3wQaDyVnmOp4Ma3Q*l1@}l- z7!@6xqcC>X;&3#^WC@2>d~Pt-WCFI;DSS*he8-yHfN>hl!&k7gZRoJWX*}IU_<3Dv zFh%O=_d;$wPTu#$88_QzeaYlJH`gOD^~u}%0AtVi0{v!P<5awgzdH2uJ`V|wUL*2lawezA2~fq&{P;mfB?8T6HUC*4h6A&Uoa8O-j$RT~z$aZBVg6 zzF?cyl6N zdHw?sJ7Tp$XXHMr#>SS7hWS(q4Vv|F6FxR`qoAKa__u1W&%AQI4T^VKan^IyU>zfs zE|$R$NQPNwnbWKcmi{dLjG5%b9r@2i8f!K??SvY4H+*lPY@EblJRiC1P#E;CqroIW z@amJ2xy(A56v{9|GuaTpMMj+DK>H#%Xah4-!k=}#^ zneQH-ALI49-brtya+(0Rs?MoH;W4xa=7q~HKFb7Z1nBuy5&@vrkTKXDY=saRII;oP z3R%&P2^nF-NYearIVR*J3O2Ys934KH3%!qF8Ezacu`vg0S*Oab^yt!p+xLq-xy5gM z#Kw5jI=`XA!CkZ&zAqE&VEj1=NFmPhl*4MSO=PEas`~e2-T71-1sApc|fu*Q}= zsYFnC_DZcy+zSDb@&j)&>t^-n;oK7;%>Y=GI zf;q6^#lf=W>#ky4S#ll)lVVQT_DO*_|C(c%5cIB9nT$1w zdZdwu#x~{=-+@S!Al?*`YqRX_$W)w|mL<42l`iKk-%cwYqIN?eH8`i)kL=}d1?JZx ztLCs2KGwvGug#(X==ud4yo;s5T!B+uNNV9YMyc!;d~C+efEeaJa{IVw7aDzJFOkR6 zSlJt<<>?A3vyx@)YW!;#RD~3cJ<+yt$FWi*K*_8K6|i@y5t3Ja zJ+H|ads>I+vjj95MRGK=^x>=qv2joEMXBp_IFN4`AdHaye#ZCSN+T3ki zEEWhGJ-%>&Q^eAnKgqhuJba{|Jl+AxddOr{Cxi+(@50!IbHi4?hjyY5LQ=XVPTEpb zyqVjwx1@vOf~d3GC@cCi=V6PSGqd|Ua>`SZ|JP5mkUUL?=|EPi{@-nlH?JLkAw z*sMbLgtgvL+o_1?*wJfZjcXpC5>GR~M4yu?y`l7N54Pg1hB01ME2+8Z!14qfU-Yz@ zpP&@C_lf&Q^@(4j;1EbkPV$`KhCay2t@XoalE&DO(HG;)bGsV$(1$|8a365@r{WKw zNW$FkEp^Sm<|7b9uV3Ad{N#D~L@0goVuYqx6L^T_<{Zg#=0otZT7J0Sg93< zJ_mX2IquB#Bm6s#^rsweb>du#$y5q2icb}=oNpi;{UA7T{^iK)*yGw5d6=pq_?*D>mRC&iQRDaItw;A9 zUwyN}YMcO55)^&3H9%p>YklyFuHBgRqrZ5o{^}Fg-RyE2Q&BkPr4P7!;2dsBBY5kZ z6MOo=-HSke#!JD&S`O^!e_!8v^T8YV)+p1?{L!gB{K1puy1vT%sWe=-JBLXqC(&~o zh8QdS8g_rYT88wPo<6+$(H>5CKO8#&q^#c>*j4hprAvR9e{%Kyt8YGf`?u>?8Tz14 zS1k!Et{sV(!ehcu#U^0M9yMmukRS`=W<1D5*Xuj%0?f#3B#i1AuV%Dk0a#p(np`Z z@Ny<>{{ZDV5+@v)mOs>&&;9Vv>-)pHaOkS3YygE%;ePHnZ!h`bKx(H9HZuLnZ`piM z2ii=ClLN3rsu>=c{+jNjKd(=0rLpid^!u4*y(mWJPG6kjm0Yv8i=0jt@0q$c?3SO6 zo`T_+i0(Myt98b;JQvD(PJ8@c_^spR4R6xbATVp;gA^fWJoolt6Viy=aHkR(bL6>a z0*u#QIOR-CHs#1eI_@gp{LgMJH~1i?ZcMM{ufkCb2He+@V%l*Br$@ccN`(OGk)9u)8Cl^IS$70>cnNtJOD;^adIv1mfzOH@{j*A zpUGT+)Iu&-&YD8$81J|E-`Afpo?Sod(=~-f1KG?W4N<>A4H|trX(W)6k{Oa&+m(#9NV~FpO<-jgq5FpLo=R80h%`t-tc094&kfl2?<-(g>J|r?=r^r}OA> zmp&f(`pX~wSI3@L@|*kMoPV!t)up3lQ3afNHGkNJ?ukAA%&S+P!*d|=aQo0Nz5YfK zKR4s_UId|>uzYyqbjJt5=GTt(Ez-yS$U9G{Cqm(9+ajN> zgT~ide(a0*RMefm>R_qQXttNTKUJiWa#G(o>gibbxL(-&eO>l^>-4Yw{;}#f=Ndog zTpjgwLr5GKkp=Bm^VjU9%39U~*@|iCk3RCfSN<|`f4G7d?}tSDTy`AIwQL?;#$97+ ztSvnwvYK=4p}Io0?fv>@g@5oyeJpBc$rtZF^xS26hCWZ4#Yok->p2VeHu^YSPUGG2k^A|XtmgmW>+a9E=9)4OCk5TSW^(Rd;pI_JfySLre zQLOv*sbCN46V?6wuS}=FN|eBT_p(bFq*`MXpIA`Vg(EMp(umI{;a4t?=!xmyYV?&H2P7PMKv=d+vjRBWh(As6Lj0Qcn$#3?!%y6`&&<3aj!!;n$@xk0 z*`QFf2~yb7*ZgYBR84)J;s=KZ&x_vE!tWtII60`G5(@|IFyHPr=5zVG<@(X_<1hTc z_kGCwAo)o&!Uw+XL*A!{f;S*LxN;y5=0e-ZrK)pdNED2liw(!iVbw-%n7!XMpG8kA zGUJMmr0RBj5-MyJddQOpL{O*s7%s{`6u+WXrgQwlI?smCIg$&Q{AYgqCt0wKb7$_% zm%{TugWsEv_{Fa|uJO;}cZ_9uLpG0)>jq*Vhu`WPlbLjiH(IU~Fm-o{X+n|rIebs+ zBK*FBMohVN%r4@=_@qH>4)KXqe5CL#cK)Tu;+Dei@z-rsKEYOe;uO{W-~*^lGv{e} zg4af91r84J?WZul<4pXy&Q9bMAD7uEiayKu@j6WtFdw~+#;%<5b$dDfR;X#?4us;} z-~EhV6zs>~=Rof`?o~=VM~9%M_?8J+n!&AcCV)?AP=;fE71{~UeEA>#S{QucDki=r zzHybu$j{hvT>Nr&n2+r=zY;+&dlw*cHh$KbFJ$UN=-6jIG7AR2vDH_c$iN1FmhpRt z?{%2s!?BZglURd~-k|DP8~&9Flv)o?mLI$Jz3h>-Z8i{UeJRS<(K9vL#!-~$F*1Sp z9>4-|wb7EC2gB>kF9$2`EI#_O(HBeOdGZy+=Ze2BPH_+Mi?qgP47=j(>kB=mJ%oMS z9r<0iE@an9F`Z)KGra&4x%#2EIrCiSSMf=2pI?~4w>$UPbpC{gT;8zlrl=Bb2 zc!MuoiVfHWSDf^|NDlF(^ZW;&*`LSHX6X1EeyW$cIeN{P*pA<}=H;OUB#~>P2l%!Y z!u69#KlsSz*U2UJ{M*;+{q-Mwz4pdlJGFtZ-+TGiS1Ql<#B&y|xO2F8BP#-G95X!= zS3AtF&0v5*jT?Lk8~!j1%0_T}otooBko6is#Sgz&6@Aj7$ONp`$^7Ks*zOGN$=Vl+ z!3WfQyRB%BY(65Ff(S*v1=yWtyJ{I0gB$4W-~OP!g>&~BlI$ss{JeWJ0Y~lvE4La}LgwmJ{B^=-^LrxrR*K+!NY34Y z%M z<9FfUS32e(gAJbEtbl5ub8iasSIo+HYW6cI2(;PPCVrX9hj6>)HIID%gYPzH@6^%v zv^{*@-@5)2n!;y#NN$bBu|)+fn^0}89(_q=8AGE|lG!A3qm}-*G$sPd@g2 zSN`*ry_F8$fdaX8yu3>5_^=Mm3a>SxDq|(W496V3gthog+!l-+gI^0x3>K~U0B9_I z@g1v9#%%cbQY(J<)|7{e%NhR$c6@0R)3;{wt|Y5hT-qAn?23((Ie*Is_;P_4Gx3j1 z3^!RMCcZ=O#~*wM_}}BBm6H6+W|(D1K9`SA_)O&v{7zZehxLm7tBQH}eC`H%|3AL+ zwv$WC=ZSiwBbOHn*aasRMW->jDp-wcQfvqt$sDPv&GGOq`KuGkd^o;c>O`@?JJE_` zdU788%6;TNa;;()znFK!uf=i(n|UXb!}$}T5F5S&N6!Fu`(`Au^2Zij=Z|V?HNBZ# z{Jg_J&>P3Qlh3>HhAVHIXs5)?*?J{TB9TPPY-Gp32p`^F3!lv=`TY2MT!#Dn_EX5YDwXjm4@%zo zyA%j0dpPZ8aUi>rp!dHqyG~d+l6Q>+x9T-*oC&4dQmFv;TYcH~Spj>DJ0esIt zzWNO+#A`{>E5i(Xk;Z0`sjgNLsQM^ePYfMu`tZTDpWqGSgiZetwnduxeT7P8ynTsi zel~9SC}kpn5&t6m<~Z?*-@e9Xw_7%@1cxGiwOUv!*ZAgV{^YpI;WyoHSsAi`#H6j9 zt$aSe;%xY&tQ7Q@%CCLw|GfH*c7B0V=63;TLHuy07aBFXpK@e@kz6>#YSGcv3{ghz zzVXF3=^Q@()T&z5KP7&Q>i!XZTNu&$kfkNQnO!8-_aDL+?R~C8sjF4t! z6x@c9tB)3F@nK85F<=By?G&Gi4}X@LiXJ2XmM&tvDMDVeZJcH{s6W+y1bgFn`9~ZXTFjEjziZ(}(o3vn z`%X>ZGshK%2W48h%Jnqix>9=bSGbGC-{Va~Hp{r_k-l2)R5e=9GXJFTue#GuTPtHLO_kpoE;{;<|N8ou=yCIP zN<{A~WY5T@7mLhsKlK)EER*b9LF?v{dT-&+=Hpvd_~PVB{13->Hs|DD_AU++MKR^? zVbs#s_)ceV^X6!`7vaB08NBAP@4xarcZzYI{jMLv_MN@||G4r!x9+?3(b^}k&qm0m zIJo%3!Mf<)XVROminu6NX7e>E)#+h2O$}L)eu$)~=3}XaGUgyZ_V8KMnK#)7zjPHp z_Ts=j%wK(OAJ%4maf|Pa51wLAKZDR6(r+-k<@J}An;-pDHxE9y+0Rj)g#6$aUwirP zX!kYxQ0mVy-QN2yL-92;)+QS*i|kvrv|fAPK+-?Jmin%y1ZS6N0LGw(w2!|y(vgZ*y#F}>^b>-1db)Nj=f;xC|Ft8@YI zMIq1nn~#0+?)d1{!hey9e+8a5izk@{Oplez2GHqrSUlSN&@^wrvVyP!giSlmuO%9r zW`jOGD83?gYTjdlCEZT%G_f_YKb`yp!)N?Qcc8y6-5c~LFW-9YpKRX@b^v?Vs?#fW z*DlT`JnOH$|Jl3C_q|fP=kqnu&(d`7^YSrkS5(VraZMu&zIv_2t3qXyto_-1d=_pk z^vbJk!~$p|XLVszAW2V_Pv+Y=r{jaEb~--#@C&o@YkYyT{(x!uak=@SdyXFer}KN5 zFTlMk$hvZOMZ0@2f4q3@#*LTjFKs?eK|fUioJEMtmjUO-<02&yOE|p|V-%X=6Xv@X(oCxjr1jf2;npdQ$tQM<2QW z=azp~pZ|S`@O0`r&8O4l#eLPLy7n@?{`u15<>(>(HP?sj)ax^gp0C0^Q@=iWK*f2c zD)fL#sXs~F-K&MVM;neWi6M8@tERwteOT%%cv{JMqtu2a&-F?ld~arKwAH@y=LKKw z#h-2EA?L&VSjQ(K-_mq$Dl8u&b4}hKRXUGo8jtD{dqj15STlZy(C<7sI)2CQ_~fnE k9@EG3{4s5ok?kb>|H;3ubeVRY^#A|>07*qoM6N<$f~C=$asU7T literal 0 HcmV?d00001 diff --git a/ArkUIKit/ChooseComponent/entry/src/main/resources/base/profile/backup_config.json b/ArkUIKit/ChooseComponent/entry/src/main/resources/base/profile/backup_config.json new file mode 100644 index 000000000..78f40ae7c --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/resources/base/profile/main_pages.json b/ArkUIKit/ChooseComponent/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 000000000..fea96ecef --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,14 @@ +{ + "src": [ + "pages/Index", + "pages/button/CreateButton", + "pages/button/ButtonCustomStyle", + "pages/button/FloatingButton", + "pages/radio/RadioSample", + "pages/button/SetButtonType", + "pages/button/SubmitForm", + "pages/toggle/CreateToggle", + "pages/toggle/ToggleCustomStyle", + "pages/toggle/ToggleCaseExample" + ] +} diff --git a/ArkUIKit/ChooseComponent/entry/src/main/resources/dark/element/color.json b/ArkUIKit/ChooseComponent/entry/src/main/resources/dark/element/color.json new file mode 100644 index 000000000..79b11c274 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/resources/dark/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#000000" + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/main/syscap.json b/ArkUIKit/ChooseComponent/entry/src/main/syscap.json new file mode 100644 index 000000000..598552fb3 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/main/syscap.json @@ -0,0 +1,24 @@ + +{ + "devices": { + "general": [ + "default" + ] + }, + "production": { + "removedSysCaps": [ + "SystemCapability.HiviewDFX.HiDumper", + "SystemCapability.Security.DeviceAuth", + "SystemCapability.Multimedia.Media.AVTranscoder", + "SystemCapability.Tee.TeeClient", + "SystemCapability.Communication.Bluetooth.Core", + "SystemCapability.ArkUi.Graphics3D", + "SystemCapability.DistributedHardware.DeviceManager", + "SystemCapability.Multimedia.Drm.Core", + "SystemCapability.Advertising.Ads", + "SystemCapability.Customization.EnterpriseDeviceManager", + "SystemCapability.Security.DeviceSecurityLevel", + "SystemCapability.UserIAM.UserAuth.PinAuth" + ] + } +} diff --git a/ArkUIKit/ChooseComponent/entry/src/mock/mock-config.json5 b/ArkUIKit/ChooseComponent/entry/src/mock/mock-config.json5 new file mode 100644 index 000000000..26ed9f53b --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/mock/mock-config.json5 @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2024 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. + */ + +{ +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/ohosTest/ets/test/Ability.test.ets b/ArkUIKit/ChooseComponent/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 000000000..a8ff110e5 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/ohosTest/ets/test/Ability.test.ets @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2024 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 { hilog } from '@kit.PerformanceAnalysisKit'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function abilityTest() { + describe('ActsAbilityTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }) + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }) + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }) + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }) + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + hilog.info(0x0000, 'testTag', '%{public}s', 'it begin'); + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }) + }) +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/ohosTest/ets/test/Index.test.ets b/ArkUIKit/ChooseComponent/entry/src/ohosTest/ets/test/Index.test.ets new file mode 100644 index 000000000..40ebdd1f0 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/ohosTest/ets/test/Index.test.ets @@ -0,0 +1,312 @@ +/* + * Copyright (c) 2024-2025 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 { describe, it, expect, beforeAll } from '@ohos/hypium'; +// 导入测试依赖kit +import { abilityDelegatorRegistry, Driver, ON, MouseButton, Component, MatchPattern } from '@kit.TestKit'; +import { UIAbility, Want } from '@kit.AbilityKit'; + + +const delegator: abilityDelegatorRegistry.AbilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); +const bundleName = abilityDelegatorRegistry.getArguments().bundleName; +let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; +abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); +let want: Want; + + +function sleep(time: number) { + return new Promise((resolve: Function) => setTimeout(resolve, time)); +} + +async function getResourceString(resource: Resource): Promise { + let manage = abilityDelegator.getAppContext().resourceManager; + let textString: string = await manage.getStringValue(resource); + return textString; +} + + +export default function IndexTest() { + + describe('IndexTest', () => { + + beforeAll(async () => { + want = { + bundleName: bundleName, + abilityName: 'EntryAbility' + }; + await delegator.startAbility(want); + await sleep(1000); + const ability: UIAbility = await delegator.getCurrentTopAbility(); + console.info("get top ability"); + expect(ability.context.abilityInfo.name).assertEqual('EntryAbility'); + }) + + it('testCreateButton', 0, async (done: Function) => { + console.info("uitest: testCreateButton begin"); + let driver = Driver.create(); + let button_list = await driver.findComponent(ON.text('Button', MatchPattern.CONTAINS)); + expect(button_list === null).assertFalse(); + await button_list.click(); + let str = await getResourceString($r('app.string.CreateButton_title')); + let button_search = await driver.findComponent(ON.text(str, MatchPattern.CONTAINS)); + expect(button_search === null).assertFalse(); + await button_search.click(); + + let button_normal = await driver.findComponent(ON.id('button')); + let button_back = await driver.findComponent(ON.id('button_back')); + expect(button_normal === null).assertFalse(); + expect(button_back === null).assertFalse(); + await button_normal.click(); + await button_back.click(); + await driver.pressBack(); + await driver.pressBack(); + done(); + }) + + it('testSetButtonType', 0, async (done: Function) => { + console.info("uitest: testSetButtonType begin"); + let driver = Driver.create(); + let button_list = await driver.findComponent(ON.text('Button', MatchPattern.CONTAINS)); + expect(button_list === null).assertFalse(); + await button_list.click(); + let str = await getResourceString($r('app.string.SetButtonType_test')); + let button_search = await driver.findComponent(ON.text(str, MatchPattern.CONTAINS)); + expect(button_search === null).assertFalse(); + await button_search.click(); + + let button_Capsule = await driver.findComponent(ON.id('Capsule')); + let button_Circle = await driver.findComponent(ON.id('Circle')); + let button_Normal = await driver.findComponent(ON.id('Normal')); + let button_Round = await driver.findComponent(ON.id('Round')); + expect(button_Capsule === null).assertFalse(); + expect(button_Circle === null).assertFalse(); + expect(button_Normal === null).assertFalse(); + expect(button_Round === null).assertFalse(); + await button_Capsule.click(); + await button_Circle.click(); + await button_Normal.click(); + await button_Round.click(); + await driver.pressBack(); + await driver.pressBack(); + done(); + }) + + it('testCustomStyle', 0, async (done: Function) => { + console.info("uitest: testCustomStyle begin"); + let driver = Driver.create(); + let button_list = await driver.findComponent(ON.text('Button', MatchPattern.CONTAINS)); + expect(button_list === null).assertFalse(); + await button_list.click(); + let str = await getResourceString($r('app.string.ButtonCustomStyle_test')); + let button_search = await driver.findComponent(ON.text(str, MatchPattern.CONTAINS)); + expect(button_search === null).assertFalse(); + await button_search.click(); + + let button_circle = await driver.findComponent(ON.id('circle_border')); + let button_font = await driver.findComponent(ON.id('font_style')); + let button_color = await driver.findComponent(ON.id('background_color')); + expect(button_circle === null).assertFalse(); + expect(button_font === null).assertFalse(); + expect(button_color === null).assertFalse(); + await button_circle.click(); + await button_font.click(); + await button_color.click(); + await driver.pressBack(); + await driver.pressBack(); + done(); + }) + + it('testSubmitForm', 0, async (done: Function) => { + console.info("uitest: testSubmitForm begin"); + let driver = Driver.create(); + let button_list = await driver.findComponent(ON.text('Button', MatchPattern.CONTAINS)); + expect(button_list === null).assertFalse(); + await button_list.click(); + let str = await getResourceString($r('app.string.SubmitForm')); + let button_search = await driver.findComponent(ON.text(str, MatchPattern.CONTAINS)); + expect(button_search === null).assertFalse(); + await button_search.click(); + + let username = await driver.findComponent(ON.id('username')); + let password = await driver.findComponent(ON.id('password')); + let registerButton = await driver.findComponent(ON.id('register')); + expect(username === null).assertFalse(); + expect(password === null).assertFalse(); + expect(registerButton === null).assertFalse(); + await username.inputText('username'); + await password.inputText('password'); + expect(await username.getText() === 'username').assertTrue(); + + let point = await password.getBoundsCenter(); + await driver.mouseClick({ + x: point.x + 300, y: point.y + }, MouseButton.MOUSE_BUTTON_LEFT, 0, 0); + expect(await password.getText() === 'password').assertTrue(); + await registerButton.click(); + await driver.pressBack(); + await driver.pressBack(); + await driver.pressBack(); + done(); + }) + + it('testFloatingButton', 0, async (done: Function) => { + console.info("uitest: testFloatingButton begin"); + let driver = Driver.create(); + let button_list = await driver.findComponent(ON.text('Button', MatchPattern.CONTAINS)); + expect(button_list === null).assertFalse(); + await button_list.click(); + let str = await getResourceString($r('app.string.FloatingButton')); + let button_search = await driver.findComponent(ON.text(str, MatchPattern.CONTAINS)); + expect(button_search === null).assertFalse(); + await button_search.click(); + + let floatingButton = await driver.findComponent(ON.id('Button')); + let stackList = await driver.findComponent(ON.id('List')); + expect(floatingButton === null).assertFalse(); + expect(stackList === null).assertFalse(); + await floatingButton.click(); + await stackList.scrollToBottom(); + await driver.pressBack(); + await driver.pressBack(); + done(); + }) + + it('testToggleUiExample1', 0, async (done: Function) => { + let driver: Driver = Driver.create(); + let button_list = await driver.findComponent(ON.text('Toggle', MatchPattern.CONTAINS)); + expect(button_list === null).assertFalse(); + await button_list.click(); + let str = await getResourceString($r('app.string.CreateToggle_title')); + let button_search = await driver.findComponent(ON.text(str, MatchPattern.CONTAINS)); + expect(button_search === null).assertFalse(); + await button_search.click(); + + let toggle1: Component = await driver.findComponent(ON.id('toggle1')); + let toggle2: Component = await driver.findComponent(ON.id('toggle2')); + let toggle3: Component = await driver.findComponent(ON.id('toggle3')); + let toggle4: Component = await driver.findComponent(ON.id('toggle4')); + let toggle5: Component = await driver.findComponent(ON.id('toggle5')); + let toggle6: Component = await driver.findComponent(ON.id('toggle6')); + await toggle1.click(); + await toggle2.click(); + await toggle3.click(); + await toggle4.click(); + await toggle5.click(); + await toggle6.click(); + await driver.pressBack(); + await driver.pressBack(); + done(); + }) + + it('testToggleUiExample2', 0, async (done: Function) => { + let driver: Driver = Driver.create(); + let button_list = await driver.findComponent(ON.text('Toggle', MatchPattern.CONTAINS)); + expect(button_list === null).assertFalse(); + await button_list.click(); + let str = await getResourceString($r('app.string.ToggleCustomStyle_title')); + let button_search = await driver.findComponent(ON.text(str, MatchPattern.CONTAINS)); + expect(button_search === null).assertFalse(); + await button_search.click(); + let toggle1: Component = await driver.findComponent(ON.id('toggle1')); + let toggle2: Component = await driver.findComponent(ON.id('toggle2')); + let toggle3: Component = await driver.findComponent(ON.id('toggle3')); + let toggle4: Component = await driver.findComponent(ON.id('toggle4')); + let toggle5: Component = await driver.findComponent(ON.id('toggle5')); + await toggle1.click(); + await toggle2.click(); + await toggle3.click(); + await toggle4.click(); + await toggle5.click(); + await driver.pressBack(); + await driver.pressBack(); + done(); + }) + + it('testToggleUiExample3', 0, async (done: Function) => { + let driver: Driver = Driver.create(); + let button_list = await driver.findComponent(ON.text('Toggle', MatchPattern.CONTAINS)); + expect(button_list === null).assertFalse(); + await button_list.click(); + let str = await getResourceString($r('app.string.Sample')); + let button_search = await driver.findComponent(ON.text(str, MatchPattern.CONTAINS)); + expect(button_search === null).assertFalse(); + await button_search.click(); + let message: Component = await driver.findComponent(ON.id('message')); + expect(await message.getText() === 'Bluetooth Mode: off').assertTrue(); + let toggle: Component = await driver.findComponent(ON.id('toggle')); + await toggle.click(); + expect(await message.getText() === 'Bluetooth Mode: on').assertTrue(); + await driver.pressBack(); + await driver.pressBack(); + done(); + }) + + /** + * @tc.number testRadioUiExample1 + * @tc.name testRadioUiExample1 + * @tc.desc Test multiple radio button. + * @tc.size MEDIUM + * @tc.level Level 1 + * @tc.type Function + */ + it('testRadioUiExample1', 0, async (done: Function) => { + let driver: Driver = Driver.create(); + let button_list = await driver.findComponent(ON.text('Radio', MatchPattern.CONTAINS)); + expect(button_list === null).assertFalse(); + await button_list.click(); + await sleep(1000); + let str = await getResourceString($r('app.string.RadioSample_title')); + let radio_search = await driver.findComponent(ON.text(str, MatchPattern.CONTAINS)); + expect(radio_search === null).assertFalse(); + await radio_search.click(); + let ringing_search = await driver.findComponent(ON.id('ringing', MatchPattern.CONTAINS)); + expect(ringing_search === null).assertFalse(); + await ringing_search.click(); + let vibration_search = await driver.findComponent(ON.id('vibration', MatchPattern.CONTAINS)); + expect(vibration_search === null).assertFalse(); + await vibration_search.click(); + let silent_search = await driver.findComponent(ON.id('silent', MatchPattern.CONTAINS)); + expect(silent_search === null).assertFalse(); + await silent_search.click(); + await sleep(1000); + await driver.pressBack(); + await driver.pressBack(); + done(); + }) + + /** + * @tc.number testRadioUiExample2 + * @tc.name testRadioUiExample2 + * @tc.desc Test two radio button. + * @tc.size MEDIUM + * @tc.level Level 1 + * @tc.type Function + */ + it('testRadioUiExample2', 0, async (done: Function) => { + let driver: Driver = Driver.create(); + let button_list = await driver.findComponent(ON.text('Radio', MatchPattern.CONTAINS)); + expect(button_list === null).assertFalse(); + await button_list.click(); + await sleep(1000); + let str = await getResourceString($r('app.string.RadioSample2_title')); + let radio_search = await driver.findComponent(ON.text(str, MatchPattern.CONTAINS)); + expect(radio_search === null).assertFalse(); + await radio_search.click(); + await sleep(1000); + await driver.pressBack(); + done(); + }) + }) +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/ohosTest/ets/test/List.test.ets b/ArkUIKit/ChooseComponent/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 000000000..b702cb892 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2024 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 IndexTest from './Index.test'; +import abilityTest from './Ability.test'; + +export default function testsuite() { + abilityTest(); + IndexTest(); +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/ohosTest/module.json5 b/ArkUIKit/ChooseComponent/entry/src/ohosTest/module.json5 new file mode 100644 index 000000000..5f6346203 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/ohosTest/module.json5 @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2024 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. + */ + +{ + "module": { + "name": "entry_test", + "type": "feature", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/ArkUIKit/ChooseComponent/entry/src/test/List.test.ets b/ArkUIKit/ChooseComponent/entry/src/test/List.test.ets new file mode 100644 index 000000000..ab6445db0 --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/test/List.test.ets @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2024 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 localUnitTest from './LocalUnit.test'; + +export default function testsuite() { + localUnitTest(); +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/entry/src/test/LocalUnit.test.ets b/ArkUIKit/ChooseComponent/entry/src/test/LocalUnit.test.ets new file mode 100644 index 000000000..4b7b4eb2f --- /dev/null +++ b/ArkUIKit/ChooseComponent/entry/src/test/LocalUnit.test.ets @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2024 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 { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function localUnitTest() { + describe('localUnitTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }); + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }); + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }); + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }); + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }); + }); +} \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/hvigor/hvigor-config.json5 b/ArkUIKit/ChooseComponent/hvigor/hvigor-config.json5 new file mode 100644 index 000000000..0df4e83ad --- /dev/null +++ b/ArkUIKit/ChooseComponent/hvigor/hvigor-config.json5 @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2024 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. + */ + +{ + "modelVersion": "5.0.1", + "dependencies": { + }, + "execution": { + // "analyze": "normal", /* Define the build analyze mode. Value: [ "normal" | "advanced" | false ]. Default: "normal" */ + // "daemon": true, /* Enable daemon compilation. Value: [ true | false ]. Default: true */ + // "incremental": true, /* Enable incremental compilation. Value: [ true | false ]. Default: true */ + // "parallel": true, /* Enable parallel compilation. Value: [ true | false ]. Default: true */ + // "typeCheck": false, /* Enable typeCheck. Value: [ true | false ]. Default: false */ + }, + "logging": { + // "level": "info" /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */ + }, + "debugging": { + // "stacktrace": false /* Disable stacktrace compilation. Value: [ true | false ]. Default: false */ + }, + "nodeOptions": { + // "maxOldSpaceSize": 8192 /* Enable nodeOptions maxOldSpaceSize compilation. Unit M. Used for the daemon process. Default: 8192*/ + // "exposeGC": true /* Enable to trigger garbage collection explicitly. Default: true*/ + } +} diff --git a/ArkUIKit/ChooseComponent/hvigorfile.ts b/ArkUIKit/ChooseComponent/hvigorfile.ts new file mode 100644 index 000000000..662a6284a --- /dev/null +++ b/ArkUIKit/ChooseComponent/hvigorfile.ts @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2024 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 { appTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins: [] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/ArkUIKit/ChooseComponent/oh-package.json5 b/ArkUIKit/ChooseComponent/oh-package.json5 new file mode 100644 index 000000000..936cf43ea --- /dev/null +++ b/ArkUIKit/ChooseComponent/oh-package.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2024 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. + */ + +{ + "modelVersion": "5.0.1", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.19", + "@ohos/hamock": "1.0.0" + } +} diff --git a/ArkUIKit/ChooseComponent/ohosTest.md b/ArkUIKit/ChooseComponent/ohosTest.md new file mode 100644 index 000000000..95d1ceb49 --- /dev/null +++ b/ArkUIKit/ChooseComponent/ohosTest.md @@ -0,0 +1,5 @@ +| 组件 | 测试功能 | 预置条件 | 输入 | 预期输出 | 测试结果 | +|-----------------------------------| ------------ | ---------------------- |-----------| -------- | -------- | +| Radio | 首页加载测试 | 设备正常运行 | 验证基础元素展示 | 检查标题和列表组件 | Pass | +| Radio | 单选框示例示例页面加载,页面按钮响应 | 设备正常运行 | 1. 点击"单选框示例示例"。
2. 单选框示例示例页面分别点击ratio按钮:
点击"Ringing"按钮,提示词“Ringing",打印文字”Ringing mode."
点击"Vibration"按钮,提示词“Vibration",打印文字”Vibration mode."
点击"Silent"按钮,提示词“Silent",打印文字”Silent mode." | 页面加载成功
按钮点击响应正常 | Pass | +| Radio | 单选框示例2页面 | 设备正常运行 | 点击"单选框示例2" | 页面加载成功 | Pass | \ No newline at end of file diff --git a/ArkUIKit/ChooseComponent/screenshots/device/image1.png b/ArkUIKit/ChooseComponent/screenshots/device/image1.png new file mode 100644 index 0000000000000000000000000000000000000000..601206d1d753a54f606bdd9f1df32c6e755b31ac GIT binary patch literal 29661 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 z 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 z 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 literal 0 HcmV?d00001 diff --git a/ArkUIKit/ChooseComponent/screenshots/device/image3.png b/ArkUIKit/ChooseComponent/screenshots/device/image3.png new file mode 100644 index 0000000000000000000000000000000000000000..29f949276660bf307aeecd7cbcc493998d2d9aa3 GIT binary patch literal 42068 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 literal 0 HcmV?d00001 -- Gitee From 23a7bdd97454972762d50d45a70d06b3a076609b Mon Sep 17 00:00:00 2001 From: chenbosongcode Date: Sun, 26 Oct 2025 16:56:20 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=90=8C=E6=AD=A5openHarmony=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=8CColorAdaptionApp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chenbosongcode --- ArkUIKit/ColorAdaptionApp/AppScope/app.json5 | 25 +++ .../resources/base/element/string.json | 8 + .../resources/base/media/background.png | Bin 0 -> 91942 bytes .../resources/base/media/foreground.png | Bin 0 -> 15325 bytes .../resources/base/media/layered_image.json | 7 + ArkUIKit/ColorAdaptionApp/README_zh.md | 78 +++++++ ArkUIKit/ColorAdaptionApp/build-profile.json5 | 57 +++++ ArkUIKit/ColorAdaptionApp/code-linter.json5 | 47 +++++ .../entry/build-profile.json5 | 48 +++++ ArkUIKit/ColorAdaptionApp/entry/hvigorfile.ts | 21 ++ .../entry/obfuscation-rules.txt | 23 ++ .../ColorAdaptionApp/entry/oh-package.json5 | 25 +++ .../main/ets/entryability/EntryAbility.ets | 66 ++++++ .../entrybackupability/EntryBackupAbility.ets | 31 +++ .../main/ets/pages/BuilderNodeAdaptation.ets | 197 ++++++++++++++++++ .../src/main/ets/pages/ImageAdaptation.ets | 34 +++ .../entry/src/main/ets/pages/Index.ets | 48 +++++ .../src/main/ets/pages/SwitchColorMode.ets | 45 ++++ .../entry/src/main/module.json5 | 65 ++++++ .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/float.json | 8 + .../main/resources/base/element/string.json | 16 ++ .../main/resources/base/media/background.png | Bin 0 -> 91942 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 8805 bytes .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 8 + .../main/resources/dark/element/color.json | 8 + .../resources/rawfile/app.media.pic_svg.svg | 10 + .../entry/src/mock/mock-config.json5 | 17 ++ .../src/ohosTest/ets/test/Ability.test.ets | 50 +++++ .../src/ohosTest/ets/test/Index.test.ets | 94 +++++++++ .../entry/src/ohosTest/ets/test/List.test.ets | 22 ++ .../entry/src/ohosTest/module.json5 | 26 +++ .../entry/src/test/List.test.ets | 20 ++ .../entry/src/test/LocalUnit.test.ets | 48 +++++ .../hvigor/hvigor-config.json5 | 38 ++++ ArkUIKit/ColorAdaptionApp/hvigorfile.ts | 21 ++ ArkUIKit/ColorAdaptionApp/oh-package.json5 | 25 +++ ArkUIKit/ColorAdaptionApp/ohosTest.md | 7 + .../screenshots/device/image1.png | Bin 0 -> 6278 bytes .../screenshots/device/image2.png | Bin 0 -> 3663 bytes .../screenshots/device/image3.png | Bin 0 -> 10230 bytes 44 files changed, 1261 insertions(+) create mode 100644 ArkUIKit/ColorAdaptionApp/AppScope/app.json5 create mode 100644 ArkUIKit/ColorAdaptionApp/AppScope/resources/base/element/string.json create mode 100644 ArkUIKit/ColorAdaptionApp/AppScope/resources/base/media/background.png create mode 100644 ArkUIKit/ColorAdaptionApp/AppScope/resources/base/media/foreground.png create mode 100644 ArkUIKit/ColorAdaptionApp/AppScope/resources/base/media/layered_image.json create mode 100644 ArkUIKit/ColorAdaptionApp/README_zh.md create mode 100644 ArkUIKit/ColorAdaptionApp/build-profile.json5 create mode 100644 ArkUIKit/ColorAdaptionApp/code-linter.json5 create mode 100644 ArkUIKit/ColorAdaptionApp/entry/build-profile.json5 create mode 100644 ArkUIKit/ColorAdaptionApp/entry/hvigorfile.ts create mode 100644 ArkUIKit/ColorAdaptionApp/entry/obfuscation-rules.txt create mode 100644 ArkUIKit/ColorAdaptionApp/entry/oh-package.json5 create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/ets/pages/BuilderNodeAdaptation.ets create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/ets/pages/ImageAdaptation.ets create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/ets/pages/Index.ets create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/ets/pages/SwitchColorMode.ets create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/module.json5 create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/element/color.json create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/element/float.json create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/element/string.json create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/media/background.png create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/media/foreground.png create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/media/layered_image.json create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/media/startIcon.png create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/profile/backup_config.json create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/profile/main_pages.json create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/resources/dark/element/color.json create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/main/resources/rawfile/app.media.pic_svg.svg create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/mock/mock-config.json5 create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/ohosTest/ets/test/Index.test.ets create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/ohosTest/module.json5 create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/test/List.test.ets create mode 100644 ArkUIKit/ColorAdaptionApp/entry/src/test/LocalUnit.test.ets create mode 100644 ArkUIKit/ColorAdaptionApp/hvigor/hvigor-config.json5 create mode 100644 ArkUIKit/ColorAdaptionApp/hvigorfile.ts create mode 100644 ArkUIKit/ColorAdaptionApp/oh-package.json5 create mode 100644 ArkUIKit/ColorAdaptionApp/ohosTest.md create mode 100644 ArkUIKit/ColorAdaptionApp/screenshots/device/image1.png create mode 100644 ArkUIKit/ColorAdaptionApp/screenshots/device/image2.png create mode 100644 ArkUIKit/ColorAdaptionApp/screenshots/device/image3.png diff --git a/ArkUIKit/ColorAdaptionApp/AppScope/app.json5 b/ArkUIKit/ColorAdaptionApp/AppScope/app.json5 new file mode 100644 index 000000000..71a3deb1c --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/AppScope/app.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + "app": { + "bundleName": "com.example.ColorAdaption", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:layered_image", + "label": "$string:app_name" + } +} diff --git a/ArkUIKit/ColorAdaptionApp/AppScope/resources/base/element/string.json b/ArkUIKit/ColorAdaptionApp/AppScope/resources/base/element/string.json new file mode 100644 index 000000000..164954414 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "dark_light_color_adaption" + } + ] +} diff --git a/ArkUIKit/ColorAdaptionApp/AppScope/resources/base/media/background.png b/ArkUIKit/ColorAdaptionApp/AppScope/resources/base/media/background.png new file mode 100644 index 0000000000000000000000000000000000000000..923f2b3f27e915d6871871deea0420eb45ce102f GIT binary patch literal 91942 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 M;JyCV_snDe2la%mzyJUM literal 0 HcmV?d00001 diff --git a/ArkUIKit/ColorAdaptionApp/AppScope/resources/base/media/layered_image.json b/ArkUIKit/ColorAdaptionApp/AppScope/resources/base/media/layered_image.json new file mode 100644 index 000000000..fb4992044 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/AppScope/resources/base/media/layered_image.json @@ -0,0 +1,7 @@ +{ + "layered-image": + { + "background" : "$media:background", + "foreground" : "$media:foreground" + } +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/README_zh.md b/ArkUIKit/ColorAdaptionApp/README_zh.md new file mode 100644 index 000000000..8fd87d554 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/README_zh.md @@ -0,0 +1,78 @@ +# ArkUI应用深浅色适配指南文档示例 + +### 介绍 + +本示例通过使用[ArkUI指南文档](https://gitcode.com/openharmony/docs/tree/master/zh-cn/application-dev/ui)中各场景的开发示例,展示在工程中,帮助开发者更好地理解ArkUI提供的组件及组件属性并合理使用。该工程中展示的代码详细描述可查如下链接: + +1. [应用深浅色适配](https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/ui-dark-light-color-adaptation.md)。 + + +### 效果预览 +| 深浅模式切换效果 | 图片及文字深浅模式适配效果 | 应用页面局部深浅色效果 | +| ------------------------------------ | --------------------------------------------- | --------------------------------------------------- | +| ![](screenshots/device/image1.png) | ![](screenshots/device/image2.png) | ![](screenshots/device/image3.png) | + +### 使用说明 + +1. 在主界面,可以点击对应页面,选择需要参考的组件示例。 + +2. 在组件目录选择详细的示例参考。 + +3. 进入示例界面,查看参考示例。 + +4. 通过自动测试框架可进行测试及维护。 + +### 工程目录 +``` +entry/src/main/ets/ +├── entryability +│   └── EntryAbility.ets +├── entrybackupability +│   └── EntryBackupAbility.ets +└── pages + ├── BuilderNodeAdaptation.ets // 自定义节点适配 + ├── ImageAdaptation.ets // 图片资源适配 + ├── Index.ets + └── SwitchColorMode.ets // 切换颜色模式 +entry/src/ohosTest/ +├── ets +│   └── test +│   ├── Ability.test.ets +│   ├── Index.test.ets // 测试用例代码 +│   └── List.test.ets +└── module.json5 +``` + +### 具体实现 + +1. 应用跟随系统的深浅色模式:自定义节点BuilderNode和ComponentContent需手动传递系统环境变化事件,触发节点的全量更新;应用可以主动监听系统深浅色模式变化,进行资源初始化等自定义逻辑。无论应用是否跟随系统深浅色模式变化,该监听方式均可生效。 + +2. 应用主动设置深浅色模式:应用默认配置为跟随系统切换深浅色模式,如不希望应用跟随系统深浅色模式变化,可主动设置应用的深浅色风格。设置后,应用的深浅色模式固定,不会随系统改变。 + +### 相关权限 + +不涉及。 + +### 依赖 + +不涉及。 + +### 约束与限制 + +1.本示例仅支持标准系统上运行, 支持设备:RK3568。 + +2.本示例为Stage模型,支持API20版本SDK,版本号:6.0.0.33,镜像版本号:OpenHarmony_6.0.0.33。 + +3.本示例需要使用DevEco Studio 6.0.0 Release (Build Version: 6.0.0.858, built on September 24, 2025)及以上版本才可编译运行。 + +### 下载 + +如需单独下载本工程,执行如下命令: + +```` +git init +git config core.sparsecheckout true +echo code/DocsSample/ArkUISample/ColorAdaptionApp > .git/info/sparse-checkout +git remote add origin https://gitcode.com/openharmony/applications_app_samples.git +git pull origin master +```` \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/build-profile.json5 b/ArkUIKit/ColorAdaptionApp/build-profile.json5 new file mode 100644 index 000000000..1e71c8093 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/build-profile.json5 @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + "app": { + "products": [ + { + "name": "default", + "signingConfig": "default", + "compileSdkVersion": "6.0.0(20)", + "compatibleSdkVersion": "6.0.0(20)", + "targetSdkVersion": "6.0.0(20)", + "runtimeOS": "HarmonyOS", + "buildOption": { + "strictMode": { + "caseSensitiveCheck": true, + "useNormalizedOHMUrl": true + } + } + } + ], + "buildModeSet": [ + { + "name": "debug", + }, + { + "name": "release" + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/code-linter.json5 b/ArkUIKit/ColorAdaptionApp/code-linter.json5 new file mode 100644 index 000000000..ed05653cc --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/code-linter.json5 @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + "files": [ + "**/*.ets" + ], + "ignore": [ + "**/src/ohosTest/**/*", + "**/src/test/**/*", + "**/src/mock/**/*", + "**/node_modules/**/*", + "**/oh_modules/**/*", + "**/build/**/*", + "**/.preview/**/*" + ], + "ruleSet": [ + "plugin:@performance/recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + "@security/no-unsafe-aes": "error", + "@security/no-unsafe-hash": "error", + "@security/no-unsafe-mac": "warn", + "@security/no-unsafe-dh": "error", + "@security/no-unsafe-dsa": "error", + "@security/no-unsafe-ecdsa": "error", + "@security/no-unsafe-rsa-encrypt": "error", + "@security/no-unsafe-rsa-sign": "error", + "@security/no-unsafe-rsa-key": "error", + "@security/no-unsafe-dsa-key": "error", + "@security/no-unsafe-dh-key": "error", + "@security/no-unsafe-3des": "error" + } +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/build-profile.json5 b/ArkUIKit/ColorAdaptionApp/entry/build-profile.json5 new file mode 100644 index 000000000..6bf0d132e --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/build-profile.json5 @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + "apiType": "stageMode", + "buildOption": { + "resOptions": { + "copyCodeResource": { + "enable": false + } + } + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/hvigorfile.ts b/ArkUIKit/ColorAdaptionApp/entry/hvigorfile.ts new file mode 100644 index 000000000..cfa8a00f7 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/hvigorfile.ts @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 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 { hapTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins: [] /* Custom plugin to extend the functionality of Hvigor. */ +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/obfuscation-rules.txt b/ArkUIKit/ColorAdaptionApp/entry/obfuscation-rules.txt new file mode 100644 index 000000000..272efb6ca --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/obfuscation-rules.txt @@ -0,0 +1,23 @@ +# Define project specific obfuscation rules here. +# You can include the obfuscation configuration files in the current module's build-profile.json5. +# +# For more details, see +# https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5 + +# Obfuscation options: +# -disable-obfuscation: disable all obfuscations +# -enable-property-obfuscation: obfuscate the property names +# -enable-toplevel-obfuscation: obfuscate the names in the global scope +# -compact: remove unnecessary blank spaces and all line feeds +# -remove-log: remove all console.* statements +# -print-namecache: print the name cache that contains the mapping from the old names to new names +# -apply-namecache: reuse the given cache file + +# Keep options: +# -keep-property-name: specifies property names that you want to keep +# -keep-global-name: specifies names that you want to keep in the global scope + +-enable-property-obfuscation +-enable-toplevel-obfuscation +-enable-filename-obfuscation +-enable-export-obfuscation \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/oh-package.json5 b/ArkUIKit/ColorAdaptionApp/entry/oh-package.json5 new file mode 100644 index 000000000..c9cb6c817 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/oh-package.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + "name": "entry", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "", + "author": "", + "license": "", + "dependencies": {} +} + diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/entryability/EntryAbility.ets b/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 000000000..4bff7f302 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2025 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 { AbilityConstant, Configuration, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { window } from '@kit.ArkUI'; + +const DOMAIN = 0x0000; + +export default class EntryAbility extends UIAbility { + // [Start create_app] + onCreate(): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_DARK); + } + // [End create_app] + // [Start update_app] + onConfigurationUpdate(newConfig: Configuration): void { + AppStorage.setOrCreate('currentColorMode', newConfig.colorMode); + hilog.info(0x0000, 'testTag', 'the newConfig.colorMode is %{public}s', JSON.stringify(AppStorage.get('currentColorMode')) ?? ''); + } + // [End update_app] + onDestroy(): void { + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/Index', (err) => { + if (err.code) { + hilog.error(DOMAIN, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err)); + return; + } + hilog.info(DOMAIN, 'testTag', 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onBackground'); + } +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets new file mode 100644 index 000000000..0a97e21bd --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2025 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 { hilog } from '@kit.PerformanceAnalysisKit'; +import { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; + +const DOMAIN = 0x0000; + +export default class EntryBackupAbility extends BackupExtensionAbility { + async onBackup() { + hilog.info(DOMAIN, 'testTag', 'onBackup ok'); + await Promise.resolve(); + } + + async onRestore(bundleVersion: BundleVersion) { + hilog.info(DOMAIN, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); + await Promise.resolve(); + } +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/pages/BuilderNodeAdaptation.ets b/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/pages/BuilderNodeAdaptation.ets new file mode 100644 index 000000000..8f09489df --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/pages/BuilderNodeAdaptation.ets @@ -0,0 +1,197 @@ +/* + * Copyright (c) 2025 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 { NodeController, BuilderNode, FrameNode, UIContext, FrameCallback } from '@kit.ArkUI'; +import { AbilityConstant, Configuration, ConfigurationConstant, EnvironmentCallback } from '@kit.AbilityKit'; +import hilog from '@ohos.hilog'; + +const TAG = '[Sample_ColorAdaption_App]'; +const DOMAIN = 0xFF00; + +class Params { + public text: string = ''; + + constructor(text: string) { + this.text = text; + } +} + +// 自定义组件 +@Component +struct TextBuilder { + // 作为自定义组件中需要更新的属性,数据类型为基础属性,定义为@Prop + @Prop message: string = 'TextBuilder'; + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + .margin({ bottom: 36 }) + } + } + } +} + +@Builder +function buildText(params: Params) { + Column() { + Text(params.text) + .fontSize(50) + .fontWeight(FontWeight.Bold) + .margin({ bottom: 36 }) + TextBuilder({ message: params.text }) // 自定义组件 + }.backgroundColor($r('sys.color.ohos_id_color_background')) +} + +// 继承NodeController实现自定义textNode控制器 +class TextNodeController extends NodeController { + private textNode: BuilderNode<[Params]> | null = null; + private message: string = ''; + + constructor(message: string) { + super(); + this.message = message; + } + + makeNode(context: UIContext): FrameNode | null { + return this.textNode?.getFrameNode() ? this.textNode?.getFrameNode() : null; + } + + createNode(context: UIContext) { + this.textNode = new BuilderNode(context); + this.textNode.build(wrapBuilder<[Params]>(buildText), new Params(this.message)); + builderNodeMap.push(this.textNode); + } + + deleteNode() { + let node = builderNodeMap.pop(); + node?.dispose(); + } + + update(message: string) { + if (this.textNode !== null) { + // 调用update进行更新 + this.textNode.update(new Params(message)); + } + } +} + +// 记录创建的自定义节点对象 +const builderNodeMap: BuilderNode<[Params]>[] = []; + +class MyFrameCallback extends FrameCallback { + onFrame() { + updateColorMode(); + } +} + +function updateColorMode() { + builderNodeMap.forEach((value, index) => { + // 通知BuilderNode环境变量改变,触发深浅色切换 + value.updateConfiguration(); + }) +} + +@Entry +@Component +struct Index { + @State message: string = 'hello'; + private textNodeController: TextNodeController = new TextNodeController(this.message); + // [Start prop] + @StorageProp('currentColorMode') @Watch('onColorModeChange') currentMode: number = ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT; + // [End prop] + // [Start color_mode_change_appear] + aboutToAppear(): void { + // [StartExclude color_mode_change_appear] + let environmentCallback: EnvironmentCallback = { + onMemoryLevel: (level: AbilityConstant.MemoryLevel): void => { + hilog.info(DOMAIN, TAG, 'onMemoryLevel'); + }, + onConfigurationUpdated: (config: Configuration): void => { + hilog.info(DOMAIN, TAG, 'onConfigurationUpdated ' + JSON.stringify(config)); + this.getUIContext()?.postFrameCallback(new MyFrameCallback()); + } + }; + // 注册监听回调 + this.getUIContext().getHostContext()?.getApplicationContext().on('environment', environmentCallback); + // 设置应用深浅色跟随系统 + this.getUIContext() + .getHostContext()?.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_DARK); + //创建自定义节点并添加至map + this.textNodeController.createNode(this.getUIContext()); + // [EndExclude color_mode_change_appear] + if (this.currentMode == ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT) { + //当前为浅色模式,资源初始化逻辑 + // [StartExclude color_mode_change_appear] + this.getUIContext() + .getHostContext()?.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT); + // [EndExclude color_mode_change_appear] + } else { + //当前为深色模式,资源初始化逻辑 + // [StartExclude color_mode_change_appear] + this.getUIContext() + .getHostContext()?.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_DARK); + // [EndExclude color_mode_change_appear] + } + } + // [End color_mode_change_appear] + // [Start color_mode_change] + onColorModeChange(): void { + if (this.currentMode == ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT) { + //当前为浅色模式,资源初始化逻辑 + // [StartExclude color_mode_change] + this.getUIContext() + .getHostContext()?.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT); + // [EndExclude color_mode_change] + } else { + //当前为深色模式,资源初始化逻辑 + // [StartExclude color_mode_change] + this.getUIContext() + .getHostContext()?.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_DARK); + // [EndExclude color_mode_change] + } + } + // [End color_mode_change] + aboutToDisappear(): void { + //移除map中的引用,并将自定义节点释放 + this.textNodeController.deleteNode(); + } + + build() { + Row() { + Column() { + NodeContainer(this.textNodeController) + .width('100%') + .height(200) + .backgroundColor('#FFF0F0F0') + Button('Switch to Dark Mode') + .onClick(() => { + this.getUIContext() + .getHostContext()?.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_DARK); + }) + Button('Switch to Light Mode') + .onClick(() => { + this.getUIContext() + .getHostContext()?.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT); + }) + } + .width('100%') + .height('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/pages/ImageAdaptation.ets b/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/pages/ImageAdaptation.ets new file mode 100644 index 000000000..232a13ff6 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/pages/ImageAdaptation.ets @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2025 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. + */ + +@Entry +@Component +struct dark_light_color_adaptation { + + build() { + RelativeContainer() { + Text('Use system-defined colors') + .fontColor($r('sys.color.ohos_id_color_text_primary')) + + Image($rawfile('app.media.pic_svg.svg')) + .width(100) + .margin({top:20}) + .fillColor($r('sys.color.ohos_id_color_text_primary')) + + } + .height('100%') + .width('100%') + } +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/pages/Index.ets b/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/pages/Index.ets new file mode 100644 index 000000000..44f1a0a3c --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2025 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. + */ + +interface Ary { + path:string, + name:string +} +@Entry +@Component +struct Index { + ary:Ary[]=[ + { + name:'BuilderNodeAdaptation', + path:'pages/BuilderNodeAdaptation' + }, + { + name:'ImageAdaptation', + path:'pages/ImageAdaptation' + }, + { + name:'SwitchColorMode', + path:'pages/SwitchColorMode' + }, + ] + build() { + Scroll() { + Column({ space: 10 }) { + ForEach(this.ary,(item:Ary)=>{ + Button(item.name) + .onClick(() => this.getUIContext().getRouter().pushUrl({url: item.path})) + },(item:Ary)=>item.name) + } + .width('100%') + } + } +} diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/pages/SwitchColorMode.ets b/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/pages/SwitchColorMode.ets new file mode 100644 index 000000000..f19511c47 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/main/ets/pages/SwitchColorMode.ets @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2025 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. + */ + +@Entry +@Component +struct DisplayPage { + @State message: string = 'Hello World'; + @State colorMode: ThemeColorMode = ThemeColorMode.DARK; + + build() { + WithTheme({ colorMode: this.colorMode }) { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + Button('Switch ColorMode').onClick(() => { + if (this.colorMode === ThemeColorMode.LIGHT) { + this.colorMode = ThemeColorMode.DARK; + } else if (this.colorMode === ThemeColorMode.DARK) { + this.colorMode = ThemeColorMode.LIGHT; + } + }) + } + .width('100%') + } + .backgroundColor($r('sys.color.background_primary')) + .height('100%') + .expandSafeArea( + [SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.END, SafeAreaEdge.BOTTOM, SafeAreaEdge.START]) + } + } +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/main/module.json5 b/ArkUIKit/ColorAdaptionApp/entry/src/main/module.json5 new file mode 100644 index 000000000..e4226557b --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/main/module.json5 @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + "module": { + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + "deviceTypes": [ + "default" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ets", + "description": "$string:EntryAbility_desc", + "icon": "$media:layered_image", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:startIcon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "ohos.want.action.home" + ] + } + ] + } + ], + "extensionAbilities": [ + { + "name": "EntryBackupAbility", + "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", + "type": "backup", + "exported": false, + "metadata": [ + { + "name": "ohos.extension.backup", + "resource": "$profile:backup_config" + } + ], + } + ] + } +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/element/color.json b/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/element/color.json new file mode 100644 index 000000000..79b11c274 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#000000" + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/element/float.json b/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/element/float.json new file mode 100644 index 000000000..33ea22304 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/element/float.json @@ -0,0 +1,8 @@ +{ + "float": [ + { + "name": "page_text_font_size", + "value": "50fp" + } + ] +} diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/element/string.json b/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/element/string.json new file mode 100644 index 000000000..d24f047b5 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "ColorAdaptionApp" + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/media/background.png b/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/media/background.png new file mode 100644 index 0000000000000000000000000000000000000000..923f2b3f27e915d6871871deea0420eb45ce102f GIT binary patch literal 91942 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

c)ijgxDm}8EsRXFt3h@+Ufr7@DN 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 literal 0 HcmV?d00001 diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/profile/backup_config.json b/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/profile/backup_config.json new file mode 100644 index 000000000..78f40ae7c --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/profile/main_pages.json b/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 000000000..a0ddf4c5b --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,8 @@ +{ + "src": [ + "pages/Index", + "pages/ImageAdaptation", + "pages/BuilderNodeAdaptation", + "pages/SwitchColorMode" + ] +} diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/dark/element/color.json b/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/dark/element/color.json new file mode 100644 index 000000000..3c712962d --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/dark/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/rawfile/app.media.pic_svg.svg b/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/rawfile/app.media.pic_svg.svg new file mode 100644 index 000000000..4c552a3b1 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/main/resources/rawfile/app.media.pic_svg.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/mock/mock-config.json5 b/ArkUIKit/ColorAdaptionApp/entry/src/mock/mock-config.json5 new file mode 100644 index 000000000..b9a78e201 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/mock/mock-config.json5 @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2025 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. + */ + +{ +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/ohosTest/ets/test/Ability.test.ets b/ArkUIKit/ColorAdaptionApp/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 000000000..0f8ce9a2c --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/ohosTest/ets/test/Ability.test.ets @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2025 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 { hilog } from '@kit.PerformanceAnalysisKit'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function abilityTest() { + describe('ActsAbilityTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }) + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }) + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }) + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }) + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + hilog.info(0x0000, 'testTag', '%{public}s', 'it begin'); + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }) + }) +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/ohosTest/ets/test/Index.test.ets b/ArkUIKit/ColorAdaptionApp/entry/src/ohosTest/ets/test/Index.test.ets new file mode 100644 index 000000000..918ec0a75 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/ohosTest/ets/test/Index.test.ets @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2025 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 { describe, it, expect, beforeAll } from '@ohos/hypium'; +// 导入测试依赖kit +import hilog from '@ohos.hilog'; +import { abilityDelegatorRegistry, Driver, ON, MatchPattern } from '@kit.TestKit'; +import { UIAbility, Want } from '@kit.AbilityKit'; + +const TAG = '[Sample_MyApp]'; +const DOMAIN = 0xF811; +const BUNDLE = 'MyApp_'; +const delegator: abilityDelegatorRegistry.AbilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); +const bundleName = abilityDelegatorRegistry.getArguments().bundleName; +let want: Want; + +export default function IndexTest() { + describe('IndexTest', () => { + beforeAll(async () => { + want = { + bundleName: bundleName, + abilityName: 'EntryAbility' + }; + await delegator.startAbility(want); + let driver = Driver.create(); + await driver.delayMs(1000); + const ability: UIAbility = await delegator.getCurrentTopAbility(); + expect(ability.context.abilityInfo.name).assertEqual('EntryAbility'); + }) + + /** + * @tc.number ColorAdaptionTest_001 + * @tc.name testColorAdaption + * @tc.desc 测试深浅适配是否显示正常 + */ + it(BUNDLE + 'ColorAdaptionTest_001', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + 'ColorAdaptionTest_001 begin'); + let driver = Driver.create(); + let button = await driver.findComponent(ON.text('BuilderNodeAdaptation', MatchPattern.CONTAINS)); + await button.click(); + let button1 = await driver.findComponent(ON.text('Switch to Dark Mode', MatchPattern.CONTAINS)); + await button1.click(); + let button2 = await driver.findComponent(ON.text('Switch to Light Mode', MatchPattern.CONTAINS)); + await button2.click(); + await driver.pressBack(); + hilog.info(DOMAIN, TAG, BUNDLE + 'ColorAdaptionTest_001 end'); + done(); + }) + + /** + * @tc.number ColorAdaptionTest_002 + * @tc.name testColorAdaption + * @tc.desc 测试深浅适配是否显示正常 + */ + it(BUNDLE + 'ColorAdaptionTest_002', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + 'ColorAdaptionTest_002 begin'); + let driver = Driver.create(); + let button = await driver.findComponent(ON.text('ImageAdaptation', MatchPattern.CONTAINS)); + await button.click(); + await driver.pressBack(); + hilog.info(DOMAIN, TAG, BUNDLE + 'ColorAdaptionTest_002 end'); + done(); + }) + + /** + * @tc.number ColorAdaptionTest_003 + * @tc.name testColorAdaption + * @tc.desc 测试深浅适配是否显示正常 + */ + it(BUNDLE + 'ColorAdaptionTest_003', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + 'ColorAdaptionTest_003 begin'); + let driver = Driver.create(); + let button = await driver.findComponent(ON.text('SwitchColorMode', MatchPattern.CONTAINS)); + await button.click(); + let button1 = await driver.findComponent(ON.text('Switch ColorMode', MatchPattern.CONTAINS)); + await button1.click(); + await driver.pressBack(); + hilog.info(DOMAIN, TAG, BUNDLE + 'ColorAdaptionTest_003 end'); + done(); + }) + }) +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/ohosTest/ets/test/List.test.ets b/ArkUIKit/ColorAdaptionApp/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 000000000..a1951e50c --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2025 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 abilityTest from './Ability.test'; +import IndexTest from './Index.test'; + +export default function testsuite() { + abilityTest(); + IndexTest(); +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/ohosTest/module.json5 b/ArkUIKit/ColorAdaptionApp/entry/src/ohosTest/module.json5 new file mode 100644 index 000000000..84d30586d --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/ohosTest/module.json5 @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + "module": { + "name": "entry_test", + "type": "feature", + "deviceTypes": [ + "default" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/test/List.test.ets b/ArkUIKit/ColorAdaptionApp/entry/src/test/List.test.ets new file mode 100644 index 000000000..f1186b1f5 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/test/List.test.ets @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 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 localUnitTest from './LocalUnit.test'; + +export default function testsuite() { + localUnitTest(); +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/entry/src/test/LocalUnit.test.ets b/ArkUIKit/ColorAdaptionApp/entry/src/test/LocalUnit.test.ets new file mode 100644 index 000000000..7fc57c77d --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/entry/src/test/LocalUnit.test.ets @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2025 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 { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function localUnitTest() { + describe('localUnitTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }); + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }); + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }); + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }); + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }); + }); +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/hvigor/hvigor-config.json5 b/ArkUIKit/ColorAdaptionApp/hvigor/hvigor-config.json5 new file mode 100644 index 000000000..b8fea3f09 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/hvigor/hvigor-config.json5 @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + "modelVersion": "6.0.0", + "dependencies": { + }, + "execution": { + // "analyze": "normal", /* Define the build analyze mode. Value: [ "normal" | "advanced" | "ultrafine" | false ]. Default: "normal" */ + // "daemon": true, /* Enable daemon compilation. Value: [ true | false ]. Default: true */ + // "incremental": true, /* Enable incremental compilation. Value: [ true | false ]. Default: true */ + // "parallel": true, /* Enable parallel compilation. Value: [ true | false ]. Default: true */ + // "typeCheck": false, /* Enable typeCheck. Value: [ true | false ]. Default: false */ + // "optimizationStrategy": "memory" /* Define the optimization strategy. Value: [ "memory" | "performance" ]. Default: "memory" */ + }, + "logging": { + // "level": "info" /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */ + }, + "debugging": { + // "stacktrace": false /* Disable stacktrace compilation. Value: [ true | false ]. Default: false */ + }, + "nodeOptions": { + // "maxOldSpaceSize": 8192 /* Enable nodeOptions maxOldSpaceSize compilation. Unit M. Used for the daemon process. Default: 8192*/ + // "exposeGC": true /* Enable to trigger garbage collection explicitly. Default: true*/ + } +} diff --git a/ArkUIKit/ColorAdaptionApp/hvigorfile.ts b/ArkUIKit/ColorAdaptionApp/hvigorfile.ts new file mode 100644 index 000000000..e3340f07e --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/hvigorfile.ts @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 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 { appTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins: [] /* Custom plugin to extend the functionality of Hvigor. */ +} \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/oh-package.json5 b/ArkUIKit/ColorAdaptionApp/oh-package.json5 new file mode 100644 index 000000000..69cb43cba --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/oh-package.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 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. + */ + +{ + "modelVersion": "6.0.0", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.24", + "@ohos/hamock": "1.0.0" + } +} diff --git a/ArkUIKit/ColorAdaptionApp/ohosTest.md b/ArkUIKit/ColorAdaptionApp/ohosTest.md new file mode 100644 index 000000000..b021f6978 --- /dev/null +++ b/ArkUIKit/ColorAdaptionApp/ohosTest.md @@ -0,0 +1,7 @@ +# ColorAdaption 测试用例归档 + +## 用例表 + +| 测试功能 | 预置条件 | 输入 | 预期输出 | 是否自动 | 测试结果 | +| ------------------- | -------------- |---------------------------------------|----------| :------- | -------- | +| ColorAdaption示例代码验证 | 设备正常运行 | 进入首页,进行深浅色切换 | 切换成功,显示正常 | 是 | Pass | \ No newline at end of file diff --git a/ArkUIKit/ColorAdaptionApp/screenshots/device/image1.png b/ArkUIKit/ColorAdaptionApp/screenshots/device/image1.png new file mode 100644 index 0000000000000000000000000000000000000000..561b7dac1d9c4062dca6fd16c0d464d2b96e5deb GIT binary patch literal 6278 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 literal 0 HcmV?d00001 diff --git a/ArkUIKit/ColorAdaptionApp/screenshots/device/image2.png b/ArkUIKit/ColorAdaptionApp/screenshots/device/image2.png new file mode 100644 index 0000000000000000000000000000000000000000..339e35aee8e20ce14ca8709dc03e6118d8cab053 GIT binary patch literal 3663 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