diff --git a/AnimationDemo/LICENSE b/AnimationDemo/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..80576ef141485b36eea4aebf25af97020bc2de44
--- /dev/null
+++ b/AnimationDemo/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/AnimationDemo/build.gradle b/AnimationDemo/build.gradle
index 9cf74c205fc884ae2c6796ce2298ecbe3f40672d..c2c8bbaed13747b913f19cef893f515bc32d02a7 100644
--- a/AnimationDemo/build.gradle
+++ b/AnimationDemo/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:2.4.5.5'
- classpath 'com.huawei.ohos:decctest:1.2.5.1'
+ classpath 'com.huawei.ohos:hap:3.0.3.4'
+ classpath 'com.huawei.ohos:decctest:1.2.6.0'
}
}
diff --git a/AnimationDemo/entry/build.gradle b/AnimationDemo/entry/build.gradle
index cccb71cae91018743841ab76aeb19c595f4ed847..68ec4e15705e1c4fd6ca07fe7ad0444a86546c7a 100644
--- a/AnimationDemo/entry/build.gradle
+++ b/AnimationDemo/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 {
@@ -14,7 +14,7 @@ ohos {
}
}
- supportSystem "standard"
+
}
dependencies {
diff --git a/AnimationDemo/entry/src/main/config.json b/AnimationDemo/entry/src/main/config.json
index 7c5e5aa2755c8b711f75b41dd167a665960865e8..be610d7c54ade900f7eea841c795bd225cb362cf 100644
--- a/AnimationDemo/entry/src/main/config.json
+++ b/AnimationDemo/entry/src/main/config.json
@@ -36,6 +36,8 @@
"orientation": "unspecified",
"name": "com.huawei.animationdemo.MainAbility",
"icon": "$media:icon",
+ "srcPath": "default",
+ "srcLanguage": "js",
"description": "$string:mainability_description",
"formsEnabled": false,
"label": "$string:entry_MainAbility",
diff --git a/ClickableJsDemo/LICENSE b/ClickableJsDemo/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..80576ef141485b36eea4aebf25af97020bc2de44
--- /dev/null
+++ b/ClickableJsDemo/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/Database/LICENSE b/Database/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..80576ef141485b36eea4aebf25af97020bc2de44
--- /dev/null
+++ b/Database/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/Database/build.gradle b/Database/build.gradle
index 9cf74c205fc884ae2c6796ce2298ecbe3f40672d..c2c8bbaed13747b913f19cef893f515bc32d02a7 100644
--- a/Database/build.gradle
+++ b/Database/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:2.4.5.5'
- classpath 'com.huawei.ohos:decctest:1.2.5.1'
+ classpath 'com.huawei.ohos:hap:3.0.3.4'
+ classpath 'com.huawei.ohos:decctest:1.2.6.0'
}
}
diff --git a/Database/entry/build.gradle b/Database/entry/build.gradle
index 6c2dca308825d3d38937c45c03918e1628bbfb75..b89f8de511d5db17152f4cea9ec3d6ab72a0b9b3 100644
--- a/Database/entry/build.gradle
+++ b/Database/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 {
@@ -14,7 +14,6 @@ ohos {
}
}
- supportSystem "standard"
}
dependencies {
diff --git a/Database/entry/src/main/config.json b/Database/entry/src/main/config.json
index 4241213dcef71d77a8fafe6c8d5c2595351cc4e1..f84aa1141eef17407c4177de85433aab0256529f 100644
--- a/Database/entry/src/main/config.json
+++ b/Database/entry/src/main/config.json
@@ -36,6 +36,8 @@
"orientation": "unspecified",
"name": "com.huawei.database.MainAbility",
"icon": "$media:icon",
+ "srcPath": "default",
+ "srcLanguage": "js",
"description": "$string:mainability_description",
"formsEnabled": false,
"label": "$string:entry_MainAbility",
diff --git a/DialogDemo/LICENSE b/DialogDemo/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..80576ef141485b36eea4aebf25af97020bc2de44
--- /dev/null
+++ b/DialogDemo/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/DialogDemo/build.gradle b/DialogDemo/build.gradle
index 9cf74c205fc884ae2c6796ce2298ecbe3f40672d..c2c8bbaed13747b913f19cef893f515bc32d02a7 100644
--- a/DialogDemo/build.gradle
+++ b/DialogDemo/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:2.4.5.5'
- classpath 'com.huawei.ohos:decctest:1.2.5.1'
+ classpath 'com.huawei.ohos:hap:3.0.3.4'
+ classpath 'com.huawei.ohos:decctest:1.2.6.0'
}
}
diff --git a/DialogDemo/entry/src/main/config.json b/DialogDemo/entry/src/main/config.json
index ce0fac4a4a80eb3fc0cc020d740eb79f07886427..34d1702a5ef29c4e0b76e35df47e7303683a9985 100644
--- a/DialogDemo/entry/src/main/config.json
+++ b/DialogDemo/entry/src/main/config.json
@@ -36,6 +36,8 @@
"orientation": "unspecified",
"name": "com.huawei.dialogdemo.MainAbility",
"icon": "$media:icon",
+ "srcPath": "default",
+ "srcLanguage": "js",
"description": "$string:mainability_description",
"formsEnabled": false,
"label": "$string:entry_MainAbility",
diff --git a/HarmonyOSNewsClient/.gradle/6.3/executionHistory/executionHistory.bin b/HarmonyOSNewsClient/.gradle/6.3/executionHistory/executionHistory.bin
new file mode 100644
index 0000000000000000000000000000000000000000..c5f5e4d2cfa9f4050481dc317bfcb182ce8f5703
Binary files /dev/null and b/HarmonyOSNewsClient/.gradle/6.3/executionHistory/executionHistory.bin differ
diff --git a/HarmonyOSNewsClient/.gradle/6.3/executionHistory/executionHistory.lock b/HarmonyOSNewsClient/.gradle/6.3/executionHistory/executionHistory.lock
new file mode 100644
index 0000000000000000000000000000000000000000..ed2b7761682c0d7350d5c02f59ae46defec4a93e
Binary files /dev/null and b/HarmonyOSNewsClient/.gradle/6.3/executionHistory/executionHistory.lock differ
diff --git a/HarmonyOSNewsClient/.gradle/6.3/fileChanges/last-build.bin b/HarmonyOSNewsClient/.gradle/6.3/fileChanges/last-build.bin
new file mode 100644
index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d
Binary files /dev/null and b/HarmonyOSNewsClient/.gradle/6.3/fileChanges/last-build.bin differ
diff --git a/HarmonyOSNewsClient/.gradle/6.3/fileContent/fileContent.lock b/HarmonyOSNewsClient/.gradle/6.3/fileContent/fileContent.lock
new file mode 100644
index 0000000000000000000000000000000000000000..3e787dcd3759bc6d35bab47b28065c2df6317ce6
Binary files /dev/null and b/HarmonyOSNewsClient/.gradle/6.3/fileContent/fileContent.lock differ
diff --git a/HarmonyOSNewsClient/.gradle/6.3/fileHashes/fileHashes.bin b/HarmonyOSNewsClient/.gradle/6.3/fileHashes/fileHashes.bin
new file mode 100644
index 0000000000000000000000000000000000000000..068e14208d1f8f0c0a12c87f6d0048e49eda041b
Binary files /dev/null and b/HarmonyOSNewsClient/.gradle/6.3/fileHashes/fileHashes.bin differ
diff --git a/HarmonyOSNewsClient/.gradle/6.3/fileHashes/fileHashes.lock b/HarmonyOSNewsClient/.gradle/6.3/fileHashes/fileHashes.lock
new file mode 100644
index 0000000000000000000000000000000000000000..013fbaee4925b3dc03660804141d4e214015ce5b
Binary files /dev/null and b/HarmonyOSNewsClient/.gradle/6.3/fileHashes/fileHashes.lock differ
diff --git a/HarmonyOSNewsClient/.gradle/6.3/fileHashes/resourceHashesCache.bin b/HarmonyOSNewsClient/.gradle/6.3/fileHashes/resourceHashesCache.bin
new file mode 100644
index 0000000000000000000000000000000000000000..12ca228b0d591998bb3f2434e321af040e1e3141
Binary files /dev/null and b/HarmonyOSNewsClient/.gradle/6.3/fileHashes/resourceHashesCache.bin differ
diff --git a/Database/.idea/code-check/countInfo.json b/HarmonyOSNewsClient/.gradle/6.3/gc.properties
similarity index 100%
rename from Database/.idea/code-check/countInfo.json
rename to HarmonyOSNewsClient/.gradle/6.3/gc.properties
diff --git a/HarmonyOSNewsClient/.gradle/6.3/javaCompile/classAnalysis.bin b/HarmonyOSNewsClient/.gradle/6.3/javaCompile/classAnalysis.bin
new file mode 100644
index 0000000000000000000000000000000000000000..283df7b220c6830552a893a0484081615288e25f
Binary files /dev/null and b/HarmonyOSNewsClient/.gradle/6.3/javaCompile/classAnalysis.bin differ
diff --git a/HarmonyOSNewsClient/.gradle/6.3/javaCompile/jarAnalysis.bin b/HarmonyOSNewsClient/.gradle/6.3/javaCompile/jarAnalysis.bin
new file mode 100644
index 0000000000000000000000000000000000000000..d5720f36c5ce9f98a015ecb591a0e2c0a6274a4f
Binary files /dev/null and b/HarmonyOSNewsClient/.gradle/6.3/javaCompile/jarAnalysis.bin differ
diff --git a/HarmonyOSNewsClient/.gradle/6.3/javaCompile/javaCompile.lock b/HarmonyOSNewsClient/.gradle/6.3/javaCompile/javaCompile.lock
new file mode 100644
index 0000000000000000000000000000000000000000..0e00cd352cc19e5151ab04d34d18aa458a649603
Binary files /dev/null and b/HarmonyOSNewsClient/.gradle/6.3/javaCompile/javaCompile.lock differ
diff --git a/HarmonyOSNewsClient/.gradle/6.3/javaCompile/taskHistory.bin b/HarmonyOSNewsClient/.gradle/6.3/javaCompile/taskHistory.bin
new file mode 100644
index 0000000000000000000000000000000000000000..b750b2637bfcfea30b14fcd2d84832e7ab11bc03
Binary files /dev/null and b/HarmonyOSNewsClient/.gradle/6.3/javaCompile/taskHistory.bin differ
diff --git a/HarmonyOSNewsClient/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/HarmonyOSNewsClient/.gradle/buildOutputCleanup/buildOutputCleanup.lock
new file mode 100644
index 0000000000000000000000000000000000000000..a5acdf75ee021363e6afe50b0f705c7cee848b38
Binary files /dev/null and b/HarmonyOSNewsClient/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/HarmonyOSNewsClient/.gradle/buildOutputCleanup/cache.properties b/HarmonyOSNewsClient/.gradle/buildOutputCleanup/cache.properties
new file mode 100644
index 0000000000000000000000000000000000000000..fe9d993e58ce42c9f831d2cfad9cbfd25f4c7406
--- /dev/null
+++ b/HarmonyOSNewsClient/.gradle/buildOutputCleanup/cache.properties
@@ -0,0 +1,2 @@
+#Fri Nov 05 14:36:50 CST 2021
+gradle.version=6.3
diff --git a/HarmonyOSNewsClient/.gradle/buildOutputCleanup/outputFiles.bin b/HarmonyOSNewsClient/.gradle/buildOutputCleanup/outputFiles.bin
new file mode 100644
index 0000000000000000000000000000000000000000..9dde96ba882312e5a5a068c526a785e83ef1cb58
Binary files /dev/null and b/HarmonyOSNewsClient/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/HarmonyOSNewsClient/.gradle/checksums/checksums.lock b/HarmonyOSNewsClient/.gradle/checksums/checksums.lock
new file mode 100644
index 0000000000000000000000000000000000000000..8710ae88f8ad9c8e660e8941266e4e98592ff6ce
Binary files /dev/null and b/HarmonyOSNewsClient/.gradle/checksums/checksums.lock differ
diff --git a/HarmonyOSNewsClient/.gradle/vcs-1/gc.properties b/HarmonyOSNewsClient/.gradle/vcs-1/gc.properties
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/HarmonyOSNewsClient/.idea/.gitignore b/HarmonyOSNewsClient/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/HarmonyOSNewsClient/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/HarmonyOSNewsClient/.idea/caches/build_file_checksums.ser b/HarmonyOSNewsClient/.idea/caches/build_file_checksums.ser
new file mode 100644
index 0000000000000000000000000000000000000000..40e73460830f987e7146fa40b90b15eedcc5c24f
Binary files /dev/null and b/HarmonyOSNewsClient/.idea/caches/build_file_checksums.ser differ
diff --git a/HarmonyOSNewsClient/.idea/compiler.xml b/HarmonyOSNewsClient/.idea/compiler.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fb7f4a8a465d42b4a0390d464b83b99e8465bba7
--- /dev/null
+++ b/HarmonyOSNewsClient/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/.idea/gradle.xml b/HarmonyOSNewsClient/.idea/gradle.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b27fb7bfd797f2d3e957a00a3c297966af1e71d8
--- /dev/null
+++ b/HarmonyOSNewsClient/.idea/gradle.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/.idea/jarRepositories.xml b/HarmonyOSNewsClient/.idea/jarRepositories.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1dfcd020d2b2774ad414ac5c0acc344e9b9479b4
--- /dev/null
+++ b/HarmonyOSNewsClient/.idea/jarRepositories.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/.idea/libraries/Gradle__gson_2_8_6.xml b/HarmonyOSNewsClient/.idea/libraries/Gradle__gson_2_8_6.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6e795e679e0d9c933237bc7596d34758de47c4fe
--- /dev/null
+++ b/HarmonyOSNewsClient/.idea/libraries/Gradle__gson_2_8_6.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/.idea/libraries/Gradle__hamcrest_core_1_3.xml b/HarmonyOSNewsClient/.idea/libraries/Gradle__hamcrest_core_1_3.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a3cab89d0eec56ae6a05e16182bfaa8315b2a84f
--- /dev/null
+++ b/HarmonyOSNewsClient/.idea/libraries/Gradle__hamcrest_core_1_3.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/.idea/libraries/Gradle__junit_4_13.xml b/HarmonyOSNewsClient/.idea/libraries/Gradle__junit_4_13.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c4afa00d04180bc6d3e81a29b25f05f21d139239
--- /dev/null
+++ b/HarmonyOSNewsClient/.idea/libraries/Gradle__junit_4_13.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/.idea/libraries/Gradle__runner_1_0_0_100.xml b/HarmonyOSNewsClient/.idea/libraries/Gradle__runner_1_0_0_100.xml
new file mode 100644
index 0000000000000000000000000000000000000000..59de8bc64ecc0dc65cebcc9aa72c1ae91da0ac81
--- /dev/null
+++ b/HarmonyOSNewsClient/.idea/libraries/Gradle__runner_1_0_0_100.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/.idea/misc.xml b/HarmonyOSNewsClient/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..794aa67e635837ac492499857a20ce72f4938e28
--- /dev/null
+++ b/HarmonyOSNewsClient/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/.idea/modules.xml b/HarmonyOSNewsClient/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b7a5a2b986283ee55e7149c3874c03299874bc91
--- /dev/null
+++ b/HarmonyOSNewsClient/.idea/modules.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/.idea/modules/HarmonyOSNewsClient.iml b/HarmonyOSNewsClient/.idea/modules/HarmonyOSNewsClient.iml
new file mode 100644
index 0000000000000000000000000000000000000000..b879eef0cb6f466b8d1f124d350d3b74ed6e2ad4
--- /dev/null
+++ b/HarmonyOSNewsClient/.idea/modules/HarmonyOSNewsClient.iml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/.idea/modules/entry/entry.iml b/HarmonyOSNewsClient/.idea/modules/entry/entry.iml
new file mode 100644
index 0000000000000000000000000000000000000000..209f750cea2478900a7cecd7b812ffddf48d5020
--- /dev/null
+++ b/HarmonyOSNewsClient/.idea/modules/entry/entry.iml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/LICENSE b/HarmonyOSNewsClient/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..386f8b9374099acb177755d48a47adbe1ab99f4f
--- /dev/null
+++ b/HarmonyOSNewsClient/LICENSE
@@ -0,0 +1,99 @@
+ 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.
+
+ We use Google's open-source Gson.jar. The details are as follows:
+
+ ### License
+
+ Gson is released under the [Apache 2.0 license](LICENSE).
+
+ Copyright 2008 Google Inc.
+
+ 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/HarmonyOSNewsClient/README.md b/HarmonyOSNewsClient/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..ae93a0a1ae92ef9a472c9875d8c75b94a83ca3bd
--- /dev/null
+++ b/HarmonyOSNewsClient/README.md
@@ -0,0 +1,48 @@
+# HarmonyOSNewsClient
+简介
+• HarmonyOS新闻客户端是一个简单的新闻应用程序。在这里,我们想向开发人员展示一些常见的控件和组件。此外,我们还展现了HarmonyOS的跨设备迁移能力,您可以无缝地将FA传输到局域网上的其他设备,以完成新闻共享。
+
+安装要求
+• 安装DevEco Studio
+• 设置DevEco Studio开发环境。DevEco Studio开发环境需要连接到网络,以确保该正常使用。可以根据以下两种情况配置开发环境:
+ 1.如果您可以直接访问Internet,则只需下载HarmonyOS SDK
+ 2.如果网络无法直接访问Internet,则可以通过代理服务器进行访问
+• 生成密钥并申请证书
+
+用户指南
+• 下载此项目
+• 打开HUAWEI DevEco Studio,单击File> Open选择此Codelab
+• 单击Build> Build App(s)/Hap(s)>Build Debug Hap(s)以编译hap软件包
+• 单击Run> Run 'entry'以运行hap包
+
+注意
+• 您可以选择在模拟器或真机上运行hap软件包。
+• 如果在真机上运行它,则需要在项目的File> Project Structure> Modules> Signing Configs中配置签名和证书信息。
+
+许可
+请参阅LICENSE文件以获得更多信息。
+
+What is it?
+The HarmonyOS news client is a simple news application. Here,we want to show developers some common controls and components of the HarmonyOS. In addition,
+we also demonstrate the cross-device migration function.You can seamlessly transfer your FA to other devices on the local area network (LAN) to complete news sharing.
+This example code is complete and you can learn from the beginning with us.
+
+Installation requirements
+• Install DevEco Studio
+• Set up the DevEco Studio development environment.The DevEco Studio development environment needs to depend on the network environment. It needs to be connected to the network to ensure the normal use of the tool.The development environment can be configured according to the following two situations
+ 1.If you can directly access the Internet, just download the HarmonyOS SDK
+ 2.If the network cannot access the Internet directly, it can be accessed through a proxy server
+• Generate secret key and apply for certificate
+
+User guide
+• Download this Project
+• Open HUAWEI DevEco Studio, click File> Open> Then select and open this Project
+• Click Build> Build App(s)/Hap(s)>Build Debug Hap(s) to compile the hap package
+• Click Run> Run 'entry' to run the hap package
+
+Note
+• You can choose to run the hap package on the simulator or the phone.
+• If you run it on the phone, you need to configure the signature and certificate information in the project's File> Project Structure> Modules> Signing Configs.
+
+Licensing
+Please see LICENSE for more info.
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/RELEASE-NOTES.md b/HarmonyOSNewsClient/RELEASE-NOTES.md
new file mode 100644
index 0000000000000000000000000000000000000000..ea23a13e3d4407d06cba3aa7155a23e5081b50b4
--- /dev/null
+++ b/HarmonyOSNewsClient/RELEASE-NOTES.md
@@ -0,0 +1,2 @@
+1.0.0
+1.Initial version
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/build.gradle b/HarmonyOSNewsClient/build.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..3167e209d4bc6b64269046ebc210d6bab6dd1f56
--- /dev/null
+++ b/HarmonyOSNewsClient/build.gradle
@@ -0,0 +1,37 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+apply plugin: 'com.huawei.ohos.app'
+
+ohos {
+ compileSdkVersion 5
+ defaultConfig {
+ compatibleSdkVersion 4
+ }
+}
+
+buildscript {
+ repositories {
+ maven {
+ url 'https://repo.huaweicloud.com/repository/maven/'
+ }
+ maven {
+ url 'https://developer.huawei.com/repo/'
+ }
+ jcenter()
+ }
+ 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/'
+ }
+ jcenter()
+ }
+}
diff --git a/HarmonyOSNewsClient/entry/build.gradle b/HarmonyOSNewsClient/entry/build.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..dfc2d5b34a68f375924a5cfb98a102d1fe4068eb
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/build.gradle
@@ -0,0 +1,28 @@
+apply plugin: 'com.huawei.ohos.hap'
+apply plugin: 'com.huawei.ohos.decctest'
+ohos {
+ compileSdkVersion 5
+ defaultConfig {
+ compatibleSdkVersion 4
+ }
+ buildTypes {
+ release {
+ proguardOpt {
+ proguardEnabled false
+ rulesFiles 'proguard-rules.pro'
+ }
+ }
+ }
+
+}
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
+ ohosTestImplementation 'com.huawei.ohos.testkit:runner:1.0.0.100'
+ implementation 'com.google.code.gson:gson:2.8.6'
+ testImplementation 'junit:junit:4.13'
+}
+
+decc {
+ supportType = ['html', 'xml']
+}
diff --git a/HarmonyOSNewsClient/entry/entry.iml b/HarmonyOSNewsClient/entry/entry.iml
new file mode 100644
index 0000000000000000000000000000000000000000..1195bcf115d99b7b11599c4f15157dd5863d2317
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/entry.iml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/entry/src/main/config.json b/HarmonyOSNewsClient/entry/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..56ea53a4851d7d01fc587d8cd858e945ca3ffae9
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/config.json
@@ -0,0 +1,75 @@
+{
+ "app": {
+ "bundleName": "com.huawei.codelab",
+ "vendor": "huawei",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "com.huawei.codelab",
+ "name": ".NewsDemo",
+ "reqCapabilities": [
+ "video_support"
+ ],
+ "deviceType": [
+ "phone",
+ "tv"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry",
+ "installationFree": false
+ },
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home",
+ "action.detail"
+ ]
+ }
+ ],
+ "orientation": "portrait",
+ "formsEnabled": false,
+ "name": "com.huawei.codelab.NewsAbility",
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:app_name",
+ "type": "page",
+ "launchType": "standard"
+ }
+ ],
+ "reqPermissions": [
+ {
+ "reason": "",
+ "name": "ohos.permission.servicebus.ACCESS_SERVICE"
+ },
+ {
+ "name": "ohos.permission.DISTRIBUTED_DATASYNC"
+ },
+ {
+ "name": "ohos.permission.DISTRIBUTED_DEVICE_STATE_CHANGE"
+ },
+ {
+ "name": "ohos.permission.GET_DISTRIBUTED_DEVICE_INFO"
+ },
+ {
+ "name": "ohos.permission.SYSTEM_FLOAT_WINDOW"
+ },
+ {
+ "name": "ohos.permission.INTERNET"
+ },
+ {
+ "name": "ohos.permission.R"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/NewsAbility.java b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/NewsAbility.java
new file mode 100644
index 0000000000000000000000000000000000000000..e870a1ff947d1720d5031331376a177f274f9763
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/NewsAbility.java
@@ -0,0 +1,46 @@
+/*
+ * 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.
+ */
+
+package com.huawei.codelab;
+
+import com.huawei.codelab.slice.NewsDetailAbilitySlice;
+import com.huawei.codelab.slice.NewsListAbilitySlice;
+
+import ohos.aafwk.ability.Ability;
+import ohos.aafwk.content.Intent;
+import ohos.bundle.IBundleManager;
+
+/**
+ * News ability
+ *
+ * @since 2020-12-04
+ */
+public class NewsAbility extends Ability {
+ private static final String PERMISSION_DATASYNC = "ohos.permission.DISTRIBUTED_DATASYNC";
+ private static final int MY_PERMISSION_REQUEST_CODE = 1;
+
+ @Override
+ public void onStart(Intent intent) {
+ super.onStart(intent);
+ super.setMainRoute(NewsListAbilitySlice.class.getName());
+ addActionRoute("action.detail", NewsDetailAbilitySlice.class.getName());
+
+ if (verifySelfPermission(PERMISSION_DATASYNC) != IBundleManager.PERMISSION_GRANTED) {
+ if (canRequestPermission(PERMISSION_DATASYNC)) {
+ requestPermissionsFromUser(new String[] {PERMISSION_DATASYNC}, MY_PERMISSION_REQUEST_CODE);
+ }
+ }
+ }
+}
diff --git a/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/NewsDemo.java b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/NewsDemo.java
new file mode 100644
index 0000000000000000000000000000000000000000..c7352454b58cb4b716d269b06082298110bc6102
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/NewsDemo.java
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+
+package com.huawei.codelab;
+
+import ohos.aafwk.ability.AbilityPackage;
+
+/**
+ * News demo
+ *
+ * @since 2020-12-04
+ */
+public class NewsDemo extends AbilityPackage {
+ @Override
+ public void onInitialize() {
+ super.onInitialize();
+ }
+}
diff --git a/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/bean/NewsInfo.java b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/bean/NewsInfo.java
new file mode 100644
index 0000000000000000000000000000000000000000..905c0e86b90b2e5a3c1586ad7b3daccf373b3d89
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/bean/NewsInfo.java
@@ -0,0 +1,75 @@
+/*
+ * 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.
+ */
+
+package com.huawei.codelab.bean;
+
+/**
+ * News information
+ *
+ * @since 2020-12-04
+ */
+public class NewsInfo {
+ private String title;
+
+ private String type;
+
+ private String imgUrl;
+
+ private String reads;
+
+ private String likes;
+
+ private String content;
+
+ public String getImgUrl() {
+ return imgUrl;
+ }
+
+ public String getReads() {
+ return reads;
+ }
+
+ public void setReads(String reads) {
+ this.reads = reads;
+ }
+
+ public String getLikes() {
+ return likes;
+ }
+
+ public void setLikes(String likes) {
+ this.likes = likes;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getType() {
+ return type;
+ }
+}
diff --git a/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/bean/NewsType.java b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/bean/NewsType.java
new file mode 100644
index 0000000000000000000000000000000000000000..e0d633fdd8b85f128ddc9c0416878d952e77a827
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/bean/NewsType.java
@@ -0,0 +1,29 @@
+/*
+ * 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.
+ */
+
+package com.huawei.codelab.bean;
+
+/**
+ * News information
+ *
+ * @since 2020-12-04
+ */
+public class NewsType {
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+}
diff --git a/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/distribute/api/SelectDeviceResultListener.java b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/distribute/api/SelectDeviceResultListener.java
new file mode 100644
index 0000000000000000000000000000000000000000..55493ca591081d8f24ba9ddcf4052d4eca19002c
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/distribute/api/SelectDeviceResultListener.java
@@ -0,0 +1,8 @@
+package com.huawei.codelab.distribute.api;
+
+import ohos.distributedschedule.interwork.DeviceInfo;
+
+public interface SelectDeviceResultListener {
+ void onSuccess(DeviceInfo info);
+ void onFail(DeviceInfo info);
+}
diff --git a/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/distribute/constant/DistributeConst.java b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/distribute/constant/DistributeConst.java
new file mode 100644
index 0000000000000000000000000000000000000000..63405f96bfe3dea7d10c054785ddc7741d08e82e
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/distribute/constant/DistributeConst.java
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) Huawei Technologies Co., Ltd. 2021-2021. All rights reserved.
+ */
+
+package com.huawei.codelab.distribute.constant;
+
+/**
+ * Camera ConstUtil
+ *
+ * @since 2020-01-17
+ */
+public class DistributeConst {
+ public static final String TAG = DistributeConst.class.getSimpleName();
+ /**
+ * max distribute message size
+ */
+ public static final int MAX_MSG_SIZE = 1024 * 64;
+}
diff --git a/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/distribute/factory/DeviceSelector.java b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/distribute/factory/DeviceSelector.java
new file mode 100644
index 0000000000000000000000000000000000000000..cda31d24b850563ba825554a608d73d28d3e1e64
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/distribute/factory/DeviceSelector.java
@@ -0,0 +1,120 @@
+package com.huawei.codelab.distribute.factory;
+
+import com.huawei.codelab.distribute.api.SelectDeviceResultListener;
+import com.huawei.codelab.distribute.constant.DistributeConst;
+import com.huawei.codelab.utils.LogUtils;
+import ohos.aafwk.ability.Ability;
+import ohos.aafwk.ability.continuation.*;
+import ohos.distributedschedule.interwork.DeviceInfo;
+import ohos.distributedschedule.interwork.DeviceManager;
+import ohos.distributedschedule.interwork.IInitCallback;
+import ohos.rpc.RemoteException;
+
+import java.util.List;
+
+// 设置初始化分布式环境的回调
+// 设置流转任务管理服务设备状态变更的回调
+// 设置注册流转任务管理服务回调
+public class DeviceSelector implements IInitCallback, IContinuationDeviceCallback, RequestCallback {
+ private int token;
+ private boolean isSetup;
+ private DeviceInfo deviceInfo;
+ private SelectDeviceResultListener selectDeviceResultListener;
+
+ // 获取流转任务管理服务管理类
+ private IContinuationRegisterManager continuationRegisterManager;
+
+ public DeviceSelector() {
+ deviceInfo = new DeviceInfo();
+ }
+
+ public void setup(Ability ability) {
+ if (!isSetup) {
+ isSetup = true;
+ continuationRegisterManager = ability.getContinuationRegisterManager();
+ //注册流转任务管理服务
+ continuationRegisterManager.register(ability.getBundleName(), null, this, this);
+ }
+ }
+
+ public void showDistributeDevices(String[] devTypes, String ext) {
+ if (isSetup) {
+ LogUtils.error(DistributeConst.TAG, "showDistributeDevices is called");
+ // 设置过滤设备类型
+ ExtraParams params = new ExtraParams();
+ params.setDevType(devTypes);
+ params.setJsonParams(ext);
+ // 显示选择设备列表
+ continuationRegisterManager.showDeviceList(token, params, null);
+ } else {
+ LogUtils.error(DistributeConst.TAG, "Please use setup method first!");
+ }
+ }
+
+ public void destroy() {
+ continuationRegisterManager.disconnect();
+ if (isSetup) {
+ isSetup = false;
+ // 解注册流转任务管理服务
+ continuationRegisterManager.unregister(token, null);
+ // 断开流转任务管理服务连接
+ continuationRegisterManager.disconnect();
+ }
+ }
+
+ public void setSelectDeviceResultListener(SelectDeviceResultListener listener) {
+ selectDeviceResultListener = listener;
+ }
+
+ private void setRemoteDeviceInfo(String selectedId) {
+ List distributeDeviceDatas = DeviceManager.getDeviceList(DeviceInfo.FLAG_GET_ONLINE_DEVICE);
+ for (DeviceInfo distributeDeviceData : distributeDeviceDatas) {
+ if (distributeDeviceData.getDeviceId().equals(selectedId)) {
+ deviceInfo = distributeDeviceData;
+ return;
+ }
+ }
+ deviceInfo.setDeviceInfo(selectedId, "");
+ }
+
+ @Override
+ public void onResult(int result) {
+ LogUtils.info(DistributeConst.TAG, "IContinuationRegisterManager register success,result is: " + result);
+ token = result;
+ }
+
+ @Override
+ public void onInitSuccess(String deviceId) {
+ LogUtils.info(DistributeConst.TAG, "device id success: " + deviceId);
+ if (selectDeviceResultListener != null) {
+ selectDeviceResultListener.onSuccess(deviceInfo);
+ }
+ }
+
+ @Override
+ public void onInitFailure(String deviceId, int errorCode) {
+ LogUtils.info(DistributeConst.TAG, "device id failed: " + deviceId + "errorCode: " + errorCode);
+ if (selectDeviceResultListener != null) {
+ selectDeviceResultListener.onFail(deviceInfo);
+ }
+ }
+
+ @Override
+ public void onDeviceConnectDone(String deviceId, String deviceType) {
+ LogUtils.info(DistributeConst.TAG, "select done,onDeviceConnectDone is called: " + deviceId);
+ setRemoteDeviceInfo(deviceId);
+ try {
+ // 初始化分布式环境
+ DeviceManager.initDistributedEnvironment(deviceId, this);
+ } catch (RemoteException e) {
+ LogUtils.info(DistributeConst.TAG, "initDistributedEnvironment failed");
+ }
+ continuationRegisterManager.updateConnectStatus(token, deviceId, DeviceConnectState.CONNECTED.getState(), null);
+ }
+
+ @Override
+ public void onDeviceDisconnectDone(String deviceId) {
+ LogUtils.info(DistributeConst.TAG, "onDeviceDisconnectDone is called: " + deviceId);
+ continuationRegisterManager.updateConnectStatus(token, deviceId, DeviceConnectState.IDLE.getState(), null);
+ }
+}
diff --git a/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/provider/DevicesListProvider.java b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/provider/DevicesListProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..72fd924255760286e817602a87776109b0cb3ec0
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/provider/DevicesListProvider.java
@@ -0,0 +1,90 @@
+/*
+ * 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.
+ */
+
+package com.huawei.codelab.provider;
+
+import com.huawei.codelab.ResourceTable;
+
+import ohos.agp.components.BaseItemProvider;
+import ohos.agp.components.Component;
+import ohos.agp.components.ComponentContainer;
+import ohos.agp.components.LayoutScatter;
+import ohos.agp.components.Text;
+import ohos.app.Context;
+import ohos.distributedschedule.interwork.DeviceInfo;
+
+import java.util.List;
+
+/**
+ * Device list adapter
+ *
+ * @since 2020-12-04
+ */
+public class DevicesListProvider extends BaseItemProvider {
+ private List deviceInfoList;
+ private Context context;
+
+ /**
+ * constructor function
+ *
+ * @param listBasicInfo list info
+ * @param context context
+ * @since 2020-12-04
+ */
+ public DevicesListProvider(List listBasicInfo, Context context) {
+ this.deviceInfoList = listBasicInfo;
+ this.context = context;
+ }
+
+ @Override
+ public int getCount() {
+ return deviceInfoList == null ? 0 : deviceInfoList.size();
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return deviceInfoList.get(position);
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
+ @Override
+ public Component getComponent(int position, Component component, ComponentContainer componentContainer) {
+ ViewHolder viewHolder;
+ Component temp = component;
+ if (temp == null) {
+ temp = LayoutScatter.getInstance(context).parse(ResourceTable.Layout_device_list_item, null, false);
+ viewHolder = new ViewHolder();
+ viewHolder.devicesName = (Text) temp.findComponentById(ResourceTable.Id_item_child_textview);
+ temp.setTag(viewHolder);
+ } else {
+ viewHolder = (ViewHolder) temp.getTag();
+ }
+ viewHolder.devicesName.setText(deviceInfoList.get(position).getDeviceName());
+ return temp;
+ }
+
+ /**
+ * ViewHolder which has devicesName
+ *
+ * @since 2020-12-04
+ */
+ private static class ViewHolder {
+ private Text devicesName;
+ }
+}
diff --git a/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/provider/NewsListProvider.java b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/provider/NewsListProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..61d492b878c287eaa4969c846b16ec6c49c0f5e8
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/provider/NewsListProvider.java
@@ -0,0 +1,95 @@
+/*
+ * 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.
+ */
+
+package com.huawei.codelab.provider;
+
+import com.huawei.codelab.ResourceTable;
+import com.huawei.codelab.bean.NewsInfo;
+import com.huawei.codelab.utils.CommonUtils;
+
+import ohos.agp.components.BaseItemProvider;
+import ohos.agp.components.Component;
+import ohos.agp.components.ComponentContainer;
+import ohos.agp.components.Image;
+import ohos.agp.components.LayoutScatter;
+import ohos.agp.components.Text;
+import ohos.app.Context;
+
+import java.util.List;
+
+/**
+ * News list adapter
+ *
+ * @since 2020-12-04
+ */
+public class NewsListProvider extends BaseItemProvider {
+ private List newsInfoList;
+ private Context context;
+
+ /**
+ * constructor function
+ *
+ * @param listBasicInfo list info
+ * @param context context
+ * @since 2020-12-04
+ */
+ public NewsListProvider(List listBasicInfo, Context context) {
+ this.newsInfoList = listBasicInfo;
+ this.context = context;
+ }
+
+ @Override
+ public int getCount() {
+ return newsInfoList == null ? 0 : newsInfoList.size();
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return newsInfoList.get(position);
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
+ @Override
+ public Component getComponent(int position, Component component, ComponentContainer componentContainer) {
+ ViewHolder viewHolder;
+ Component temp = component;
+ if (temp == null) {
+ temp = LayoutScatter.getInstance(context).parse(ResourceTable.Layout_item_news_layout, null, false);
+ viewHolder = new ViewHolder();
+ viewHolder.title = (Text) temp.findComponentById(ResourceTable.Id_item_news_title);
+ viewHolder.image = (Image) temp.findComponentById(ResourceTable.Id_item_news_image);
+ temp.setTag(viewHolder);
+ } else {
+ viewHolder = (ViewHolder) temp.getTag();
+ }
+ viewHolder.title.setText(newsInfoList.get(position).getTitle());
+ viewHolder.image.setPixelMap(CommonUtils.getPixelMapFromPath(context, newsInfoList.get(position).getImgUrl()));
+ return temp;
+ }
+
+ /**
+ * ViewHolder which has title and image
+ *
+ * @since 2020-12-04
+ */
+ private static class ViewHolder {
+ Text title;
+ Image image;
+ }
+}
diff --git a/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/provider/NewsTypeProvider.java b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/provider/NewsTypeProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..f320b73fcd5502f18f194504b6aa6f7da0f79be6
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/provider/NewsTypeProvider.java
@@ -0,0 +1,91 @@
+/*
+ * 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.
+ */
+
+package com.huawei.codelab.provider;
+
+import com.huawei.codelab.ResourceTable;
+import com.huawei.codelab.bean.NewsType;
+
+import ohos.agp.components.BaseItemProvider;
+import ohos.agp.components.Component;
+import ohos.agp.components.ComponentContainer;
+import ohos.agp.components.LayoutScatter;
+import ohos.agp.components.Text;
+import ohos.app.Context;
+
+import java.util.List;
+
+/**
+ * News type list adapter
+ *
+ * @since 2020-12-04
+ */
+public class NewsTypeProvider extends BaseItemProvider {
+ private List newsTypeList;
+ private Context context;
+
+ /**
+ * constructor function
+ *
+ * @param listBasicInfo list info
+ * @param context context
+ * @since 2020-12-04
+ */
+ public NewsTypeProvider(List listBasicInfo, Context context) {
+ this.newsTypeList = listBasicInfo;
+ this.context = context;
+ }
+
+ @Override
+ public int getCount() {
+ return newsTypeList == null ? 0 : newsTypeList.size();
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return newsTypeList.get(position);
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
+ @Override
+ public Component getComponent(int position, Component component, ComponentContainer componentContainer) {
+ ViewHolder viewHolder;
+ Component temp = component;
+ if (temp == null) {
+ temp =
+ LayoutScatter.getInstance(context).parse(ResourceTable.Layout_item_news_type_layout, null, false);
+ viewHolder = new ViewHolder();
+ viewHolder.title = (Text) temp.findComponentById(ResourceTable.Id_news_type_text);
+ temp.setTag(viewHolder);
+ } else {
+ viewHolder = (ViewHolder) temp.getTag();
+ }
+ viewHolder.title.setText(newsTypeList.get(position).getName());
+ return temp;
+ }
+
+ /**
+ * ViewHolder which has title
+ *
+ * @since 2020-12-04
+ */
+ private static class ViewHolder {
+ Text title;
+ }
+}
diff --git a/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/slice/NewsDetailAbilitySlice.java b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/slice/NewsDetailAbilitySlice.java
new file mode 100644
index 0000000000000000000000000000000000000000..2c334c7c677abff805ed024a027534cbf7b757ac
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/slice/NewsDetailAbilitySlice.java
@@ -0,0 +1,125 @@
+/*
+ * 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.
+ */
+
+package com.huawei.codelab.slice;
+
+import com.huawei.codelab.NewsAbility;
+import com.huawei.codelab.ResourceTable;
+import com.huawei.codelab.distribute.api.SelectDeviceResultListener;
+import com.huawei.codelab.distribute.factory.DeviceSelector;
+import com.huawei.codelab.utils.CommonUtils;
+import com.huawei.codelab.utils.LogUtils;
+
+import ohos.aafwk.ability.AbilitySlice;
+import ohos.aafwk.ability.continuation.ExtraParams;
+import ohos.aafwk.content.Intent;
+import ohos.aafwk.content.Operation;
+import ohos.agp.components.*;
+import ohos.distributedschedule.interwork.DeviceInfo;
+
+/**
+ * News detail slice
+ *
+ * @since 2020-12-04
+ */
+public class NewsDetailAbilitySlice extends AbilitySlice {
+ public static final String INTENT_TITLE = "intent_title";
+ public static final String INTENT_READ = "intent_read";
+ public static final String INTENT_LIKE = "intent_like";
+ public static final String INTENT_CONTENT = "intent_content";
+ public static final String INTENT_IMAGE = "intent_image";
+ private DependentLayout parentLayout;
+ private TextField commentFocus;
+ private Image iconShared;
+ private DeviceSelector deviceSelector;
+ private String reads;
+ private String likes;
+ private String title;
+ private String content;
+ private String image;
+
+ @Override
+ public void onStart(Intent intent) {
+ super.onStart(intent);
+ super.setUIContent(ResourceTable.Layout_news_detail_layout);
+ reads = intent.getStringParam(INTENT_READ);
+ likes = intent.getStringParam(INTENT_LIKE);
+ title = intent.getStringParam(INTENT_TITLE);
+ content = intent.getStringParam(INTENT_CONTENT);
+ image = intent.getStringParam(INTENT_IMAGE);
+ initView();
+ initListener();
+ initDistributeComponent();
+ }
+
+ private void initView() {
+ parentLayout = (DependentLayout) findComponentById(ResourceTable.Id_parent_layout);
+ commentFocus = (TextField) findComponentById(ResourceTable.Id_text_file);
+ iconShared = (Image) findComponentById(ResourceTable.Id_button4);
+ Text newsRead = (Text) findComponentById(ResourceTable.Id_read_num);
+ Text newsLike = (Text) findComponentById(ResourceTable.Id_like_num);
+ Text newsTitle = (Text) findComponentById(ResourceTable.Id_title_text);
+ Text newsContent = (Text) findComponentById(ResourceTable.Id_title_content);
+ Image newsImage = (Image) findComponentById(ResourceTable.Id_image_content);
+ newsRead.setText("reads: " + reads);
+ newsLike.setText("likes: " + likes);
+ newsTitle.setText("Original title: " + title);
+ newsContent.setText(content);
+ newsImage.setPixelMap(CommonUtils.getPixelMapFromPath(this, image));
+ }
+
+ private void initListener() {
+ parentLayout.setTouchEventListener(
+ (component, touchEvent) -> {
+ if (commentFocus.hasFocus()) {
+ commentFocus.clearFocus();
+ }
+ return true;
+ });
+ iconShared.setClickedListener(component -> deviceSelector.showDistributeDevices(
+ new String[]{ExtraParams.DEVICETYPE_SMART_PAD, ExtraParams.DEVICETYPE_SMART_PHONE},
+ null));
+ }
+
+ private void initDistributeComponent() {
+ deviceSelector = new DeviceSelector();
+ deviceSelector.setup(getAbility());
+ deviceSelector.setSelectDeviceResultListener(new SelectDeviceResultListener() {
+ @Override
+ public void onSuccess(DeviceInfo info) {
+ Intent intent = new Intent();
+ Operation operation = new Intent.OperationBuilder()
+ .withDeviceId(info.getDeviceId())
+ .withBundleName(getBundleName())
+ .withAbilityName(NewsAbility.class.getName())
+ .withAction("action.detail")
+ .withFlags(Intent.FLAG_ABILITYSLICE_MULTI_DEVICE)
+ .build();
+ intent.setOperation(operation);
+ intent.setParam(NewsDetailAbilitySlice.INTENT_TITLE, title);
+ intent.setParam(NewsDetailAbilitySlice.INTENT_READ, reads);
+ intent.setParam(NewsDetailAbilitySlice.INTENT_LIKE, likes);
+ intent.setParam(NewsDetailAbilitySlice.INTENT_CONTENT, content);
+ intent.setParam(NewsDetailAbilitySlice.INTENT_IMAGE, image);
+ startAbility(intent);
+ }
+
+ @Override
+ public void onFail(DeviceInfo info) {
+ LogUtils.error("cwq","onFail is called,info is "+info.getDeviceState());
+ }
+ });
+ }
+}
diff --git a/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/slice/NewsListAbilitySlice.java b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/slice/NewsListAbilitySlice.java
new file mode 100644
index 0000000000000000000000000000000000000000..8f459d10170a38b65c3731e095f717ba6496dae6
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/slice/NewsListAbilitySlice.java
@@ -0,0 +1,159 @@
+/*
+ * 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.
+ */
+
+package com.huawei.codelab.slice;
+
+import com.huawei.codelab.NewsAbility;
+import com.huawei.codelab.ResourceTable;
+import com.huawei.codelab.bean.NewsInfo;
+import com.huawei.codelab.bean.NewsType;
+import com.huawei.codelab.provider.NewsListProvider;
+import com.huawei.codelab.provider.NewsTypeProvider;
+import com.huawei.codelab.utils.CommonUtils;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+
+import ohos.aafwk.ability.AbilitySlice;
+import ohos.aafwk.content.Intent;
+import ohos.aafwk.content.Operation;
+import ohos.agp.components.ListContainer;
+import ohos.agp.components.Text;
+import ohos.agp.utils.Color;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * News list slice
+ *
+ * @since 2020-12-04
+ */
+public class NewsListAbilitySlice extends AbilitySlice {
+ private static final float FOCUS_TEXT_SIZE = 1.2f;
+ private static final float UNFOCUSED_TEXT_SIZE = 1.0f;
+ private Text selectText;
+
+ private ListContainer newsListContainer;
+ private ListContainer selectorListContainer;
+ private List totalNewsDataList;
+ private List newsDataList;
+
+ private NewsTypeProvider newsTypeProvider;
+ private NewsListProvider newsListProvider;
+
+ @Override
+ public void onStart(Intent intent) {
+ super.onStart(intent);
+ super.setUIContent(ResourceTable.Layout_news_list_layout);
+ initView();
+ initData();
+ initListener();
+ selectorListContainer.setItemProvider(newsTypeProvider);
+ newsListContainer.setItemProvider(newsListProvider);
+ newsTypeProvider.notifyDataChanged();
+ newsListProvider.notifyDataChanged();
+ }
+
+ private void initView() {
+ selectorListContainer = (ListContainer) findComponentById(ResourceTable.Id_selector_list);
+ newsListContainer = (ListContainer) findComponentById(ResourceTable.Id_news_container);
+ }
+
+ private void initData() {
+ Gson gson = new Gson();
+ List newsTypeList =
+ gson.fromJson(
+ CommonUtils.getStringFromJsonPath(this, "entry/resources/rawfile/news_type_datas.json"),
+ new TypeToken>() { }.getType());
+ totalNewsDataList =
+ gson.fromJson(
+ CommonUtils.getStringFromJsonPath(this, "entry/resources/rawfile/news_datas.json"),
+ new TypeToken>() { }.getType());
+ newsDataList = new ArrayList<>();
+ newsDataList.addAll(totalNewsDataList);
+ newsTypeProvider = new NewsTypeProvider(newsTypeList, this);
+ newsListProvider = new NewsListProvider(newsDataList, this);
+ }
+
+ /**
+ * init listener of news type and news detail
+ */
+ private void initListener() {
+ selectorListContainer.setItemClickedListener(
+ (listContainer, component, position, id) -> {
+ setCategorizationFocus(false);
+ selectText = (Text) component.findComponentById(ResourceTable.Id_news_type_text);
+ setCategorizationFocus(true);
+ newsDataList.clear();
+ for (NewsInfo mTotalNewsData : totalNewsDataList) {
+ if (selectText.getText().equals(mTotalNewsData.getType()) || position == 0) {
+ newsDataList.add(mTotalNewsData);
+ }
+ }
+ updateListView();
+ });
+ newsListContainer.setItemClickedListener(
+ (listContainer, component, position, id) -> {
+ Intent intent = new Intent();
+ Operation operation =
+ new Intent.OperationBuilder()
+ .withBundleName(getBundleName())
+ .withAbilityName(NewsAbility.class.getName())
+ .withAction("action.detail")
+ .build();
+ intent.setOperation(operation);
+ intent.setParam(NewsDetailAbilitySlice.INTENT_TITLE, newsDataList.get(position).getTitle());
+ intent.setParam(NewsDetailAbilitySlice.INTENT_READ, newsDataList.get(position).getReads());
+ intent.setParam(NewsDetailAbilitySlice.INTENT_LIKE, newsDataList.get(position).getLikes());
+ intent.setParam(NewsDetailAbilitySlice.INTENT_CONTENT, newsDataList.get(position).getContent());
+ intent.setParam(NewsDetailAbilitySlice.INTENT_IMAGE, newsDataList.get(position).getImgUrl());
+ startAbility(intent);
+ });
+ }
+
+ private void setCategorizationFocus(boolean isFocus) {
+ if (selectText == null) {
+ return;
+ }
+ if (isFocus) {
+ selectText.setTextColor(
+ new Color(CommonUtils.getColor(NewsListAbilitySlice.this, ResourceTable.Color_news_type_text_on)));
+ selectText.setScaleX(FOCUS_TEXT_SIZE);
+ selectText.setScaleY(FOCUS_TEXT_SIZE);
+ } else {
+ selectText.setTextColor(
+ new Color(CommonUtils.getColor(NewsListAbilitySlice.this, ResourceTable.Color_news_type_text_off)));
+ selectText.setScaleX(UNFOCUSED_TEXT_SIZE);
+ selectText.setScaleY(UNFOCUSED_TEXT_SIZE);
+ }
+ }
+
+ private void updateListView() {
+ newsListProvider.notifyDataChanged();
+ newsListContainer.invalidate();
+ newsListContainer.scrollToCenter(0);
+ }
+
+ @Override
+ public void onActive() {
+ super.onActive();
+ }
+
+ @Override
+ public void onForeground(Intent intent) {
+ super.onForeground(intent);
+ }
+}
diff --git a/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/utils/CommonUtils.java b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/utils/CommonUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..5d3524d83407c61ddc26f6f1f13de1e94db84c52
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/utils/CommonUtils.java
@@ -0,0 +1,117 @@
+/*
+ * 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.
+ */
+
+package com.huawei.codelab.utils;
+
+import ohos.app.Context;
+import ohos.global.resource.NotExistException;
+import ohos.global.resource.Resource;
+import ohos.global.resource.WrongTypeException;
+import ohos.media.image.ImageSource;
+import ohos.media.image.PixelMap;
+import ohos.media.image.common.PixelFormat;
+import ohos.media.image.common.Rect;
+import ohos.media.image.common.Size;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.Optional;
+
+/**
+ * Common utils
+ *
+ * @since 2020-12-04
+ */
+public class CommonUtils {
+ private static final String TAG = "Common Utils";
+ private static final String ERROR_MESSAGE = "some error happened";
+ private static final int GET_COLOR_STATE_FAILED = -1;
+ private static final int JSON_READ_ERROR = -1;
+
+ private CommonUtils() {
+ }
+
+ /**
+ * Get color method
+ *
+ * @param context context resourceID res id
+ * @param resourceId res id
+ * @return color
+ * @since 2020-12-04
+ */
+ public static int getColor(Context context, int resourceId) {
+ try {
+ return context.getResourceManager().getElement(resourceId).getColor();
+ } catch (IOException | NotExistException | WrongTypeException e) {
+ LogUtils.info(TAG, "some exception happened");
+ }
+ return GET_COLOR_STATE_FAILED;
+ }
+
+ /**
+ * Obtains a bitmap object based on the resource path.
+ *
+ * @param context context
+ * @param path path
+ * @return pixelMap
+ */
+ public static PixelMap getPixelMapFromPath(Context context, String path) {
+ InputStream drawableInputStream = null;
+ try {
+ drawableInputStream = context.getResourceManager().getRawFileEntry(path).openRawFile();
+ ImageSource.SourceOptions sourceOptions = new ImageSource.SourceOptions();
+ sourceOptions.formatHint = "image/png";
+ ImageSource imageSource = ImageSource.create(drawableInputStream, sourceOptions);
+ ImageSource.DecodingOptions decodingOptions = new ImageSource.DecodingOptions();
+ decodingOptions.desiredSize = new Size(0, 0);
+ decodingOptions.desiredRegion = new Rect(0, 0, 0, 0);
+ decodingOptions.desiredPixelFormat = PixelFormat.ARGB_8888;
+ return imageSource.createPixelmap(decodingOptions);
+ } catch (IOException e) {
+ LogUtils.info(TAG, ERROR_MESSAGE);
+ } finally {
+ try {
+ if (drawableInputStream != null) {
+ drawableInputStream.close();
+ }
+ } catch (IOException e) {
+ LogUtils.error(TAG, ERROR_MESSAGE);
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Obtains a List based on the resource path.
+ *
+ * @param context context
+ * @param jsonPath path
+ * @return jsonString
+ */
+ public static String getStringFromJsonPath(Context context, String jsonPath) {
+ Resource datasResource;
+ try {
+ datasResource = context.getResourceManager().getRawFileEntry(jsonPath).openRawFile();
+ byte[] buffers = new byte[datasResource.available()];
+ if (datasResource.read(buffers) != JSON_READ_ERROR) {
+ return new String(buffers, StandardCharsets.UTF_8);
+ }
+ } catch (IOException e) {
+ LogUtils.error(TAG, ERROR_MESSAGE);
+ }
+ return Optional.of(jsonPath).toString();
+ }
+}
diff --git a/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/utils/DialogUtils.java b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/utils/DialogUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..add83572b6cb75dd5e6491805b0c041481683e3a
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/utils/DialogUtils.java
@@ -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.
+ */
+
+package com.huawei.codelab.utils;
+
+import ohos.agp.colors.RgbColor;
+import ohos.agp.components.DependentLayout;
+import ohos.agp.components.Text;
+import ohos.agp.components.element.ShapeElement;
+import ohos.agp.utils.Color;
+import ohos.agp.window.dialog.ToastDialog;
+import ohos.app.Context;
+
+/**
+ * Dialog util
+ *
+ * @since 2020-12-04
+ */
+public class DialogUtils {
+ private static final int TEXT_SIZE = 40;
+ private static final int TEXT_PADDING = 20;
+ private static final int TEXT_HEIGHT = 100;
+ private static final int TEXT_CORNER = 20;
+ private static final int TEXT_OFFSETY = 200;
+ private static final int TEXT_ALPHA = 120;
+
+ private DialogUtils() {
+ }
+
+ /**
+ * Toast Method
+ *
+ * @param context context
+ * @param text Pop-up toast content
+ * @param ms Toast display time, in ms.
+ */
+ public static void toast(Context context, String text, int ms) {
+ DependentLayout layout = new DependentLayout(context);
+ layout.setWidth(ScreenUtils.getScreenWidth(context));
+ layout.setHeight(TEXT_HEIGHT);
+ Text textView = new Text(context);
+ ShapeElement background = new ShapeElement();
+ background.setCornerRadius(TEXT_CORNER);
+ background.setRgbColor(new RgbColor(0, 0, 0, TEXT_ALPHA));
+ textView.setBackground(background);
+ DependentLayout.LayoutConfig config =
+ new DependentLayout.LayoutConfig(
+ DependentLayout.LayoutConfig.MATCH_CONTENT, DependentLayout.LayoutConfig.MATCH_CONTENT);
+ config.addRule(DependentLayout.LayoutConfig.HORIZONTAL_CENTER);
+ textView.setLayoutConfig(config);
+ textView.setPadding(TEXT_PADDING, TEXT_PADDING, TEXT_PADDING, TEXT_PADDING);
+ textView.setMaxTextLines(1);
+ textView.setTextSize(TEXT_SIZE);
+ textView.setMaxTextWidth(ScreenUtils.getScreenWidth(context));
+ textView.setTextColor(Color.WHITE);
+ textView.setText(text);
+ layout.addComponent(textView);
+ ToastDialog toastDialog = new ToastDialog(context);
+ toastDialog.setContentCustomComponent(layout);
+ toastDialog.setTransparent(true);
+ toastDialog.setOffset(0, TEXT_OFFSETY);
+ toastDialog.setSize(ScreenUtils.getScreenWidth(context), TEXT_HEIGHT);
+ toastDialog.setDuration(ms);
+ toastDialog.show();
+ }
+}
diff --git a/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/utils/LogUtils.java b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/utils/LogUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..21b893004bee9d426446e04b4b5b9b346efaafce
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/utils/LogUtils.java
@@ -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.
+ */
+
+package com.huawei.codelab.utils;
+
+import ohos.hiviewdfx.HiLog;
+import ohos.hiviewdfx.HiLogLabel;
+
+/**
+ * Log Util
+ *
+ * @since 2020-12-04
+ */
+public class LogUtils {
+ private static final String TAG_LOG = "LogUtil";
+
+ private static final HiLogLabel LABEL_LOG = new HiLogLabel(0, 0, LogUtils.TAG_LOG);
+
+ private static final String LOG_FORMAT = "%{public}s: %{public}s";
+
+ private LogUtils() {
+ }
+
+ /**
+ * Print info log
+ *
+ * @param tag log tag
+ * @param msg log message
+ */
+ public static void info(String tag, String msg) {
+ HiLog.info(LABEL_LOG, LOG_FORMAT, tag, msg);
+ }
+
+ /**
+ * Print info log
+ *
+ * @param tag log tag
+ * @param msg log message
+ */
+ public static void error(String tag, String msg) {
+ HiLog.info(LABEL_LOG, LOG_FORMAT, tag, msg);
+ }
+}
diff --git a/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/utils/ScreenUtils.java b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/utils/ScreenUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..3030bf7ed206d75dfaad8fc65caa0cfb4779cbd1
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/java/com/huawei/codelab/utils/ScreenUtils.java
@@ -0,0 +1,51 @@
+/*
+ * 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.
+ */
+
+package com.huawei.codelab.utils;
+
+import ohos.agp.utils.Point;
+import ohos.agp.window.service.Display;
+import ohos.agp.window.service.DisplayManager;
+import ohos.app.Context;
+
+import java.util.Optional;
+
+/**
+ * Screen Util
+ *
+ * @since 2020-12-04
+ */
+class ScreenUtils {
+ private ScreenUtils() { }
+
+ /**
+ * get Screen Width Method
+ *
+ * @param context context
+ * @return screen width
+ */
+ static int getScreenWidth(Context context) {
+ DisplayManager displayManager = DisplayManager.getInstance();
+ Optional optDisplay = displayManager.getDefaultDisplay(context);
+ Point point = new Point(0, 0);
+ if (!optDisplay.isPresent()) {
+ return (int) point.position[0];
+ } else {
+ Display display = optDisplay.get();
+ display.getSize(point);
+ return (int) point.position[0];
+ }
+ }
+}
diff --git a/HarmonyOSNewsClient/entry/src/main/resources/base/element/colors.json b/HarmonyOSNewsClient/entry/src/main/resources/base/element/colors.json
new file mode 100644
index 0000000000000000000000000000000000000000..2ee40bdd48dd9e9add158d97f9efcea24ce975f8
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/resources/base/element/colors.json
@@ -0,0 +1,20 @@
+{
+ "color": [
+ {
+ "name": "news_type_text_off",
+ "value": "#55000000"
+ },
+ {
+ "name": "news_type_text_on",
+ "value": "#afaafa"
+ },
+ {
+ "name": "white",
+ "value": "#ffffff"
+ },
+ {
+ "name": "half_transparent",
+ "value": "#55000000"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/entry/src/main/resources/base/element/string.json b/HarmonyOSNewsClient/entry/src/main/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..ac1a8264ec70561c846bdc64a5d7a7d902cdf086
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/resources/base/element/string.json
@@ -0,0 +1,22 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "NewsDemo"
+ },
+ {
+ "name": "mainability_description",
+ "value": "hap sample empty page"
+ },
+ {
+ "name": "serviceability_description",
+ "value": "hap sample empty service"
+ },
+ {
+ "name": "news_text",
+ "value": "There are also smaller base stations, as large as the palm of your hand. Actually, there are many micro base stations, especially in urban areas and indoor areas. In the future, in the 5G era, more micro base stations will be installed everywhere, almost everywhere. You'd be asking, if there are so many base stations around, will it affect the human body? My answer is - no. In fact, contrary to the traditional perception, the more base stations, the less the radiation. Do you think, in winter, in a house of people, a large power heater is better, or a few small power heaters? Small base stations and low power are good for everyone. If only a large BTS is used, the distance between the BTS and the BTS is large and the BTS is far away from the BTS, and the BTS has no signal. There are also smaller base stations, as large as the palm of your hand. Actually, there are many micro base stations, especially in urban areas and indoor areas. In the future, in the 5G era, more micro base stations will be installed everywhere, almost everywhere. You'd be asking, if there are so many base stations around, will it affect the human body? My answer is - no. In fact, contrary to the traditional perception, the more base stations, the less the radiation. Do you think, in winter, in a house of people, a large power heater is better, or a few small power heaters? Small base stations and low power are good for everyone. If only a large BTS is used, the distance between the BTS and the BTS is large and the BTS is far away from the BTS, and the BTS has no signal. There are also smaller base stations, as large as the palm of your hand. Actually, there are many micro base stations, especially in urban areas and indoor areas. In the future, in the 5G era, more micro base stations will be installed everywhere, almost everywhere. You'd be asking, if there are so many base stations around, will it affect the human body? My answer is - no. In fact, contrary to the traditional perception, the more base stations, the less the radiation. Do you think, in winter, in a house of people, a large power heater is better, or a few small power heaters? Small base stations and low power are good for everyone. If only a large BTS is used, the distance between the BTS and the BTS is large and the BTS is far away from the BTS, and the BTS has no signal."
+ }
+ ]
+}
+
+
diff --git a/HarmonyOSNewsClient/entry/src/main/resources/base/graphic/corner_bg_comment.xml b/HarmonyOSNewsClient/entry/src/main/resources/base/graphic/corner_bg_comment.xml
new file mode 100644
index 0000000000000000000000000000000000000000..46d5f906e06bfaec1928b3e93341c48f3c0296a5
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/resources/base/graphic/corner_bg_comment.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/HarmonyOSNewsClient/entry/src/main/resources/base/layout/device_list_item.xml b/HarmonyOSNewsClient/entry/src/main/resources/base/layout/device_list_item.xml
new file mode 100644
index 0000000000000000000000000000000000000000..93fd91cd2404a8bdebccaf2ac6662a8674af4e98
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/resources/base/layout/device_list_item.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/entry/src/main/resources/base/layout/item_news_layout.xml b/HarmonyOSNewsClient/entry/src/main/resources/base/layout/item_news_layout.xml
new file mode 100644
index 0000000000000000000000000000000000000000..551a963b79de53bc0c723e2003478f8fc99ff176
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/resources/base/layout/item_news_layout.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/entry/src/main/resources/base/layout/item_news_type_layout.xml b/HarmonyOSNewsClient/entry/src/main/resources/base/layout/item_news_type_layout.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e5c7801bb83b63f6d7b4253662fefbaed33fb4b6
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/resources/base/layout/item_news_type_layout.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/entry/src/main/resources/base/layout/news_detail_layout.xml b/HarmonyOSNewsClient/entry/src/main/resources/base/layout/news_detail_layout.xml
new file mode 100644
index 0000000000000000000000000000000000000000..63a79803f892a8cd5ef78e04c7968042f15b9056
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/resources/base/layout/news_detail_layout.xml
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/entry/src/main/resources/base/layout/news_list_layout.xml b/HarmonyOSNewsClient/entry/src/main/resources/base/layout/news_list_layout.xml
new file mode 100644
index 0000000000000000000000000000000000000000..07a6b054a3126829a120ba2a69ce6e6b4ea70661
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/resources/base/layout/news_list_layout.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HarmonyOSNewsClient/entry/src/main/resources/base/media/collect_icon.png b/HarmonyOSNewsClient/entry/src/main/resources/base/media/collect_icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..4b8235df45956d419edca3905813c65c153df6fe
Binary files /dev/null and b/HarmonyOSNewsClient/entry/src/main/resources/base/media/collect_icon.png differ
diff --git a/HarmonyOSNewsClient/entry/src/main/resources/base/media/huawei.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/huawei.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..879e6df4a2a73737491eff4cf092d82468e4c58a
Binary files /dev/null and b/HarmonyOSNewsClient/entry/src/main/resources/base/media/huawei.jpg differ
diff --git a/ImageEditorTemplate/entry/src/main/resources/base/media/icon.png b/HarmonyOSNewsClient/entry/src/main/resources/base/media/icon.png
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/resources/base/media/icon.png
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/icon.png
diff --git a/HarmonyOSNewsClient/entry/src/main/resources/base/media/like_icon.png b/HarmonyOSNewsClient/entry/src/main/resources/base/media/like_icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..06d52687a3484057ebb411e3d87a7805c1aad31c
Binary files /dev/null and b/HarmonyOSNewsClient/entry/src/main/resources/base/media/like_icon.png differ
diff --git a/HarmonyOSNewsClient/entry/src/main/resources/base/media/message_icon.png b/HarmonyOSNewsClient/entry/src/main/resources/base/media/message_icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..9272e6e1de35808e9f2a2b5461e28d71b58f8931
Binary files /dev/null and b/HarmonyOSNewsClient/entry/src/main/resources/base/media/message_icon.png differ
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image1.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image1.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image1.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image1.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image10.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image10.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image10.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image10.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image11.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image11.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image11.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image11.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image12.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image12.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image12.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image12.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image13.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image13.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image13.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image13.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image14.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image14.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image14.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image14.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image15.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image15.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image15.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image15.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image16.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image16.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image16.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image16.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image17.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image17.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image17.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image17.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image18.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image18.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image18.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image18.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image19.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image19.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image19.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image19.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image2.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image2.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image2.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image2.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image3.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image3.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image3.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image3.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image4.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image4.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image4.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image4.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image5.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image5.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image5.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image5.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image6.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image6.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image6.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image6.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image7.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image7.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image7.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image7.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image8.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image8.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image8.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image8.jpg
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image9.jpg b/HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image9.jpg
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/common/images/news_image9.jpg
rename to HarmonyOSNewsClient/entry/src/main/resources/base/media/news_image9.jpg
diff --git a/HarmonyOSNewsClient/entry/src/main/resources/base/media/search.png b/HarmonyOSNewsClient/entry/src/main/resources/base/media/search.png
new file mode 100644
index 0000000000000000000000000000000000000000..837c207e538e7ac03af8e3ce24509da0f8c7fdf9
Binary files /dev/null and b/HarmonyOSNewsClient/entry/src/main/resources/base/media/search.png differ
diff --git a/HarmonyOSNewsClient/entry/src/main/resources/base/media/share_icon.png b/HarmonyOSNewsClient/entry/src/main/resources/base/media/share_icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..d7b19a4a7d6c96d8aeac1062cf7a7c05be127f8b
Binary files /dev/null and b/HarmonyOSNewsClient/entry/src/main/resources/base/media/share_icon.png differ
diff --git a/HarmonyOSNewsClient/entry/src/main/resources/rawfile/news_datas.json b/HarmonyOSNewsClient/entry/src/main/resources/rawfile/news_datas.json
new file mode 100644
index 0000000000000000000000000000000000000000..c640ecf6344c727e7e57562442585e68a26e7952
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/resources/rawfile/news_datas.json
@@ -0,0 +1,154 @@
+[
+ {
+ "title": "Best Enterprise Wi-Fi Network Award of the Wireless Broadband Alliance 2020",
+ "type": "Health",
+ "imgUrl": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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": "entry/resources/base/media/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/HarmonyOSNewsClient/entry/src/main/resources/rawfile/news_type_datas.json b/HarmonyOSNewsClient/entry/src/main/resources/rawfile/news_type_datas.json
new file mode 100644
index 0000000000000000000000000000000000000000..8c131e8c361b2b084700a62730c8d028220d63a3
--- /dev/null
+++ b/HarmonyOSNewsClient/entry/src/main/resources/rawfile/news_type_datas.json
@@ -0,0 +1,25 @@
+[
+ {
+ "name": "All"
+ },
+ {
+ "name": "Health"
+ },
+ {
+ "name": "Finance"
+ },
+ {
+ "name": "Technology"
+ },
+ {
+ "name": "Sport"
+ },
+ {
+ "name": "Internet"
+ },
+ {
+ "name": "Game"
+ }
+]
+
+
diff --git a/HarmonyOSNewsClient/gradle/wrapper/gradle-wrapper.jar b/HarmonyOSNewsClient/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..f6b961fd5a86aa5fbfe90f707c3138408be7c718
Binary files /dev/null and b/HarmonyOSNewsClient/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/ImageEditorTemplate/gradle/wrapper/gradle-wrapper.properties b/HarmonyOSNewsClient/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from ImageEditorTemplate/gradle/wrapper/gradle-wrapper.properties
rename to HarmonyOSNewsClient/gradle/wrapper/gradle-wrapper.properties
diff --git a/HarmonyOSNewsClient/local.properties b/HarmonyOSNewsClient/local.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b049de35c1114c150bc5658e21d4b79ec87f5f49
--- /dev/null
+++ b/HarmonyOSNewsClient/local.properties
@@ -0,0 +1,12 @@
+## This file is automatically generated by DevEco Studio.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must *NOT* be checked into Version Control Systems,
+# as it contains information specific to your local configuration.
+#
+# Location of the SDK. This is only used by Gradle.
+# For customization when using a Version Control System, please read the
+# header note.
+#Fri Nov 05 14:36:48 CST 2021
+nodejs.dir=D\:\\Harmony\\IDE_external\\devecostudio-windows-tool-3.0.0.601\\DevEco Studio 3.0.0.601\\tools\\nodejs
+hwsdk.dir=D\:\\Harmony\\External SDK
diff --git a/ImageEditorTemplate/settings.gradle b/HarmonyOSNewsClient/settings.gradle
similarity index 100%
rename from ImageEditorTemplate/settings.gradle
rename to HarmonyOSNewsClient/settings.gradle
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/executionHistory/executionHistory.bin b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/executionHistory/executionHistory.bin
new file mode 100644
index 0000000000000000000000000000000000000000..01bab9aa7f32a48977c8a93618aac23df2709a6b
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/executionHistory/executionHistory.bin differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/executionHistory/executionHistory.lock b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/executionHistory/executionHistory.lock
new file mode 100644
index 0000000000000000000000000000000000000000..f0f869ca05aecb2660c29c15f7cab82ae6ccd276
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/executionHistory/executionHistory.lock differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/fileChanges/last-build.bin b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/fileChanges/last-build.bin
new file mode 100644
index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/fileChanges/last-build.bin differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/fileContent/fileContent.lock b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/fileContent/fileContent.lock
new file mode 100644
index 0000000000000000000000000000000000000000..6c1201c57b191af4a7517a6b4a0e4a3181e0f5a1
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/fileContent/fileContent.lock differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/fileHashes/fileHashes.bin b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/fileHashes/fileHashes.bin
new file mode 100644
index 0000000000000000000000000000000000000000..c63f55d1ea7e6be4b2146a39253f17cc328e36ef
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/fileHashes/fileHashes.bin differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/fileHashes/fileHashes.lock b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/fileHashes/fileHashes.lock
new file mode 100644
index 0000000000000000000000000000000000000000..987cd0ea6ed853247ed08d4d2990827e58e1c107
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/fileHashes/fileHashes.lock differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/fileHashes/resourceHashesCache.bin b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/fileHashes/resourceHashesCache.bin
new file mode 100644
index 0000000000000000000000000000000000000000..c02ee11d6931784b33978a1950705d8e6aa65cbe
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/fileHashes/resourceHashesCache.bin differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/gc.properties b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/gc.properties
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/javaCompile/classAnalysis.bin b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/javaCompile/classAnalysis.bin
new file mode 100644
index 0000000000000000000000000000000000000000..f391d7c941f809acf2ab3a82bb6a53d524acdd67
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/javaCompile/classAnalysis.bin differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/javaCompile/jarAnalysis.bin b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/javaCompile/jarAnalysis.bin
new file mode 100644
index 0000000000000000000000000000000000000000..916d23e578d2d5e65289be8341e5a8969827bab7
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/javaCompile/jarAnalysis.bin differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/javaCompile/javaCompile.lock b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/javaCompile/javaCompile.lock
new file mode 100644
index 0000000000000000000000000000000000000000..704a80206ae40eb732b894bbaafe8b32eb86042e
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/javaCompile/javaCompile.lock differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/javaCompile/taskHistory.bin b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/javaCompile/taskHistory.bin
new file mode 100644
index 0000000000000000000000000000000000000000..40ee1bda43554558f0cda61cebfbd31e38f45ea8
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/.gradle/6.3/javaCompile/taskHistory.bin differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/ImageEditorTemplate/ImageEditorTemplate/.gradle/buildOutputCleanup/buildOutputCleanup.lock
new file mode 100644
index 0000000000000000000000000000000000000000..4bb1cb948f1e950b6a7113378b4455fc27241c2f
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/buildOutputCleanup/cache.properties b/ImageEditorTemplate/ImageEditorTemplate/.gradle/buildOutputCleanup/cache.properties
new file mode 100644
index 0000000000000000000000000000000000000000..dba849281763c57ef806cc01faca82d573c3cfc1
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/.gradle/buildOutputCleanup/cache.properties
@@ -0,0 +1,2 @@
+#Mon Nov 08 14:42:27 CST 2021
+gradle.version=6.3
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/buildOutputCleanup/outputFiles.bin b/ImageEditorTemplate/ImageEditorTemplate/.gradle/buildOutputCleanup/outputFiles.bin
new file mode 100644
index 0000000000000000000000000000000000000000..9d309769433d194b698a0b0cb7a06f584b67913e
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/checksums/checksums.lock b/ImageEditorTemplate/ImageEditorTemplate/.gradle/checksums/checksums.lock
new file mode 100644
index 0000000000000000000000000000000000000000..250c8b647db06087e70114ab34837b66be97069d
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/.gradle/checksums/checksums.lock differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.gradle/vcs-1/gc.properties b/ImageEditorTemplate/ImageEditorTemplate/.gradle/vcs-1/gc.properties
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.idea/.gitignore b/ImageEditorTemplate/ImageEditorTemplate/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.idea/checkstyle-idea.xml b/ImageEditorTemplate/ImageEditorTemplate/.idea/checkstyle-idea.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4a253341fa64e4c71c55e01df9b1cda04e22448d
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/.idea/checkstyle-idea.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.idea/compiler.xml b/ImageEditorTemplate/ImageEditorTemplate/.idea/compiler.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fb7f4a8a465d42b4a0390d464b83b99e8465bba7
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.idea/gradle.xml b/ImageEditorTemplate/ImageEditorTemplate/.idea/gradle.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d8520fc1ae11c690b90ae464a24a3570f00cfc98
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/.idea/gradle.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.idea/jarRepositories.xml b/ImageEditorTemplate/ImageEditorTemplate/.idea/jarRepositories.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c90d6df9bd93fc0298a9f99ba00c995ef541830c
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/.idea/jarRepositories.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.idea/libraries/Gradle__hamcrest_core_1_3.xml b/ImageEditorTemplate/ImageEditorTemplate/.idea/libraries/Gradle__hamcrest_core_1_3.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a3cab89d0eec56ae6a05e16182bfaa8315b2a84f
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/.idea/libraries/Gradle__hamcrest_core_1_3.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.idea/libraries/Gradle__junit_4_13.xml b/ImageEditorTemplate/ImageEditorTemplate/.idea/libraries/Gradle__junit_4_13.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c4afa00d04180bc6d3e81a29b25f05f21d139239
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/.idea/libraries/Gradle__junit_4_13.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.idea/libraries/Gradle__runner_1_0_0_200.xml b/ImageEditorTemplate/ImageEditorTemplate/.idea/libraries/Gradle__runner_1_0_0_200.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fb531f2aa379e43706b0572fa407ced061106d33
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/.idea/libraries/Gradle__runner_1_0_0_200.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.idea/misc.xml b/ImageEditorTemplate/ImageEditorTemplate/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..794aa67e635837ac492499857a20ce72f4938e28
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.idea/modules.xml b/ImageEditorTemplate/ImageEditorTemplate/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..081c02750531a96f7a40c4d488e6fa9da26ac79e
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/.idea/modules.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.idea/modules/ImageEditorTemplate.iml b/ImageEditorTemplate/ImageEditorTemplate/.idea/modules/ImageEditorTemplate.iml
new file mode 100644
index 0000000000000000000000000000000000000000..b58d8709a20c42195874c1df1ea25848f67225d0
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/.idea/modules/ImageEditorTemplate.iml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/.idea/modules/entry/entry.iml b/ImageEditorTemplate/ImageEditorTemplate/.idea/modules/entry/entry.iml
new file mode 100644
index 0000000000000000000000000000000000000000..404637fb67705fa01c3c6e461d7513a6f35f36bb
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/.idea/modules/entry/entry.iml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/LICENSE b/ImageEditorTemplate/ImageEditorTemplate/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..7c357dc828cf7d8c783f10ed6bb1bac8a1e903c1
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/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/ImageEditorTemplate/ImageEditorTemplate/README.md b/ImageEditorTemplate/ImageEditorTemplate/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..27c8dc71a89355a418a859301a94f31bc1d733a1
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/README.md
@@ -0,0 +1,47 @@
+ImageEditorTemplate
+简介
+• 本篇Codelab将为开发者介绍如何使用JS UI实现对图片的裁剪和调节两种编辑功能。应用主界面包含顶部区域、中间区域和底部区域。顶部区域由后退、撤销、重做以及保存image组件构成;中间区域由预览图、裁剪框构成;底部区域由上至下依次为:用于调节次级功能的编辑参数、用于选择次级功能、用于选择图片编辑功能。
+
+安装要求
+• 安装DevEco Studio
+• 设置DevEco Studio开发环境。可以根据以下两种情况配置开发环境:
+1.如果您可以直接访问Internet,则只需下载HarmonyOS SDK
+2.如果网络无法直接访问Internet,则可以通过代理服务器进行访问
+• 生成密钥并申请证书
+
+用户指南
+• 下载此项目
+• 打开HUAWEI DevEco Studio,单击File> Open选择此Codelab
+• 单击Build> Build App(s)/Hap(s)>Build Debug Hap(s)以编译hap软件包
+• 单击Run> Run 'entry'以运行hap包
+
+注意
+• 您可以选择在模拟器或真机上运行hap软件包。
+• 如果在真机上运行它,则需要在项目的File> Project Structure> Modules> Signing Configs中配置签名和证书信息。
+
+许可
+请参阅LICENSE文件以获得更多信息。
+
+What is it?
+This section describes how to use the JS UI to crop and adjust images. The main application page consists of the top area, middle area, and bottom area. The top area consists of the back, undo, redo, and save image components. The middle area consists of a preview image and a crop box. From top to bottom, the bottom area is used to adjust the editing parameters of the secondary function, used to select the secondary function, and used to select the image editing function.
+
+Installation requirements
+• Install DevEco Studio
+• Set up the DevEco Studio development environment.The development environment can be configured according to the following two situations
+1.If you can directly access the Internet, just download the HarmonyOS SDK
+2.If the network cannot access the Internet directly, it can be accessed through a proxy server
+• Generate secret key and apply for certificate
+
+User guide
+• Download this Project
+• Open HUAWEI DevEco Studio, click File> Open> Then select and open this Project
+• Click Build> Build App(s)/Hap(s)>Build Debug Hap(s) to compile the hap package
+• Click Run> Run 'entry' to run the hap package
+
+Note
+• You can choose to run the hap package on the simulator or the phone.
+• If you run it on the phone, you need to configure the signature and certificate information in the project's File> Project Structure> Modules> Signing Configs.
+
+Licensing
+Please see LICENSE for more info.
+
diff --git a/ImageEditorTemplate/ImageEditorTemplate/RELEASE-NOTES.md b/ImageEditorTemplate/ImageEditorTemplate/RELEASE-NOTES.md
new file mode 100644
index 0000000000000000000000000000000000000000..ea23a13e3d4407d06cba3aa7155a23e5081b50b4
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/RELEASE-NOTES.md
@@ -0,0 +1,2 @@
+1.0.0
+1.Initial version
\ No newline at end of file
diff --git a/ImageEditorTemplate/build.gradle b/ImageEditorTemplate/ImageEditorTemplate/build.gradle
similarity index 80%
rename from ImageEditorTemplate/build.gradle
rename to ImageEditorTemplate/ImageEditorTemplate/build.gradle
index a068266dbdeb268d9147b2feddd9ef248f1ec944..36791be309cf13c5417561b5d5c9230ac0f82b70 100644
--- a/ImageEditorTemplate/build.gradle
+++ b/ImageEditorTemplate/ImageEditorTemplate/build.gradle
@@ -9,14 +9,14 @@ ohos {
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.3'
+ classpath 'com.huawei.ohos:hap:3.0.3.4'
classpath 'com.huawei.ohos:decctest:3.0.1.0'
}
}
diff --git a/ImageEditorTemplate/ImageEditorTemplate/build/outputs/hap/debug/phone/entry-debug-rich-unsigned.hap b/ImageEditorTemplate/ImageEditorTemplate/build/outputs/hap/debug/phone/entry-debug-rich-unsigned.hap
new file mode 100644
index 0000000000000000000000000000000000000000..c4c704b263755c1f3ae9a5986d987853bd96793a
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/build/outputs/hap/debug/phone/entry-debug-rich-unsigned.hap differ
diff --git a/ImageEditorTemplate/entry/build.gradle b/ImageEditorTemplate/ImageEditorTemplate/entry/build.gradle
similarity index 88%
rename from ImageEditorTemplate/entry/build.gradle
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build.gradle
index ea49d23d75df2f5635e2a12bf0569aa97506a103..411eca2e1e91870078d1fbf0a1f87bbf04e28ba1 100644
--- a/ImageEditorTemplate/entry/build.gradle
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build.gradle
@@ -1,4 +1,5 @@
apply plugin: 'com.huawei.ohos.hap'
+apply plugin: 'com.huawei.ohos.decctest'
//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510
ohos {
compileSdkVersion 6
@@ -14,7 +15,6 @@ ohos {
}
}
- supportSystem "standard"
}
dependencies {
@@ -22,4 +22,6 @@ dependencies {
testImplementation 'junit:junit:4.13'
ohosTestImplementation 'com.huawei.ohos.testkit:runner:1.0.0.200'
}
-
+decc {
+ supportType = ['html', 'xml']
+}
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/generated/source/buildConfig/debug/com/huawei/codelab/BuildConfig.java b/ImageEditorTemplate/ImageEditorTemplate/entry/build/generated/source/buildConfig/debug/com/huawei/codelab/BuildConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..519a096cc9d638f0470fd0eebdb2e9121619f8c8
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/generated/source/buildConfig/debug/com/huawei/codelab/BuildConfig.java
@@ -0,0 +1,14 @@
+/**
+ * Automatically generated file. DO NOT MODIFY
+ */
+package com.huawei.codelab;
+
+public final class BuildConfig {
+ public static final boolean DEBUG = Boolean.parseBoolean("true");
+ public static final String PACKAGE_NAME = "com.huawei.codelab";
+ public static final String BUILD_TYPE = "debug";
+ public static final int COMPILE_SDK_VERSION = 6;
+ public static final int VERSION_CODE = 1000000;
+ public static final String VERSION_NAME = "1.0.0";
+ public static final String BUNDLE_NAME = "com.huawei.codelab";
+}
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/generated/source/r/R.jar b/ImageEditorTemplate/ImageEditorTemplate/entry/build/generated/source/r/R.jar
new file mode 100644
index 0000000000000000000000000000000000000000..1f4ff32ddfc14b79a691e7fcc0d62bb2d06183d5
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/generated/source/r/R.jar differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/generated/source/r/classes/com/huawei/codelab/ResourceTable.class b/ImageEditorTemplate/ImageEditorTemplate/entry/build/generated/source/r/classes/com/huawei/codelab/ResourceTable.class
new file mode 100644
index 0000000000000000000000000000000000000000..d82ae69e7e15120daa6006c6d0af50fe3f0d9b7a
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/generated/source/r/classes/com/huawei/codelab/ResourceTable.class differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/generated/source/r/com/huawei/codelab/ResourceTable.java b/ImageEditorTemplate/ImageEditorTemplate/entry/build/generated/source/r/com/huawei/codelab/ResourceTable.java
new file mode 100644
index 0000000000000000000000000000000000000000..578300cc6af74f8e1d89517a54fc95ba12a58f46
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/generated/source/r/com/huawei/codelab/ResourceTable.java
@@ -0,0 +1,14 @@
+/*
+ * Copyright(c) Huawei Technologies Co., Ltd. 2019 - 2020. All rights reserved.
+ * Description: This header was automatically generated by restool from the resource data it found.
+ * It provides resource index information for applications, and should not be modified by hand.
+ */
+
+package com.huawei.codelab;
+
+public final class ResourceTable {
+ public static final int Media_icon = 0x1000002;
+
+ public static final int String_entry_MainAbility = 0x1000000;
+ public static final int String_mainability_description = 0x1000001;
+}
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/javac/debug/classFiles b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/javac/debug/classFiles
new file mode 100644
index 0000000000000000000000000000000000000000..4b61f0a31b8533fe4b0907aa10776d38c1a92a77
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/javac/debug/classFiles
@@ -0,0 +1,4 @@
+D:\work\harmonyos_codelabs-master\ImageEditorTemplate\entry\build\intermediates\javac\debug\classes\com\huawei\codelab\BuildConfig.class
+D:\work\harmonyos_codelabs-master\ImageEditorTemplate\entry\build\intermediates\javac\debug\classes\com\huawei\codelab\MainAbility.class
+D:\work\harmonyos_codelabs-master\ImageEditorTemplate\entry\build\intermediates\javac\debug\classes\com\huawei\codelab\MyApplication.class
+D:\work\harmonyos_codelabs-master\ImageEditorTemplate\entry\build\intermediates\javac\debug\classes\com\huawei\codelab\ResourceTable.class
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/javac/debug/classes/com/huawei/codelab/BuildConfig.class b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/javac/debug/classes/com/huawei/codelab/BuildConfig.class
new file mode 100644
index 0000000000000000000000000000000000000000..f63287afe673e4a479ab2a549cfbc4449fff994b
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/javac/debug/classes/com/huawei/codelab/BuildConfig.class differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/javac/debug/classes/com/huawei/codelab/MainAbility.class b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/javac/debug/classes/com/huawei/codelab/MainAbility.class
new file mode 100644
index 0000000000000000000000000000000000000000..abd946f7ca10e7d461c687d8d3d4b1c8f7bba3a2
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/javac/debug/classes/com/huawei/codelab/MainAbility.class differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/javac/debug/classes/com/huawei/codelab/MyApplication.class b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/javac/debug/classes/com/huawei/codelab/MyApplication.class
new file mode 100644
index 0000000000000000000000000000000000000000..46b141ebb6870b09bf6a692f2bbd0cb6f69df33c
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/javac/debug/classes/com/huawei/codelab/MyApplication.class differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/javac/debug/classes/com/huawei/codelab/ResourceTable.class b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/javac/debug/classes/com/huawei/codelab/ResourceTable.class
new file mode 100644
index 0000000000000000000000000000000000000000..d82ae69e7e15120daa6006c6d0af50fe3f0d9b7a
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/javac/debug/classes/com/huawei/codelab/ResourceTable.class differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/jsManifest/default/manifest.json b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/jsManifest/default/manifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..e043c1cc5d606383d2aa5d55b91ceff4df449ed4
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/jsManifest/default/manifest.json
@@ -0,0 +1,17 @@
+{
+ "appID": "com.huawei.codelab",
+ "appName": "$string:entry_MainAbility",
+ "versionName": "1.0.0",
+ "versionCode": 1000000,
+ "minPlatformVersion": 6,
+ "pages": [
+ "pages/index/index"
+ ],
+ "deviceType": [
+ "phone"
+ ],
+ "window": {
+ "autoDesignWidth": true,
+ "designWidth": 720
+ }
+}
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/ohosTest/resources/base/media/icon.png b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/jsResources/base/media/icon.png
similarity index 100%
rename from ImageEditorTemplate/entry/src/ohosTest/resources/base/media/icon.png
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/jsResources/base/media/icon.png
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/app.js b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..3afe2a8602dfece777a61a032c944225c4b9b8f8
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/app.js
@@ -0,0 +1,185 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // create a fake namespace object
+/******/ // mode & 1: value is a module id, require it
+/******/ // mode & 2: merge all properties of value into the ns
+/******/ // mode & 4: return value when already ns object
+/******/ // mode & 8|1: behave like require
+/******/ __webpack_require__.t = function(value, mode) {
+/******/ if(mode & 1) value = __webpack_require__(value);
+/******/ if(mode & 8) return value;
+/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ var ns = Object.create(null);
+/******/ __webpack_require__.r(ns);
+/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ return ns;
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "../../../../../../../work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/app.js?entry");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "../../../../../../../work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/app.js?entry":
+/*!****************************************************************************************************!*\
+ !*** d:/work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/app.js?entry ***!
+ \****************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+var $app_script$ = __webpack_require__(/*! !../../../../../../../../Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/script.js!../../../../../../../../Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/node_modules/babel-loader?presets[]=D:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/node_modules/@babel/preset-env&plugins[]=D:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/node_modules/@babel/plugin-transform-modules-commonjs&comments=false!../../../../../../../../Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/resource-reference-script.js!../../../../../../../../Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/manifest-loader.js?path=d:/work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/app.js!./app.js */ "./lib/script.js!./node_modules/babel-loader/lib/index.js?presets[]=D:\\Program Files\\Huawei\\Dev3.42Sdk\\js\\2.2.0.56\\build-tools\\ace-loader\\node_modules\\@babel\\preset-env&plugins[]=D:\\Program Files\\Huawei\\Dev3.42Sdk\\js\\2.2.0.56\\build-tools\\ace-loader\\node_modules\\@babel\\plugin-transform-modules-commonjs&comments=false!./lib/resource-reference-script.js!./lib/manifest-loader.js?path=d:\\work\\harmonyos_codelabs-master\\ImageEditorTemplate\\entry\\src\\main\\js\\default\\app.js!../../../../../../../work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/app.js")
+
+ $app_define$('@app-application/app', [], function($app_require$, $app_exports$, $app_module$) {
+
+ $app_script$($app_module$, $app_exports$, $app_require$)
+ if ($app_exports$.__esModule && $app_exports$.default) {
+ $app_module$.exports = $app_exports$.default
+ }
+
+ })
+ $app_bootstrap$('@app-application/app',undefined,undefined)
+
+/***/ }),
+
+/***/ "./lib/manifest-plugin.js!../../../../../../../work/harmonyos_codelabs-master/ImageEditorTemplate/entry/build/intermediates/js/debug/jsManifest/default/manifest.json":
+/*!******************************************************************************************************************************************************************************************************************************!*\
+ !*** d:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/manifest-plugin.js!d:/work/harmonyos_codelabs-master/ImageEditorTemplate/entry/build/intermediates/js/debug/jsManifest/default/manifest.json ***!
+ \******************************************************************************************************************************************************************************************************************************/
+/*! exports provided: appID, appName, versionName, versionCode, minPlatformVersion, pages, deviceType, window, default */
+/***/ (function(module) {
+
+module.exports = JSON.parse("{\"appID\":\"com.huawei.codelab\",\"appName\":\"$string:entry_MainAbility\",\"versionName\":\"1.0.0\",\"versionCode\":1000000,\"minPlatformVersion\":6,\"pages\":[\"pages/index/index\"],\"deviceType\":[\"phone\"],\"window\":{\"autoDesignWidth\":true,\"designWidth\":720}}");
+
+/***/ }),
+
+/***/ "./lib/script.js!./node_modules/babel-loader/lib/index.js?presets[]=D:\\Program Files\\Huawei\\Dev3.42Sdk\\js\\2.2.0.56\\build-tools\\ace-loader\\node_modules\\@babel\\preset-env&plugins[]=D:\\Program Files\\Huawei\\Dev3.42Sdk\\js\\2.2.0.56\\build-tools\\ace-loader\\node_modules\\@babel\\plugin-transform-modules-commonjs&comments=false!./lib/resource-reference-script.js!./lib/manifest-loader.js?path=d:\\work\\harmonyos_codelabs-master\\ImageEditorTemplate\\entry\\src\\main\\js\\default\\app.js!../../../../../../../work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/app.js":
+/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** d:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/script.js!d:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/node_modules/babel-loader/lib?presets[]=D:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/node_modules/@babel/preset-env&plugins[]=D:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/node_modules/@babel/plugin-transform-modules-commonjs&comments=false!d:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/resource-reference-script.js!d:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/manifest-loader.js?path=d:/work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/app.js!d:/work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/app.js ***!
+ \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = function(module, exports, $app_require$){"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports["default"] = void 0;
+var _default = {
+ onCreate: function onCreate() {},
+ onDestroy: function onDestroy() {}
+};
+exports["default"] = _default;
+;
+(exports["default"] || module.exports).manifest = __webpack_require__(/*! !../../../../../../../../Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/manifest-plugin.js!../../../../build/intermediates/js/debug/jsManifest/default/manifest.json */ "./lib/manifest-plugin.js!../../../../../../../work/harmonyos_codelabs-master/ImageEditorTemplate/entry/build/intermediates/js/debug/jsManifest/default/manifest.json");
+
+function requireModule(moduleName) {
+ const systemList = ['system.router', 'system.app', 'system.prompt', 'system.configuration',
+ 'system.image', 'system.device', 'system.mediaquery', 'ohos.animator', 'system.grid', 'system.resource']
+ var target = ''
+ if (systemList.includes(moduleName.replace('@', ''))) {
+ target = $app_require$('@app-module/' + moduleName.substring(1));
+ return target;
+ }
+ var shortName = moduleName.replace(/@[^.]+.([^.]+)/, '$1');
+ if (typeof ohosplugin !== 'undefined' && /@ohos/.test(moduleName)) {
+ target = ohosplugin;
+ for (let key of shortName.split('.')) {
+ target = target[key];
+ if(!target) {
+ break;
+ }
+ }
+ if (typeof target !== 'undefined') {
+ return target;
+ }
+ }
+ if (typeof systemplugin !== 'undefined') {
+ target = systemplugin;
+ for (let key of shortName.split('.')) {
+ target = target[key];
+ if(!target) {
+ break;
+ }
+ }
+ if (typeof target !== 'undefined') {
+ return target;
+ }
+ }
+ target = requireNapi(shortName);
+ return target;
+}
+}
+/* generated by ace-loader */
+
+
+/***/ })
+
+/******/ });
+//# sourceMappingURL=app.js.map
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/app.js.map b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/app.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..976721ac3bfe5417f29e52f0709ab913adf27779
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/app.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///d:/work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/app.js?2447","webpack:///d:/work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/app.js"],"names":["onCreate","onDestroy","exports","module","manifest","require"],"mappings":";QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;AClFA,mBAAmB,mBAAO,CAAC,y5CAAq1B;;AAEh3B;;AAEA;AACA;AACA;AACA;;AAEA,OAAO;AACP,iE;;;;;;;;;;;;;;;;;;;;;;;;;;;;eCVe;AACbA,UADa,sBACF,CACV,CAFY;AAGbC,WAHa,uBAGD,CACX;AAJY,C;;AAMf;AAAC,CAACC,OAAO,WAAP,IAAmBC,MAAM,CAACD,OAA3B,EAAoCE,QAApC,GAA+CC,mBAAO,CAAC,0WAAD,CAAtD","file":"./app.js","sourceRoot":""}
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/Wallpaper.png b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/Wallpaper.png
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/Wallpaper.png
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/Wallpaper.png
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/adjust_blue.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/adjust_blue.svg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/adjust_blue.svg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/adjust_blue.svg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/adjust_white.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/adjust_white.svg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/adjust_white.svg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/adjust_white.svg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/back.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/back.svg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/back.svg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/back.svg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/bg-tv.jpg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/bg-tv.jpg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/bg-tv.jpg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/bg-tv.jpg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/luminance_blue.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/brightness_blue.svg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/luminance_blue.svg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/brightness_blue.svg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/luminance_white.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/brightness_white.svg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/luminance_white.svg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/brightness_white.svg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/contrast_blue.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/contrast_blue.svg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/contrast_blue.svg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/contrast_blue.svg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/contrast_white.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/contrast_white.svg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/contrast_white.svg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/contrast_white.svg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/cut_blue.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/crop_blue.svg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/cut_blue.svg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/crop_blue.svg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/cut_white.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/crop_white.svg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/cut_white.svg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/crop_white.svg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/image.jpg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/image.jpg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/image.jpg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/image.jpg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/picture_frame_white.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/image_frame_white.svg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/picture_frame_white.svg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/image_frame_white.svg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/picture_frame_white_blue.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/image_frame_white_blue.svg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/picture_frame_white_blue.svg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/image_frame_white_blue.svg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_1-1_blue.png b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/ratios_1-1_blue.png
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_1-1_blue.png
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/ratios_1-1_blue.png
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_1-1_white.png b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/ratios_1-1_white.png
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_1-1_white.png
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/ratios_1-1_white.png
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_16-9_blue.png b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/ratios_16-9_blue.png
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_16-9_blue.png
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/ratios_16-9_blue.png
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_16-9_white.png b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/ratios_16-9_white.png
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_16-9_white.png
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/ratios_16-9_white.png
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_9-16_blue.png b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/ratios_9-16_blue.png
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_9-16_blue.png
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/ratios_9-16_blue.png
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_9-16_white.png b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/ratios_9-16_white.png
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/proportions_9-16_white.png
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/ratios_9-16_white.png
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/rewind.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/redo.svg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/rewind.svg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/redo.svg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/saturation_blue.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/saturation_blue.svg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/saturation_blue.svg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/saturation_blue.svg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/saturation_white.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/saturation_white.svg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/saturation_white.svg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/saturation_white.svg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/save.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/save.svg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/save.svg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/save.svg
diff --git a/ImageEditorTemplate/entry/src/main/js/default/common/images/advance.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/undo.svg
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/common/images/advance.svg
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/common/images/undo.svg
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/i18n/en-US.json b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..b67eda5447a47ef790bdca9d5f106a663c108c22
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/i18n/en-US.json
@@ -0,0 +1,20 @@
+{
+ "strings": {
+ "title": "Changes haven't been applied yet.",
+ "titleAppBar": "Edit",
+ "picFrame": "Frame",
+ "cropping": "Crop",
+ "adjust": "Adjust",
+ "brightness": "Brightness",
+ "contrast": "Contrast",
+ "saturation": "Saturation",
+ "picFraImgSrc": "common/images/image_frame_white_blue.svg",
+ "conBotFirImgSrc": "common/images/image_frame_white.svg",
+ "conBotSecImgSrc": "common/images/ratios_1-1_white.png",
+ "conBotThrImgSrc": "common/images/ratios_16-9_white.png",
+ "conBotFouImgSrc": "common/images/ratios_9-16_white.png",
+ "brightnessImgSrc": "common/images/brightness_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/i18n/zh-CN.json b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/i18n/zh-CN.json
similarity index 45%
rename from ImageEditorTemplate/entry/src/main/js/default/i18n/zh-CN.json
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/i18n/zh-CN.json
index 0ebda4546ead27ac45bc3c7655173038ee1b2a52..23df116b9f945e593afcc73b6e93be048611f221 100644
--- a/ImageEditorTemplate/entry/src/main/js/default/i18n/zh-CN.json
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/i18n/zh-CN.json
@@ -5,15 +5,15 @@
"picFrame": "画幅",
"cropping": "裁剪",
"adjust": "调节",
- "luminance": "亮度",
+ "brightness": "亮度",
"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",
+ "picFraImgSrc": "common/images/image_frame_white_blue.svg",
+ "conBotFirImgSrc": "common/images/image_frame_white.svg",
+ "conBotSecImgSrc": "common/images/ratios_1-1_white.png",
+ "conBotThrImgSrc": "common/images/ratios_16-9_white.png",
+ "conBotFouImgSrc": "common/images/ratios_9-16_white.png",
+ "brightnessImgSrc": "common/images/brightness_white.svg",
"contrastImgSrc": "common/images/contrast_white.svg",
"saturationImgSrc": "common/images/saturation_white.svg"
}
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/manifest.json b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/manifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..e043c1cc5d606383d2aa5d55b91ceff4df449ed4
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/manifest.json
@@ -0,0 +1,17 @@
+{
+ "appID": "com.huawei.codelab",
+ "appName": "$string:entry_MainAbility",
+ "versionName": "1.0.0",
+ "versionCode": 1000000,
+ "minPlatformVersion": 6,
+ "pages": [
+ "pages/index/index"
+ ],
+ "deviceType": [
+ "phone"
+ ],
+ "window": {
+ "autoDesignWidth": true,
+ "designWidth": 720
+ }
+}
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/pages/index/index.js b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..3b9163ad102ac7c0d6079c46fb76b4740515be05
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/pages/index/index.js
@@ -0,0 +1,2023 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // create a fake namespace object
+/******/ // mode & 1: value is a module id, require it
+/******/ // mode & 2: merge all properties of value into the ns
+/******/ // mode & 4: return value when already ns object
+/******/ // mode & 8|1: behave like require
+/******/ __webpack_require__.t = function(value, mode) {
+/******/ if(mode & 1) value = __webpack_require__(value);
+/******/ if(mode & 8) return value;
+/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ var ns = Object.create(null);
+/******/ __webpack_require__.r(ns);
+/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ return ns;
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "../../../../../../../work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml?entry");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "../../../../../../../work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml?entry":
+/*!*******************************************************************************************************************!*\
+ !*** d:/work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml?entry ***!
+ \*******************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+var $app_template$ = __webpack_require__(/*! !../../../../../../../../../../Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/json.js!../../../../../../../../../../Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/template.js!./index.hml */ "./lib/json.js!./lib/template.js!../../../../../../../work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml")
+var $app_style$ = __webpack_require__(/*! !../../../../../../../../../../Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/json.js!../../../../../../../../../../Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/style.js!./index.css */ "./lib/json.js!./lib/style.js!../../../../../../../work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.css")
+var $app_script$ = __webpack_require__(/*! !../../../../../../../../../../Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/script.js!../../../../../../../../../../Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/node_modules/babel-loader?presets[]=D:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/node_modules/@babel/preset-env&plugins[]=D:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/node_modules/@babel/plugin-transform-modules-commonjs&comments=false!../../../../../../../../../../Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/resource-reference-script.js!./index.js */ "./lib/script.js!./node_modules/babel-loader/lib/index.js?presets[]=D:\\Program Files\\Huawei\\Dev3.42Sdk\\js\\2.2.0.56\\build-tools\\ace-loader\\node_modules\\@babel\\preset-env&plugins[]=D:\\Program Files\\Huawei\\Dev3.42Sdk\\js\\2.2.0.56\\build-tools\\ace-loader\\node_modules\\@babel\\plugin-transform-modules-commonjs&comments=false!./lib/resource-reference-script.js!../../../../../../../work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.js")
+
+$app_define$('@app-component/index', [], function($app_require$, $app_exports$, $app_module$) {
+
+$app_script$($app_module$, $app_exports$, $app_require$)
+if ($app_exports$.__esModule && $app_exports$.default) {
+$app_module$.exports = $app_exports$.default
+}
+
+$app_module$.exports.template = $app_template$
+
+$app_module$.exports.style = $app_style$
+
+})
+$app_bootstrap$('@app-component/index',undefined,undefined)
+
+/***/ }),
+
+/***/ "./lib/json.js!./lib/style.js!../../../../../../../work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.css":
+/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** d:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/json.js!d:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/style.js!d:/work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.css ***!
+ \**********************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+module.exports = {
+ ".container": {
+ "flexDirection": "column",
+ "width": "100%",
+ "height": "100%",
+ "backgroundColor": "#000000"
+ },
+ ".container-top": {
+ "position": "absolute",
+ "marginTop": "20px"
+ },
+ ".container-appBar-left": {
+ "marginLeft": "30px",
+ "width": "86px"
+ },
+ ".container-image-left": {
+ "height": "24px",
+ "width": "24px"
+ },
+ ".container-txt": {
+ "fontSize": "16px",
+ "marginLeft": "16px",
+ "color": "#ffffff"
+ },
+ ".container-appBar-right": {
+ "marginLeft": "90px"
+ },
+ ".container-image-right": {
+ "height": "24px",
+ "width": "24px",
+ "marginLeft": "20px"
+ },
+ ".dialog-main": {
+ "width": "80%",
+ "height": "16%",
+ "marginBottom": "30px"
+ },
+ ".dialog-div": {
+ "flexDirection": "column",
+ "alignItems": "center"
+ },
+ ".inner-txt": {
+ "flexDirection": "column",
+ "alignItems": "center",
+ "marginTop": "16px"
+ },
+ ".txt": {
+ "fontSize": "16px"
+ },
+ ".inner-btn": {
+ "height": "60px",
+ "justifyContent": "space-around",
+ "alignItems": "center"
+ },
+ ".btn-cancel": {
+ "marginLeft": "10px"
+ },
+ ".btn-stop": {
+ "marginLeft": "50px"
+ },
+ "#crop_image_content": {
+ "position": "absolute",
+ "textAlign": "center",
+ "marginTop": "130px"
+ },
+ "#cropBox": {
+ "position": "absolute"
+ },
+ "#crop_image_content #canvasOne": {
+ "position": "absolute",
+ "height": "300px",
+ "width": "300px",
+ "marginLeft": "30px",
+ "marginRight": "30px",
+ "marginBottom": "30px"
+ },
+ "#crop_image_content #mainBox": {
+ "borderTopWidth": "3px",
+ "borderRightWidth": "3px",
+ "borderBottomWidth": "3px",
+ "borderLeftWidth": "3px",
+ "borderTopStyle": "solid",
+ "borderRightStyle": "solid",
+ "borderBottomStyle": "solid",
+ "borderLeftStyle": "solid",
+ "borderTopColor": "#FFFFFF",
+ "borderRightColor": "#FFFFFF",
+ "borderBottomColor": "#FFFFFF",
+ "borderLeftColor": "#FFFFFF",
+ "position": "absolute",
+ "top": "0px",
+ "left": "0px"
+ },
+ ".minBox": {
+ "position": "absolute",
+ "height": "15px",
+ "width": "3px",
+ "backgroundColor": "#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": {
+ "flexDirection": "column",
+ "position": "absolute",
+ "marginTop": "210px"
+ },
+ ".container-bottom-one-first": {
+ "flexDirection": "row",
+ "marginLeft": "50px",
+ "marginTop": "240px"
+ },
+ ".container-bottom-image": {
+ "height": "30px",
+ "width": "30px",
+ "marginLeft": "49px"
+ },
+ ".container-bottom-two-first": {
+ "flexDirection": "column",
+ "position": "relative",
+ "marginLeft": "168px",
+ "marginTop": "38px"
+ },
+ ".container-bottom-three-first": {
+ "flexDirection": "row",
+ "marginTop": "22px",
+ "marginLeft": "80px"
+ },
+ ".container-bottom-four-first": {
+ "flexDirection": "row",
+ "position": "relative",
+ "marginTop": "0px",
+ "marginLeft": "80px"
+ },
+ ".container-bottom-second": {
+ "flexDirection": "column",
+ "position": "absolute",
+ "marginTop": "450px"
+ },
+ ".container-bottom-two-second": {
+ "flexDirection": "row",
+ "marginTop": "30px"
+ },
+ ".container-bottom-three-second": {
+ "flexDirection": "row"
+ },
+ ".brightnessTxt": {
+ "fontSize": "14px",
+ "marginLeft": "60px"
+ },
+ ".contrastTxt": {
+ "fontSize": "14px",
+ "marginLeft": "76px"
+ },
+ ".saturationTxt": {
+ "fontSize": "14px",
+ "marginLeft": "68px"
+ },
+ ".container-bottom-four-second": {
+ "marginTop": "20px",
+ "flexDirection": "row",
+ "marginLeft": "80px"
+ },
+ ".container-bottom-five-second": {
+ "flexDirection": "row",
+ "marginLeft": "80px",
+ "color": "#2788B9"
+ }
+}
+
+/***/ }),
+
+/***/ "./lib/json.js!./lib/template.js!../../../../../../../work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml":
+/*!*************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** d:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/json.js!d:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/template.js!d:/work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml ***!
+ \*************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+module.exports = {
+ "attr": {
+ "debugLine": "pages/index/index:16",
+ "className": "container"
+ },
+ "type": "div",
+ "classList": [
+ "container"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:19",
+ "className": "container-top"
+ },
+ "type": "div",
+ "classList": [
+ "container-top"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:20",
+ "className": "container-appBar-left"
+ },
+ "type": "div",
+ "classList": [
+ "container-appBar-left"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:21",
+ "src": "common/images/back.svg",
+ "className": "container-image-left"
+ },
+ "type": "image",
+ "classList": [
+ "container-image-left"
+ ],
+ "onBubbleEvents": {
+ "click": "showDialog"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:22",
+ "className": "container-txt",
+ "value": function () {return this.titleAppBar}
+ },
+ "type": "text",
+ "classList": [
+ "container-txt"
+ ]
+ }
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:24",
+ "className": "container-appBar-right"
+ },
+ "type": "div",
+ "classList": [
+ "container-appBar-right"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:25",
+ "src": "common/images/redo.svg",
+ "className": "container-image-right"
+ },
+ "type": "image",
+ "classList": [
+ "container-image-right"
+ ],
+ "onBubbleEvents": {
+ "click": "redo"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:26",
+ "src": "common/images/undo.svg",
+ "className": "container-image-right"
+ },
+ "type": "image",
+ "classList": [
+ "container-image-right"
+ ],
+ "onBubbleEvents": {
+ "click": "undo"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:27",
+ "src": "common/images/save.svg",
+ "className": "container-image-right"
+ },
+ "type": "image",
+ "classList": [
+ "container-image-right"
+ ],
+ "onBubbleEvents": {
+ "click": "save"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:32",
+ "id": "crop_image_content"
+ },
+ "type": "div",
+ "id": "crop_image_content",
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:34",
+ "id": "cropBox"
+ },
+ "type": "div",
+ "id": "cropBox",
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:35",
+ "id": "canvasOne"
+ },
+ "type": "canvas",
+ "id": "canvasOne"
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:37",
+ "id": "mainBox",
+ "show": function () {return this.showFlag1}
+ },
+ "type": "div",
+ "id": "mainBox",
+ "style": {
+ "width": function () {return this.cropWidth},
+ "height": function () {return this.cropHeight},
+ "top": function () {return this.cropTop},
+ "left": function () {return this.cropLeft}
+ },
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:40",
+ "id": "left-up-top",
+ "className": "minBox left-up-top"
+ },
+ "type": "div",
+ "id": "left-up-top",
+ "classList": [
+ "minBox",
+ "left-up-top"
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:41",
+ "id": "left-up",
+ "className": "minBox left-up"
+ },
+ "type": "div",
+ "id": "left-up",
+ "classList": [
+ "minBox",
+ "left-up"
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:42",
+ "id": "right-up-top",
+ "className": "minBox right-up-top"
+ },
+ "type": "div",
+ "id": "right-up-top",
+ "classList": [
+ "minBox",
+ "right-up-top"
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:43",
+ "id": "right-up",
+ "className": "minBox right-up"
+ },
+ "type": "div",
+ "id": "right-up",
+ "classList": [
+ "minBox",
+ "right-up"
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:44",
+ "id": "left-down-bot",
+ "className": "minBox left-down-bot"
+ },
+ "type": "div",
+ "id": "left-down-bot",
+ "classList": [
+ "minBox",
+ "left-down-bot"
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:45",
+ "id": "left-down",
+ "className": "minBox left-down"
+ },
+ "type": "div",
+ "id": "left-down",
+ "classList": [
+ "minBox",
+ "left-down"
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:46",
+ "id": "right-down-bot",
+ "className": "minBox right-down-bot"
+ },
+ "type": "div",
+ "id": "right-down-bot",
+ "classList": [
+ "minBox",
+ "right-down-bot"
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:47",
+ "id": "right-down",
+ "className": "minBox right-down"
+ },
+ "type": "div",
+ "id": "right-down",
+ "classList": [
+ "minBox",
+ "right-down"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:53",
+ "className": "container-bottom-first",
+ "show": function () {return this.showFlag1}
+ },
+ "type": "div",
+ "classList": [
+ "container-bottom-first"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:54",
+ "className": "container-bottom-one-first"
+ },
+ "type": "div",
+ "classList": [
+ "container-bottom-one-first"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:56",
+ "src": function () {return this.conBotFirImgSrc}
+ },
+ "type": "image",
+ "style": {
+ "width": "30px",
+ "height": "30px"
+ },
+ "onBubbleEvents": {
+ "click": "conBotFirImage"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:58",
+ "src": function () {return this.conBotSecImgSrc},
+ "className": "container-bottom-image"
+ },
+ "type": "image",
+ "classList": [
+ "container-bottom-image"
+ ],
+ "onBubbleEvents": {
+ "click": "conBotSecImage"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:60",
+ "src": function () {return this.conBotThrImgSrc},
+ "className": "container-bottom-image"
+ },
+ "type": "image",
+ "classList": [
+ "container-bottom-image"
+ ],
+ "onBubbleEvents": {
+ "click": "conBotThrImage"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:62",
+ "src": function () {return this.conBotFouImgSrc},
+ "className": "container-bottom-image"
+ },
+ "type": "image",
+ "classList": [
+ "container-bottom-image"
+ ],
+ "onBubbleEvents": {
+ "click": "conBotFouImage"
+ }
+ }
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:64",
+ "className": "container-bottom-two-first"
+ },
+ "type": "div",
+ "classList": [
+ "container-bottom-two-first"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:66",
+ "src": function () {return this.picFraImgSrc}
+ },
+ "type": "image",
+ "style": {
+ "width": "24px",
+ "height": "24px"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:67",
+ "value": function () {return this.picFrame}
+ },
+ "type": "text",
+ "style": {
+ "fontSize": "14px",
+ "color": "#2788B9"
+ }
+ }
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:69",
+ "className": "container-bottom-three-first"
+ },
+ "type": "div",
+ "classList": [
+ "container-bottom-three-first"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:71",
+ "src": "common/images/crop_blue.svg"
+ },
+ "type": "image",
+ "style": {
+ "width": "24px",
+ "height": "24px"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:73",
+ "src": "common/images/adjust_white.svg"
+ },
+ "type": "image",
+ "style": {
+ "width": "24px",
+ "height": "24px",
+ "marginLeft": "148px"
+ },
+ "onBubbleEvents": {
+ "click": "showAdjustPage"
+ }
+ }
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:76",
+ "className": "container-bottom-four-first"
+ },
+ "type": "div",
+ "classList": [
+ "container-bottom-four-first"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:78",
+ "value": function () {return this.cropping}
+ },
+ "type": "text",
+ "style": {
+ "fontSize": "16px",
+ "color": "#2788B9"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:80",
+ "value": function () {return this.adjust}
+ },
+ "type": "text",
+ "style": {
+ "fontSize": "16px",
+ "color": "#FFFFFF",
+ "marginLeft": "138px"
+ },
+ "onBubbleEvents": {
+ "click": "showAdjustPage"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:85",
+ "className": "container-bottom-second",
+ "show": function () {return this.showFlag2}
+ },
+ "type": "div",
+ "classList": [
+ "container-bottom-second"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:86",
+ "min": "1",
+ "max": "10",
+ "value": function () {return this.brightnessValue},
+ "show": function () {return this.showBrightness}
+ },
+ "type": "slider",
+ "events": {
+ "change": "setBrightnessValue"
+ },
+ "style": {
+ "color": "#808080"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:88",
+ "min": "1",
+ "max": "10",
+ "value": function () {return this.contrastValue},
+ "show": function () {return this.showContrast}
+ },
+ "type": "slider",
+ "events": {
+ "change": "setContrastValue"
+ },
+ "style": {
+ "color": "#808080"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:90",
+ "min": "1",
+ "max": "10",
+ "value": function () {return this.saturationValue},
+ "show": function () {return this.showSaturation}
+ },
+ "type": "slider",
+ "events": {
+ "change": "setSaturationValue"
+ },
+ "style": {
+ "color": "#808080"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:92",
+ "className": "container-bottom-two-second"
+ },
+ "type": "div",
+ "classList": [
+ "container-bottom-two-second"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:94",
+ "src": function () {return this.brightnessImgSrc}
+ },
+ "type": "image",
+ "style": {
+ "width": "24px",
+ "height": "24px",
+ "marginLeft": "60px"
+ },
+ "onBubbleEvents": {
+ "click": "brightnessAdj"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:98",
+ "src": function () {return this.contrastImgSrc}
+ },
+ "type": "image",
+ "style": {
+ "width": "24px",
+ "height": "24px",
+ "marginLeft": "86px"
+ },
+ "onBubbleEvents": {
+ "click": "contrastAdj"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:102",
+ "src": function () {return this.saturationImgSrc}
+ },
+ "type": "image",
+ "style": {
+ "width": "24px",
+ "height": "24px",
+ "marginLeft": "86px"
+ },
+ "onBubbleEvents": {
+ "click": "saturationAdj"
+ }
+ }
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:105",
+ "className": "container-bottom-three-second"
+ },
+ "type": "div",
+ "classList": [
+ "container-bottom-three-second"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:107",
+ "className": "brightnessTxt",
+ "value": function () {return this.brightness}
+ },
+ "type": "text",
+ "classList": [
+ "brightnessTxt"
+ ],
+ "style": {
+ "color": function () {return this.brightnessColor}
+ },
+ "onBubbleEvents": {
+ "click": "brightnessAdj"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:109",
+ "className": "contrastTxt",
+ "value": function () {return this.contrast}
+ },
+ "type": "text",
+ "classList": [
+ "contrastTxt"
+ ],
+ "style": {
+ "color": function () {return this.contrastColor}
+ },
+ "onBubbleEvents": {
+ "click": "contrastAdj"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:111",
+ "className": "saturationTxt",
+ "value": function () {return this.saturation}
+ },
+ "type": "text",
+ "classList": [
+ "saturationTxt"
+ ],
+ "style": {
+ "color": function () {return this.saturationColor}
+ },
+ "onBubbleEvents": {
+ "click": "saturationAdj"
+ }
+ }
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:113",
+ "className": "container-bottom-four-second"
+ },
+ "type": "div",
+ "classList": [
+ "container-bottom-four-second"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:115",
+ "src": "common/images/crop_white.svg"
+ },
+ "type": "image",
+ "style": {
+ "width": "24px",
+ "height": "24px"
+ },
+ "onBubbleEvents": {
+ "click": "showCropPage"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:117",
+ "src": "common/images/adjust_blue.svg"
+ },
+ "type": "image",
+ "style": {
+ "width": "24px",
+ "height": "24px",
+ "marginLeft": "148px"
+ }
+ }
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:119",
+ "className": "container-bottom-five-second"
+ },
+ "type": "div",
+ "classList": [
+ "container-bottom-five-second"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:121",
+ "value": function () {return this.cropping}
+ },
+ "type": "text",
+ "style": {
+ "fontSize": "16px",
+ "color": "#FFFFFF"
+ },
+ "onBubbleEvents": {
+ "click": "showCropPage"
+ }
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:123",
+ "value": function () {return this.adjust}
+ },
+ "type": "text",
+ "style": {
+ "fontSize": "16px",
+ "color": "#2788B9",
+ "marginLeft": "138px"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:128",
+ "id": "simpleDialog",
+ "className": "dialog-main"
+ },
+ "type": "dialog",
+ "id": "simpleDialog",
+ "classList": [
+ "dialog-main"
+ ],
+ "events": {
+ "cancel": "cancelDialog"
+ },
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:129",
+ "className": "dialog-div"
+ },
+ "type": "div",
+ "classList": [
+ "dialog-div"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:130",
+ "className": "inner-txt"
+ },
+ "type": "div",
+ "classList": [
+ "inner-txt"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:131",
+ "className": "txt",
+ "value": function () {return this.title}
+ },
+ "type": "text",
+ "classList": [
+ "txt"
+ ]
+ }
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:133",
+ "className": "inner-btn"
+ },
+ "type": "div",
+ "classList": [
+ "inner-btn"
+ ],
+ "children": [
+ {
+ "attr": {
+ "debugLine": "pages/index/index:134",
+ "type": "text",
+ "value": "取消",
+ "className": "btn-cancel"
+ },
+ "type": "button",
+ "onBubbleEvents": {
+ "click": "cancelSchedule"
+ },
+ "classList": [
+ "btn-cancel"
+ ]
+ },
+ {
+ "attr": {
+ "debugLine": "pages/index/index:135",
+ "type": "text",
+ "value": "放弃",
+ "className": "btn-stop"
+ },
+ "type": "button",
+ "onBubbleEvents": {
+ "click": "setSchedule"
+ },
+ "classList": [
+ "btn-stop"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
+
+/***/ }),
+
+/***/ "./lib/script.js!./node_modules/babel-loader/lib/index.js?presets[]=D:\\Program Files\\Huawei\\Dev3.42Sdk\\js\\2.2.0.56\\build-tools\\ace-loader\\node_modules\\@babel\\preset-env&plugins[]=D:\\Program Files\\Huawei\\Dev3.42Sdk\\js\\2.2.0.56\\build-tools\\ace-loader\\node_modules\\@babel\\plugin-transform-modules-commonjs&comments=false!./lib/resource-reference-script.js!../../../../../../../work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.js":
+/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** d:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/script.js!d:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/node_modules/babel-loader/lib?presets[]=D:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/node_modules/@babel/preset-env&plugins[]=D:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/node_modules/@babel/plugin-transform-modules-commonjs&comments=false!d:/Program Files/Huawei/Dev3.42Sdk/js/2.2.0.56/build-tools/ace-loader/lib/resource-reference-script.js!d:/work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.js ***!
+ \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = function(module, exports, $app_require$){"use strict";
+
+var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports["default"] = void 0;
+
+var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "./node_modules/@babel/runtime/helpers/toConsumableArray.js"));
+
+var _system = _interopRequireDefault(requireModule("@system.app"));
+
+var _system2 = _interopRequireDefault(requireModule("@system.prompt"));
+
+var _default = {
+ data: {
+ title: '',
+ titleAppBar: '',
+ picFrame: '',
+ cropping: '',
+ adjust: '',
+ picFraImgSrc: '',
+ conBotFirImgSrc: '',
+ conBotSecImgSrc: '',
+ conBotThrImgSrc: '',
+ conBotFouImgSrc: '',
+ brightness: '',
+ brightnessImgSrc: '',
+ brightnessColor: '',
+ contrast: '',
+ contrastImgSrc: '',
+ contrastColor: '',
+ saturation: '',
+ saturationImgSrc: '',
+ saturationColor: '',
+ cropWidth: 0,
+ cropHeight: 0,
+ cropTop: 38,
+ cropLeft: 0,
+ cropBoxLeftOne: 0,
+ cropBoxLeftTwo: 0,
+ cropBoxLeftThr: 0,
+ cropBoxLeftFou: 0,
+ brightnessValue: 10,
+ oldBrightnessValue: 10,
+ contrastValue: 10,
+ oldContrastValue: 10,
+ saturationValue: 10,
+ oldSaturationValue: 10,
+ beginBright: true,
+ beginContrast: true,
+ beginSaturation: true,
+ brightnessImgData: null,
+ contrastImgData: null,
+ saturationImgData: null,
+ dWidth: 0,
+ dHeight: 0,
+ ratios: 0,
+ sx: 0,
+ sy: 0,
+ dx: 0,
+ dy: 0,
+ offset: 30,
+ showFlag1: true,
+ showFlag2: false,
+ showBrightness: true,
+ showContrast: false,
+ showSaturation: false,
+ canvasWidth: 300,
+ canvasHeight: 300,
+ originalImageTop: 0,
+ originalImageWidth: 300,
+ originalImageHeight: 224,
+ cropImgMaxWidth: 300,
+ cropImgMaxHeight: 300,
+ zero: 0,
+ two: 2,
+ sliderMaxValue: 10
+ },
+ onInit: function onInit() {
+ this.cropWidth = this.originalImageWidth;
+ this.cropHeight = this.originalImageHeight;
+ console.log('onInit()裁剪框宽:' + this.cropWidth + '高:' + this.cropHeight);
+ this.cropLeft = this.offset;
+ this.title = this.$t('strings.title');
+ this.titleAppBar = this.$t('strings.titleAppBar');
+ this.picFrame = this.$t('strings.picFrame');
+ this.cropping = this.$t('strings.cropping');
+ this.adjust = this.$t('strings.adjust');
+ this.brightness = this.$t('strings.brightness');
+ this.contrast = this.$t('strings.contrast');
+ this.saturation = this.$t('strings.saturation');
+ this.picFraImgSrc = this.$t('strings.picFraImgSrc');
+ this.conBotFirImgSrc = 'common/images/image_frame_white_blue.svg';
+ this.conBotSecImgSrc = this.$t('strings.conBotSecImgSrc');
+ this.conBotThrImgSrc = this.$t('strings.conBotThrImgSrc');
+ this.conBotFouImgSrc = this.$t('strings.conBotFouImgSrc');
+ this.brightnessImgSrc = 'common/images/brightness_blue.svg';
+ this.contrastImgSrc = this.$t('strings.contrastImgSrc');
+ this.saturationImgSrc = this.$t('strings.saturationImgSrc');
+ },
+ onShow: function onShow() {
+ var img = new Image();
+ img.src = 'common/images/image.jpg';
+ var el = this.$element('canvasOne');
+ var ctx = el.getContext('2d');
+ ctx.clearRect(this.zero, this.zero, this.canvasWidth, this.canvasHeight);
+ this.originalImageTop = (this.canvasWidth - this.originalImageHeight) / this.two;
+ ctx.drawImage(img, this.zero, this.originalImageTop, this.originalImageWidth, this.originalImageHeight);
+ this.brightnessImgData = ctx.getImageData(this.zero, this.zero, this.canvasWidth, this.canvasHeight);
+ this.contrastImgData = this.brightnessImgData;
+ this.saturationImgData = this.brightnessImgData;
+ ctx.save();
+ this.cropBoxLeftOne = (this.originalImageWidth - this.originalImageWidth) / this.two + this.offset;
+ this.cropBoxLeftTwo = (this.originalImageWidth - this.originalImageHeight) / this.two + this.offset;
+ this.cropBoxLeftThr = (this.originalImageWidth - this.originalImageWidth) / this.two + this.offset;
+ this.cropBoxLeftFou = (this.originalImageWidth - this.originalImageHeight * 9 / 16) / this.two + this.offset;
+ this.cropBoxTopOne = this.originalImageTop;
+ this.cropBoxTopTwo = this.originalImageTop;
+ this.cropBoxTopThr = (this.canvasHeight - this.originalImageWidth * 9 / 16) / this.two;
+ this.cropBoxTopFou = this.originalImageTop;
+ this.dWidth = this.originalImageWidth;
+ this.dHeight = this.originalImageHeight;
+ console.log('onShow()绘制完图片宽:' + this.dWidth + '高:' + this.dHeight);
+ },
+ showCropPage: function showCropPage() {
+ this.showFlag1 = true;
+ this.showFlag2 = false;
+
+ switch (this.ratios) {
+ case 0:
+ this.conBotFirImage();
+ break;
+
+ case 1:
+ this.conBotSecImage();
+ break;
+
+ case 16 / 9:
+ this.conBotThrImage();
+ break;
+
+ case 9 / 16:
+ this.conBotFouImage();
+ break;
+
+ default:
+ break;
+ }
+ },
+ showAdjustPage: function showAdjustPage() {
+ this.showFlag1 = false;
+ this.showFlag2 = true;
+ this.showBrightness = true;
+ this.showContrast = false;
+ this.showSaturation = false;
+ this.brightnessColor = '#2788B9';
+ this.contrastColor = '#ffffff';
+ this.saturationColor = '#ffffff';
+
+ switch (this.ratios) {
+ case 0:
+ break;
+
+ case 1:
+ this.cropOne();
+ break;
+
+ case 16 / 9:
+ this.cropThr();
+ break;
+
+ case 9 / 16:
+ this.cropFour();
+ break;
+
+ default:
+ break;
+ }
+ },
+ cropOne: function cropOne() {
+ var el = this.$element('canvasOne');
+ var ctx = el.getContext('2d');
+ console.log('1:1比例裁剪cropOne()裁剪框宽:' + this.cropWidth + '高:' + this.cropHeight);
+ this.sx = (this.dWidth - this.cropWidth) / this.two;
+ this.sy = (this.cropImgMaxHeight - this.cropHeight) / this.two;
+ var imageData;
+
+ if (this.dHeight === this.cropImgMaxHeight) {
+ imageData = ctx.getImageData(this.sx, this.sy, this.cropWidth + (this.cropImgMaxWidth - this.originalImageHeight * 9 / 16) / this.two, this.cropWidth);
+ } else {
+ imageData = ctx.getImageData(this.sx, this.sy, this.cropWidth, this.cropWidth);
+ }
+
+ ctx.clearRect(this.zero, this.zero, this.canvasWidth, this.canvasHeight);
+ ctx.scale(this.cropImgMaxWidth / this.cropWidth, this.cropImgMaxHeight / this.cropHeight);
+ this.dx = -(this.cropImgMaxWidth - this.dWidth) / this.two;
+ this.dy = this.zero;
+ console.log('1:1比例裁剪cropOne()ImageData对象:' + imageData);
+ ctx.putImageData(imageData, this.dx, this.dy);
+ ctx.scale(this.cropWidth / this.cropImgMaxWidth, this.cropHeight / this.cropImgMaxHeight);
+ this.beginBright = this.brightnessValue === 0 ? true : false;
+ this.beginContrast = this.contrastValue === 0 ? true : false;
+ this.beginSaturation = this.saturationValue === 0 ? true : false;
+ this.brightnessImgData = ctx.getImageData(this.zero, this.zero, this.canvasWidth, this.canvasHeight);
+ this.contrastImgData = this.brightnessImgData;
+ this.saturationImgData = this.brightnessImgData;
+ ctx.save();
+ this.cropBoxLeftFou = (this.cropImgMaxWidth - this.cropImgMaxHeight * 9 / 16) / this.two + this.offset;
+ this.cropBoxLeftThr = this.offset;
+ this.cropBoxLeftTwo = this.offset;
+ this.cropBoxLeftOne = this.offset;
+ this.cropBoxTopOne = (this.cropImgMaxHeight - this.cropImgMaxWidth) / this.two;
+ this.cropBoxTopTwo = (this.cropImgMaxHeight - this.cropImgMaxWidth) / this.two;
+ this.cropBoxTopThr = (this.cropImgMaxHeight - this.cropImgMaxWidth * 9 / 16) / this.two;
+ this.cropBoxTopFou = (this.cropImgMaxHeight - this.cropImgMaxWidth) / this.two;
+ this.dWidth = this.cropImgMaxWidth;
+ this.dHeight = this.cropImgMaxHeight;
+ console.log('1:1比例裁剪cropOne()后图片宽:' + this.dWidth + '高:' + this.dHeight);
+ },
+ cropThr: function cropThr() {
+ var el = this.$element('canvasOne');
+ var ctx = el.getContext('2d');
+ console.log('16:9比例裁剪cropThr()裁剪框宽:' + this.cropWidth + '高:' + this.cropHeight);
+ this.sx = (this.cropImgMaxWidth - this.dWidth) / this.two;
+ this.sy = (this.cropImgMaxHeight - this.cropHeight) / this.two;
+ var imageData = ctx.getImageData(this.sx, this.sy, this.cropWidth, this.cropHeight);
+ ctx.clearRect(this.zero, this.zero, this.canvasWidth, this.canvasHeight);
+
+ if (this.dHeight === this.cropImgMaxHeight) {
+ ctx.scale(this.cropImgMaxWidth / this.cropWidth, this.cropImgMaxWidth / this.cropWidth);
+ }
+
+ this.dy = (this.cropImgMaxHeight - this.cropHeight * (this.cropImgMaxWidth / this.cropWidth)) / (this.two * (this.cropImgMaxWidth / this.cropWidth));
+ console.log('16:9比例裁剪cropThr()ImageData对象:' + imageData);
+ ctx.putImageData(imageData, this.zero, this.dy);
+
+ if (this.dHeight === this.cropImgMaxHeight) {
+ ctx.scale(this.cropWidth / this.cropImgMaxWidth, this.cropWidth / this.cropImgMaxWidth);
+ }
+
+ this.beginBright = this.brightnessValue === 0 ? true : false;
+ this.beginContrast = this.contrastValue === 0 ? true : false;
+ this.beginSaturation = this.saturationValue === 0 ? true : false;
+ this.brightnessImgData = ctx.getImageData(this.zero, this.zero, this.canvasWidth, this.canvasHeight);
+ this.contrastImgData = this.brightnessImgData;
+ this.saturationImgData = this.brightnessImgData;
+ ctx.save();
+ this.cropBoxLeftFou = (this.cropImgMaxWidth - this.cropImgMaxWidth * 9 / 16 * 9 / 16) / this.two + this.offset;
+ this.cropBoxLeftThr = this.offset;
+ this.cropBoxLeftTwo = (this.cropImgMaxWidth - this.cropImgMaxWidth * 9 / 16 * 1 / 1) / this.two + this.offset;
+ this.cropBoxLeftOne = this.offset;
+ this.cropBoxTopOne = (this.cropImgMaxHeight - this.cropImgMaxWidth * 9 / 16) / this.two;
+ this.cropBoxTopTwo = (this.cropImgMaxHeight - this.cropImgMaxWidth * 9 / 16) / this.two;
+ this.cropBoxTopThr = (this.cropImgMaxHeight - this.cropImgMaxWidth * 9 / 16) / this.two;
+ this.cropBoxTopFou = (this.cropImgMaxHeight - this.cropImgMaxWidth * 9 / 16) / this.two;
+ this.dWidth = this.cropImgMaxWidth;
+ this.dHeight = this.cropImgMaxWidth * 9 / 16;
+ console.log('16:9比例裁剪cropThr()后图片宽:' + this.dWidth + '高:' + this.dHeight);
+ this.cropWidth = this.dWidth;
+ this.cropHeight = this.dHeight;
+ },
+ cropFour: function cropFour() {
+ var el = this.$element('canvasOne');
+ var ctx = el.getContext('2d');
+ console.log('9:16比例裁剪cropFour()裁剪框宽:' + this.cropWidth + '高:' + this.cropHeight);
+ this.sx = (this.dWidth - this.cropWidth) / this.two;
+ this.sy = (this.cropImgMaxHeight - this.cropHeight) / this.two;
+ var imageData;
+
+ if (this.dHeight === this.cropImgMaxHeight && this.dWidth !== this.cropImgMaxWidth) {
+ imageData = ctx.getImageData(this.sx, this.sy, this.cropWidth + (this.cropImgMaxWidth - this.originalImageHeight * 9 / 16) / this.two, this.cropHeight);
+ } else {
+ imageData = ctx.getImageData(this.sx, this.sy, this.cropWidth, this.cropHeight);
+ }
+
+ ctx.clearRect(this.zero, this.zero, this.canvasWidth, this.canvasHeight);
+
+ if (this.dWidth === this.cropImgMaxWidth) {
+ ctx.scale(this.cropImgMaxHeight / this.cropHeight, this.cropImgMaxHeight / this.cropHeight);
+ }
+
+ if (this.dHeight === this.cropImgMaxHeight && this.dWidth !== this.cropImgMaxWidth) {
+ this.dx = this.zero;
+ } else {
+ this.dx = (this.cropImgMaxWidth - this.cropWidth * (this.cropImgMaxHeight / this.cropHeight)) / (this.two * (this.cropImgMaxHeight / this.cropHeight));
+ }
+
+ this.dy = this.zero;
+ console.log('9:16比例裁剪cropThr()ImageData对象:' + imageData);
+ ctx.putImageData(imageData, this.dx, this.dy);
+
+ if (this.dWidth === this.cropImgMaxWidth) {
+ ctx.scale(this.cropHeight / this.cropImgMaxHeight, this.cropHeight / this.cropImgMaxHeight);
+ }
+
+ this.beginBright = this.brightnessValue === 0 ? true : false;
+ this.beginContrast = this.contrastValue === 0 ? true : false;
+ this.beginSaturation = this.saturationValue === 0 ? true : false;
+ this.brightnessImgData = ctx.getImageData(this.zero, this.zero, this.canvasWidth, this.canvasHeight);
+ this.contrastImgData = this.brightnessImgData;
+ this.saturationImgData = this.brightnessImgData;
+ ctx.save();
+ this.cropBoxLeftFou = (this.cropImgMaxWidth - this.cropImgMaxHeight * 9 / 16) / this.two + this.offset;
+ this.cropBoxLeftThr = (this.cropImgMaxWidth - this.cropImgMaxHeight * 9 / 16) / this.two + this.offset;
+ this.cropBoxLeftTwo = (this.cropImgMaxWidth - this.cropImgMaxHeight * 9 / 16) / this.two + this.offset;
+ this.cropBoxLeftOne = (this.cropImgMaxWidth - this.cropImgMaxHeight * 9 / 16) / this.two + this.offset;
+ this.cropBoxTopOne = (this.cropImgMaxHeight - this.cropImgMaxHeight * 9 / 16 * 16 / 9) / this.two;
+ this.cropBoxTopTwo = (this.cropImgMaxHeight - this.cropImgMaxHeight * 9 / 16) / this.two;
+ this.cropBoxTopThr = (this.cropImgMaxHeight - this.cropImgMaxHeight * 9 / 16 * 9 / 16) / this.two;
+ this.cropBoxTopFou = (this.cropImgMaxHeight - this.cropImgMaxHeight * 9 / 16 * 16 / 9) / this.two;
+ this.dHeight = this.cropImgMaxHeight;
+ this.dWidth = this.dHeight * 9 / 16;
+ console.log('9:16比例裁剪cropFour()后图片宽:' + this.dWidth + '高:' + this.dHeight);
+ this.cropWidth = this.dWidth;
+ this.cropHeight = this.dHeight;
+ },
+ conBotFirImage: function conBotFirImage() {
+ this.conBotFirImgSrc = 'common/images/image_frame_white_blue.svg';
+ this.conBotSecImgSrc = this.$t('strings.conBotSecImgSrc');
+ this.conBotThrImgSrc = this.$t('strings.conBotThrImgSrc');
+ this.conBotFouImgSrc = this.$t('strings.conBotFouImgSrc');
+ this.cropTop = this.cropBoxTopOne;
+ this.cropLeft = this.cropBoxLeftOne;
+ this.cropWidth = this.dWidth;
+ this.cropHeight = this.dHeight;
+ console.log('原图调整裁剪框位置后宽:' + this.cropWidth + '高:' + this.cropHeight);
+ this.ratios = 0;
+ },
+ conBotSecImage: function conBotSecImage() {
+ this.conBotFirImgSrc = this.$t('strings.conBotFirImgSrc');
+ this.conBotSecImgSrc = 'common/images/ratios_1-1_blue.png';
+ this.conBotThrImgSrc = this.$t('strings.conBotThrImgSrc');
+ this.conBotFouImgSrc = this.$t('strings.conBotFouImgSrc');
+ this.cropLeft = this.cropBoxLeftTwo;
+
+ if (this.dWidth < this.dHeight) {
+ this.cropTop = (this.dHeight - this.dWidth) / this.two;
+ this.cropWidth = this.dWidth;
+ this.cropHeight = this.dWidth;
+ } else {
+ this.cropTop = this.cropBoxTopTwo;
+ this.cropWidth = this.dHeight;
+ this.cropHeight = this.dHeight;
+ }
+
+ console.log('1:1调整裁剪框位置后宽:' + this.cropWidth + '高:' + this.cropHeight);
+ this.ratios = 1;
+ },
+ conBotThrImage: function conBotThrImage() {
+ this.conBotFirImgSrc = this.$t('strings.conBotFirImgSrc');
+ this.conBotSecImgSrc = this.$t('strings.conBotSecImgSrc');
+ this.conBotThrImgSrc = 'common/images/ratios_16-9_blue.png';
+ this.conBotFouImgSrc = this.$t('strings.conBotFouImgSrc');
+ this.cropTop = this.cropBoxTopThr;
+ this.cropLeft = this.cropBoxLeftThr;
+ this.cropWidth = this.dWidth;
+ this.cropHeight = this.cropWidth * 9 / 16;
+ console.log('16:9调整裁剪框位置后宽:' + this.cropWidth + '高:' + this.cropHeight);
+ this.ratios = 16 / 9;
+ },
+ conBotFouImage: function conBotFouImage() {
+ this.conBotFirImgSrc = this.$t('strings.conBotFirImgSrc');
+ this.conBotSecImgSrc = this.$t('strings.conBotSecImgSrc');
+ this.conBotThrImgSrc = this.$t('strings.conBotThrImgSrc');
+ this.conBotFouImgSrc = 'common/images/ratios_9-16_blue.png';
+ this.cropTop = this.cropBoxTopFou;
+ this.cropLeft = this.cropBoxLeftFou;
+ this.cropHeight = this.dHeight;
+ this.cropWidth = this.dHeight * 9 / 16;
+ console.log('9:16调整裁剪框位置后宽:' + this.cropWidth + '高:' + this.cropHeight);
+ this.ratios = 9 / 16;
+ },
+ brightnessAdj: function brightnessAdj() {
+ this.brightnessColor = '#2788B9';
+ this.contrastColor = '#ffffff';
+ this.saturationColor = '#ffffff';
+ this.brightnessImgSrc = 'common/images/brightness_blue.svg';
+ this.contrastImgSrc = this.$t('strings.contrastImgSrc');
+ this.saturationImgSrc = this.$t('strings.saturationImgSrc');
+ this.showBrightness = true;
+ this.showContrast = false;
+ this.showSaturation = false;
+ var test = this.$element('canvasOne');
+ var ctx = test.getContext('2d');
+ ctx.restore();
+ ctx.putImageData(this.brightnessImgData, this.zero, this.zero);
+ this.brightnessValue = this.sliderMaxValue;
+ },
+ contrastAdj: function contrastAdj() {
+ this.brightnessColor = '#ffffff';
+ this.contrastColor = '#2788B9';
+ this.saturationColor = '#ffffff';
+ this.brightnessImgSrc = this.$t('strings.brightnessImgSrc');
+ this.contrastImgSrc = 'common/images/contrast_blue.svg';
+ this.saturationImgSrc = this.$t('strings.saturationImgSrc');
+ this.showBrightness = false;
+ this.showContrast = true;
+ this.showSaturation = false;
+ var test = this.$element('canvasOne');
+ var ctx = test.getContext('2d');
+ ctx.restore();
+ ctx.putImageData(this.contrastImgData, this.zero, this.zero);
+ this.contrastValue = this.sliderMaxValue;
+ },
+ saturationAdj: function saturationAdj() {
+ this.brightnessColor = '#ffffff';
+ this.contrastColor = '#ffffff';
+ this.saturationColor = '#2788B9';
+ this.brightnessImgSrc = this.$t('strings.brightnessImgSrc');
+ this.contrastImgSrc = this.$t('strings.contrastImgSrc');
+ this.saturationImgSrc = 'common/images/saturation_blue.svg';
+ this.showBrightness = false;
+ this.showContrast = false;
+ this.showSaturation = true;
+ var test = this.$element('canvasOne');
+ var ctx = test.getContext('2d');
+ ctx.restore();
+ ctx.putImageData(this.saturationImgData, this.zero, this.zero);
+ this.saturationValue = this.sliderMaxValue;
+ },
+ setBrightnessValue: function setBrightnessValue(e) {
+ if (e.mode === 'start') {
+ this.oldBrightnessValue = e.value;
+ } else if (e.mode === 'end') {
+ this.brightnessValue = e.value;
+
+ if (e.value === this.sliderMaxValue && this.beginBright) {
+ var test = this.$element('canvasOne');
+ var ctx = test.getContext('2d');
+ ctx.restore();
+ ctx.putImageData(this.brightnessImgData, this.zero, this.zero);
+ } else {
+ var adjustValue = e.value / this.oldBrightnessValue;
+ console.log('adjustValue:: ' + adjustValue);
+ this.adjustBrightness(adjustValue);
+ this.oldBrightnessValue = e.value;
+ }
+ }
+ },
+ adjustBrightness: function adjustBrightness(value) {
+ var test = this.$element('canvasOne');
+ var ctx = test.getContext('2d');
+ var imgData = ctx.getImageData(this.zero, this.zero, this.canvasWidth, this.canvasHeight);
+ ctx.putImageData(this.changeBrightness(imgData, value), this.zero, this.zero);
+ },
+ changeBrightness: function changeBrightness(imgdata, value) {
+ var data = imgdata.data;
+
+ for (var i = 0; i < data.length; i += 4) {
+ var hsv = this.rgb2hsv([data[i], data[i + 1], data[i + 2]]);
+ hsv[2] *= value;
+ var rgb = this.hsv2rgb((0, _toConsumableArray2["default"])(hsv));
+ data[i] = rgb[0];
+ data[i + 1] = rgb[1];
+ data[i + 2] = rgb[2];
+ }
+
+ return imgdata;
+ },
+ setContrastValue: function setContrastValue(e) {
+ if (e.mode === 'start') {
+ this.oldContrastValue = e.value;
+ } else if (e.mode === 'end') {
+ this.contrastValue = e.value;
+
+ if (e.value === this.sliderMaxValue && this.beginContrast) {
+ var test = this.$element('canvasOne');
+ var ctx = test.getContext('2d');
+ ctx.restore();
+ ctx.putImageData(this.contrastImgData, this.zero, this.zero);
+ } else {
+ var adjustValue = e.value / this.oldContrastValue;
+ this.adjustContrast(adjustValue);
+ this.oldContrastValue = e.value;
+ }
+ }
+ },
+ adjustContrast: function adjustContrast(value) {
+ var test = this.$element('canvasOne');
+ var ctx = test.getContext('2d');
+ var imgData = ctx.getImageData(this.zero, this.zero, this.canvasWidth, this.canvasHeight);
+ ctx.putImageData(this.changeContrast(imgData, value), this.zero, this.zero);
+ },
+ changeContrast: function changeContrast(imgdata, value) {
+ var data = imgdata.data;
+
+ for (var i = 0; i < data.length; i += 4) {
+ var hsv = this.rgb2hsv([data[i], data[i + 1], data[i + 2]]);
+ hsv[0] *= value;
+ var rgb = this.hsv2rgb((0, _toConsumableArray2["default"])(hsv));
+ data[i] = rgb[0];
+ data[i + 1] = rgb[1];
+ data[i + 2] = rgb[2];
+ }
+
+ return imgdata;
+ },
+ setSaturationValue: function setSaturationValue(e) {
+ if (e.mode === 'start') {
+ this.oldSaturationValue = e.value;
+ } else if (e.mode === 'end') {
+ this.saturationValue = e.value;
+
+ if (e.value === this.sliderMaxValue && this.beginSaturation) {
+ var test = this.$element('canvasOne');
+ var ctx = test.getContext('2d');
+ ctx.restore();
+ ctx.putImageData(this.saturationImgData, this.zero, this.zero);
+ } else {
+ var adjustValue = e.value / this.oldSaturationValue;
+ this.adjustSaturation(adjustValue);
+ this.oldSaturationValue = e.value;
+ }
+ }
+ },
+ adjustSaturation: function adjustSaturation(value) {
+ var test = this.$element('canvasOne');
+ var ctx = test.getContext('2d');
+ var imgData = ctx.getImageData(this.zero, this.zero, this.canvasWidth, this.canvasHeight);
+ ctx.putImageData(this.changeSaturation(imgData, value), this.zero, this.zero);
+ },
+ changeSaturation: function changeSaturation(imgdata, value) {
+ var data = imgdata.data;
+
+ for (var i = 0; i < data.length; i += 4) {
+ var hsv = this.rgb2hsv([data[i], data[i + 1], data[i + 2]]);
+ hsv[1] *= value;
+ var rgb = this.hsv2rgb((0, _toConsumableArray2["default"])(hsv));
+ data[i] = rgb[0];
+ data[i + 1] = rgb[1];
+ data[i + 2] = rgb[2];
+ }
+
+ return imgdata;
+ },
+ rgb2hsv: function rgb2hsv(arr) {
+ var rr;
+ var gg;
+ var bb;
+ var r = arr[0] / 255;
+ var g = arr[1] / 255;
+ var b = arr[2] / 255;
+ var h;
+ var s;
+ var v = Math.max(r, g, b);
+ var diff = v - Math.min(r, g, b);
+
+ var diffc = function diffc(c) {
+ return (v - c) / 6 / diff + 1 / 2;
+ };
+
+ if (diff === 0) {
+ h = s = 0;
+ } else {
+ s = diff / v;
+ rr = diffc(r);
+ gg = diffc(g);
+ bb = diffc(b);
+
+ if (r === v) {
+ h = bb - gg;
+ } else if (g === v) {
+ h = 1 / 3 + rr - bb;
+ } else if (b === v) {
+ h = 2 / 3 + gg - rr;
+ }
+
+ if (h < 0) {
+ h += 1;
+ } else if (h > 1) {
+ h -= 1;
+ }
+ }
+
+ return [Math.round(h * 360), Math.round(s * 100), Math.round(v * 100)];
+ },
+ hsv2rgb: function hsv2rgb(hsv) {
+ var _l = hsv[0];
+ var _m = hsv[1];
+ var _n = hsv[2];
+ var newR;
+ var newG;
+ var newB;
+
+ if (_m === 0) {
+ _l = _m = _n = Math.round(255 * _n / 100);
+ newR = _l;
+ newG = _m;
+ newB = _n;
+ } else {
+ _m = _m / 100;
+ _n = _n / 100;
+ var p = Math.floor(_l / 60) % 6;
+ var f = _l / 60 - p;
+ var a = _n * (1 - _m);
+ var b = _n * (1 - _m * f);
+ var c = _n * (1 - _m * (1 - f));
+
+ switch (p) {
+ case 0:
+ newR = _n;
+ newG = c;
+ newB = a;
+ break;
+
+ case 1:
+ newR = b;
+ newG = _n;
+ newB = a;
+ break;
+
+ case 2:
+ newR = a;
+ newG = _n;
+ newB = c;
+ break;
+
+ case 3:
+ newR = a;
+ newG = b;
+ newB = _n;
+ break;
+
+ case 4:
+ newR = c;
+ newG = a;
+ newB = _n;
+ break;
+
+ case 5:
+ newR = _n;
+ newG = a;
+ newB = b;
+ break;
+ }
+
+ newR = Math.round(255 * newR);
+ newG = Math.round(255 * newG);
+ newB = Math.round(255 * newB);
+ }
+
+ return [newR, newG, newB];
+ },
+ redo: function redo() {
+ _system2["default"].showToast({
+ message: 'Please implement your redo function'
+ });
+ },
+ undo: function undo() {
+ _system2["default"].showToast({
+ message: 'Please implement your undo function'
+ });
+ },
+ save: function save() {
+ _system2["default"].showToast({
+ message: 'Please implement your save function'
+ });
+ },
+ showDialog: function showDialog(e) {
+ this.$element('simpleDialog').show();
+ },
+ cancelSchedule: function cancelSchedule(e) {
+ this.$element('simpleDialog').close();
+ },
+ setSchedule: function setSchedule(e) {
+ this.$element('simpleDialog').close();
+
+ _system["default"].terminate();
+ }
+};
+exports["default"] = _default;
+
+function requireModule(moduleName) {
+ const systemList = ['system.router', 'system.app', 'system.prompt', 'system.configuration',
+ 'system.image', 'system.device', 'system.mediaquery', 'ohos.animator', 'system.grid', 'system.resource']
+ var target = ''
+ if (systemList.includes(moduleName.replace('@', ''))) {
+ target = $app_require$('@app-module/' + moduleName.substring(1));
+ return target;
+ }
+ var shortName = moduleName.replace(/@[^.]+.([^.]+)/, '$1');
+ if (typeof ohosplugin !== 'undefined' && /@ohos/.test(moduleName)) {
+ target = ohosplugin;
+ for (let key of shortName.split('.')) {
+ target = target[key];
+ if(!target) {
+ break;
+ }
+ }
+ if (typeof target !== 'undefined') {
+ return target;
+ }
+ }
+ if (typeof systemplugin !== 'undefined') {
+ target = systemplugin;
+ for (let key of shortName.split('.')) {
+ target = target[key];
+ if(!target) {
+ break;
+ }
+ }
+ if (typeof target !== 'undefined') {
+ return target;
+ }
+ }
+ target = requireNapi(shortName);
+ return target;
+}
+
+var moduleOwn = exports.default || module.exports;
+var accessors = ['public', 'protected', 'private'];
+if (moduleOwn.data && accessors.some(function (acc) {
+ return moduleOwn[acc];
+ })) {
+ throw new Error('For VM objects, attribute data must not coexist with public, protected, or private. Please replace data with public.');
+} else if (!moduleOwn.data) {
+ moduleOwn.data = {};
+ moduleOwn._descriptor = {};
+ accessors.forEach(function(acc) {
+ var accType = typeof moduleOwn[acc];
+ if (accType === 'object') {
+ moduleOwn.data = Object.assign(moduleOwn.data, moduleOwn[acc]);
+ for (var name in moduleOwn[acc]) {
+ moduleOwn._descriptor[name] = {access : acc};
+ }
+ } else if (accType === 'function') {
+ console.warn('For VM objects, attribute ' + acc + ' value must not be a function. Change the value to an object.');
+ }
+ });
+}}
+/* generated by ace-loader */
+
+
+/***/ }),
+
+/***/ "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
+/*!*****************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
+ \*****************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+function _arrayLikeToArray(arr, len) {
+ if (len == null || len > arr.length) len = arr.length;
+
+ for (var i = 0, arr2 = new Array(len); i < len; i++) {
+ arr2[i] = arr[i];
+ }
+
+ return arr2;
+}
+
+module.exports = _arrayLikeToArray;
+
+/***/ }),
+
+/***/ "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":
+/*!******************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
+ \******************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray */ "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
+
+function _arrayWithoutHoles(arr) {
+ if (Array.isArray(arr)) return arrayLikeToArray(arr);
+}
+
+module.exports = _arrayWithoutHoles;
+
+/***/ }),
+
+/***/ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js":
+/*!**********************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
+ \**********************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+function _interopRequireDefault(obj) {
+ return obj && obj.__esModule ? obj : {
+ "default": obj
+ };
+}
+
+module.exports = _interopRequireDefault;
+
+/***/ }),
+
+/***/ "./node_modules/@babel/runtime/helpers/iterableToArray.js":
+/*!****************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/iterableToArray.js ***!
+ \****************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+function _iterableToArray(iter) {
+ if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
+}
+
+module.exports = _iterableToArray;
+
+/***/ }),
+
+/***/ "./node_modules/@babel/runtime/helpers/nonIterableSpread.js":
+/*!******************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
+ \******************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+function _nonIterableSpread() {
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+}
+
+module.exports = _nonIterableSpread;
+
+/***/ }),
+
+/***/ "./node_modules/@babel/runtime/helpers/toConsumableArray.js":
+/*!******************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
+ \******************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles */ "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");
+
+var iterableToArray = __webpack_require__(/*! ./iterableToArray */ "./node_modules/@babel/runtime/helpers/iterableToArray.js");
+
+var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray */ "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
+
+var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread */ "./node_modules/@babel/runtime/helpers/nonIterableSpread.js");
+
+function _toConsumableArray(arr) {
+ return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
+}
+
+module.exports = _toConsumableArray;
+
+/***/ }),
+
+/***/ "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
+/*!***************************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
+ \***************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray */ "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
+
+function _unsupportedIterableToArray(o, minLen) {
+ if (!o) return;
+ if (typeof o === "string") return arrayLikeToArray(o, minLen);
+ var n = Object.prototype.toString.call(o).slice(8, -1);
+ if (n === "Object" && o.constructor) n = o.constructor.name;
+ if (n === "Map" || n === "Set") return Array.from(o);
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
+}
+
+module.exports = _unsupportedIterableToArray;
+
+/***/ })
+
+/******/ });
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/pages/index/index.js.map b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/pages/index/index.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..9b27cf4564e950552e087434c7888a18aa7f495b
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/js/debug/normal/rich/assets/js/default/pages/index/index.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///d:/work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml","webpack:///d:/work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.css","webpack:///d:/work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml?b5c1","webpack:///d:/work/harmonyos_codelabs-master/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.js","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js"],"names":["data","title","titleAppBar","picFrame","cropping","adjust","picFraImgSrc","conBotFirImgSrc","conBotSecImgSrc","conBotThrImgSrc","conBotFouImgSrc","brightness","brightnessImgSrc","brightnessColor","contrast","contrastImgSrc","contrastColor","saturation","saturationImgSrc","saturationColor","cropWidth","cropHeight","cropTop","cropLeft","cropBoxLeftOne","cropBoxLeftTwo","cropBoxLeftThr","cropBoxLeftFou","brightnessValue","oldBrightnessValue","contrastValue","oldContrastValue","saturationValue","oldSaturationValue","beginBright","beginContrast","beginSaturation","brightnessImgData","contrastImgData","saturationImgData","dWidth","dHeight","ratios","sx","sy","dx","dy","offset","showFlag1","showFlag2","showBrightness","showContrast","showSaturation","canvasWidth","canvasHeight","originalImageTop","originalImageWidth","originalImageHeight","cropImgMaxWidth","cropImgMaxHeight","zero","two","sliderMaxValue","onInit","console","log","$t","onShow","img","Image","src","el","$element","ctx","getContext","clearRect","drawImage","getImageData","save","cropBoxTopOne","cropBoxTopTwo","cropBoxTopThr","cropBoxTopFou","showCropPage","conBotFirImage","conBotSecImage","conBotThrImage","conBotFouImage","showAdjustPage","cropOne","cropThr","cropFour","imageData","scale","putImageData","brightnessAdj","test","restore","contrastAdj","saturationAdj","setBrightnessValue","e","mode","value","adjustValue","adjustBrightness","imgData","changeBrightness","imgdata","i","length","hsv","rgb2hsv","rgb","hsv2rgb","setContrastValue","adjustContrast","changeContrast","setSaturationValue","adjustSaturation","changeSaturation","arr","rr","gg","bb","r","g","b","h","s","v","Math","max","diff","min","diffc","c","round","_l","_m","_n","newR","newG","newB","p","floor","f","a","redo","prompt","showToast","message","undo","showDialog","show","cancelSchedule","close","setSchedule","app","terminate"],"mappings":";QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;AClFA,qBAAqB,mBAAO,CAAC,2YAA6O;AAC1Q,kBAAkB,mBAAO,CAAC,qYAA0O;AACpQ,mBAAmB,mBAAO,CAAC,+mCAAkpB;;AAE7qB;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC;AACD,2D;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;AC7MA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,sCAAsC;AACtC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,qCAAqC;AACrC,eAAe;AACf;AACA;AACA;AACA,sCAAsC,sBAAsB;AAC5D,uCAAuC,uBAAuB;AAC9D,oCAAoC,oBAAoB;AACxD,qCAAqC;AACrC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,eAAe;AACf;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oCAAoC,4BAA4B;AAChE;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oCAAoC,4BAA4B;AAChE;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oCAAoC,4BAA4B;AAChE;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,sCAAsC;AACtC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,sCAAsC;AACtC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,4BAA4B;AAC9D,iCAAiC;AACjC,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,kCAAkC,0BAA0B;AAC5D,iCAAiC;AACjC,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,kCAAkC,4BAA4B;AAC9D,iCAAiC;AACjC,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oCAAoC;AACpC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oCAAoC;AACpC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,eAAe;AACf;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,sCAAsC;AACtC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,eAAe;AACf;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,sCAAsC;AACtC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,eAAe;AACf;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,sCAAsC;AACtC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;;;;;;;;;;;ACtxBA;;AACA;;eACe;AACbA,MAAI,EAAE;AACJC,SAAK,EAAE,EADH;AAEJC,eAAW,EAAE,EAFT;AAGJC,YAAQ,EAAE,EAHN;AAIJC,YAAQ,EAAE,EAJN;AAKJC,UAAM,EAAE,EALJ;AAMJC,gBAAY,EAAE,EANV;AAOJC,mBAAe,EAAE,EAPb;AAQJC,mBAAe,EAAE,EARb;AASJC,mBAAe,EAAE,EATb;AAUJC,mBAAe,EAAE,EAVb;AAWJC,cAAU,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","file":"./pages/index/index.js","sourceRoot":""}
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/merge_profile/debug/config.json b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/merge_profile/debug/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..a13423fc90aef7ece0eeadfe47b7b53cf2dc1984
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/merge_profile/debug/config.json
@@ -0,0 +1,69 @@
+{
+ "app": {
+ "bundleName": "com.huawei.codelab",
+ "vendor": "huawei",
+ "apiVersion": {
+ "compatible": 6,
+ "target": 6,
+ "releaseType": "Release"
+ },
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ }
+ },
+ "deviceConfig": {
+ "default": {
+ "debug": true
+ }
+ },
+ "module": {
+ "name": ".MyApplication",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry",
+ "installationFree": false
+ },
+ "abilities": [
+ {
+ "name": "com.huawei.codelab.MainAbility",
+ "description": "$string:mainability_description",
+ "icon": "$media:icon",
+ "label": "$string:entry_MainAbility",
+ "type": "page",
+ "launchType": "standard",
+ "orientation": "portrait",
+ "visible": true,
+ "skills": [
+ {
+ "actions": [
+ "action.system.home"
+ ],
+ "entities": [
+ "entity.system.home"
+ ]
+ }
+ ],
+ "homeAbility": true
+ }
+ ],
+ "js": [
+ {
+ "name": "default",
+ "pages": [
+ "pages/index/index"
+ ],
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": true
+ }
+ }
+ ],
+ "mainAbility": "com.huawei.codelab.MainAbility",
+ "package": "com.huawei.codelab"
+ }
+}
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/merge_res/debug/merge_res_file.index b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/merge_res/debug/merge_res_file.index
new file mode 100644
index 0000000000000000000000000000000000000000..13af2f5be0e656441f906a320984ff147a6c33f1
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/merge_res/debug/merge_res_file.index
@@ -0,0 +1 @@
+"D:\work\harmonyos_codelabs-master\ImageEditorTemplate\entry\src\main"
diff --git a/NewsClientOpenHarmony/entry/src/main/resources/base/media/icon.png b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/original_res/debug/res/drawable/icon.png
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/resources/base/media/icon.png
rename to ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/original_res/debug/res/drawable/icon.png
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/original_res/debug/res/values/strings.xml b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/original_res/debug/res/values/strings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..99859de2a114f5ddba31f0d4401f49320182ba96
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/original_res/debug/res/values/strings.xml
@@ -0,0 +1,5 @@
+
+
+ "entry_MainAbility"
+ "JS_Empty Ability"
+
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/process_profile/debug/normal/config.json b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/process_profile/debug/normal/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..78ff167d1986225e898c7a3bb73c5db67f5aafd0
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/process_profile/debug/normal/config.json
@@ -0,0 +1,69 @@
+{
+ "app": {
+ "apiVersion": {
+ "compatible": 6,
+ "releaseType": "Release",
+ "target": 6
+ },
+ "vendor": "huawei",
+ "bundleName": "com.huawei.codelab",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ }
+ },
+ "deviceConfig": {
+ "default": {
+ "debug": true
+ }
+ },
+ "module": {
+ "deviceType": [
+ "phone"
+ ],
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "orientation": "portrait",
+ "visible": true,
+ "name": "com.huawei.codelab.MainAbility",
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:entry_MainAbility",
+ "type": "page",
+ "launchType": "standard",
+ "homeAbility": true
+ }
+ ],
+ "mainAbility": "com.huawei.codelab.MainAbility",
+ "distro": {
+ "moduleType": "entry",
+ "installationFree": false,
+ "deliveryWithInstall": true,
+ "moduleName": "entry"
+ },
+ "package": "com.huawei.codelab",
+ "name": ".MyApplication",
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": true
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/R.txt b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/R.txt
new file mode 100644
index 0000000000000000000000000000000000000000..373f3c3f65c9f17065ddc0348a0ae2d570609b8b
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/R.txt
@@ -0,0 +1,3 @@
+media icon 0x1000002
+string entry_MainAbility 0x1000000
+string mainability_description 0x1000001
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/config.json b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..3d8474b04f1242c4a2be7c821f4e9465e1aaefe0
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/config.json
@@ -0,0 +1,72 @@
+{
+ "app": {
+ "apiVersion": {
+ "compatible": 6,
+ "releaseType": "Release",
+ "target": 6
+ },
+ "vendor": "huawei",
+ "bundleName": "com.huawei.codelab",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ }
+ },
+ "deviceConfig": {
+ "default": {
+ "debug": true
+ }
+ },
+ "module": {
+ "abilities": [
+ {
+ "iconId": 16777218,
+ "orientation": "portrait",
+ "visible": true,
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:entry_MainAbility",
+ "type": "page",
+ "homeAbility": true,
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "descriptionId": 16777217,
+ "labelId": 16777216,
+ "name": "com.huawei.codelab.MainAbility",
+ "launchType": "standard"
+ }
+ ],
+ "deviceType": [
+ "phone"
+ ],
+ "mainAbility": "com.huawei.codelab.MainAbility",
+ "distro": {
+ "moduleType": "entry",
+ "installationFree": false,
+ "deliveryWithInstall": true,
+ "moduleName": "entry"
+ },
+ "package": "com.huawei.codelab",
+ "name": ".MyApplication",
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": true
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources.index b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources.index
new file mode 100644
index 0000000000000000000000000000000000000000..45c54ae47213c2f9ba44058533649876a6c65209
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources.index differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources/base/media/attributes.key b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources/base/media/attributes.key
new file mode 100644
index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources/base/media/attributes.key differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources/base/media/constants.key b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources/base/media/constants.key
new file mode 100644
index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources/base/media/constants.key differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources/base/media/contents.key b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources/base/media/contents.key
new file mode 100644
index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources/base/media/contents.key differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources/base/media/icon.png b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..8966a1e3de00956d251d5c1497aa251ea7b5c49f
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources/base/media/icon.png differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources/base/media/nodes.key b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources/base/media/nodes.key
new file mode 100644
index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/res/debug/normal/rich/resources/base/media/nodes.key differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classFiles b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classFiles
new file mode 100644
index 0000000000000000000000000000000000000000..2ce7b615281e3531edb8b1239c865ab5e3c802d4
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classFiles
@@ -0,0 +1,5 @@
+D:\work\harmonyos_codelabs-master\ImageEditorTemplate\entry\build\intermediates\shell\debug\build\javac\classes\com\huawei\codelab\MainAbilityShellActivity.class
+D:\work\harmonyos_codelabs-master\ImageEditorTemplate\entry\build\intermediates\shell\debug\build\javac\classes\com\huawei\codelab\R$drawable.class
+D:\work\harmonyos_codelabs-master\ImageEditorTemplate\entry\build\intermediates\shell\debug\build\javac\classes\com\huawei\codelab\R$string.class
+D:\work\harmonyos_codelabs-master\ImageEditorTemplate\entry\build\intermediates\shell\debug\build\javac\classes\com\huawei\codelab\R.class
+D:\work\harmonyos_codelabs-master\ImageEditorTemplate\entry\build\intermediates\shell\debug\build\javac\classes\com\huawei\codelab\ShellMyApplication.class
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classes/com/huawei/codelab/MainAbilityShellActivity.class b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classes/com/huawei/codelab/MainAbilityShellActivity.class
new file mode 100644
index 0000000000000000000000000000000000000000..ca3d13dc56f3e8e0fd0103abf62c5cab56436e97
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classes/com/huawei/codelab/MainAbilityShellActivity.class differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classes/com/huawei/codelab/R$drawable.class b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classes/com/huawei/codelab/R$drawable.class
new file mode 100644
index 0000000000000000000000000000000000000000..0092e63e592f1ed474283627e64ddb1fcb5149c1
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classes/com/huawei/codelab/R$drawable.class differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classes/com/huawei/codelab/R$string.class b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classes/com/huawei/codelab/R$string.class
new file mode 100644
index 0000000000000000000000000000000000000000..7d5c721ce1f473f692555cea97cc633fdc9f3b87
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classes/com/huawei/codelab/R$string.class differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classes/com/huawei/codelab/R.class b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classes/com/huawei/codelab/R.class
new file mode 100644
index 0000000000000000000000000000000000000000..4e9256c61660f8c539140ef49af9b555e0668c51
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classes/com/huawei/codelab/R.class differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classes/com/huawei/codelab/ShellMyApplication.class b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classes/com/huawei/codelab/ShellMyApplication.class
new file mode 100644
index 0000000000000000000000000000000000000000..0a61dab0c726b5eae52f2ae4d18c1ab6c52886f4
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/javac/classes/com/huawei/codelab/ShellMyApplication.class differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/mergedManifest/normal/AndroidManifest.xml b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/mergedManifest/normal/AndroidManifest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4cc5648fd82edcd7d5981dcecdd6d275ceca32b9
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/mergedManifest/normal/AndroidManifest.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/cut_entry.zip b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/cut_entry.zip
new file mode 100644
index 0000000000000000000000000000000000000000..958e3b1dad6bf763b452f725a8ebc122ba571567
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/cut_entry.zip differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/cut_entry/AndroidManifest.xml b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/cut_entry/AndroidManifest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e2b6ac4890598cfc903a25120666878f87c2a189
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/cut_entry/AndroidManifest.xml differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/cut_entry/res/drawable/icon.png b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/cut_entry/res/drawable/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..d912df1fc7eb485da25b48d0c8d7e59652484b90
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/cut_entry/res/drawable/icon.png differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/cut_entry/resources.arsc b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/cut_entry/resources.arsc
new file mode 100644
index 0000000000000000000000000000000000000000..8cfabd2701a9ba1ac0762f0cb2213d879fc22a24
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/cut_entry/resources.arsc differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/entry.zip b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/entry.zip
new file mode 100644
index 0000000000000000000000000000000000000000..2bbc65a2b8e127cc828c116880cac6814fb65d1c
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/entry.zip differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/entry/AndroidManifest.xml b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/entry/AndroidManifest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3a0eb5239c13982ea794bdc661cee1aa626734c5
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/entry/AndroidManifest.xml differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/entry/res/drawable/icon.png b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/entry/res/drawable/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..d912df1fc7eb485da25b48d0c8d7e59652484b90
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/entry/res/drawable/icon.png differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/entry/resources.arsc b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/entry/resources.arsc
new file mode 100644
index 0000000000000000000000000000000000000000..8cfabd2701a9ba1ac0762f0cb2213d879fc22a24
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/entry/resources.arsc differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/r/com/huawei/codelab/R.java b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/r/com/huawei/codelab/R.java
new file mode 100644
index 0000000000000000000000000000000000000000..913e066e46a667ba1550fba9846d1d55ae4c4bb8
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/r/com/huawei/codelab/R.java
@@ -0,0 +1,18 @@
+/* AUTO-GENERATED FILE. DO NOT MODIFY.
+ *
+ * This class was automatically generated by the
+ * aapt tool from the resource data it found. It
+ * should not be modified by hand.
+ */
+
+package com.huawei.codelab;
+
+public final class R {
+ public static final class drawable {
+ public static final int icon=0x7f010000;
+ }
+ public static final class string {
+ public static final int entry_MainAbility=0x7f020000;
+ public static final int mainability_description=0x7f020001;
+ }
+}
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/res.zip b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/res.zip
new file mode 100644
index 0000000000000000000000000000000000000000..26fb6c9dfab69df5885e42aed55de1f18f9cb849
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/res/normal/res.zip differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/simplifyManifest/normal/AndroidManifest.xml b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/simplifyManifest/normal/AndroidManifest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2fec72cae25f5e3c0445c231d392d35718ccfa83
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/simplifyManifest/normal/AndroidManifest.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/transformClasses/dalvik/classes.dex b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/transformClasses/dalvik/classes.dex
new file mode 100644
index 0000000000000000000000000000000000000000..dba9993195bd8e4b393dc76012b0d15048372694
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/build/transformClasses/dalvik/classes.dex differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/src/main/AndroidManifest.xml b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5ba7f9a81c8e613c9140afa938866d6ef748f852
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/src/main/AndroidManifest.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/src/main/java/com/huawei/codelab/MainAbilityShellActivity.java b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/src/main/java/com/huawei/codelab/MainAbilityShellActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..e4ae822db3322e553dc74b281884b9c1debcfe2b
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/src/main/java/com/huawei/codelab/MainAbilityShellActivity.java
@@ -0,0 +1,11 @@
+package com.huawei.codelab;
+
+import android.os.Bundle;
+import ohos.abilityshell.AbilityShellActivity;
+
+public class MainAbilityShellActivity extends AbilityShellActivity {
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ }
+}
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/src/main/java/com/huawei/codelab/ShellMyApplication.java b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/src/main/java/com/huawei/codelab/ShellMyApplication.java
new file mode 100644
index 0000000000000000000000000000000000000000..827810f268fa0eb133ff0ff3038d07c016af4f72
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/src/main/java/com/huawei/codelab/ShellMyApplication.java
@@ -0,0 +1,10 @@
+package com.huawei.codelab;
+
+import ohos.ace.ability.AceApplication;
+
+public class ShellMyApplication extends AceApplication {
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ }
+}
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/src/main/res/drawable/icon.png b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/src/main/res/drawable/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/src/main/res/drawable/icon.png differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/src/main/res/values/strings.xml b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/src/main/res/values/strings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7435042bfa080c8b0441d4f7186068efe00e8b6a
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell/debug/src/main/res/values/strings.xml
@@ -0,0 +1,6 @@
+
+
+
+ "entry_MainAbility"
+ "JS_Empty Ability"
+
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell_output/debug/cut/entry_debug_unsigned_cut_entry.apk b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell_output/debug/cut/entry_debug_unsigned_cut_entry.apk
new file mode 100644
index 0000000000000000000000000000000000000000..749978e5ba29b010b38e434c839ccd73cc786996
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell_output/debug/cut/entry_debug_unsigned_cut_entry.apk differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell_output/debug/entry/entry_debug_signed_entry.apk b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell_output/debug/entry/entry_debug_signed_entry.apk
new file mode 100644
index 0000000000000000000000000000000000000000..66e1d7180b43eeb6732bead994f46ce1d8a6ee7a
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell_output/debug/entry/entry_debug_signed_entry.apk differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell_output/debug/entry/entry_debug_unsigned_entry.apk b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell_output/debug/entry/entry_debug_unsigned_entry.apk
new file mode 100644
index 0000000000000000000000000000000000000000..0aac30f7ea8bb3426f960af8bc1da748140a4cc6
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/shell_output/debug/entry/entry_debug_unsigned_entry.apk differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/transformClasses/debug/dalvik/classes.dex b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/transformClasses/debug/dalvik/classes.dex
new file mode 100644
index 0000000000000000000000000000000000000000..74f19c944a3ab1aaf08dbc58b5c8185acfd3503b
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/intermediates/transformClasses/debug/dalvik/classes.dex differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/outputs/hap/debug/entry-debug-rich-unsigned.hap b/ImageEditorTemplate/ImageEditorTemplate/entry/build/outputs/hap/debug/entry-debug-rich-unsigned.hap
new file mode 100644
index 0000000000000000000000000000000000000000..c4c704b263755c1f3ae9a5986d987853bd96793a
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/build/outputs/hap/debug/entry-debug-rich-unsigned.hap differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/outputs/hap/debug/hapInfo.json b/ImageEditorTemplate/ImageEditorTemplate/entry/build/outputs/hap/debug/hapInfo.json
new file mode 100644
index 0000000000000000000000000000000000000000..ee950bf7d0845e23b89a8617fdb8c8e1f52c8ef2
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/outputs/hap/debug/hapInfo.json
@@ -0,0 +1,6 @@
+[
+ {
+ "hapPath": "entry-debug-rich-unsigned.hap",
+ "device": "phone"
+ }
+]
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/outputs/hap/debug/pack.info b/ImageEditorTemplate/ImageEditorTemplate/entry/build/outputs/hap/debug/pack.info
new file mode 100644
index 0000000000000000000000000000000000000000..d88af48f613fbc5b08781c7f5b3debfde1e204e8
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/outputs/hap/debug/pack.info
@@ -0,0 +1,47 @@
+{
+ "summary": {
+ "app": {
+ "bundleName": "com.huawei.codelab",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ }
+ },
+ "modules": [
+ {
+ "mainAbility": "com.huawei.codelab.MainAbility",
+ "deviceType": [
+ "phone"
+ ],
+ "abilities": [
+ {
+ "visible": true,
+ "name": "com.huawei.codelab.MainAbility",
+ "label": "$string:entry_MainAbility"
+ }
+ ],
+ "distro": {
+ "moduleType": "entry",
+ "installationFree": false,
+ "deliveryWithInstall": true,
+ "moduleName": "entry"
+ },
+ "apiVersion": {
+ "compatible": 6,
+ "releaseType": "Release",
+ "target": 6
+ }
+ }
+ ]
+ },
+ "packages": [
+ {
+ "deviceType": [
+ "phone"
+ ],
+ "moduleType": "entry",
+ "deliveryWithInstall": true,
+ "name": "entry-debug-rich-unsigned"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/build/tmp/packageDebugRClass/MANIFEST.MF b/ImageEditorTemplate/ImageEditorTemplate/entry/build/tmp/packageDebugRClass/MANIFEST.MF
new file mode 100644
index 0000000000000000000000000000000000000000..59499bce4a2bd51cba227b7c00fcf745b19c95a4
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/build/tmp/packageDebugRClass/MANIFEST.MF
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+
diff --git a/ImageEditorTemplate/entry/src/main/config.json b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/config.json
similarity index 83%
rename from ImageEditorTemplate/entry/src/main/config.json
rename to ImageEditorTemplate/ImageEditorTemplate/entry/src/main/config.json
index 9c46e1057e777ec7799c4bddf145c2567fbc4b71..2357ede9dc8018f0580867de5772232969524933 100644
--- a/ImageEditorTemplate/entry/src/main/config.json
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/config.json
@@ -1,6 +1,6 @@
{
"app": {
- "bundleName": "com.huawei.cookbook",
+ "bundleName": "com.huawei.codelab",
"vendor": "huawei",
"version": {
"code": 1000000,
@@ -9,9 +9,9 @@
},
"deviceConfig": {},
"module": {
- "package": "com.huawei.imageeditortemplate",
+ "package": "com.huawei.codelab",
"name": ".MyApplication",
- "mainAbility": "com.huawei.imageeditortemplate.MainAbility",
+ "mainAbility": "com.huawei.codelab.MainAbility",
"deviceType": [
"phone"
],
@@ -34,7 +34,7 @@
}
],
"visible": true,
- "name": "com.huawei.imageeditortemplate.MainAbility",
+ "name": "com.huawei.codelab.MainAbility",
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "$string:entry_MainAbility",
diff --git a/ImageEditorTemplate/entry/src/main/java/com/huawei/imageeditortemplate/MainAbility.java b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/java/com/huawei/codelab/MainAbility.java
similarity index 95%
rename from ImageEditorTemplate/entry/src/main/java/com/huawei/imageeditortemplate/MainAbility.java
rename to ImageEditorTemplate/ImageEditorTemplate/entry/src/main/java/com/huawei/codelab/MainAbility.java
index b6f542a1bbcd75366d0f4bac2ceb5eba1bb04c56..6d80b94ea26360078bda57319e4542a85449fc20 100644
--- a/ImageEditorTemplate/entry/src/main/java/com/huawei/imageeditortemplate/MainAbility.java
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/java/com/huawei/codelab/MainAbility.java
@@ -13,7 +13,7 @@
* limitations under the License.
*/
-package com.huawei.imageeditortemplate;
+package com.huawei.codelab;
import ohos.aafwk.content.Intent;
import ohos.ace.ability.AceAbility;
diff --git a/ImageEditorTemplate/entry/src/main/java/com/huawei/imageeditortemplate/MyApplication.java b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/java/com/huawei/codelab/MyApplication.java
similarity index 95%
rename from ImageEditorTemplate/entry/src/main/java/com/huawei/imageeditortemplate/MyApplication.java
rename to ImageEditorTemplate/ImageEditorTemplate/entry/src/main/java/com/huawei/codelab/MyApplication.java
index 7c8d96ea82e3beba76a892adc982e123520f7fff..203eb3989dab25628a44fa9b70ea2dc739ba4418 100644
--- a/ImageEditorTemplate/entry/src/main/java/com/huawei/imageeditortemplate/MyApplication.java
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/java/com/huawei/codelab/MyApplication.java
@@ -13,7 +13,7 @@
* limitations under the License.
*/
-package com.huawei.imageeditortemplate;
+package com.huawei.codelab;
import ohos.aafwk.ability.AbilityPackage;
diff --git a/ImageEditorTemplate/entry/src/main/js/default/app.js b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/app.js
similarity index 100%
rename from ImageEditorTemplate/entry/src/main/js/default/app.js
rename to ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/app.js
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/Wallpaper.png b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/Wallpaper.png
new file mode 100644
index 0000000000000000000000000000000000000000..60d4841a80eb20c63de74306cb7f8350d6a85c48
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/Wallpaper.png differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/adjust_blue.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/adjust_blue.svg
new file mode 100644
index 0000000000000000000000000000000000000000..e08ca4c697f021deeee824a4f1a13312c6d70710
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/adjust_blue.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/adjust_white.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/adjust_white.svg
new file mode 100644
index 0000000000000000000000000000000000000000..6b8e74d597d9f7513d6798e73fc6367e31f0422a
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/adjust_white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/back.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/back.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2b534039d1a59673311412b22b50d7209caec72b
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/back.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/bg-tv.jpg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/bg-tv.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e2c07b9700afb5683696f5793e865efd7744e0e0
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/bg-tv.jpg differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/brightness_blue.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/brightness_blue.svg
new file mode 100644
index 0000000000000000000000000000000000000000..40c3e8233b6ec8cb80ce043610280310a5d39f14
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/brightness_blue.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/brightness_white.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/brightness_white.svg
new file mode 100644
index 0000000000000000000000000000000000000000..21c8cfb6185e63e9e239313db25ff519efbd5d8e
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/brightness_white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/contrast_blue.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/contrast_blue.svg
new file mode 100644
index 0000000000000000000000000000000000000000..36df00071d8d4e0263b63ff7931336dcc54c6a9a
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/contrast_blue.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/contrast_white.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/contrast_white.svg
new file mode 100644
index 0000000000000000000000000000000000000000..4066a25830364872b3ddbc84dfa0459f8ad78948
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/contrast_white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/crop_blue.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/crop_blue.svg
new file mode 100644
index 0000000000000000000000000000000000000000..22cf1f9c0d7d152b8694657ace1f6a9d53f6b028
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/crop_blue.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/crop_white.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/crop_white.svg
new file mode 100644
index 0000000000000000000000000000000000000000..114666fa147f764d8b802e4b492eda4b7c2b0db7
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/crop_white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/image.jpg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/image.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..907966897d75758937f7caa92265fcbc9e3cb840
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/image.jpg differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/image_frame_white.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/image_frame_white.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d0cc5e68db8de02c07f864481b7eab411a9b90cc
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/image_frame_white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/image_frame_white_blue.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/image_frame_white_blue.svg
new file mode 100644
index 0000000000000000000000000000000000000000..45a92f0728817ee0fd91f7c4146287d501e17005
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/image_frame_white_blue.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_1-1_blue.png b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_1-1_blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..2d7a7423d56492390f3da47b83d83a6d944e74ff
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_1-1_blue.png differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_1-1_white.png b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_1-1_white.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe9031fabc0733c5071660111118dbfe159d9b00
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_1-1_white.png differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_16-9_blue.png b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_16-9_blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..80724a54dccc746840f0f0b60180ec992a3e9ca1
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_16-9_blue.png differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_16-9_white.png b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_16-9_white.png
new file mode 100644
index 0000000000000000000000000000000000000000..88f1417440f2b3b2c2f76aca930cd960f2db43de
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_16-9_white.png differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_9-16_blue.png b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_9-16_blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff52b1c1bda2658f3fdfee815175f73d959725eb
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_9-16_blue.png differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_9-16_white.png b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_9-16_white.png
new file mode 100644
index 0000000000000000000000000000000000000000..67d5dc5b0579389aa5d8adfd90d41a0ff6814345
Binary files /dev/null and b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/ratios_9-16_white.png differ
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/redo.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/redo.svg
new file mode 100644
index 0000000000000000000000000000000000000000..84a9de921f60a173d6354e0b960f8acc54776f9d
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/redo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/saturation_blue.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/saturation_blue.svg
new file mode 100644
index 0000000000000000000000000000000000000000..dc17c10358c9f21c4228208f526140ab2b818db4
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/saturation_blue.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/saturation_white.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/saturation_white.svg
new file mode 100644
index 0000000000000000000000000000000000000000..29f54844609d5508bf58c5dc0df78036929eaa3a
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/saturation_white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/save.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/save.svg
new file mode 100644
index 0000000000000000000000000000000000000000..038ca9affad386588d3afc3c6c196b957ed4d311
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/save.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/undo.svg b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/undo.svg
new file mode 100644
index 0000000000000000000000000000000000000000..f20f71bca6db131419c86baf26e5dc4e18baf061
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/common/images/undo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/i18n/en-US.json b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..b67eda5447a47ef790bdca9d5f106a663c108c22
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/i18n/en-US.json
@@ -0,0 +1,20 @@
+{
+ "strings": {
+ "title": "Changes haven't been applied yet.",
+ "titleAppBar": "Edit",
+ "picFrame": "Frame",
+ "cropping": "Crop",
+ "adjust": "Adjust",
+ "brightness": "Brightness",
+ "contrast": "Contrast",
+ "saturation": "Saturation",
+ "picFraImgSrc": "common/images/image_frame_white_blue.svg",
+ "conBotFirImgSrc": "common/images/image_frame_white.svg",
+ "conBotSecImgSrc": "common/images/ratios_1-1_white.png",
+ "conBotThrImgSrc": "common/images/ratios_16-9_white.png",
+ "conBotFouImgSrc": "common/images/ratios_9-16_white.png",
+ "brightnessImgSrc": "common/images/brightness_white.svg",
+ "contrastImgSrc": "common/images/contrast_white.svg",
+ "saturationImgSrc": "common/images/saturation_white.svg"
+ }
+}
\ No newline at end of file
diff --git a/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/i18n/zh-CN.json b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..23df116b9f945e593afcc73b6e93be048611f221
--- /dev/null
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,20 @@
+{
+ "strings": {
+ "title": "是否放弃当前修改?",
+ "titleAppBar": "编辑",
+ "picFrame": "画幅",
+ "cropping": "裁剪",
+ "adjust": "调节",
+ "brightness": "亮度",
+ "contrast": "对比度",
+ "saturation": "饱和度",
+ "picFraImgSrc": "common/images/image_frame_white_blue.svg",
+ "conBotFirImgSrc": "common/images/image_frame_white.svg",
+ "conBotSecImgSrc": "common/images/ratios_1-1_white.png",
+ "conBotThrImgSrc": "common/images/ratios_16-9_white.png",
+ "conBotFouImgSrc": "common/images/ratios_9-16_white.png",
+ "brightnessImgSrc": "common/images/brightness_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/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.css
similarity index 73%
rename from ImageEditorTemplate/entry/src/main/js/default/pages/index/index.css
rename to ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.css
index 54d4f14b6811cc68a3f2b4a8a25547e2ad6229a2..e3265c72411c5629c8b44e1803e7884522e188c8 100644
--- a/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.css
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.css
@@ -1,20 +1,32 @@
+/*
+ * 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;
+ width: 86px;
}
.container-image-left {
height: 24px;
@@ -26,12 +38,12 @@
color: #ffffff;
}
.container-appBar-right {
- margin-left: 240px;
+ margin-left: 90px;
}
.container-image-right {
height: 24px;
width: 24px;
- margin-left: 10px;
+ margin-left: 20px;
}
/* 弹窗退出应用 */
.dialog-main {
@@ -64,14 +76,11 @@
}
/* 裁剪部分 */
#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 {
@@ -84,7 +93,6 @@
}
/* 裁剪框 */
#crop_image_content #mainBox {
- width: 100%;
border: 3px solid white;
position: absolute;
top: 0;
@@ -138,77 +146,69 @@
}
/* 裁剪比例 */
.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;
+ margin-left: 50px;
+ margin-top: 240px;
}
.container-bottom-image {
height: 30px;
width: 30px;
- margin-left: 100px;
+ margin-left: 49px;
}
.container-bottom-two-first {
flex-direction: column;
position: relative;
- margin-left: 230px;
- margin-top: 50px;
+ margin-left: 168px;
+ margin-top: 38px;
}
.container-bottom-three-first {
flex-direction: row;
- margin-top: 70px;
- margin-left: 120px;
+ margin-top: 22px;
+ margin-left: 80px;
}
.container-bottom-four-first {
flex-direction: row;
position: relative;
- margin-left: 120px;
- margin-bottom: 20px;
+ margin-top: 0px;
+ margin-left: 80px;
}
/* 调节比例 */
.container-bottom-second {
flex-direction: column;
position: absolute;
- margin-top: 210px;
+ margin-top: 450px;
}
.container-bottom-two-second {
flex-direction: row;
+ margin-top: 30px;
}
.container-bottom-three-second {
flex-direction: row;
}
-.luminanceTxt {
+.brightnessTxt {
font-size: 14px;
- margin-left: 98px;
+ margin-left: 60px;
}
.contrastTxt {
font-size: 14px;
- margin-left: 80px;
+ margin-left: 76px;
}
.saturationTxt {
font-size: 14px;
- margin-left: 75px;
+ margin-left: 68px;
}
.container-bottom-four-second {
- width: 100%;
- margin-top: 60px;
+ margin-top: 20px;
flex-direction: row;
- margin-left: 120px;
+ margin-left: 80px;
}
.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;
+ margin-left: 80px;
+ color: #2788B9;
}
diff --git a/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml
similarity index 53%
rename from ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml
rename to ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml
index 4c7f4d92834417c78d11b1a2763aa7260056f9a2..5c7c9793c7f326b9d2a9db8b305a9155fdf96413 100644
--- a/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml
+++ b/ImageEditorTemplate/ImageEditorTemplate/entry/src/main/js/default/pages/index/index.hml
@@ -1,3 +1,18 @@
+
+
diff --git a/ImageEditorTemplate/entry/src/ohosTest/js/default/pages/index/index.js b/ImageEditorTemplate/entry/src/ohosTest/js/default/pages/index/index.js
deleted file mode 100644
index 8be2df2479a8da755ed800ad70d2b6247e21b8a2..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/ohosTest/js/default/pages/index/index.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import file from '@system.file'
-import app from '@system.app'
-import device from '@system.device'
-import router from '@system.router'
-import {Core, Constant, ExpectExtend, ReportExtend, InstrumentLog} from 'deccjsunit/index'
-
-export default {
- data: {
- title: ""
- },
- onInit() {
- this.title = this.$t('strings.world');
- },
- onShow() {
- console.info('onShow finish')
- const core = Core.getInstance()
- const expectExtend = new ExpectExtend({
- 'id': 'extend'
- })
- const reportExtend = new ReportExtend(file)
- const instrumentLog = new InstrumentLog({
- 'id': 'report',
- 'version': '1.0.3'
- })
- core.addService('expect', expectExtend)
- core.addService('report', reportExtend)
- core.addService('report', instrumentLog)
- core.init()
- core.subscribeEvent('spec', instrumentLog)
- core.subscribeEvent('suite', instrumentLog)
- core.subscribeEvent('task', instrumentLog)
-
- const configService = core.getDefaultService('config')
- configService.setConfig(this)
-
- require('../../../test/List.test')
- core.execute()
- },
- onReady() {
- },
-}
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/ohosTest/js/test/ExampleJsunit.test.js b/ImageEditorTemplate/entry/src/ohosTest/js/test/ExampleJsunit.test.js
deleted file mode 100644
index b6d74caed96ddede98edd1bc9292f6568cd1cfd1..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/ohosTest/js/test/ExampleJsunit.test.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import app from '@system.app'
-import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
-
-describe('appInfoTest', function () {
- it('app_info_test_001', 0, function () {
- var info = app.getInfo()
- expect(info.versionName).assertEqual('1.0')
- expect(info.versionCode).assertEqual('3')
- })
-})
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/ohosTest/js/test/List.test.js b/ImageEditorTemplate/entry/src/ohosTest/js/test/List.test.js
deleted file mode 100644
index 305eb5bb254cd4802afaffebe68fca2f9436159f..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/ohosTest/js/test/List.test.js
+++ /dev/null
@@ -1 +0,0 @@
-require('./ExampleJsunit.test.js')
\ No newline at end of file
diff --git a/ImageEditorTemplate/entry/src/ohosTest/resources/base/element/string.json b/ImageEditorTemplate/entry/src/ohosTest/resources/base/element/string.json
deleted file mode 100644
index 7d85af44df9cbbc5d8c7953f66743b14b99624b3..0000000000000000000000000000000000000000
--- a/ImageEditorTemplate/entry/src/ohosTest/resources/base/element/string.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "string": [
- {
- "name": "app_name",
- "value": "ImageEditorTemplate"
- },
- {
- "name": "mainability_description",
- "value": "hap sample empty page"
- }
- ]
-}
diff --git a/ImageJsDemo/LICENSE b/ImageJsDemo/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..80576ef141485b36eea4aebf25af97020bc2de44
--- /dev/null
+++ b/ImageJsDemo/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/ImageJsDemo/build.gradle b/ImageJsDemo/build.gradle
index 9cf74c205fc884ae2c6796ce2298ecbe3f40672d..c2c8bbaed13747b913f19cef893f515bc32d02a7 100644
--- a/ImageJsDemo/build.gradle
+++ b/ImageJsDemo/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:2.4.5.5'
- classpath 'com.huawei.ohos:decctest:1.2.5.1'
+ classpath 'com.huawei.ohos:hap:3.0.3.4'
+ classpath 'com.huawei.ohos:decctest:1.2.6.0'
}
}
diff --git a/ImageJsDemo/entry/src/main/config.json b/ImageJsDemo/entry/src/main/config.json
index de7878a02f417d2ede74d3cbffd4c1a636cef05d..7484b324857cc2bd86848433ad6d28fa45070892 100644
--- a/ImageJsDemo/entry/src/main/config.json
+++ b/ImageJsDemo/entry/src/main/config.json
@@ -36,6 +36,8 @@
"orientation": "unspecified",
"name": "com.huawei.imagejsdemo.MainAbility",
"icon": "$media:icon",
+ "srcPath": "default",
+ "srcLanguage": "js",
"description": "$string:mainability_description",
"formsEnabled": false,
"label": "$string:entry_MainAbility",
diff --git a/InputApplication/LICENSE b/InputApplication/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..80576ef141485b36eea4aebf25af97020bc2de44
--- /dev/null
+++ b/InputApplication/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/InputApplication/build.gradle b/InputApplication/build.gradle
index 9cf74c205fc884ae2c6796ce2298ecbe3f40672d..c2c8bbaed13747b913f19cef893f515bc32d02a7 100644
--- a/InputApplication/build.gradle
+++ b/InputApplication/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:2.4.5.5'
- classpath 'com.huawei.ohos:decctest:1.2.5.1'
+ classpath 'com.huawei.ohos:hap:3.0.3.4'
+ classpath 'com.huawei.ohos:decctest:1.2.6.0'
}
}
diff --git a/InputApplication/entry/build.gradle b/InputApplication/entry/build.gradle
index cccb71cae91018743841ab76aeb19c595f4ed847..68ec4e15705e1c4fd6ca07fe7ad0444a86546c7a 100644
--- a/InputApplication/entry/build.gradle
+++ b/InputApplication/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 {
@@ -14,7 +14,7 @@ ohos {
}
}
- supportSystem "standard"
+
}
dependencies {
diff --git a/JSCanvasComponet/LICENSE b/JSCanvasComponet/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..7c357dc828cf7d8c783f10ed6bb1bac8a1e903c1
--- /dev/null
+++ b/JSCanvasComponet/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/JSCanvasComponet/README.md b/JSCanvasComponet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..6af739c52609dc0da161a7f5d0915693141fb768
--- /dev/null
+++ b/JSCanvasComponet/README.md
@@ -0,0 +1,3 @@
+# JSCanvasCompont
+
+本篇Codelab将使用JS语言进行开发,做一个自定义组件绘制转盘的动画。
\ No newline at end of file
diff --git a/JSCanvasComponet/build.gradle b/JSCanvasComponet/build.gradle
index 770633bb805e37da7ad46e918a6cca758a2b8a84..34c817dd5b1c637230b7f468063913f5509976ad 100644
--- a/JSCanvasComponet/build.gradle
+++ b/JSCanvasComponet/build.gradle
@@ -5,29 +5,29 @@ apply plugin: 'com.huawei.ohos.app'
ohos {
compileSdkVersion 6
}
-
+
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.3'
- classpath 'com.huawei.ohos:decctest:3.0.1.0'
+ classpath 'com.huawei.ohos:hap:2.4.5.5'
+ classpath 'com.huawei.ohos:decctest:1.2.5.1'
}
}
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/JSCanvasComponet/entry/src/main/config.json b/JSCanvasComponet/entry/src/main/config.json
index a56132f4f3791a9e6f6b4577361d86a6f155ae2b..957fe28147eacc5bb508108efb48475bb5aad3dc 100644
--- a/JSCanvasComponet/entry/src/main/config.json
+++ b/JSCanvasComponet/entry/src/main/config.json
@@ -37,6 +37,8 @@
"visible": true,
"name": "com.huawei.myapplication.MainAbility",
"icon": "$media:icon",
+ "srcPath": "default",
+ "srcLanguage": "js",
"description": "$string:mainability_description",
"formsEnabled": false,
"label": "$string:entry_MainAbility",
diff --git a/JSCanvasComponet/entry/src/main/js/default/pages/index/index.js b/JSCanvasComponet/entry/src/main/js/default/pages/index/index.js
index 46382baf0709d67c4ea28b106069763b895b42fd..16d5dae2bbc0082814e733bdf31453cda83a166d 100644
--- a/JSCanvasComponet/entry/src/main/js/default/pages/index/index.js
+++ b/JSCanvasComponet/entry/src/main/js/default/pages/index/index.js
@@ -41,8 +41,6 @@ export default {
return;
}
this.ctx = this.$element(this.id).getContext('2d');
- // this.ctx.fillStyle = 'rgb(255,255,255)';
- // this.ctx.fillRect(0,0,1000,1500);
this.avgAngle = this.circle / this.count;
this.draw();
},
@@ -163,7 +161,8 @@ export default {
this.ctx.font = this.padding + 'px sans-serif';
const textArrays = ['恭喜发财', '华为耳机', '华为手机', '恭喜发财', '华为平板', '华为手表'];
for (let i = 0; i < this.count; i++) {
- this.drawCircularText(textArrays[i], (this.startAngle + this.avgAngle * 3 / 4) * Math.PI / 180, (this.startAngle + this.avgAngle / 4) * Math.PI / 180);
+ this.drawCircularText(textArrays[i], (this.startAngle + this.avgAngle * 3 / 4) * Math.PI / 180,
+ (this.startAngle + this.avgAngle / 4) * Math.PI / 180);
this.startAngle += this.avgAngle;
}
},
diff --git a/JSCanvasComponet/package.json b/JSCanvasComponet/package.json
deleted file mode 100644
index 0967ef424bce6791893e9a57bb952f80fd536e93..0000000000000000000000000000000000000000
--- a/JSCanvasComponet/package.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/JSRelationshipData/LICENSE b/JSRelationshipData/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..7c357dc828cf7d8c783f10ed6bb1bac8a1e903c1
--- /dev/null
+++ b/JSRelationshipData/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/JSRelationshipData/README.md b/JSRelationshipData/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..ba71f3696bd134e955b8e681bdfbe3537945aa1e
--- /dev/null
+++ b/JSRelationshipData/README.md
@@ -0,0 +1,6 @@
+JSRelationshipData
+本篇Codelab是在HarmonyOS 关系型数据库(JAVA)的设计基础上,用JS编程语言重写了一个布局一模一样的关系型数据库,并对OpenHarmony开发板进行了适配。
+
+Java版本的分布式数据库教会了大家使用关系型数据库,实现增删改查基本功能。
+
+本篇Codelab将使用JS语言进行开发,做一个功能、布局和Java版本完全一样的关系型数据库,大家可以通过这两篇Codelab学习两种编程语言的编码风格和实现区别。
\ No newline at end of file
diff --git a/NewsClientOpenHarmony/build.gradle b/JSRelationshipData/build.gradle
similarity index 57%
rename from NewsClientOpenHarmony/build.gradle
rename to JSRelationshipData/build.gradle
index 6d094a769b4734bd4c9bd3fdf84a0d7bcd0054b5..c2c8bbaed13747b913f19cef893f515bc32d02a7 100644
--- a/NewsClientOpenHarmony/build.gradle
+++ b/JSRelationshipData/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/NewsClientOpenHarmony/entry/build.gradle b/JSRelationshipData/entry/build.gradle
similarity index 86%
rename from NewsClientOpenHarmony/entry/build.gradle
rename to JSRelationshipData/entry/build.gradle
index 6c2dca308825d3d38937c45c03918e1628bbfb75..68ec4e15705e1c4fd6ca07fe7ad0444a86546c7a 100644
--- a/NewsClientOpenHarmony/entry/build.gradle
+++ b/JSRelationshipData/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,8 +13,8 @@ ohos {
}
}
}
-
- supportSystem "standard"
+
+
}
dependencies {
diff --git a/ImageEditorTemplate/entry/package.json b/JSRelationshipData/entry/package.json
similarity index 100%
rename from ImageEditorTemplate/entry/package.json
rename to JSRelationshipData/entry/package.json
diff --git a/ImageEditorTemplate/entry/proguard-rules.pro b/JSRelationshipData/entry/proguard-rules.pro
similarity index 100%
rename from ImageEditorTemplate/entry/proguard-rules.pro
rename to JSRelationshipData/entry/proguard-rules.pro
diff --git a/NewsClientOpenHarmony/entry/src/main/config.json b/JSRelationshipData/entry/src/main/config.json
similarity index 71%
rename from NewsClientOpenHarmony/entry/src/main/config.json
rename to JSRelationshipData/entry/src/main/config.json
index 203c03346e40ab369a0e8ea50c1aeda450e4ec24..5cc865c30bb685815bca05676c9f4bfdc91bb4e8 100644
--- a/NewsClientOpenHarmony/entry/src/main/config.json
+++ b/JSRelationshipData/entry/src/main/config.json
@@ -1,7 +1,7 @@
{
"app": {
- "bundleName": "com.huawei.newsdemo",
- "vendor": "demo",
+ "bundleName": "com.huawei.jsrelationshipdata",
+ "vendor": "huawei",
"version": {
"code": 1000000,
"name": "1.0.0"
@@ -9,9 +9,9 @@
},
"deviceConfig": {},
"module": {
- "package": "com.huawei.newsdemo",
+ "package": "com.huawei.jsrelationshipdata",
"name": ".MyApplication",
- "mainAbility": "com.huawei.newsdemo.MainAbility",
+ "mainAbility": ".MainAbility",
"deviceType": [
"phone"
],
@@ -19,7 +19,7 @@
"deliveryWithInstall": true,
"moduleName": "entry",
"moduleType": "entry",
- "installationFree": false
+ "installationFree": true
},
"abilities": [
{
@@ -35,11 +35,13 @@
],
"orientation": "unspecified",
"visible": true,
- "name": "com.huawei.newsdemo.MainAbility",
+ "srcPath": "MainAbility",
+ "name": ".MainAbility",
+ "srcLanguage": "js",
"icon": "$media:icon",
"description": "$string:mainability_description",
"formsEnabled": false,
- "label": "$string:NewsClient",
+ "label": "$string:entry_MainAbility",
"type": "page",
"launchType": "standard"
}
@@ -48,9 +50,9 @@
{
"pages": [
"pages/index/index",
- "pages/detail/detail"
+ "pages/second/second"
],
- "name": "default",
+ "name": ".MainAbility",
"window": {
"designWidth": 720,
"autoDesignWidth": false
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/app.js b/JSRelationshipData/entry/src/main/js/MainAbility/app.js
similarity index 100%
rename from NewsClientOpenHarmony/entry/src/main/js/default/app.js
rename to JSRelationshipData/entry/src/main/js/MainAbility/app.js
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/i18n/en-US.json b/JSRelationshipData/entry/src/main/js/MainAbility/i18n/en-US.json
similarity index 48%
rename from NewsClientOpenHarmony/entry/src/main/js/default/i18n/en-US.json
rename to JSRelationshipData/entry/src/main/js/MainAbility/i18n/en-US.json
index 02536fd164b9f0b11aab483ab81ed82ae4ae9c59..08e34eac912bf2651eefc20e26aa479b5e4e7ec2 100644
--- a/NewsClientOpenHarmony/entry/src/main/js/default/i18n/en-US.json
+++ b/JSRelationshipData/entry/src/main/js/MainAbility/i18n/en-US.json
@@ -1,11 +1,10 @@
{
"strings": {
- "hello": "shizhe",
- "world": "Hello",
+ "hello": "Hello",
+ "world": "World",
"page": "Second Page",
"next": "Next Page",
- "back": "Back",
- "localhost": "This device"
+ "back": "Back"
},
"Files": {
}
diff --git a/NewsClientOpenHarmony/entry/src/main/js/default/i18n/zh-CN.json b/JSRelationshipData/entry/src/main/js/MainAbility/i18n/zh-CN.json
similarity index 61%
rename from NewsClientOpenHarmony/entry/src/main/js/default/i18n/zh-CN.json
rename to JSRelationshipData/entry/src/main/js/MainAbility/i18n/zh-CN.json
index d80a8bb61500ee734a54b5c4002f15ed38654308..3dd53b3a8b808aec9396fa663cb00ef22ba61e0a 100644
--- a/NewsClientOpenHarmony/entry/src/main/js/default/i18n/zh-CN.json
+++ b/JSRelationshipData/entry/src/main/js/MainAbility/i18n/zh-CN.json
@@ -1,11 +1,10 @@
{
"strings": {
- "hello": "SHIZHE",
+ "hello": "您好",
"world": "世界",
"page": "第二页",
"next": "下一页",
- "back": "返回",
- "localhost": "本机"
+ "back": "返回"
},
"Files": {
}
diff --git a/JSRelationshipData/entry/src/main/js/MainAbility/pages/index/index.css b/JSRelationshipData/entry/src/main/js/MainAbility/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..cebad99c4b856f30e936602a8ff52bf676fb295b
--- /dev/null
+++ b/JSRelationshipData/entry/src/main/js/MainAbility/pages/index/index.css
@@ -0,0 +1,189 @@
+/*
+ * 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 {
+ height: 100%;
+ width: 100%;
+ flex-direction: column;
+}
+
+.title {
+ height: 70vp;
+ width: 100%;
+ flex-direction: row;
+}
+
+.title-left,.title-right {
+ width: 15%;
+}
+
+.title-left text,.title-right text {
+ width: 100%;
+ height: 100%;
+ color: #a0a0a0;
+ text-align: center;
+ font-size: 18fp;
+ align-items: center;
+}
+
+.title-center {
+ width: 70%;
+}
+
+.title-center text {
+ width: 100%;
+ height: 100%;
+ color: #222222;
+ font-size: 22fp;
+ text-align: center;
+}
+
+.divider {
+ color: #eeeeee;
+ stroke-width: 1vp;
+ line-cap: round;
+}
+
+.list-title {
+ height: 40vp;
+ width: 100%;
+ flex-direction: row;
+}
+
+.list-title-left,.list-title-center {
+ width: 37%;
+}
+
+.list-title-left text,.list-title-center text {
+ width: 100%;
+ height: 100%;
+ text-align: center;
+ font-size: 16fp;
+ align-items: center;
+ text-overflow: ellipsis;
+ max-lines: 1;
+}
+
+.list-title-left text {
+ color: #222222;
+}
+
+.list-title-center text {
+ color: #555555;
+}
+
+.list-title-right {
+ width: 26%;
+ padding-left: 5vp;
+}
+
+.list-title-right text {
+ width: 100%;
+ height: 100%;
+ font-size: 16fp;
+}
+
+.contact {
+ flex-direction: column;
+ width: 100%;
+ height: 100%;
+}
+
+.list-item {
+ height: 40vp;
+ width: 100%;
+ flex-direction: column;
+}
+
+.list-item-data {
+ flex-direction: row;
+}
+
+.list-item-divider {
+ color: #eeeeee;
+ stroke-width: 1vp;
+ line-cap: round;
+ margin-left: 20vp;
+ margin-right: 20vp;
+}
+
+.edit {
+ color: #00dddd;
+}
+
+.delete {
+ color: #cc0000;
+}
+
+.dialog-main {
+ width: 100%;
+ margin-bottom: 25%;
+}
+
+.dialog-div {
+ flex-direction: column;
+ align-items: center;
+}
+
+.inner-txt {
+ font-size: 18fp;
+ margin-top: 25vp;
+ margin-bottom: 25vp;
+}
+
+.inner-btn input {
+ height: 40vp;
+ width: 80%;
+ margin-bottom: 40vp;
+ margin-top: 20vp;
+ background-color: #00dddd;
+}
+
+#deleteDialog .inner-btn input {
+ margin-bottom: 30vp;
+ width : 40%;
+ margin-left : 5vp;
+ margin-right : 5vp;
+}
+
+#deleteDialog .inner-txt {
+ margin-bottom: 60vp;
+ margin-top: 30vp;
+ font-size: 22fp;
+}
+
+.dialog-input {
+ width: 100%;
+ height: 60vp;
+ font-size: 16fp;
+ flex-direction: row;
+}
+
+.dialog-input text {
+ color: #222222;
+ width: 25%;
+ text-align: center;
+}
+
+.dialog-input input {
+ width: 75%;
+ margin-right: 19vp;
+}
+
+.delete-dialog-main {
+ width: 70%;
+ height: 30%;
+ margin-bottom: 40%;
+}
\ No newline at end of file
diff --git a/JSRelationshipData/entry/src/main/js/MainAbility/pages/index/index.hml b/JSRelationshipData/entry/src/main/js/MainAbility/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..4933798c86a0a8f94bd3580871188d934de6a874
--- /dev/null
+++ b/JSRelationshipData/entry/src/main/js/MainAbility/pages/index/index.hml
@@ -0,0 +1,115 @@
+/*
+ * 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
+ *s
+ * 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.
+ */
+
+
+
+
+
+
+
+
+
+ 关系型数据库管理
+
+
+ 添加
+
+
+
+
+
+
+
+
+
+ 姓名
+
+
+ 年龄
+
+
+ 性别
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{$item.name}}
+
+
+ {{$item.age}}
+
+
+ {{$item.gender}}
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/JSRelationshipData/entry/src/main/js/MainAbility/pages/index/index.js b/JSRelationshipData/entry/src/main/js/MainAbility/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..b9eafc6aadb93d42dcff1f8434545400ec34639d
--- /dev/null
+++ b/JSRelationshipData/entry/src/main/js/MainAbility/pages/index/index.js
@@ -0,0 +1,124 @@
+/*
+ * 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 KvStoreModel from '../../../model/KvStoreModel.js';
+
+export default {
+ data: {
+ dialogTitle: '',
+ id:0,
+ name: '李四',
+ nameAge: 18,
+ gender:'男',
+ contactList: [],
+ listIndex: -1,
+ deleteIndex: -1,
+ kvStoreModel: new KvStoreModel(),
+ },
+ onInit() {
+ this.title = this.$t('strings.world');
+ },
+
+ addContact() {
+ this.dialogTitle = '添加信息';
+ this.showDialog();
+ },
+
+ queryContact() {
+ this.kvStoreModel.queryValue((contactList) => {
+ console.info('*****************lianghao number ' + contactList.length);
+ if (contactList.length > 0) {
+ this.contactList = contactList;
+ }
+ });
+ //this.showDialog();
+ },
+ // 展示添加或编辑信息弹窗
+ showDialog() {
+ this.$element('addDialog').show();
+ },
+ // 关闭添加或编辑信息弹窗
+ cancelDialog() {
+ this.name = '';
+ this.nameAge = '';
+ this.gender = '';
+ this.$element('addDialog').close();
+ },
+ confirmClick() {
+ if (this.dialogTitle === '添加信息') {
+ const obj = {
+ name: this.name,age:this.nameAge,gender:this.gender
+ };
+ this.contactList.push(obj);
+ this.kvStoreModel.insertValue(obj);
+ } else {
+ this.contactList[this.listIndex].name = this.name;
+ this.contactList[this.listIndex].age = this.nameAge;
+ this.contactList[this.listIndex].gender = this.gender;
+ const obj = {
+ name: this.name,age:this.nameAge,gender:this.gender
+ };
+ this.kvStoreModel.updateValue(obj,this.id);
+ }
+ this.queryContact();
+ this.cancelDialog();
+ },
+ changeName(e) {
+ this.name = e.value;
+ },
+ changeAge(e) {
+ this.nameAge = e.value;
+ },
+ changeGender(e) {
+ this.gender = e.value;
+ },
+ editContact(obj,index) {
+ this.dialogTitle = '修改信息';
+
+ this.listIndex = index;
+ this.id = obj.id;
+ this.name = obj.name;
+ this.nameAge = obj.age;
+ this.gender = obj.gender;
+ //修改数据
+ this.showDialog();
+ },
+ deleteContact(obj,index) {
+ this.showDeleteDialog();
+ this.id = obj.id;
+ this.deleteIndex = index;
+ },
+ // 错误提示信息
+ showErrorMessage(id, msg) {
+ this.$element(id).showError({
+ error: msg
+ });
+ },
+ // 展示确认删除弹窗
+ showDeleteDialog() {
+ this.$element('deleteDialog').show();
+ },
+ // 关闭确认删除弹窗
+ cancelDeleteDialog() {
+ this.$element('deleteDialog').close();
+ },
+ // 确认删除
+ confirmDeleteClick() {
+ // 刪除分布式数据库中数据
+ this.contactList.splice(this.deleteIndex, 1);
+ this.kvStoreModel.deleteValue(this.id);
+ this.cancelDeleteDialog();
+ }
+};
diff --git a/JSRelationshipData/entry/src/main/js/model/KvStoreModel.js b/JSRelationshipData/entry/src/main/js/model/KvStoreModel.js
new file mode 100644
index 0000000000000000000000000000000000000000..433fdf756e587e0ef78491bba2b78b7f0335d4d4
--- /dev/null
+++ b/JSRelationshipData/entry/src/main/js/model/KvStoreModel.js
@@ -0,0 +1,112 @@
+/*
+ * 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 ohos_data_ability from '@ohos.data.dataability'
+import ohos_data_rdb from '@ohos.data.rdb'
+
+const STORE_CONFIG = { name: "RdbTest.db" }
+const SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, GENDER TEXT NOT NULL)"
+
+export default class KvStoreModel {
+ rdbStore;
+
+ createKvStore(callback) {
+ if (typeof (this.rdbStore) === 'undefined') {
+ let self = this;
+ let promise = ohos_data_rdb.getRdbStore(STORE_CONFIG, 1)
+ promise.then(async (rdbStore) => {
+ self.rdbStore = rdbStore;
+ await rdbStore.executeSql(SQL_CREATE_TABLE, null);
+ console.info("rdbStore" + 'create table done.')
+ callback();
+ }).catch((err) => {
+ console.info("kvStore" + err)
+ callback();
+ })
+ }else {
+ callback();
+ }
+ }
+
+ insertValue(valueBucket) {
+ this.createKvStore(() => {
+ this.insert(valueBucket);
+ })
+ }
+
+ updateValue(valueBucket,index) {
+ this.createKvStore(() => {
+ this.update(valueBucket,index);
+ })
+ }
+
+ deleteValue(index){
+ this.createKvStore(() => {
+ this.update(index);
+ })
+ }
+
+ queryValue(callback) {
+ this.createKvStore(() => {
+ var contactList = []
+ let predicates = new ohos_data_rdb.RdbPredicates("EMPLOYEE")
+ let promise = this.rdbStore.query(predicates, ["ID", "NAME", "AGE", "GENDER"])
+ console.log("rdbStore query start")
+ promise.then((resultSet) => {
+ if (resultSet.rowCount > 0) {
+ while (resultSet.goToNextRow()) {
+ let id = resultSet.getLong(resultSet.getColumnIndex("ID"));
+ let userName = resultSet.getString(resultSet.getColumnIndex("NAME"));
+ let userAge = resultSet.getLong(resultSet.getColumnIndex("AGE"));
+ let userGender = resultSet.getLong(resultSet.getColumnIndex("GENDER"));
+ const obj = {
+ id:id,name:userName,age:userAge,gender:userGender
+ };
+ contactList.push(obj);
+ }
+ }
+ resultSet.close();
+ resultSet = null;
+ callback(contactList);
+ console.log("resultSet column names:" + resultSet.columnNames)
+ console.log("resultSet column count:" + resultSet.columnCount)}
+ )
+ })
+ }
+
+ insert(valueBucket) {
+ console.info('rdbStore.insert ' +valueBucket[0].name+"---"+valueBucket[0].gender);
+ let promise = this.rdbStore.insert("EMPLOYEE", valueBucket)
+ promise.then(async (rows) => {
+ await console.log("rdbStore.insert first done: " + rows)
+ }).catch((err) => {})
+ }
+
+ update(valueBucket,index){
+ console.info('rdbStore.update ' +index+"=="+valueBucket);
+ let predicates = new ohos_data_rdb.RdbPredicates("EMPLOYEE");
+ predicates.equalTo("ID", index);
+ this.rdbStore.update(valueBucket, predicates, function (err, rows) {
+ console.log("rdbStore.update updated row count: " + rows)})
+ }
+
+ delete(index) {
+ console.info('rdbStore.delete ' +index);
+ let predicates = new ohos_data_rdb.RdbPredicates("EMPLOYEE");
+ predicates.equalTo("ID", index);
+ this.rdbStore.delete(predicates, function (err, rows) {
+ console.log("rdbStore.delete rows: " + rows)})
+ }
+}
\ No newline at end of file
diff --git a/NewsClientOpenHarmony/entry/src/main/resources/base/element/string.json b/JSRelationshipData/entry/src/main/resources/base/element/string.json
similarity index 63%
rename from NewsClientOpenHarmony/entry/src/main/resources/base/element/string.json
rename to JSRelationshipData/entry/src/main/resources/base/element/string.json
index 7a9597502523b7c2955b2795569d74768b09f8bf..0bae6bd40f7360d5d818998221b199d3ec0f69c0 100644
--- a/NewsClientOpenHarmony/entry/src/main/resources/base/element/string.json
+++ b/JSRelationshipData/entry/src/main/resources/base/element/string.json
@@ -1,8 +1,8 @@
{
"string": [
{
- "name": "NewsClient",
- "value": "新闻资讯"
+ "name": "entry_MainAbility",
+ "value": "entry_MainAbility"
},
{
"name": "mainability_description",
diff --git a/JSRelationshipData/entry/src/main/resources/base/media/icon.png b/JSRelationshipData/entry/src/main/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/JSRelationshipData/entry/src/main/resources/base/media/icon.png differ
diff --git a/JSRelationshipData/gradle/wrapper/gradle-wrapper.jar b/JSRelationshipData/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..490fda8577df6c95960ba7077c43220e5bb2c0d9
Binary files /dev/null and b/JSRelationshipData/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/JSRelationshipData/gradle/wrapper/gradle-wrapper.properties b/JSRelationshipData/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000000000000000000000000000000000000..f59159e865d4b59feb1b8c44b001f62fc5d58df4
--- /dev/null
+++ b/JSRelationshipData/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/JSRelationshipData/settings.gradle b/JSRelationshipData/settings.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..4773db73233a570c2d0c01a22e75321acfbf7a07
--- /dev/null
+++ b/JSRelationshipData/settings.gradle
@@ -0,0 +1 @@
+include ':entry'
diff --git a/JsDistributedData/LICENSE b/JsDistributedData/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..7c357dc828cf7d8c783f10ed6bb1bac8a1e903c1
--- /dev/null
+++ b/JsDistributedData/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/JsDistributedData/build.gradle b/JsDistributedData/build.gradle
index f5b7e756b6c5d5bee1a0e56c0e5ded43e0c4623b..d3bc544714181318436c7ac43172b81d6f55a53b 100644
--- a/JsDistributedData/build.gradle
+++ b/JsDistributedData/build.gradle
@@ -9,6 +9,7 @@ ohos {
buildscript {
repositories {
maven {
+<<<<<<< HEAD
url 'http://repo.ark.tools.huawei.com/artifactory/maven-public/'
}
maven {
@@ -18,16 +19,34 @@ buildscript {
dependencies {
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 {
+ url 'https://developer.huawei.com/repo/'
+ }
+ }
+ dependencies {
+ classpath 'com.huawei.ohos:hap:2.4.5.5'
+ classpath 'com.huawei.ohos:decctest:1.2.5.1'
+>>>>>>> 0e50d605db36ff6e317e21b849a5220bed711ca3
}
}
allprojects {
repositories {
maven {
+<<<<<<< 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
}
}
}
diff --git a/JsDistributedData/entry/build.gradle b/JsDistributedData/entry/build.gradle
index fcc9ac57a94ed0f5555206787ef9c63720f3fa45..21cde517edd597b7b66789bead87bd92a417206f 100644
--- a/JsDistributedData/entry/build.gradle
+++ b/JsDistributedData/entry/build.gradle
@@ -1,10 +1,18 @@
apply plugin: 'com.huawei.ohos.hap'
+<<<<<<< HEAD
apply plugin: 'com.huawei.ohos.decctest'
//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510
ohos {
compileSdkVersion 6
defaultConfig {
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
}
buildTypes {
release {
@@ -14,13 +22,21 @@ ohos {
}
}
}
+<<<<<<< HEAD
+=======
+
+ supportSystem "standard"
+>>>>>>> 0e50d605db36ff6e317e21b849a5220bed711ca3
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
testImplementation 'junit:junit:4.13'
+<<<<<<< HEAD
ohosTestImplementation 'com.huawei.ohos.testkit:runner:2.0.0.100'
}
decc {
supportType = ['html','xml']
+=======
+>>>>>>> 0e50d605db36ff6e317e21b849a5220bed711ca3
}
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/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/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/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/RatingApplication/LICENSE b/RatingApplication/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..80576ef141485b36eea4aebf25af97020bc2de44
--- /dev/null
+++ b/RatingApplication/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/RatingApplication/build.gradle b/RatingApplication/build.gradle
index 9cf74c205fc884ae2c6796ce2298ecbe3f40672d..c2c8bbaed13747b913f19cef893f515bc32d02a7 100644
--- a/RatingApplication/build.gradle
+++ b/RatingApplication/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:2.4.5.5'
- classpath 'com.huawei.ohos:decctest:1.2.5.1'
+ classpath 'com.huawei.ohos:hap:3.0.3.4'
+ classpath 'com.huawei.ohos:decctest:1.2.6.0'
}
}
diff --git a/RatingApplication/entry/build.gradle b/RatingApplication/entry/build.gradle
index cccb71cae91018743841ab76aeb19c595f4ed847..813a93b10b3abe7de94ecf98c04dea6465caed7f 100644
--- a/RatingApplication/entry/build.gradle
+++ b/RatingApplication/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 {
@@ -14,7 +14,6 @@ ohos {
}
}
- supportSystem "standard"
}
dependencies {
diff --git a/RatingApplication/entry/src/main/config.json b/RatingApplication/entry/src/main/config.json
index d9f2e4fa64e0cf83741d3de5bd3a64d60c38aee5..51b1273507245ec9acaaf1f53524ff4670912df9 100644
--- a/RatingApplication/entry/src/main/config.json
+++ b/RatingApplication/entry/src/main/config.json
@@ -36,6 +36,8 @@
"orientation": "unspecified",
"name": "com.huawei.ratingapplication.MainAbility",
"icon": "$media:icon",
+ "srcPath": "default",
+ "srcLanguage": "js",
"description": "$string:mainability_description",
"formsEnabled": false,
"label": "$string:entry_MainAbility",
diff --git a/RemoteStartFA/LICENSE b/RemoteStartFA/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..80576ef141485b36eea4aebf25af97020bc2de44
--- /dev/null
+++ b/RemoteStartFA/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/RemoteStartFA/entry/build.gradle b/RemoteStartFA/entry/build.gradle
index cccb71cae91018743841ab76aeb19c595f4ed847..813a93b10b3abe7de94ecf98c04dea6465caed7f 100644
--- a/RemoteStartFA/entry/build.gradle
+++ b/RemoteStartFA/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 {
@@ -14,7 +14,6 @@ ohos {
}
}
- supportSystem "standard"
}
dependencies {
diff --git a/RemoteStartFA/entry/src/main/config.json b/RemoteStartFA/entry/src/main/config.json
index 8040d75c7fb8b260d34567d00a851334bb1be427..5e27883457db3186860941b1cd4eb5012ae43e4b 100644
--- a/RemoteStartFA/entry/src/main/config.json
+++ b/RemoteStartFA/entry/src/main/config.json
@@ -37,6 +37,8 @@
"visible": true,
"name": "com.huawei.cookbook.MainAbility",
"icon": "$media:icon",
+ "srcPath": "default",
+ "srcLanguage": "js",
"description": "$string:mainability_description",
"formsEnabled": false,
"label": "$string:entry_MainAbility",
diff --git a/SliderApplication/LICENSE b/SliderApplication/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..80576ef141485b36eea4aebf25af97020bc2de44
--- /dev/null
+++ b/SliderApplication/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/SliderApplication/entry/build.gradle b/SliderApplication/entry/build.gradle
index cccb71cae91018743841ab76aeb19c595f4ed847..813a93b10b3abe7de94ecf98c04dea6465caed7f 100644
--- a/SliderApplication/entry/build.gradle
+++ b/SliderApplication/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 {
@@ -14,7 +14,6 @@ ohos {
}
}
- supportSystem "standard"
}
dependencies {
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/NewsClientOpenHarmony/entry/proguard-rules.pro b/TransitionAnimtaionEts/entry/proguard-rules.pro
similarity index 100%
rename from NewsClientOpenHarmony/entry/proguard-rules.pro
rename to TransitionAnimtaionEts/entry/proguard-rules.pro
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'