diff --git a/CustomDialogEts/LICENSE b/CustomDialogEts/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..80576ef141485b36eea4aebf25af97020bc2de44
--- /dev/null
+++ b/CustomDialogEts/LICENSE
@@ -0,0 +1,78 @@
+ Copyright (c) 2021 Huawei Device Co., Ltd. All rights reserved.
+
+ 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.
+
+Apache License, Version 2.0
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
+
+"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
+
+2. Grant of Copyright License.
+
+Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License.
+
+Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution.
+
+You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
+1.You must give any other recipients of the Work or Derivative Works a copy of this License; and
+2.You must cause any modified files to carry prominent notices stating that You changed the files; and
+3.You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
+4.If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
+
+You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions.
+
+Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
+
+6. Trademarks.
+
+This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty.
+
+Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability.
+
+In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability.
+
+While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
\ No newline at end of file
diff --git a/CustomDialogEts/README.md b/CustomDialogEts/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..1c63f9e365e16aa3796f8e4aba734af91ce273e6
--- /dev/null
+++ b/CustomDialogEts/README.md
@@ -0,0 +1,4 @@
+# CustomDialogEts
+简介
+• 此demo是用于展示基于eTS全局UI的警告弹窗与自定义弹窗的实现。
+
diff --git a/ImageEditorTemplate/build.gradle b/CustomDialogEts/build.gradle
similarity index 83%
rename from ImageEditorTemplate/build.gradle
rename to CustomDialogEts/build.gradle
index 3f34fa2f3a2b7f43a2b7335f81dd79871aea35d7..8091e0ece10575993ba570722aadd6788144f460 100644
--- a/ImageEditorTemplate/build.gradle
+++ b/CustomDialogEts/build.gradle
@@ -3,9 +3,10 @@ apply plugin: 'com.huawei.ohos.app'
//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510
ohos {
- compileSdkVersion 6
+ compileSdkVersion 7
+ supportSystem "standard"
}
-
+
buildscript {
repositories {
maven {
@@ -16,8 +17,8 @@ buildscript {
}
}
dependencies {
- classpath 'com.huawei.ohos:hap:3.0.1.3'
- classpath 'com.huawei.ohos:decctest:3.0.1.0'
+ classpath 'com.huawei.ohos:hap:3.0.3.4'
+ classpath 'com.huawei.ohos:decctest:1.2.6.0'
}
}
diff --git a/ImageEditorTemplate/entry/.gitignore b/CustomDialogEts/entry/.gitignore
similarity index 100%
rename from ImageEditorTemplate/entry/.gitignore
rename to CustomDialogEts/entry/.gitignore
diff --git a/CustomDialogEts/entry/README.md b/CustomDialogEts/entry/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..45de83cf619da78d57b7e00f8e0614a53e84c8ea
--- /dev/null
+++ b/CustomDialogEts/entry/README.md
@@ -0,0 +1,4 @@
+# CustomDialogOpenH
+简介
+• 此demo是展示基于ETS的全局UI中警告弹框与自定义弹框的的实现。
+
diff --git a/NewsClientOpenHarmony/entry/build.gradle b/CustomDialogEts/entry/build.gradle
similarity index 79%
rename from NewsClientOpenHarmony/entry/build.gradle
rename to CustomDialogEts/entry/build.gradle
index 6c2dca308825d3d38937c45c03918e1628bbfb75..1587dd1948941f3eaaf092ae6cae7969cb6895ff 100644
--- a/NewsClientOpenHarmony/entry/build.gradle
+++ b/CustomDialogEts/entry/build.gradle
@@ -1,9 +1,9 @@
apply plugin: 'com.huawei.ohos.hap'
//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510
ohos {
- compileSdkVersion 6
+ compileSdkVersion 7
defaultConfig {
- compatibleSdkVersion 6
+ compatibleSdkVersion 7
}
buildTypes {
release {
@@ -13,11 +13,9 @@ ohos {
}
}
}
-
- supportSystem "standard"
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
- testImplementation 'junit:junit:4.13'
+ testImplementation 'junit:junit:4.13.1'
}
diff --git a/ImageEditorTemplate/entry/proguard-rules.pro b/CustomDialogEts/entry/proguard-rules.pro
similarity index 100%
rename from ImageEditorTemplate/entry/proguard-rules.pro
rename to CustomDialogEts/entry/proguard-rules.pro
diff --git a/ImageEditorTemplate/entry/src/main/config.json b/CustomDialogEts/entry/src/main/config.json
similarity index 60%
rename from ImageEditorTemplate/entry/src/main/config.json
rename to CustomDialogEts/entry/src/main/config.json
index 9c46e1057e777ec7799c4bddf145c2567fbc4b71..022f80d80d65b9df6f8693f2ef7564ba9f6707b9 100644
--- a/ImageEditorTemplate/entry/src/main/config.json
+++ b/CustomDialogEts/entry/src/main/config.json
@@ -1,6 +1,6 @@
{
"app": {
- "bundleName": "com.huawei.cookbook",
+ "bundleName": "com.huawei.customdialogopenh",
"vendor": "huawei",
"version": {
"code": 1000000,
@@ -9,9 +9,9 @@
},
"deviceConfig": {},
"module": {
- "package": "com.huawei.imageeditortemplate",
+ "package": "com.huawei.customdialogopenh",
"name": ".MyApplication",
- "mainAbility": "com.huawei.imageeditortemplate.MainAbility",
+ "mainAbility": ".MainAbility",
"deviceType": [
"phone"
],
@@ -33,25 +33,32 @@
]
}
],
+ "orientation": "unspecified",
"visible": true,
- "name": "com.huawei.imageeditortemplate.MainAbility",
+ "srcPath": "MainAbility",
+ "name": ".MainAbility",
+ "srcLanguage": "ets",
"icon": "$media:icon",
- "description": "$string:mainability_description",
+ "description": "$string:description_mainability",
+ "formsEnabled": false,
"label": "$string:entry_MainAbility",
"type": "page",
- "launchType": "standard",
- "orientation": "portrait"
+ "launchType": "standard"
}
],
"js": [
{
+ "mode": {
+ "syntax": "ets",
+ "type": "pageAbility"
+ },
"pages": [
- "pages/index/index"
+ "pages/index"
],
- "name": "default",
+ "name": ".MainAbility",
"window": {
"designWidth": 720,
- "autoDesignWidth": true
+ "autoDesignWidth": false
}
}
]
diff --git a/ImageEditorTemplate/entry/src/main/js/default/app.js b/CustomDialogEts/entry/src/main/ets/MainAbility/app.ets
similarity index 37%
rename from ImageEditorTemplate/entry/src/main/js/default/app.js
rename to CustomDialogEts/entry/src/main/ets/MainAbility/app.ets
index eb885bb5eddc48644dc7b2ebdf1e9d000f089ea1..b7a0995c8e441cac86e21e06e7c9071664482b1c 100644
--- a/ImageEditorTemplate/entry/src/main/js/default/app.js
+++ b/CustomDialogEts/entry/src/main/ets/MainAbility/app.ets
@@ -1,6 +1,8 @@
export default {
onCreate() {
+ console.info('Application onCreate')
},
onDestroy() {
- }
-};
+ console.info('Application onDestroy')
+ },
+}
\ No newline at end of file
diff --git a/CustomDialogEts/entry/src/main/ets/MainAbility/pages/index.ets b/CustomDialogEts/entry/src/main/ets/MainAbility/pages/index.ets
new file mode 100644
index 0000000000000000000000000000000000000000..6ddcab06a62d2cbc5455b3fe028117ff0218296b
--- /dev/null
+++ b/CustomDialogEts/entry/src/main/ets/MainAbility/pages/index.ets
@@ -0,0 +1,104 @@
+@CustomDialog
+struct CustomDialogExample {
+ controller: CustomDialogController
+ cancel: () => void
+ confirm: () => void
+
+ build() {
+ Column() {
+ Text('Software uninstall').width('70%').fontSize(20).margin({ top: 10, bottom: 10 })
+ Image($r('app.media.icon')).width(80).height(80)
+ Text('Whether to uninstall a software?').fontSize(16).margin({ bottom: 10 })
+ Flex({ justifyContent: FlexAlign.SpaceAround }) {
+ Button('cancel')
+ .onClick(() => {
+ this.controller.close()
+ this.cancel()
+ }).backgroundColor(0xffffff).fontColor(Color.Black)
+ Button('confirm')
+ .onClick(() => {
+ this.controller.close()
+ this.confirm()
+ }).backgroundColor(0xffffff).fontColor(Color.Red)
+ }.margin({ bottom: 10 })
+ }
+ }
+}
+
+@Entry
+@Component
+struct Index {
+ dialogController: CustomDialogController = new CustomDialogController({
+ builder: CustomDialogExample({ cancel: this.onCancel, confirm: this.onAccept }),
+ cancel: this.existApp,
+ autoCancel: true
+ })
+ onCancel() {
+ console.info('Callback when the first button is clicked')
+ }
+ onAccept() {
+ console.info('Callback when the second button is clicked')
+ }
+ existApp() {
+ console.info('Click the callback in the blank area')
+ }
+ build() {
+ Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
+ Button('one button dialog')
+ .onClick(() => {
+ AlertDialog.show(
+ {
+ title: 'title',
+ message: 'text',
+ confirm: {
+ value: 'button',
+ action: () => {
+ console.info('Button-clicking callback')
+ }
+ },
+ cancel: () => {
+ console.info('Closed callbacks')
+ }
+ }
+ )
+ }).backgroundColor(0x317aff)
+ .height(100)
+ .width(300)
+ Button('two button dialog')
+ .onClick(() => {
+ AlertDialog.show(
+ {
+ title: 'title',
+ message: 'text',
+ primaryButton: {
+ value: 'cancel',
+ action: () => {
+ console.info('Callback when the first button is clicked')
+ }
+ },
+ secondaryButton: {
+ value: 'ok',
+ action: () => {
+ console.info('Callback when the second button is clicked')
+ }
+ },
+ cancel: () => {
+ console.info('Closed callbacks')
+ }
+ }
+ )
+ }).backgroundColor(0x317aff)
+ .margin({ top: 60 }).height(100).width(300)
+
+
+ Button('Customization dialog')
+ .onClick(() => {
+ this.dialogController.open()
+ }).backgroundColor(0x317aff)
+ .margin({ top: 60 }).height(100).width(300)
+
+ }
+ .width('100%')
+ .height('100%')
+ }
+}
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/resources/base/element/string.json b/CustomDialogEts/entry/src/main/resources/base/element/string.json
similarity index 60%
rename from ImageEditorTemplate/entry/src/main/resources/base/element/string.json
rename to CustomDialogEts/entry/src/main/resources/base/element/string.json
index 0bae6bd40f7360d5d818998221b199d3ec0f69c0..03b8532c53ca563f8ed6b1e21d20ad3f67a68906 100644
--- a/ImageEditorTemplate/entry/src/main/resources/base/element/string.json
+++ b/CustomDialogEts/entry/src/main/resources/base/element/string.json
@@ -5,8 +5,8 @@
"value": "entry_MainAbility"
},
{
- "name": "mainability_description",
- "value": "JS_Empty Ability"
+ "name": "description_mainability",
+ "value": "ETS_Empty Ability"
}
]
}
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/resources/base/media/icon.png b/CustomDialogEts/entry/src/main/resources/base/media/icon.png
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/resources/base/media/icon.png
rename to CustomDialogEts/entry/src/main/resources/base/media/icon.png
diff --git a/ImageEditorTemplate/gradle/wrapper/gradle-wrapper.jar b/CustomDialogEts/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from ImageEditorTemplate/gradle/wrapper/gradle-wrapper.jar
rename to CustomDialogEts/gradle/wrapper/gradle-wrapper.jar
diff --git a/ImageEditorTemplate/gradle/wrapper/gradle-wrapper.properties b/CustomDialogEts/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from ImageEditorTemplate/gradle/wrapper/gradle-wrapper.properties
rename to CustomDialogEts/gradle/wrapper/gradle-wrapper.properties
diff --git a/ImageEditorTemplate/settings.gradle b/CustomDialogEts/settings.gradle
similarity index 100%
rename from ImageEditorTemplate/settings.gradle
rename to CustomDialogEts/settings.gradle
diff --git a/FlowLayoutEts/LICENSE b/FlowLayoutEts/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..80576ef141485b36eea4aebf25af97020bc2de44
--- /dev/null
+++ b/FlowLayoutEts/LICENSE
@@ -0,0 +1,78 @@
+ Copyright (c) 2021 Huawei Device Co., Ltd. All rights reserved.
+
+ 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.
+
+Apache License, Version 2.0
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
+
+"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
+
+2. Grant of Copyright License.
+
+Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License.
+
+Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution.
+
+You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
+1.You must give any other recipients of the Work or Derivative Works a copy of this License; and
+2.You must cause any modified files to carry prominent notices stating that You changed the files; and
+3.You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
+4.If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
+
+You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions.
+
+Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
+
+6. Trademarks.
+
+This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty.
+
+Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability.
+
+In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability.
+
+While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
\ No newline at end of file
diff --git a/FlowLayoutEts/README.md b/FlowLayoutEts/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..fdc6116354dfc195ea6c398cf634622e94e4dc65
--- /dev/null
+++ b/FlowLayoutEts/README.md
@@ -0,0 +1,4 @@
+# FlowLayoutEts
+简介
+• 此demo是展示基于eTS的流式布局是如何实现的。
+
diff --git a/NewsClientOpenHarmony/build.gradle b/FlowLayoutEts/build.gradle
similarity index 57%
rename from NewsClientOpenHarmony/build.gradle
rename to FlowLayoutEts/build.gradle
index 6d094a769b4734bd4c9bd3fdf84a0d7bcd0054b5..8091e0ece10575993ba570722aadd6788144f460 100644
--- a/NewsClientOpenHarmony/build.gradle
+++ b/FlowLayoutEts/build.gradle
@@ -3,31 +3,32 @@ apply plugin: 'com.huawei.ohos.app'
//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510
ohos {
- compileSdkVersion 6
+ compileSdkVersion 7
+ supportSystem "standard"
}
-
+
buildscript {
repositories {
maven {
- url 'http://repo.ark.tools.huawei.com/artifactory/maven-public/'
+ url 'https://repo.huaweicloud.com/repository/maven/'
}
maven {
- url 'http://mirrors.tools.huawei.com/maven/'
+ url 'https://developer.huawei.com/repo/'
}
}
dependencies {
- classpath 'com.huawei.ohos:hap:3.0.1.5'
- classpath 'com.huawei.ohos:decctest:3.0.1.1'
+ classpath 'com.huawei.ohos:hap:3.0.3.4'
+ classpath 'com.huawei.ohos:decctest:1.2.6.0'
}
}
allprojects {
repositories {
maven {
- url 'http://repo.ark.tools.huawei.com/artifactory/maven-public/'
+ url 'https://repo.huaweicloud.com/repository/maven/'
}
maven {
- url 'http://mirrors.tools.huawei.com/maven/'
+ url 'https://developer.huawei.com/repo/'
}
}
}
diff --git a/ImageEditorTemplate/entry/build.gradle b/FlowLayoutEts/entry/build.gradle
similarity index 71%
rename from ImageEditorTemplate/entry/build.gradle
rename to FlowLayoutEts/entry/build.gradle
index ea49d23d75df2f5635e2a12bf0569aa97506a103..1587dd1948941f3eaaf092ae6cae7969cb6895ff 100644
--- a/ImageEditorTemplate/entry/build.gradle
+++ b/FlowLayoutEts/entry/build.gradle
@@ -1,9 +1,9 @@
apply plugin: 'com.huawei.ohos.hap'
//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510
ohos {
- compileSdkVersion 6
+ compileSdkVersion 7
defaultConfig {
- compatibleSdkVersion 6
+ compatibleSdkVersion 7
}
buildTypes {
release {
@@ -13,13 +13,9 @@ ohos {
}
}
}
-
- supportSystem "standard"
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
- testImplementation 'junit:junit:4.13'
- ohosTestImplementation 'com.huawei.ohos.testkit:runner:1.0.0.200'
+ testImplementation 'junit:junit:4.13.1'
}
-
diff --git a/NewsClientOpenHarmony/entry/proguard-rules.pro b/FlowLayoutEts/entry/proguard-rules.pro
similarity index 100%
rename from NewsClientOpenHarmony/entry/proguard-rules.pro
rename to FlowLayoutEts/entry/proguard-rules.pro
diff --git a/NewsClientOpenHarmony/entry/src/main/config.json b/FlowLayoutEts/entry/src/main/config.json
similarity index 65%
rename from NewsClientOpenHarmony/entry/src/main/config.json
rename to FlowLayoutEts/entry/src/main/config.json
index 203c03346e40ab369a0e8ea50c1aeda450e4ec24..40c1f080aa9fdc4663bcd94b7296dd5b4e3fca85 100644
--- a/NewsClientOpenHarmony/entry/src/main/config.json
+++ b/FlowLayoutEts/entry/src/main/config.json
@@ -1,7 +1,7 @@
{
"app": {
- "bundleName": "com.huawei.newsdemo",
- "vendor": "demo",
+ "bundleName": "com.huawei.test66",
+ "vendor": "huawei",
"version": {
"code": 1000000,
"name": "1.0.0"
@@ -9,9 +9,9 @@
},
"deviceConfig": {},
"module": {
- "package": "com.huawei.newsdemo",
+ "package": "com.huawei.flowlayoutetsopenh",
"name": ".MyApplication",
- "mainAbility": "com.huawei.newsdemo.MainAbility",
+ "mainAbility": ".MainAbility",
"deviceType": [
"phone"
],
@@ -35,22 +35,27 @@
],
"orientation": "unspecified",
"visible": true,
- "name": "com.huawei.newsdemo.MainAbility",
+ "srcPath": "MainAbility",
+ "name": ".MainAbility",
+ "srcLanguage": "ets",
"icon": "$media:icon",
- "description": "$string:mainability_description",
+ "description": "$string:description_mainability",
"formsEnabled": false,
- "label": "$string:NewsClient",
+ "label": "$string:entry_MainAbility",
"type": "page",
"launchType": "standard"
}
],
"js": [
{
+ "mode": {
+ "syntax": "ets",
+ "type": "pageAbility"
+ },
"pages": [
- "pages/index/index",
- "pages/detail/detail"
+ "pages/index"
],
- "name": "default",
+ "name": ".MainAbility",
"window": {
"designWidth": 720,
"autoDesignWidth": false
diff --git a/FlowLayoutEts/entry/src/main/ets/MainAbility/app.ets b/FlowLayoutEts/entry/src/main/ets/MainAbility/app.ets
new file mode 100644
index 0000000000000000000000000000000000000000..b7a0995c8e441cac86e21e06e7c9071664482b1c
--- /dev/null
+++ b/FlowLayoutEts/entry/src/main/ets/MainAbility/app.ets
@@ -0,0 +1,8 @@
+export default {
+ onCreate() {
+ console.info('Application onCreate')
+ },
+ onDestroy() {
+ console.info('Application onDestroy')
+ },
+}
\ No newline at end of file
diff --git a/FlowLayoutEts/entry/src/main/ets/MainAbility/pages/index.ets b/FlowLayoutEts/entry/src/main/ets/MainAbility/pages/index.ets
new file mode 100644
index 0000000000000000000000000000000000000000..788e6fbb176be50fe0e74268ce8ab5cdb5c67472
--- /dev/null
+++ b/FlowLayoutEts/entry/src/main/ets/MainAbility/pages/index.ets
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2021 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
+struct Search_Input {
+ @Link historyArr: string[]
+ @State private historyInput: string = ''
+
+ build() {
+ Flex({ alignItems: ItemAlign.Center }) {
+ // @ts-ignore
+ TextInput({ placeholder: '请输入...', text: this.historyInput })
+ .type(InputType.Normal)
+ .placeholderColor(Color.Red)
+ .placeholderFont({ size: 50, weight: 2 })
+ .enterKeyType(EnterKeyType.Search)
+ .caretColor(Color.Green)
+ .layoutWeight(8)
+ .height(40)
+ .borderRadius('20px')
+ .backgroundColor(Color.White)
+ .onChange((value: string) => {
+ this.historyInput = value
+ })
+
+ Button({ type: ButtonType.Capsule, stateEffect: false }) {
+ Text('搜索').fontSize(17).fontColor(Color.Blue)
+ }
+ .layoutWeight(2)
+ .backgroundColor('#00000000')
+ .onClick((event: ClickEvent) => {
+ if (this.historyInput != null && this.historyInput.length > 0) {
+ this.historyArr.unshift(this.historyInput)
+ this.historyInput = ''
+ }
+ })
+ }
+ .height(60)
+ .width('100%')
+ .borderStyle(BorderStyle.Dashed).borderWidth(5).borderColor(0xAFEEEE).borderRadius(10)
+ .padding({ left: 10 })
+ .backgroundColor('#FFedf2f5')
+ }
+}
+
+@Component
+struct Clear_History {
+ @Link historyArr: string[]
+
+ build() {
+ Flex({ alignItems: ItemAlign.Center }) {
+ if (this.historyArr.length > 0) {
+ Text('历史记录')
+ .fontSize(14)
+ .fontColor(Color.Grey)
+ .layoutWeight(8)
+
+ Text('清空')
+ .fontSize(14)
+ .fontColor(Color.Grey)
+ .layoutWeight(2)
+ .onClick((event: ClickEvent) => {
+ this.historyArr.splice(0, this.historyArr.length)
+ this.historyArr.length = 0
+ })
+ }
+ }
+ .height(40)
+ .padding({ left: 20, top: 10 })
+ }
+}
+
+@Component
+struct FlowLayout_Container {
+ @Link historyArr: string[]
+
+ build() {
+ Scroll() {
+ Flex({ justifyContent: FlexAlign.Start, wrap: FlexWrap.Wrap }) {
+ if (this.historyArr.length > 0) {
+ ForEach(this.historyArr,
+ (item: string) => {
+ Text(`${item}`)
+ .fontSize(18)
+ .borderStyle(BorderStyle.Solid)
+ .borderWidth('1px')
+ .borderColor('#dddddd')
+ .borderRadius('90px')
+ .padding({ top: 4, bottom: 4, right: 10, left: 10 })
+ .margin({ top: 10, right: 10 })
+ .textOverflow({ overflow: TextOverflow.Ellipsis })
+ .maxLines(2)
+ },
+ (item: string) => item.toString()
+ )
+ }
+ }
+ .margin({ left: 20, bottom: 100, right: 10 })
+ .padding({ bottom: 10 })
+ }
+ }
+}
+
+@Entry
+@Component
+struct Search_FlowLayout {
+ @State private historyArr: string[] = ["Text", "Button", "TextField", "Image", "Switch", "Checkbox", "RadioButton", "ProgressBar", "ScrollView"]
+
+ build() {
+ Column() {
+ Search_Input({ historyArr: $historyArr })
+ Clear_History({ historyArr: $historyArr })
+ FlowLayout_Container({ historyArr: $historyArr })
+ }
+ .height('100%')
+ .width('100%')
+ .alignItems(HorizontalAlign.Center)
+
+ }
+}
\ No newline at end of file
diff --git a/FlowLayoutEts/entry/src/main/resources/base/element/string.json b/FlowLayoutEts/entry/src/main/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..03b8532c53ca563f8ed6b1e21d20ad3f67a68906
--- /dev/null
+++ b/FlowLayoutEts/entry/src/main/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "entry_MainAbility",
+ "value": "entry_MainAbility"
+ },
+ {
+ "name": "description_mainability",
+ "value": "ETS_Empty Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/NewsClientOpenHarmony/entry/src/main/resources/base/media/icon.png b/FlowLayoutEts/entry/src/main/resources/base/media/icon.png
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/resources/base/media/icon.png
rename to FlowLayoutEts/entry/src/main/resources/base/media/icon.png
diff --git a/FlowLayoutEts/gradle/wrapper/gradle-wrapper.jar b/FlowLayoutEts/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..490fda8577df6c95960ba7077c43220e5bb2c0d9
Binary files /dev/null and b/FlowLayoutEts/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/FlowLayoutEts/gradle/wrapper/gradle-wrapper.properties b/FlowLayoutEts/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000000000000000000000000000000000000..f59159e865d4b59feb1b8c44b001f62fc5d58df4
--- /dev/null
+++ b/FlowLayoutEts/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://repo.huaweicloud.com/gradle/gradle-6.3-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/NewsClientOpenHarmony/settings.gradle b/FlowLayoutEts/settings.gradle
similarity index 100%
rename from NewsClientOpenHarmony/settings.gradle
rename to FlowLayoutEts/settings.gradle
diff --git a/ImageEditorTemplate/entry/package.json b/ImageEditorTemplate/entry/package.json
deleted file mode 100644
index 0967ef424bce6791893e9a57bb952f80fd536e93..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/package.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/Wallpaper.png b/ImageEditorTemplate/entry/src/main/js/default/common/images/Wallpaper.png
deleted file mode 100644
index 60d4841a80eb20c63de74306cb7f8350d6a85c48..0000000000000000000000000000000000000000
Binary files a/ImageEditorTemplate/entry/src/main/js/default/common/images/Wallpaper.png and /dev/null differ
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/adjust_blue.svg b/ImageEditorTemplate/entry/src/main/js/default/common/images/adjust_blue.svg
deleted file mode 100644
index e08ca4c697f021deeee824a4f1a13312c6d70710..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/common/images/adjust_blue.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/adjust_white.svg b/ImageEditorTemplate/entry/src/main/js/default/common/images/adjust_white.svg
deleted file mode 100644
index 6b8e74d597d9f7513d6798e73fc6367e31f0422a..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/common/images/adjust_white.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/advance.svg b/ImageEditorTemplate/entry/src/main/js/default/common/images/advance.svg
deleted file mode 100644
index f20f71bca6db131419c86baf26e5dc4e18baf061..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/common/images/advance.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/back.svg b/ImageEditorTemplate/entry/src/main/js/default/common/images/back.svg
deleted file mode 100644
index 2b534039d1a59673311412b22b50d7209caec72b..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/common/images/back.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/bg-tv.jpg b/ImageEditorTemplate/entry/src/main/js/default/common/images/bg-tv.jpg
deleted file mode 100644
index e2c07b9700afb5683696f5793e865efd7744e0e0..0000000000000000000000000000000000000000
Binary files a/ImageEditorTemplate/entry/src/main/js/default/common/images/bg-tv.jpg and /dev/null differ
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/contrast_blue.svg b/ImageEditorTemplate/entry/src/main/js/default/common/images/contrast_blue.svg
deleted file mode 100644
index 36df00071d8d4e0263b63ff7931336dcc54c6a9a..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/common/images/contrast_blue.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/contrast_white.svg b/ImageEditorTemplate/entry/src/main/js/default/common/images/contrast_white.svg
deleted file mode 100644
index 4066a25830364872b3ddbc84dfa0459f8ad78948..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/common/images/contrast_white.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/cut_blue.svg b/ImageEditorTemplate/entry/src/main/js/default/common/images/cut_blue.svg
deleted file mode 100644
index 22cf1f9c0d7d152b8694657ace1f6a9d53f6b028..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/common/images/cut_blue.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/cut_white.svg b/ImageEditorTemplate/entry/src/main/js/default/common/images/cut_white.svg
deleted file mode 100644
index 114666fa147f764d8b802e4b492eda4b7c2b0db7..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/common/images/cut_white.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/image.jpg b/ImageEditorTemplate/entry/src/main/js/default/common/images/image.jpg
deleted file mode 100644
index 907966897d75758937f7caa92265fcbc9e3cb840..0000000000000000000000000000000000000000
Binary files a/ImageEditorTemplate/entry/src/main/js/default/common/images/image.jpg and /dev/null differ
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/luminance_blue.svg b/ImageEditorTemplate/entry/src/main/js/default/common/images/luminance_blue.svg
deleted file mode 100644
index 40c3e8233b6ec8cb80ce043610280310a5d39f14..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/common/images/luminance_blue.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/luminance_white.svg b/ImageEditorTemplate/entry/src/main/js/default/common/images/luminance_white.svg
deleted file mode 100644
index 21c8cfb6185e63e9e239313db25ff519efbd5d8e..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/common/images/luminance_white.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/picture_frame_white.svg b/ImageEditorTemplate/entry/src/main/js/default/common/images/picture_frame_white.svg
deleted file mode 100644
index d0cc5e68db8de02c07f864481b7eab411a9b90cc..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/common/images/picture_frame_white.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/picture_frame_white_blue.svg b/ImageEditorTemplate/entry/src/main/js/default/common/images/picture_frame_white_blue.svg
deleted file mode 100644
index 45a92f0728817ee0fd91f7c4146287d501e17005..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/common/images/picture_frame_white_blue.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_1-1_blue.png b/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_1-1_blue.png
deleted file mode 100644
index 2d7a7423d56492390f3da47b83d83a6d944e74ff..0000000000000000000000000000000000000000
Binary files a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_1-1_blue.png and /dev/null differ
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_1-1_white.png b/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_1-1_white.png
deleted file mode 100644
index fe9031fabc0733c5071660111118dbfe159d9b00..0000000000000000000000000000000000000000
Binary files a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_1-1_white.png and /dev/null differ
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_16-9_blue.png b/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_16-9_blue.png
deleted file mode 100644
index 80724a54dccc746840f0f0b60180ec992a3e9ca1..0000000000000000000000000000000000000000
Binary files a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_16-9_blue.png and /dev/null differ
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_16-9_white.png b/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_16-9_white.png
deleted file mode 100644
index 88f1417440f2b3b2c2f76aca930cd960f2db43de..0000000000000000000000000000000000000000
Binary files a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_16-9_white.png and /dev/null differ
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_9-16_blue.png b/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_9-16_blue.png
deleted file mode 100644
index ff52b1c1bda2658f3fdfee815175f73d959725eb..0000000000000000000000000000000000000000
Binary files a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_9-16_blue.png and /dev/null differ
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_9-16_white.png b/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_9-16_white.png
deleted file mode 100644
index 67d5dc5b0579389aa5d8adfd90d41a0ff6814345..0000000000000000000000000000000000000000
Binary files a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_9-16_white.png and /dev/null differ
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/rewind.svg b/ImageEditorTemplate/entry/src/main/js/default/common/images/rewind.svg
deleted file mode 100644
index 84a9de921f60a173d6354e0b960f8acc54776f9d..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/common/images/rewind.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/saturation_blue.svg b/ImageEditorTemplate/entry/src/main/js/default/common/images/saturation_blue.svg
deleted file mode 100644
index dc17c10358c9f21c4228208f526140ab2b818db4..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/common/images/saturation_blue.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/saturation_white.svg b/ImageEditorTemplate/entry/src/main/js/default/common/images/saturation_white.svg
deleted file mode 100644
index 29f54844609d5508bf58c5dc0df78036929eaa3a..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/common/images/saturation_white.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/save.svg b/ImageEditorTemplate/entry/src/main/js/default/common/images/save.svg
deleted file mode 100644
index 038ca9affad386588d3afc3c6c196b957ed4d311..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/common/images/save.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/i18n/en-US.json b/ImageEditorTemplate/entry/src/main/js/default/i18n/en-US.json
deleted file mode 100644
index e63c70d978a3a53be988388c87182f81785e170c..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/i18n/en-US.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "strings": {
- "hello": "Hello",
- "world": "World"
- }
-}
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/i18n/zh-CN.json b/ImageEditorTemplate/entry/src/main/js/default/i18n/zh-CN.json
deleted file mode 100644
index 0ebda4546ead27ac45bc3c7655173038ee1b2a52..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/i18n/zh-CN.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "strings": {
- "title": "是否放弃当前修改?",
- "titleAppBar": "编辑",
- "picFrame": "画幅",
- "cropping": "裁剪",
- "adjust": "调节",
- "luminance": "亮度",
- "contrast": "对比度",
- "saturation": "饱和度",
- "picFraImgSrc": "common/images/picture_frame_white_blue.svg",
- "conBotFirImgSrc": "common/images/picture_frame_white.svg",
- "conBotSecImgSrc": "common/images/proportions_1-1_white.png",
- "conBotThrImgSrc": "common/images/proportions_16-9_white.png",
- "conBotFouImgSrc": "common/images/proportions_9-16_white.png",
- "luminanceImgSrc": "common/images/luminance_white.svg",
- "contrastImgSrc": "common/images/contrast_white.svg",
- "saturationImgSrc": "common/images/saturation_white.svg"
- }
-}
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.css b/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.css
deleted file mode 100644
index c9634898f67811c8084a4863beaada7a2432f783..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.css
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright (c) 2021 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.
- */
-.container {
- flex-direction: column;
- width: 100%;
- height: 100%;
- align-content: center;
- align-items: center;
- background-color: #000000;
-}
-/* 顶部显示 */
-.container-top {
- width: 100%;
- position: absolute;
- margin-top: 20px;
-}
-.container-appBar-left {
- margin-left: 30px;
- width: 80px;
-}
-.container-image-left {
- height: 24px;
- width: 24px;
-}
-.container-txt {
- font-size: 16px;
- margin-left: 16px;
- color: #ffffff;
-}
-.container-appBar-right {
- margin-left: 240px;
-}
-.container-image-right {
- height: 24px;
- width: 24px;
- margin-left: 10px;
-}
-/* 弹窗退出应用 */
-.dialog-main {
- width: 80%;
- height: 16%;
- margin-bottom: 30px;
-}
-.dialog-div {
- flex-direction: column;
- align-items: center;
-}
-.inner-txt {
- flex-direction: column;
- align-items: center;
- margin-top: 16px;
-}
-.txt {
- font-size: 16px;
-}
-.inner-btn {
- height: 60px;
- justify-content: space-around;
- align-items: center;
-}
-.btn-cancel {
- margin-left: 10px;
-}
-.btn-stop {
- margin-left: 50px;
-}
-/* 裁剪部分 */
-#crop_image_content {
- width: 100%;
- position: absolute;
- text-align: center;
- margin-top: 130px;
- margin-left: 75px;
-}
-#cropBox {
- width: 100%;
- position: absolute;
-}
-#crop_image_content #canvasOne {
- position: absolute;
- height: 300px;
- width: 300px;
- margin-left: 30px;
- margin-right: 30px;
- margin-bottom: 30px;
-}
-/* 裁剪框 */
-#crop_image_content #mainBox {
- width: 100%;
- border: 3px solid white;
- position: absolute;
- top: 0;
- left: 0;
-}
-.minBox {
- position: absolute;
- height: 15px;
- width: 3px;
- background-color: #FF0000;
-}
-.left-up-top {
- top: -3px;
- left: -3px;
- height: 3px;
- width: 15px;
-}
-.left-up {
- top: -3px;
- left: -3px;
-}
-.right-up-top {
- right: -3px;
- top: -3px;
- height: 3px;
- width: 15px;
-}
-.right-up {
- right: -3px;
- top: -3px;
-}
-.left-down-bot {
- bottom: -3px;
- left: -3px;
- height: 3px;
- width: 15px;
-}
-.left-down {
- bottom: -3px;
- left: -3px;
-}
-.right-down-bot {
- right: -3px;
- bottom: -3px;
- height: 3px;
- width: 15px;
-}
-.right-down {
- bottom: -3px;
- right: -3px;
-}
-/* 裁剪比例 */
-.container-bottom-first {
- width: 100%;
- flex-direction: column;
- position: absolute;
- margin-top: 210px;
-}
-.container-bottom-one-first {
- flex-direction: row;
- margin-left: 40px;
- margin-top: 250px;
-}
-.container-bottom-image {
- height: 30px;
- width: 30px;
- margin-left: 100px;
-}
-.container-bottom-two-first {
- flex-direction: column;
- position: relative;
- margin-left: 230px;
- margin-top: 50px;
-}
-.container-bottom-three-first {
- flex-direction: row;
- margin-top: 70px;
- margin-left: 120px;
-}
-.container-bottom-four-first {
- flex-direction: row;
- position: relative;
- margin-left: 120px;
- margin-bottom: 20px;
-}
-/* 调节比例 */
-.container-bottom-second {
- flex-direction: column;
- position: absolute;
- margin-top: 210px;
-}
-.container-bottom-two-second {
- flex-direction: row;
-}
-.container-bottom-three-second {
- flex-direction: row;
-}
-.luminanceTxt {
- font-size: 14px;
- margin-left: 98px;
-}
-.contrastTxt {
- font-size: 14px;
- margin-left: 80px;
-}
-.saturationTxt {
- font-size: 14px;
- margin-left: 75px;
-}
-.container-bottom-four-second {
- width: 100%;
- margin-top: 60px;
- flex-direction: row;
- margin-left: 120px;
-}
-.container-bottom-five-second {
- flex-direction: row;
- position: relative;
- margin-left: 120px;
- margin-bottom: 20px;
-}
-
-.container-bottom-second-one{
- flex-direction: column;
- position: relative;
- margin-top: 50px;
-}
diff --git a/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml b/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml
deleted file mode 100644
index f90cc0eae15f0b104bbef655e9ee53e08884b796..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml
+++ /dev/null
@@ -1,125 +0,0 @@
-
-
diff --git a/JsDistributedData/build.gradle b/JsDistributedData/build.gradle
index 34c817dd5b1c637230b7f468063913f5509976ad..f352cdeb1daf5634a46e3018408e6bfbf24bb47f 100644
--- a/JsDistributedData/build.gradle
+++ b/JsDistributedData/build.gradle
@@ -9,6 +9,22 @@ ohos {
buildscript {
repositories {
maven {
+<<<<<<< HEAD
+<<<<<<< HEAD
+ url 'http://repo.ark.tools.huawei.com/artifactory/maven-public/'
+=======
+ url 'https://repo.huaweicloud.com/repository/maven/'
+>>>>>>> a7fd881db71f93f9ba2923fc2ed13ab77577dd33
+ }
+ maven {
+ url 'https://developer.huawei.com/repo/'
+ }
+ }
+ dependencies {
+<<<<<<< HEAD
+ classpath 'com.huawei.ohos:hap:3.0.3.2'
+ classpath 'com.huawei.ohos:decctest:3.0.1.0'
+=======
url 'https://repo.huaweicloud.com/repository/maven/'
}
maven {
@@ -18,16 +34,35 @@ buildscript {
dependencies {
classpath 'com.huawei.ohos:hap:2.4.5.5'
classpath 'com.huawei.ohos:decctest:1.2.5.1'
+>>>>>>> 0e50d605db36ff6e317e21b849a5220bed711ca3
+=======
+ classpath 'com.huawei.ohos:hap:2.4.5.5'
+ classpath 'com.huawei.ohos:decctest:1.2.5.1'
+>>>>>>> a7fd881db71f93f9ba2923fc2ed13ab77577dd33
}
}
allprojects {
repositories {
maven {
+<<<<<<< HEAD
+<<<<<<< HEAD
+ url 'http://repo.ark.tools.huawei.com/artifactory/maven-public/'
+ }
+ maven {
+ url 'http://mirrors.tools.huawei.com/maven/'
+=======
+ url 'https://repo.huaweicloud.com/repository/maven/'
+ }
+ maven {
+ url 'https://developer.huawei.com/repo/'
+>>>>>>> 0e50d605db36ff6e317e21b849a5220bed711ca3
+=======
url 'https://repo.huaweicloud.com/repository/maven/'
}
maven {
url 'https://developer.huawei.com/repo/'
+>>>>>>> a7fd881db71f93f9ba2923fc2ed13ab77577dd33
}
}
}
diff --git a/JsDistributedData/entry/build.gradle b/JsDistributedData/entry/build.gradle
index 424d1f4ea870a78dc3c0655625a59529fc4b55ec..eceab3513074876287dccf2eb0a4133bec98f49c 100644
--- a/JsDistributedData/entry/build.gradle
+++ b/JsDistributedData/entry/build.gradle
@@ -1,9 +1,25 @@
apply plugin: 'com.huawei.ohos.hap'
+<<<<<<< HEAD
+<<<<<<< HEAD
+apply plugin: 'com.huawei.ohos.decctest'
+=======
+>>>>>>> a7fd881db71f93f9ba2923fc2ed13ab77577dd33
+//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510
+ohos {
+ compileSdkVersion 7
+ defaultConfig {
+<<<<<<< HEAD
+ compatibleSdkVersion 6
+=======
//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510
ohos {
compileSdkVersion 7
defaultConfig {
compatibleSdkVersion 7
+>>>>>>> 0e50d605db36ff6e317e21b849a5220bed711ca3
+=======
+ compatibleSdkVersion 7
+>>>>>>> a7fd881db71f93f9ba2923fc2ed13ab77577dd33
}
buildTypes {
release {
@@ -13,11 +29,29 @@ ohos {
}
}
}
+<<<<<<< HEAD
+<<<<<<< HEAD
+=======
+
+ supportSystem "standard"
+>>>>>>> 0e50d605db36ff6e317e21b849a5220bed711ca3
+=======
supportSystem "standard"
+>>>>>>> a7fd881db71f93f9ba2923fc2ed13ab77577dd33
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
testImplementation 'junit:junit:4.13'
+<<<<<<< HEAD
+<<<<<<< HEAD
+ ohosTestImplementation 'com.huawei.ohos.testkit:runner:2.0.0.100'
+}
+decc {
+ supportType = ['html','xml']
+=======
+>>>>>>> 0e50d605db36ff6e317e21b849a5220bed711ca3
+=======
+>>>>>>> a7fd881db71f93f9ba2923fc2ed13ab77577dd33
}
diff --git a/NewsClientOpenHarmony/README.md b/NewsClientOpenHarmony/README.md
deleted file mode 100644
index f9328b762eb74b7cf4ed9d6f681117d607ced307..0000000000000000000000000000000000000000
--- a/NewsClientOpenHarmony/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# NewsDemoOpenHarmony
-
-NewsDemoOpenHarmony
-
-本篇Codelab是在HarmonyOS 分布式新闻客户端(JAVA)的设计基础上,用JS编程语言重写了一个布局一模一样的新闻客户端,并对OpenHarmony开发板进行了适配。
-
-Java版本的新闻客户端教会了大家如何使用Java UI中的常用控件、布局编写、页面跳转以及FA的跨设备协同。
-
-本篇Codelab将使用JS语言进行开发,做一个功能、布局和Java版本完全一样的分布式新闻客户端,大家可以通过这两篇Codelab学习两种编程语言的编码风格和实现区别。
-
-案例最终效果如下图所示:
-
-
\ No newline at end of file
diff --git a/NewsClientOpenHarmony/entry/.gitignore b/NewsClientOpenHarmony/entry/.gitignore
deleted file mode 100644
index 7d5b7a94f4dcf381f03ff21f28f8a2494b58023f..0000000000000000000000000000000000000000
--- a/NewsClientOpenHarmony/entry/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/build
-/node_modules
diff --git a/NewsClientOpenHarmony/entry/package.json b/NewsClientOpenHarmony/entry/package.json
deleted file mode 100644
index 0967ef424bce6791893e9a57bb952f80fd536e93..0000000000000000000000000000000000000000
--- a/NewsClientOpenHarmony/entry/package.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/app.js b/NewsClientOpenHarmony/entry/src/main/js/default/app.js
deleted file mode 100644
index 6d060ffe5682c19fc83e2274a9e62cbc40a655f8..0000000000000000000000000000000000000000
--- a/NewsClientOpenHarmony/entry/src/main/js/default/app.js
+++ /dev/null
@@ -1,8 +0,0 @@
-export default {
- onCreate() {
- console.info("Application onCreate");
- },
- onDestroy() {
- console.info("Application onDestroy");
- }
-};
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/data/data.js b/NewsClientOpenHarmony/entry/src/main/js/default/common/data/data.js
deleted file mode 100644
index 60214269a91ee63c70573ac503af5868c3afa08a..0000000000000000000000000000000000000000
--- a/NewsClientOpenHarmony/entry/src/main/js/default/common/data/data.js
+++ /dev/null
@@ -1,182 +0,0 @@
-
-export const titles= [
- {
- "name": "All"
- },
- {
- "name": "Health"
- },
- {
- "name": "Finance"
- },
- {
- "name": "Technology"
- },
- {
- "name": "Sport"
- },
- {
- "name": "Internet"
- },
- {
- "name": "Game"
- }
-]
-
-export const newsData = [
- {
- "title": "Best Enterprise Wi-Fi Network Award of the Wireless Broadband Alliance 2020",
- "type": "Health",
- "imgUrl": "/common/images/news_image1.jpg",
- "reads": "54",
- "likes": "81",
- "content": "Recently, at the Wireless Broadband Alliance (WBA), an international industry organization, Huawei's AirEngine Wi-Fi 6 Solution Helps Factory Digital Transformation WBA 2020 Wi-Fi Industry Best Enterprise Wi-Fi Network Award. This is the first time that a Chinese Wi-Fi 6 vendor has won this award, which reflects the full recognition of Huawei AirEngine Wi-Fi 6 by global enterprise users."
- },
- {
- "title": "Latest technology and industry weather vane",
- "type": "Health",
- "imgUrl": "/common/images/news_image2.jpg",
- "reads": "100",
- "likes": "354",
- "content": "With the large-scale commercial use of new technologies such as 5G, IoT, cloud computing, and AI, industry digital transformation has entered deep water. In addition, the sudden epidemic and carbon-neutral targets accelerate the transformation of society towards intelligence. When energy technologies are combined with power electronics and digital technologies, what direction will site energy develop?"
- },
- {
- "title": "Openness and Cooperation Facilitate Industry Upgrade",
- "type": "Finance",
- "imgUrl": "/common/images/news_image3.jpg",
- "reads": "74",
- "likes": "91",
- "content": "Under the background of new infrastructure construction, digital transformation will face great pressure in power consumption. According to analysis data, it is estimated that the number of communication sites will increase to 70 million by 2025, and the annual power consumption will exceed 660 billion kWh. The data center will increase to 24 million racks, and the annual power consumption will exceed 950 billion kWh. In pan-industrial scenarios, the annual power consumption of rail transportation and industrial manufacturing alone will exceed 16 trillion kWh There are 40 billion smart terminals, and the annual power consumption will reach 210 billion kWh. The 40 billion mobile terminals under the 21 billion kWh power are driven by the transformation of social media and digital life."
- },
- {
- "title": "High-voltage super-fast charging is an inevitable trend",
- "type": "Finance",
- "imgUrl": "/common/images/news_image4.jpg",
- "reads": "44",
- "likes": "82",
- "content": "Consumers have a lot of doubts about buying electric cars, compared to fuel cars. Wang Chao pointed out that among the factors affecting the purchase of electric vehicles, charging problems account for 80 percent, with a small number of charging piles (currently, the ratio of piles is 3.2:1) and a long charging time being the first to bear the brunt. As a result, many players in the charging infrastructure sector are looking for a break. To alleviate consumers' pain points of poor charging experience, we need to improve the pile ratio and shorten the charging time to meet consumers' requirements for fast charging."
- },
- {
- "title": "Huawei Releases the New Trend of Modular Power Supply, Facilitating Industry Upgrade Through Open Cooperation",
- "type": "Technology",
- "imgUrl": "/common/images/news_image5.jpg",
- "reads": "73",
- "likes": "888",
- "content": "Under the background of new infrastructure construction, digital transformation will face great pressure in power consumption. According to analysis data, it is estimated that the number of communication sites will increase to 70 million by 2025, and the annual power consumption will exceed 660 billion kWh. The data center will increase to 24 million racks, and the annual power consumption will exceed 950 billion kWh. In pan-industrial scenarios, the annual power consumption of rail transportation and industrial manufacturing alone will exceed 16 trillion kWh. There are 40 billion smart terminals, and the annual power consumption will reach 210 billion kWh. The 40 billion mobile terminals under the 21 billion kWh power are driven by the transformation of social media and digital life."
- },
- {
- "title": "Ten Future Trends of Digital Energy",
- "type": "Technology",
- "imgUrl": "/common/images/news_image6.jpg",
- "reads": "100",
- "likes": "354",
- "content": "Energy digitalization is an inevitable trend. Innovative integration of digital and energy technologies enables end-to-end visual, manageable, and controllable intelligent management of energy infrastructure, improving energy efficiency.\nGreen power will benefit thousands of industries and households in the future. Green power, represented by PV, will become the main energy source. The era of price-effective PV is coming, and the integration of distributed power generation and solar storage will become an inevitable trend. Green Power will also help the ICT industry reduce its carbon footprint. In the future, we will build a \"zero-carbon network\" and \"zero-carbon\" data center. In addition, Huawei proposed the trend of full-link efficiency for the first time and implemented global optimization in terms of architecture and system."
- },
- {
- "title": "Ascend Helps Industry, Learning, and Research Promote AI Industry Development in the National AI Contest",
- "type": "Sport",
- "imgUrl": "/common/images/news_image7.jpg",
- "reads": "123",
- "likes": "911",
- "content": "The holding of the National AI Contest further fulfilled the requirements of the Ministry of Science and Technology and the Ministry of Industry and Information Technology for Shenzhen to build the national new-generation AI innovation and development trial zone and the AI innovation and application pilot zone. It also promoted the integration and development of innovation elements such as industry, academia, capital, and talent, create an AI innovation atmosphere. Huawei has co-hosted two National AI Competitions in a row, aiming to promote technological progress, industrial upgrade, economic transformation, and social progress, and jointly promote the implementation of AI technologies. This is the most practical point for Huawei and the National AI Competition."
- },
- {
- "title": "Enterprise data centers are moving towards autonomous driving network",
- "type": "Sport",
- "imgUrl": "/common/images/news_image8.jpg",
- "reads": "754",
- "likes": "149",
- "content": "More than 90% of enterprises say that fully autonomous driving data center network is their goal to achieve business agility, flexibility, and cost-effectiveness. This is a key research result in the data center network Autonomous Driving Index Report released by Huawei and IDC. Autonomous driving data center network helps enterprises restructure network architectures and operation models and enhance business resilience and continuity. In addition, regardless of the current level of data center network automation, IDC offers some guidance on how enterprises can move forward and move towards full automation."
- },
- {
- "title": "One optical fiber lights up a green smart room",
- "type": "Internet",
- "imgUrl": "/common/images/news_image9.jpg",
- "reads": "631",
- "likes": "714",
- "content": "At the 2020 China Real Estate Development Summit held in Guangzhou, Jin Yuzhi, President of Huawei's Transmission and Access Product Line, delivered a keynote speech entitled \"One Fiber Lights Green Smart Rooms\" to discuss the convergence development trend of optical networks and real estate industries, proposes that optical fibers are the standard configuration of F5G smart real estate, and shares seven reasons for choosing Fiber to the Room (FTTR) all-optical home networking, we call on industry partners to work together to build an F5G real gigabit all-optical room ecosystem."
- },
- {
- "title": "BWS2020: Accelerate Network Autonomy and Enable Agile Business",
- "type": "Internet",
- "imgUrl": "/common/images/news_image10.jpg",
- "reads": "53",
- "likes": "824",
- "content": "Currently, millions of enterprises embrace changes and accelerate their cloudification. SaaS traffic surges. Enterprise cloudification and multi-cloud collaboration become the new focus of cloud-network synergy . To address this challenge, Guo Dazheng, president of Huawei's data communications field, said: \"In cloud-network scenarios, iMaster NCE implements network as a service to help carriers provide cloud-network integration services and meet enterprise cloud access requirements.\" In 5G transport scenarios, improve the automation capability of the entire process of planning, construction, maintenance, and optimization to meet the requirements of large-scale 5G network construction and cloud network cost reduction and efficiency improvement."
- },
- {
- "title": "Trust technology, embrace openness, and share the world prosperity brought by technology",
- "type": "Game",
- "imgUrl": "/common/images/news_image11.jpg",
- "reads": "1500",
- "likes": "3542",
- "content": "Huawei successfully held the TrustInTech 2020 online summit today. Ryan Ding, Executive Director of Huawei, President of the Carrier BG, and Jim Rogers, a senior Wall Street investor, GSMA Chief Marketing Officer Stephanie Lynch-Habib and other ICT industry experts and economists from around the world attended the summit. The summit pointed out that ICT has become a digital foundation for economic development and people's livelihood. In an era of accelerated commercial use of 5G, the world needs to embrace openness and cooperation to eliminate unnecessary resistance and fears about new technologies and transnational cooperation, thereby sharing the world prosperity brought by technology."
- },
- {
- "title": "Intelligent Twins Won the Leading Technology Achievement Award at the 7th World Internet Conference",
- "type": "Game",
- "imgUrl": "/common/images/news_image12.jpg",
- "reads": "7451",
- "likes": "9511",
- "content": "Today, the Leading Technology Award was unveiled at the 7th World Internet Conference. As the industry's first systematic technical reference architecture for government and enterprise intelligence upgrade, intelligent virtual appliances have been recognized by experts and judges and won the Leading Scientific Achievement Award for their exploration and practice in various industries. This is the fifth time Huawei has won this award since 2016. The World Internet Leading Science and Technology Award showcases the latest technologies in the global ICT field and focuses on the best practices of innovative technologies in the fields of science and technology fight against epidemics, recovery of work, and promotion of digital economic development and cooperation."
- },
- {
- "title": "4G/5G FWA, New Engine for Revenue Growth",
- "type": "Health",
- "imgUrl": "/common/images/news_image13.jpg",
- "reads": "445",
- "likes": "872",
- "content": "The reason why FWA is growing so fast is that it provides new opportunities for carriers in the consumer market. For example, a Philippine operator used 4G FWA to rapidly develop home broadband users. According to its third quarter financial report, the operator has successfully developed 2.78 million new users this year, accounting for 80% of the total broadband users. The percentage of broadband revenue increased from 12.3% in 2017 to 17.9%. With the development of wireless technologies, 5G FWA can provide gigabit home access experience similar to that of optical fibers, meeting services such as 4K/8K HD video and AR/VR interactive experience."
- },
- {
- "title": "Down! CPI released in November! These things are cheap",
- "type": "Finance",
- "imgUrl": "/common/images/news_image14.jpg",
- "reads": "734",
- "likes": "8788",
- "content": "Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap.Down! CPI released in November! These things are cheap."
- },
- {
- "title": "Comedy movie \"Big Red Envelope\" is set to celebrate the New Year",
- "type": "Technology",
- "imgUrl": "/common/images/news_image15.jpg",
- "reads": "1010",
- "likes": "3534",
- "content": "Comedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New YearComedy movie \"Big Red Envelope\" is set to celebrate the New Year"
- },
- {
- "title": "Three living things are smart",
- "type": "Sport",
- "imgUrl": "/common/images/news_image16.jpg",
- "reads": "1243",
- "likes": "9141",
- "content": "Lifan said at the press conference: \"Retrospective on the journey, we have always adhered to the spirit of initiative, innovation and science. Build core capabilities in terms of networks, technologies, and platforms, and deliver excellent services, technologies, and quality. Internal maintenance, optimization, and sharing are in place. Carriers, equipment vendors, and partners are working together to build an end-to-end network capability and win-win ecosystem to provide users with the best 5G experience and services.\""
- },
- {
- "title": "Maximizing the Value of Wireless Networks and Ushering in the Golden Decade of 5G",
- "type": "Internet",
- "imgUrl": "/common/images/news_image17.jpg",
- "reads": "7574",
- "likes": "1439",
- "content": "The 5G industry is developing faster than the previous standards. Currently, there are more than 100 5G commercial networks around the world, and the price of entry-level 5G mobile phones has fallen to CNY1,000, which has led to the rapid growth of 5G users worldwide. Thanks to this, leading operators have enjoyed the data dividend brought by 5G. The multi-dimensional package design and 5G message and 5G new communication services are upgraded to increase the ARPU of 5G users to different degrees.\nTo promote the further development of 5G networks and encourage more users to choose and prefer 5G networks, operators need to build 5G top-quality networks for individual users to achieve full-scenario coverage in densely populated urban areas, suburban areas, and indoor areas, allowing mobile phone users to access 5G services anytime, anywhere. In addition, 5G connection experience is optimized to ensure consistent user experience."
- },
- {
- "title": "Technology Helps Art, Leads a New Era",
- "type": "Game",
- "imgUrl": "/common/images/news_image18.jpg",
- "reads": "6311",
- "likes": "7114",
- "content": "Zhang Wenlin spoke highly of the \"Dance Storm\". He believes that since the second season's premiere, the show has brought the contestants' exquisite dance moves, the wonderful host of Mr Ho Kung, the excellent comments of the judges' tutors, and the exquisite design of the staff to the audience, dedicate a beautiful visual feast! To help achieve fantastic visual effects, Hunan Radio and TV set up a joint team with Huawei to develop a spatio-temporal condensation system for Dance Storm 2. The system supports AI algorithms such as intelligent fast focusing, butterfly shooting, zoom-in, and multi-focus, with the help of the video 3.0+ platform of device-cloud synergy, the program team has made several industry-leading achievements, such as the three-dimensional storm moment with fantastic visual changes, free-view Dance Storm program with interactive control and rotation, and dance Storm with 360-degree panoramic view. VR programs."
- },
- {
- "title": "Open Intelligent Twin Ecosystem Is the Key to All-Scenario Intelligence",
- "type": "Health",
- "imgUrl": "/common/images/news_image19.jpg",
- "reads": "6341",
- "likes": "7164",
- "content": "Intelligent upgrade will build core competitiveness in various industries. Huawei works with partners to integrate 5G, cloud, AI, intelligent edge, and industry applications to form an integrated intelligent system and create industry-leading smart experience. In the transportation industry, the abolition of highway toll stations at the provincial boundary enables fast and insensitive traffic, greatly improving traffic efficiency and reducing logistics transportation costs. Intelligent cameras are deployed on highway portals to collect vehicle traffic data 24 hours a day and send the data to the cloud in real time over the high-speed network for real-time charging. In addition, AI models trained on the cloud can be pushed to the edge so that cameras can have capabilities such as license plate recognition and vehicle feature extraction, and the capabilities can be continuously evolved. For example, in extreme weather conditions such as rain and snow, one-click upgrade can be performed on the cloud."
- }
-]
-
-
-
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_good.png b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_good.png
deleted file mode 100644
index e306e705fe96f10576fa393c3390ea63f26408dd..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_good.png and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_message.png b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_message.png
deleted file mode 100644
index b81007d64cbe5265df414a6dab58cd103cd5a521..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_message.png and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_share.png b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_share.png
deleted file mode 100644
index 1fb1cae93ea21b0712abc939b828ea92ffcb07f4..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_share.png and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_star.png b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_star.png
deleted file mode 100644
index 5ace4c20d2f949b567fc960d205c345273fadee2..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/icon_star.png and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image1.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image1.jpg
deleted file mode 100644
index bfe2ae5849d6b022c2eab195f0fc0c04721db285..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image1.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image10.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image10.jpg
deleted file mode 100644
index 781936afc0354e0f22d1b77339968927c29ffb36..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image10.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image11.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image11.jpg
deleted file mode 100644
index f2862e308f284c5cc87d06c5316d5edec86028f3..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image11.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image12.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image12.jpg
deleted file mode 100644
index 0425178705c4e56888d7df2b308efdfcd7ac8640..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image12.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image13.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image13.jpg
deleted file mode 100644
index b349d81e1dce2d2a553baaf26a5b7fde58d8beac..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image13.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image14.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image14.jpg
deleted file mode 100644
index e3d1ca269b529e890a3e154ac081e93487f5743b..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image14.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image15.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image15.jpg
deleted file mode 100644
index 54775977a85c165759a22b8c8e956ecc59603ff8..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image15.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image16.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image16.jpg
deleted file mode 100644
index 17780bfc6f7f014b1920fa5159cb1a4699a5de49..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image16.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image17.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image17.jpg
deleted file mode 100644
index a34dcd88e1507fd07d509fcffe024dfe7a59ab39..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image17.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image18.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image18.jpg
deleted file mode 100644
index ad79353b9bcfb2cd5b05ef6296f29e3ac826d3ca..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image18.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image19.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image19.jpg
deleted file mode 100644
index 5e8c9267e9632b829492f6d93bfebfcb9c0dc114..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image19.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image2.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image2.jpg
deleted file mode 100644
index 2322f158e6a108b8a4f2bbcb20204bd7974c12d9..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image2.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image3.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image3.jpg
deleted file mode 100644
index 6da8be18ed043a9fc815689e7482e9fe04969f1a..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image3.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image4.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image4.jpg
deleted file mode 100644
index 78bfe6f367b9534e1236725b50a2b98934a76827..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image4.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image5.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image5.jpg
deleted file mode 100644
index bda3780f9779e2169cea6b3cd0aae77bc6e6cc95..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image5.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image6.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image6.jpg
deleted file mode 100644
index 60ebfaa4bd05ca32c40b99f247a9d2998d85dd69..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image6.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image7.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image7.jpg
deleted file mode 100644
index bfc4fb58e7a5ca3062dc775721f9106d333adaec..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image7.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image8.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image8.jpg
deleted file mode 100644
index e58a289f7d136043766f33f168a87af367c370f3..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image8.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image9.jpg b/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image9.jpg
deleted file mode 100644
index e7de107a86d8a741fa4112c3df79c60a1ac086e5..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image9.jpg and /dev/null differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/i18n/en-US.json b/NewsClientOpenHarmony/entry/src/main/js/default/i18n/en-US.json
deleted file mode 100644
index 02536fd164b9f0b11aab483ab81ed82ae4ae9c59..0000000000000000000000000000000000000000
--- a/NewsClientOpenHarmony/entry/src/main/js/default/i18n/en-US.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "strings": {
- "hello": "shizhe",
- "world": "Hello",
- "page": "Second Page",
- "next": "Next Page",
- "back": "Back",
- "localhost": "This device"
- },
- "Files": {
- }
-}
\ No newline at end of file
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/i18n/zh-CN.json b/NewsClientOpenHarmony/entry/src/main/js/default/i18n/zh-CN.json
deleted file mode 100644
index d80a8bb61500ee734a54b5c4002f15ed38654308..0000000000000000000000000000000000000000
--- a/NewsClientOpenHarmony/entry/src/main/js/default/i18n/zh-CN.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "strings": {
- "hello": "SHIZHE",
- "world": "世界",
- "page": "第二页",
- "next": "下一页",
- "back": "返回",
- "localhost": "本机"
- },
- "Files": {
- }
-}
\ No newline at end of file
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/pages/detail/detail.hml b/NewsClientOpenHarmony/entry/src/main/js/default/pages/detail/detail.hml
deleted file mode 100644
index d0992c27de16cf83cc5163fe665c179a90149f50..0000000000000000000000000000000000000000
--- a/NewsClientOpenHarmony/entry/src/main/js/default/pages/detail/detail.hml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/pages/detail/detail.js b/NewsClientOpenHarmony/entry/src/main/js/default/pages/detail/detail.js
deleted file mode 100644
index b262bdf0c17b25440855e81b9cc400a8ed75441f..0000000000000000000000000000000000000000
--- a/NewsClientOpenHarmony/entry/src/main/js/default/pages/detail/detail.js
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (c) 2021 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 app from '@system.app'
-
-import featureAbility from '@ohos.ability.featureAbility';
-import RemoteDeviceModel from '../../../model/RemoteDeviceModel.js';
-
-const REMOTE_ABILITY_STARTED = 'remoteAbilityStarted';
-var DEVICE_LIST_LOCALHOST;
-
-export default {
- data: {
- title: "",
- type: "",
- imgUrl: "",
- reads: "",
- likes: "",
- content: "",
- deviceList: [],
- remoteDeviceModel: new RemoteDeviceModel(),
- },
- onInit() {
- console.info('onInit begin');
- DEVICE_LIST_LOCALHOST = {
- name: this.$t('strings.localhost'),
- id: 'localhost',
- };
- this.deviceList = [DEVICE_LIST_LOCALHOST];
- console.info('onInit end');
- },
-
- onContinueAbilityClick() {
- console.info('onContinueAbilityClick begin');
- let self = this;
- this.remoteDeviceModel.registerDeviceListCallback(() => {
- console.info('registerDeviceListCallback, callback entered');
- var list = [];
- list[0] = DEVICE_LIST_LOCALHOST;
- var deviceList;
- if (self.remoteDeviceModel.discoverList.length > 0) {
- deviceList = self.remoteDeviceModel.discoverList;
- } else {
- deviceList = self.remoteDeviceModel.deviceList;
- }
- console.info('on remote device updated, count=' + deviceList.length);
- for (var i = 0; i < deviceList.length; i++) {
- console.info('device ' + i + '/' + deviceList.length + ' deviceId='
- + deviceList[i].deviceId + ' deviceName=' + deviceList[i].deviceName + ' deviceType='
- + deviceList[i].deviceType);
- list[i + 1] = {
- name: deviceList[i].deviceName,
- id: deviceList[i].deviceId,
- };
- }
- self.deviceList = list;
- });
- this.$element('continueAbilityDialog').show();
- this.isDialogShowing = true;
- console.info('onContinueAbilityClick end');
- },
-
- startAbilityContinuation(deviceId, deviceName) {
- this.$element('continueAbilityDialog').close();
-
- console.info('featureAbility.startAbility deviceId=' + deviceId
- + ' deviceName=' + deviceName);
-
- var params;
- params = {
- remote: "come_from_remote",
- title: this.title,
- type: this.type,
- imgUrl: this.imgUrl,
- reads: this.reads,
- likes: this.likes,
- content: this.content,
- };
-
- var wantValue = {
- bundleName: 'com.huawei.newsdemo',
- abilityName: 'com.huawei.newsdemo.MainAbility',
- url: "pages/detail/detail",
- deviceId: deviceId,
- parameters: params
- };
-
- featureAbility.startAbility({
- want: wantValue
- }).then((data) => {
- console.info('featureAbility.startAbility finished, ' + JSON.stringify(data));
- });
- console.info('featureAbility.startAbility want=' + JSON.stringify(wantValue));
- console.info('featureAbility.startAbility end');
- },
- onRadioChange(inputValue, e) {
- console.info('onRadioChange ' + inputValue + ', ' + e.value);
- if (inputValue === e.value) {
- if (e.value === 'localhost') {
- this.$element('continueAbilityDialog').close();
- return;
- }
- if (this.remoteDeviceModel.discoverList.length > 0) {
- console.info('continue to unauthed device');
- var name = null;
- for (var i = 0; i < this.remoteDeviceModel.discoverList.length; i++) {
- if (this.remoteDeviceModel.discoverList[i].deviceId === e.value) {
- name = this.remoteDeviceModel.discoverList[i].deviceName;
- break;
- }
- }
- if (name == null) {
- console.error('onRadioChange failed, can not get name from discoverList');
- return;
- }
- console.info('onRadioChange name=' + name);
-
- let self = this;
- this.remoteDeviceModel.authDevice(e.value, () => {
- console.info('auth and online finished');
- for (i = 0; i < self.remoteDeviceModel.deviceList.length; i++) {
- if (self.remoteDeviceModel.deviceList[i].deviceName === name) {
- this.startAbilityContinuation(self.remoteDeviceModel.deviceList[i].deviceId, self.remoteDeviceModel.deviceList[i].deviceName);
- }
- }
- });
- } else {
- console.info('continue to authed device');
- for (i = 0; i < this.remoteDeviceModel.deviceList.length; i++) {
- if (this.remoteDeviceModel.deviceList[i].deviceId === e.value) {
- this.startAbilityContinuation(this.remoteDeviceModel.deviceList[i].deviceId, this.remoteDeviceModel.deviceList[i].deviceName);
- }
- }
- }
- }
- },
- onDismissDialogClicked(e) {
- this.dismissDialog();
- },
- touchMove(e) {
- if (e.direction == "right") {
- this.appExit();
- }
- },
- appExit() {
- app.terminate()
- }
-}
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/pages/index/index.hml b/NewsClientOpenHarmony/entry/src/main/js/default/pages/index/index.hml
deleted file mode 100644
index 75c5dcf10ce66c2e64734a408f381e49df9e5898..0000000000000000000000000000000000000000
--- a/NewsClientOpenHarmony/entry/src/main/js/default/pages/index/index.hml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
- {{ title.name }}
-
-
-
-
-
-
-
-
-
-
- {{ news.title }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/pages/index/index.js b/NewsClientOpenHarmony/entry/src/main/js/default/pages/index/index.js
deleted file mode 100644
index 40d90e542a3a244af192c843c1e992a8f4a9126f..0000000000000000000000000000000000000000
--- a/NewsClientOpenHarmony/entry/src/main/js/default/pages/index/index.js
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (c) 2021 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 {titles, newsData} from '../../../default/common/data/data.js';
-import router from '@system.router';
-import prompt from '@system.prompt';
-import featureAbility from '@ohos.ability.featureAbility';
-import RemoteDeviceModel from '../../../model/RemoteDeviceModel.js';
-
-export default {
- data: {
- title: "",
- type: "",
- imgUrl: "",
- reads: "",
- likes: "",
- content: "",
- titleList: titles,
- newsList: newsData,
- isJump: false,
- },
- onReady() {
- this.restoreFromWant();
- },
- restoreFromWant() {
- featureAbility.getWant((error, want) => {
- console.info('MusicPlayer[IndexPage] featureAbility.getWant=' + JSON.stringify(want));
- var status = want.parameters;
- this.title = status.title
- this.type = status.type,
- this.imgUrl = status.imgUrl,
- this.reads = status.reads,
- this.likes = status.likes,
- this.content = status.content
-
- if (status.remote == "come_from_remote" && !this.isJump) {
- this.isJump = true
- router.push({
- uri: "pages/detail/detail",
- params: {
- "title": this.title,
- "type": this.type,
- "imgUrl": this.imgUrl,
- "reads": this.reads,
- "likes": this.likes,
- "content": this.content,
- }
- });
- }
- });
- },
- changeNewsType: function (e) {
- var type = titles[e.index].name;
- this.newsList = [];
- if (type === "All") {
- this.newsList = newsData;
- } else {
- var newsArray = [];
- for (var news of newsData) {
- if (news.type === type) {
- newsArray.push(news);
- }
- }
- this.newsList = newsArray;
- }
- },
- itemClick(news) {
- router.push({
- uri: "pages/detail/detail",
- params: {
- "title": news.title,
- "type": news.type,
- "imgUrl": news.imgUrl,
- "reads": news.reads,
- "likes": news.likes,
- "content": news.content,
- }
- });
- }
-}
diff --git a/NewsClientOpenHarmony/entry/src/main/js/model/RemoteDeviceModel.js b/NewsClientOpenHarmony/entry/src/main/js/model/RemoteDeviceModel.js
deleted file mode 100644
index 6e91a1a1e68e38ca7b909546aae92b3c78361b37..0000000000000000000000000000000000000000
--- a/NewsClientOpenHarmony/entry/src/main/js/model/RemoteDeviceModel.js
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright (c) 2021 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 deviceManager from '@ohos.distributedHardware.deviceManager';
-
-var SUBSCRIBE_ID = 100;
-
-export default class RemoteDeviceModel {
- deviceList = [];
- discoverList = [];
- callback;
- authCallback = null;
- #deviceManager;
-
- constructor() {
- }
-
- registerDeviceListCallback(callback) {
- if (typeof (this.#deviceManager) === 'undefined') {
- console.log('MusicPlayer[RemoteDeviceModel] deviceManager.createDeviceManager begin');
- let self = this;
- deviceManager.createDeviceManager('com.ohos.distributedmusicplayer', (error, value) => {
- if (error) {
- console.error('createDeviceManager failed.');
- return;
- }
- self.#deviceManager = value;
- self.registerDeviceListCallback_(callback);
- console.log('MusicPlayer[RemoteDeviceModel] createDeviceManager callback returned, error=' + error + ' value=' + value);
- });
- console.log('MusicPlayer[RemoteDeviceModel] deviceManager.createDeviceManager end');
- } else {
- this.registerDeviceListCallback_(callback);
- }
- }
-
- registerDeviceListCallback_(callback) {
- console.info('MusicPlayer[RemoteDeviceModel] registerDeviceListCallback');
- this.callback = callback;
- if (this.#deviceManager == undefined) {
- console.error('MusicPlayer[RemoteDeviceModel] deviceManager has not initialized');
- this.callback();
- return;
- }
-
- console.info('MusicPlayer[RemoteDeviceModel] getTrustedDeviceListSync begin');
- var list = this.#deviceManager.getTrustedDeviceListSync();
- console.info('MusicPlayer[RemoteDeviceModel] getTrustedDeviceListSync end, deviceList=' + JSON.stringify(list));
- if (typeof (list) != 'undefined' && typeof (list.length) != 'undefined') {
- this.deviceList = list;
- }
- this.callback();
- console.info('MusicPlayer[RemoteDeviceModel] callback finished');
-
- let self = this;
- this.#deviceManager.on('deviceStateChange', (data) => {
- console.info('MusicPlayer[RemoteDeviceModel] deviceStateChange data=' + JSON.stringify(data));
- switch (data.action) {
- case 0:
- self.deviceList[self.deviceList.length] = data.device;
- console.info('MusicPlayer[RemoteDeviceModel] online, updated device list=' + JSON.stringify(self.deviceList));
- self.callback();
- if (self.authCallback != null) {
- self.authCallback();
- self.authCallback = null;
- }
- break;
- case 2:
- if (self.deviceList.length > 0) {
- for (var i = 0; i < self.deviceList.length; i++) {
- if (self.deviceList[i].deviceId === data.device.deviceId) {
- self.deviceList[i] = data.device;
- break;
- }
- }
- }
- console.info('MusicPlayer[RemoteDeviceModel] change, updated device list=' + JSON.stringify(self.deviceList));
- self.callback();
- break;
- case 1:
- if (self.deviceList.length > 0) {
- var list = [];
- for (var i = 0; i < self.deviceList.length; i++) {
- if (self.deviceList[i].deviceId != data.device.deviceId) {
- list[i] = data.device;
- }
- }
- self.deviceList = list;
- }
- console.info('MusicPlayer[RemoteDeviceModel] offline, updated device list=' + JSON.stringify(data.device));
- self.callback();
- break;
- default:
- break;
- }
- });
- this.#deviceManager.on('deviceFound', (data) => {
- console.info('MusicPlayer[RemoteDeviceModel] deviceFound data=' + JSON.stringify(data));
- console.info('MusicPlayer[RemoteDeviceModel] deviceFound self.deviceList=' + self.deviceList);
- console.info('MusicPlayer[RemoteDeviceModel] deviceFound self.deviceList.length=' + self.deviceList.length);
- for (var i = 0; i < self.discoverList.length; i++) {
- if (self.discoverList[i].deviceId === data.device.deviceId) {
- console.info('MusicPlayer[RemoteDeviceModel] device founded, ignored');
- return;
- }
- }
- self.discoverList[self.discoverList.length] = data.device;
- self.callback();
- });
- this.#deviceManager.on('discoverFail', (data) => {
- console.info('MusicPlayer[RemoteDeviceModel] discoverFail data=' + JSON.stringify(data));
- });
- this.#deviceManager.on('serviceDie', () => {
- console.error('MusicPlayer[RemoteDeviceModel] serviceDie');
- });
-
- SUBSCRIBE_ID = Math.floor(65536 * Math.random());
- var info = {
- subscribeId: SUBSCRIBE_ID,
- mode: 0xAA,
- medium: 2,
- freq: 2,
- isSameAccount: false,
- isWakeRemote: true,
- capability: 0
- };
- console.info('MusicPlayer[RemoteDeviceModel] startDeviceDiscovery ' + SUBSCRIBE_ID);
- this.#deviceManager.startDeviceDiscovery(info);
- }
-
- authDevice(deviceId, callback) {
- console.info('MusicPlayer[RemoteDeviceModel] authDevice ' + deviceId);
- for (var i = 0; i < this.discoverList.length; i++) {
- if (this.discoverList[i].deviceId === deviceId) {
- console.info('MusicPlayer[RemoteDeviceModel] device founded, ignored');
- let extraInfo = {
- "targetPkgName": 'com.ohos.distributedmusicplayer',
- "appName": 'Music',
- "appDescription": 'Music player application',
- "business": '0'
- };
- let authParam = {
- "authType": 1,
- "appIcon": '',
- "appThumbnail": '',
- "extraInfo": extraInfo
- };
- console.info('MusicPlayer[RemoteDeviceModel] authenticateDevice ' + JSON.stringify(this.discoverList[i]));
- let self = this;
- this.#deviceManager.authenticateDevice(this.discoverList[i], authParam, (err, data) => {
- if (err) {
- console.info('MusicPlayer[RemoteDeviceModel] authenticateDevice failed, err=' + JSON.stringify(err));
- self.authCallback = null;
- } else {
- console.info('MusicPlayer[RemoteDeviceModel] authenticateDevice succeed, data=' + JSON.stringify(data));
- self.authCallback = callback;
- }
- });
- }
- }
- }
-
- unregisterDeviceListCallback() {
- console.info('MusicPlayer[RemoteDeviceModel] stopDeviceDiscovery ' + SUBSCRIBE_ID);
- this.#deviceManager.stopDeviceDiscovery(SUBSCRIBE_ID);
- this.#deviceManager.off('deviceStateChange');
- this.#deviceManager.off('deviceFound');
- this.#deviceManager.off('discoverFail');
- this.#deviceManager.off('serviceDie');
- this.deviceList = [];
- }
-}
\ No newline at end of file
diff --git a/NewsClientOpenHarmony/entry/src/main/resources/base/element/string.json b/NewsClientOpenHarmony/entry/src/main/resources/base/element/string.json
deleted file mode 100644
index 7a9597502523b7c2955b2795569d74768b09f8bf..0000000000000000000000000000000000000000
--- a/NewsClientOpenHarmony/entry/src/main/resources/base/element/string.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "string": [
- {
- "name": "NewsClient",
- "value": "新闻资讯"
- },
- {
- "name": "mainability_description",
- "value": "JS_Empty Ability"
- }
- ]
-}
\ No newline at end of file
diff --git a/NewsClientOpenHarmony/screenshots/device/NewsClientDemo.PNG b/NewsClientOpenHarmony/screenshots/device/NewsClientDemo.PNG
deleted file mode 100644
index 4925c3f91ddabf825d50cc5f5a1f65e2f208ed84..0000000000000000000000000000000000000000
Binary files a/NewsClientOpenHarmony/screenshots/device/NewsClientDemo.PNG and /dev/null differ
diff --git a/TransitionAnimtaionEts/LICENSE b/TransitionAnimtaionEts/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..7c357dc828cf7d8c783f10ed6bb1bac8a1e903c1
--- /dev/null
+++ b/TransitionAnimtaionEts/LICENSE
@@ -0,0 +1,78 @@
+ Copyright (c) 2021 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.
+
+Apache License, Version 2.0
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
+
+"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
+
+2. Grant of Copyright License.
+
+Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License.
+
+Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution.
+
+You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
+1.You must give any other recipients of the Work or Derivative Works a copy of this License; and
+2.You must cause any modified files to carry prominent notices stating that You changed the files; and
+3.You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
+4.If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
+
+You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions.
+
+Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
+
+6. Trademarks.
+
+This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty.
+
+Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability.
+
+In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability.
+
+While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
\ No newline at end of file
diff --git a/TransitionAnimtaionEts/README.md b/TransitionAnimtaionEts/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..2eec5e577106cbc5bf2e28580d785fd67f746024
--- /dev/null
+++ b/TransitionAnimtaionEts/README.md
@@ -0,0 +1,2 @@
+TransitionAnimtaionETS
+基于OpenHarmony eTS转场动画,实现了页面间转场、组件内转场以及共享元素转场。
\ No newline at end of file
diff --git a/TransitionAnimtaionEts/build.gradle b/TransitionAnimtaionEts/build.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..8091e0ece10575993ba570722aadd6788144f460
--- /dev/null
+++ b/TransitionAnimtaionEts/build.gradle
@@ -0,0 +1,34 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+apply plugin: 'com.huawei.ohos.app'
+
+//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510
+ohos {
+ compileSdkVersion 7
+ supportSystem "standard"
+}
+
+buildscript {
+ repositories {
+ maven {
+ url 'https://repo.huaweicloud.com/repository/maven/'
+ }
+ maven {
+ url 'https://developer.huawei.com/repo/'
+ }
+ }
+ dependencies {
+ classpath 'com.huawei.ohos:hap:3.0.3.4'
+ classpath 'com.huawei.ohos:decctest:1.2.6.0'
+ }
+}
+
+allprojects {
+ repositories {
+ maven {
+ url 'https://repo.huaweicloud.com/repository/maven/'
+ }
+ maven {
+ url 'https://developer.huawei.com/repo/'
+ }
+ }
+}
diff --git a/TransitionAnimtaionEts/entry/build.gradle b/TransitionAnimtaionEts/entry/build.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..1587dd1948941f3eaaf092ae6cae7969cb6895ff
--- /dev/null
+++ b/TransitionAnimtaionEts/entry/build.gradle
@@ -0,0 +1,21 @@
+apply plugin: 'com.huawei.ohos.hap'
+//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510
+ohos {
+ compileSdkVersion 7
+ defaultConfig {
+ compatibleSdkVersion 7
+ }
+ buildTypes {
+ release {
+ proguardOpt {
+ proguardEnabled false
+ rulesFiles 'proguard-rules.pro'
+ }
+ }
+ }
+}
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
+ testImplementation 'junit:junit:4.13.1'
+}
diff --git a/TransitionAnimtaionEts/entry/proguard-rules.pro b/TransitionAnimtaionEts/entry/proguard-rules.pro
new file mode 100644
index 0000000000000000000000000000000000000000..f7666e47561d514b2a76d5a7dfbb43ede86da92a
--- /dev/null
+++ b/TransitionAnimtaionEts/entry/proguard-rules.pro
@@ -0,0 +1 @@
+# config module specific ProGuard rules here.
\ No newline at end of file
diff --git a/TransitionAnimtaionEts/entry/src/main/config.json b/TransitionAnimtaionEts/entry/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..33577faf974d784cd02ffeda99e6e6d6465f5556
--- /dev/null
+++ b/TransitionAnimtaionEts/entry/src/main/config.json
@@ -0,0 +1,72 @@
+{
+ "app": {
+ "bundleName": "com.example.transitionanimtaionetsopenh",
+ "vendor": "example",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "com.example.transitionanimtaionetsopenh",
+ "name": ".MyApplication",
+ "mainAbility": ".MainAbility",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry",
+ "installationFree": false
+ },
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "visible": true,
+ "srcPath": "MainAbility",
+ "name": ".MainAbility",
+ "srcLanguage": "ets",
+ "icon": "$media:icon",
+ "description": "$string:description_mainability",
+ "formsEnabled": false,
+ "label": "$string:entry_MainAbility",
+ "type": "page",
+ "launchType": "standard",
+ "orientation": "portrait"
+ }
+ ],
+ "js": [
+ {
+ "mode": {
+ "syntax": "ets",
+ "type": "pageAbility"
+ },
+ "pages": [
+ "pages/index",
+ "pages/page/BottomTransition",
+ "pages/page/CustomTransition",
+ "pages/page/FullCustomTransition",
+ "pages/ComponentTransition",
+ "pages/share/ShareItem",
+ "pages/share/SharePage"
+ ],
+ "name": ".MainAbility",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/app.ets b/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/app.ets
new file mode 100644
index 0000000000000000000000000000000000000000..b7a0995c8e441cac86e21e06e7c9071664482b1c
--- /dev/null
+++ b/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/app.ets
@@ -0,0 +1,8 @@
+export default {
+ onCreate() {
+ console.info('Application onCreate')
+ },
+ onDestroy() {
+ console.info('Application onDestroy')
+ },
+}
\ No newline at end of file
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/pages/detail/detail.css b/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/ComponentTransition.ets
similarity index 30%
rename from NewsClientOpenHarmony/entry/src/main/js/default/pages/detail/detail.css
rename to TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/ComponentTransition.ets
index 7df9aeb6bcfbe2fea7bde7b28a5755580bc8a80b..a4e5d75dc3c9eb9f069177d9df2a76cfdac67bf4 100644
--- a/NewsClientOpenHarmony/entry/src/main/js/default/pages/detail/detail.css
+++ b/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/ComponentTransition.ets
@@ -13,105 +13,57 @@
* limitations under the License.
*/
-.container {
- padding: 20px;
- margin-bottom: 160px;
- flex-direction: column;
+@Component
+struct ComponentItem {
+ build() {
+ Stack({ alignContent: Alignment.Center }) {
+ Image($r('app.media.image3'))
+ .objectFit(ImageFit.Cover)
+ .width('100%')
+ .height(120)
+ .borderRadius(15)
+ }
+ .height(120)
+ .borderRadius(15)
+ .width('80%')
+ .padding({ top: 20 })
+ // 组件添加时x、y轴缩放从0.5变化到1,透明度从0到1
+ .transition({ type: TransitionType.Insert, scale: { x: 0.5, y: 0.5 }, opacity: 0 })
+ // 组件移除时沿y轴旋转360度,x、y轴缩放从1变化到0,
+ .transition({ type: TransitionType.Delete, rotate: { x: 0, y: 1, z: 0, angle: 360 }, scale: { x: 0, y: 0 } })
+ }
+}
+
+@Entry
+@Component
+struct ComponentTransition {
+ @State private isShow: boolean= false
+
+ build() {
+ Column() {
+ if (this.isShow) {
+ ComponentItem()
+ }
+
+ ComponentItem()
+
+ Button("Toggle")
+ .onClick(() => {
+ //执行动效,动效时长600ms
+ animateTo({ duration: 600 }, () => {
+ this.isShow = !this.isShow;
+ })
+ })
+ .height(45)
+ .width(200)
+ .fontColor(Color.Black)
+ .backgroundColor('rgb(181,222,224)')
+ .margin({ top: 20 })
+ }
+ .padding({ left: 20, right: 20 })
+ .backgroundColor('#FFECECEC')
+ .height('100%')
+ .width('100%')
+ }
}
-.text-title {
- margin: 20px;
- font-size: 50px;
-}
-
-.text-reads {
- font-size: 32px;
- text-color: #666666;
- margin: 20px;
-}
-
-.image {
- margin: 20px;
-}
-
-.text-content {
- margin: 30px;
- font-size: 36px;
- text-color: #666666;
-}
-
-.bottom {
- padding-left: 24px;
- padding-right: 24px;
- justify-content: center;
- align-items: center;
- border-top-width: 1px;
- border-color: #cccccc;
- background-color: #eeeeee;
- height: 120px;
- width: 100%;
- background-color: white;
- position: fixed;
- bottom: 0px;
-}
-
-.textarea {
- height: 80px;
-}
-
-.image-bottom {
- object-fit: contain;
- margin-left: 20px;
- height: 80px;
- width: 80px;
-}
-
-
-.dialog-main {
- width: 500px;
-}
-
-.dialog-div {
- flex-direction: column;
- align-items: center;
-}
-
-.dialog_title_text {
- width: 434px;
- height: 80px;
- font-size: 32px;
- font-weight: 600;
-}
-
-.inner-btn {
- width: 400px;
- height: 120px;
- justify-content: space-around;
- align-items: center;
-}
-
-.dialog_cancel_button {
- width: 100%;
- font-size: 32px;
-}
-
-.dialog_device_list {
- width: 434px;
- max-height: 150px;
-}
-
-.device_list_item {
- width: 434px;
- height: 80px;
- flex-direction: row;
- align-items: center;
-}
-
-.device_item_radio {
-}
-
-.device_item_title {
- width: 80%;
- height: 80px;
- text-align: start;
-}
\ No newline at end of file
diff --git a/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/index.ets b/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/index.ets
new file mode 100644
index 0000000000000000000000000000000000000000..6a850151ce5f172f1079559b063d59f9c80a9900
--- /dev/null
+++ b/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/index.ets
@@ -0,0 +1,51 @@
+
+import router from '@system.router'
+
+@Component
+struct Item {
+
+// 文本信息
+ private text: string
+
+// 页面跳转uri
+ private uri: string
+
+ build() {
+ Stack({ alignContent: Alignment.Center }) {
+ Image($r('app.media.image3'))
+ .objectFit(ImageFit.Cover)
+ .width('100%')
+ .height(100)
+ .borderRadius(15)
+
+ Text(this.text)
+ .fontSize(20)
+ .fontWeight(FontWeight.Bold)
+ .fontColor(Color.Black)
+ }
+ .onClick(() => {
+ router.push({ uri: this.uri })
+ })
+ .height(100)
+ .borderRadius(15)
+ .width('80%')
+ .margin({ bottom: 20 })
+ }
+}
+
+@Entry
+@Component
+struct Index {
+ build() {
+ Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
+ Item({ text: '页面间转场:底部滑入', uri: 'pages/page/BottomTransition' })
+ Item({ text: '页面间转场:自定义1', uri: 'pages/page/CustomTransition' })
+ Item({ text: '页面间转场:自定义2', uri: 'pages/page/FullCustomTransition' })
+ Item({ text: '组件内转场', uri: 'pages/ComponentTransition' })
+ Item({ text: '共享元素转场', uri: 'pages/share/ShareItem' })
+ }
+ .width('100%')
+ .height('100%')
+ .backgroundColor('#FFECECEC')
+ }
+}
\ No newline at end of file
diff --git a/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/page/BottomTransition.ets b/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/page/BottomTransition.ets
new file mode 100644
index 0000000000000000000000000000000000000000..2915337526ef870dbcfcf6770851f828867ac4f3
--- /dev/null
+++ b/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/page/BottomTransition.ets
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2021 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 BottomTransition {
+ build() {
+ Stack() {
+ Image($r('app.media.image1'))
+ .objectFit(ImageFit.Cover)
+ .width('100%')
+ .height('100%')
+ }
+ .width('100%')
+ .height('100%')
+ }
+
+// 页面转场通过全局transition方法进行配置转场参数
+ pageTransition() {
+
+ // 页面入场组件:SlideEffect.Bottom 设置到入场时表示从下边滑入,出场时表示滑出到下边。
+ PageTransitionEnter({ duration: 600, curve: Curve.Smooth })
+ .slide(SlideEffect.Bottom)
+
+ // 页面退场组件:SlideEffect.Bottom 设置到入场时表示从下边滑入,出场时表示滑出到下边。
+ PageTransitionExit({ duration: 600, curve: Curve.Smooth })
+ .slide(SlideEffect.Bottom)
+ }
+}
\ No newline at end of file
diff --git a/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/page/CustomTransition.ets b/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/page/CustomTransition.ets
new file mode 100644
index 0000000000000000000000000000000000000000..7067b598aa1d411f5d5548cab0d8da3e65d109ab
--- /dev/null
+++ b/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/page/CustomTransition.ets
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2021 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 CustomTransition {
+ build() {
+ Stack() {
+ Image($r('app.media.image2'))
+ .objectFit(ImageFit.Cover)
+ .width('100%')
+ .height('100%')
+ }
+ .width('100%')
+ .height('100%')
+ }
+
+ pageTransition() {
+
+ // 页面入场组件
+ PageTransitionEnter({ duration: 600, curve: Curve.Smooth })
+ .opacity(0.2) //入场时候透明度从0.2到1
+ .scale({ x: 0, y: 0 }) //入场时x、y轴缩放从0变化到1
+
+ // 页面退场组件
+ PageTransitionExit({ duration: 600, curve: Curve.Smooth })
+ .translate({ x: 500, y: 500 }) //退场时x、y轴的偏移量为500
+ }
+}
\ No newline at end of file
diff --git a/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/page/FullCustomTransition.ets b/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/page/FullCustomTransition.ets
new file mode 100644
index 0000000000000000000000000000000000000000..2ba9df816da0529dc3625eb62055298ca52718bf
--- /dev/null
+++ b/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/page/FullCustomTransition.ets
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2021 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 FullCustomTransition {
+ @State myProgress: number = 1
+
+ build() {
+ Stack() {
+ Image($r('app.media.image1'))
+ .objectFit(ImageFit.Cover)
+ .width('100%')
+ .height('100%')
+ }
+ .width('100%')
+ .height('100%')
+ .opacity(this.myProgress)
+ .scale({ x: this.myProgress, y: this.myProgress })
+ .rotate({ x: 0, y: 0, z: 1, angle: 360 * this.myProgress })
+ }
+
+ pageTransition() {
+
+ // 页面入场组件: 进场过程中会逐帧触发onEnter回调,入参为动效的归一化进度(0% -- 100%)
+ PageTransitionEnter({ duration: 800, curve: Curve.Smooth })
+ .onEnter((type: RouteType, progress: number) => {
+ this.myProgress = progress // 页面入场式myProgress从0变化到1
+ })
+
+ // 页面退场组件: 进场过程中会逐帧触发onExit回调,入参为动效的归一化进度(0% -- 100%)
+ PageTransitionExit({ duration: 800, curve: Curve.Smooth })
+ .onExit((type: RouteType, progress: number) => {
+ this.myProgress = 1 - progress //页面退场式myProgress从1变化到0
+ })
+ }
+}
\ No newline at end of file
diff --git a/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/share/ShareItem.ets b/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/share/ShareItem.ets
new file mode 100644
index 0000000000000000000000000000000000000000..fb633a1ae9dfeb2bad24f7ed687721f7d17aad1c
--- /dev/null
+++ b/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/share/ShareItem.ets
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import router from '@system.router'
+
+@Entry
+@Component
+struct ShareItem {
+ build() {
+ Flex() {
+ Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
+ Stack() {
+ Image($r('app.media.image2'))
+ // 设置共享元素转场属性
+ .sharedTransition('imageId', { duration: 600, curve: Curve.Smooth, delay: 100 })
+ .onClick(() => {
+ router.push({ uri: 'pages/share/SharePage' })
+ })
+ .objectFit(ImageFit.Cover)
+ .height('100%')
+ .width('100%')
+ .borderRadius(15)
+ }
+ .height('100%')
+ .width('100%')
+
+ Text('点击查看共享元素转场动效')
+ .fontSize(20)
+ .fontColor(Color.Black)
+ .fontWeight(FontWeight.Regular)
+ .margin({ left: 10, right: 10 })
+
+ }
+ .height(120)
+ .backgroundColor('rgb(181,222,224)')
+ .borderRadius(15)
+ .margin({ top: 20 })
+ }
+ .width('100%')
+ .padding({ left: 16, right: 16 })
+ .backgroundColor('#FFECECEC')
+ }
+}
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/pages/index/index.css b/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/share/SharePage.ets
similarity index 52%
rename from NewsClientOpenHarmony/entry/src/main/js/default/pages/index/index.css
rename to TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/share/SharePage.ets
index 41db1be1fdd843c2b289f3c44f8b2547554aa574..64b19d60606fc83a828689a662a5818022819bf0 100644
--- a/NewsClientOpenHarmony/entry/src/main/js/default/pages/index/index.css
+++ b/TransitionAnimtaionEts/entry/src/main/ets/MainAbility/pages/share/SharePage.ets
@@ -13,47 +13,19 @@
* limitations under the License.
*/
-.container {
- flex-direction: column;
- justify-content: flex-start;
- align-items: center;
+@Entry
+@Component
+struct SharePage {
+ build() {
+ Stack() {
+ Image($r('app.media.image2'))
+ // 设置共享元素转场属性
+ .sharedTransition('imageId', { duration: 1000, curve: Curve.Smooth, delay: 100 })
+ .objectFit(ImageFit.Cover)
+ .width('100%')
+ .height('100%')
+ }
+ .width('100%')
+ .height('100%')
+ }
}
-
-.tab-bar {
- height: 80px;
-}
-
-.tab-text {
- font-size: 46px;
- text-align: center;
-}
-
-.tab-content {
- width: 100%;
- height: 100%;
- justify-content: center;
-}
-
-.item-content {
- height: 100%;
- justify-content: center;
-}
-
-.list {
- width: 100%;
- padding: 20px
-}
-
-.text {
- font-size: 36px;
- margin: 10px;
- height: 180px;
- max-lines: 4;
- flex-weight: 3
-}
-
-.image {
- margin: 10px;
- height: 180px;
- flex-weight: 2
-}
\ No newline at end of file
diff --git a/TransitionAnimtaionEts/entry/src/main/resources/base/element/string.json b/TransitionAnimtaionEts/entry/src/main/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..03b8532c53ca563f8ed6b1e21d20ad3f67a68906
--- /dev/null
+++ b/TransitionAnimtaionEts/entry/src/main/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "entry_MainAbility",
+ "value": "entry_MainAbility"
+ },
+ {
+ "name": "description_mainability",
+ "value": "ETS_Empty Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/TransitionAnimtaionEts/entry/src/main/resources/base/media/icon.png b/TransitionAnimtaionEts/entry/src/main/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/TransitionAnimtaionEts/entry/src/main/resources/base/media/icon.png differ
diff --git a/TransitionAnimtaionEts/entry/src/main/resources/base/media/image1.jpg b/TransitionAnimtaionEts/entry/src/main/resources/base/media/image1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0f91e746ec48d790f44da35ba69676a7cc652e63
Binary files /dev/null and b/TransitionAnimtaionEts/entry/src/main/resources/base/media/image1.jpg differ
diff --git a/TransitionAnimtaionEts/entry/src/main/resources/base/media/image2.jpg b/TransitionAnimtaionEts/entry/src/main/resources/base/media/image2.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..967a4a4e08f114d8fc06fd9da64ea4ee6dc8da24
Binary files /dev/null and b/TransitionAnimtaionEts/entry/src/main/resources/base/media/image2.jpg differ
diff --git a/TransitionAnimtaionEts/entry/src/main/resources/base/media/image3.png b/TransitionAnimtaionEts/entry/src/main/resources/base/media/image3.png
new file mode 100644
index 0000000000000000000000000000000000000000..c1e865c47b91c245ad68a62ef1ddb72c304267e5
Binary files /dev/null and b/TransitionAnimtaionEts/entry/src/main/resources/base/media/image3.png differ
diff --git a/TransitionAnimtaionEts/gradle/wrapper/gradle-wrapper.jar b/TransitionAnimtaionEts/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..490fda8577df6c95960ba7077c43220e5bb2c0d9
Binary files /dev/null and b/TransitionAnimtaionEts/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/TransitionAnimtaionEts/gradle/wrapper/gradle-wrapper.properties b/TransitionAnimtaionEts/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000000000000000000000000000000000000..f59159e865d4b59feb1b8c44b001f62fc5d58df4
--- /dev/null
+++ b/TransitionAnimtaionEts/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://repo.huaweicloud.com/gradle/gradle-6.3-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/TransitionAnimtaionEts/settings.gradle b/TransitionAnimtaionEts/settings.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..4773db73233a570c2d0c01a22e75321acfbf7a07
--- /dev/null
+++ b/TransitionAnimtaionEts/settings.gradle
@@ -0,0 +1 @@
+include ':entry'