From fab059165e53d9f6fdbc8e0473c6cfb1da1e095c Mon Sep 17 00:00:00 2001 From: Tianshi Liu Date: Mon, 21 Mar 2022 17:52:16 +0800 Subject: [PATCH] update ui code Signed-off-by: Tianshi Liu Change-Id: If7c3e7c384322dfd4fe75d961ddd40421d15ad14 --- ui/Settings_FaceAuth/.gitignore | 16 + ui/Settings_FaceAuth/.idea/.gitignore | 3 + ui/Settings_FaceAuth/.idea/compiler.xml | 6 + ui/Settings_FaceAuth/.idea/gradle.xml | 23 + .../.idea/jarRepositories.xml | 25 + ui/Settings_FaceAuth/.idea/misc.xml | 4 + .../phone/phoneSettingConfig_MateX2.json | 25 + .../phone/phoneSettingConfig_P40.json | 25 + .../.idea/previewer/previewConfigV2.json | 37 + ui/Settings_FaceAuth/.idea/vcs.xml | 7 + .../build.gradle | 19 +- ui/Settings_FaceAuth/entry/.gitignore | 2 + .../entry}/build.gradle | 10 +- ui/Settings_FaceAuth/entry/proguard-rules.pro | 1 + .../entry}/src/main/config.json | 47 +- .../src/main/ets/enrollmentstartview}/app.ets | 29 +- .../component/backComponent.ets | 70 ++ .../component/confirmDialog.ets | 77 ++ .../ets/enrollmentstartview/config/config.ets | 51 ++ .../enrollmentstartview/config/constant.ets | 192 +++++ .../config/defaultConstant.ets} | 1 + .../controller/commonController.ets | 93 ++ .../controller/enrollingController.ets | 136 +++ .../controller/entryViewController.ets | 62 ++ .../controller/faceConfigController.ets | 52 ++ .../model/userAuthModel.ets | 63 ++ .../model/userIDMModel.ets | 152 ++++ .../pages/enrollDeclare.ets} | 45 +- .../enrollmentstartview/pages/enrollIntro.ets | 124 +++ .../enrollmentstartview/pages/enrolling.ets | 125 +++ .../enrollmentstartview/pages/entryView.ets | 65 ++ .../enrollmentstartview/pages/faceConfig.ets | 82 ++ .../ets/enrollmentstartview/utils/log.ets} | 23 +- .../main/resources/base/element/color.json | 2 +- .../main/resources/base/element/float.json | 6 +- .../main/resources/base/element/string.json | 28 + .../src/main/resources/base/media/back_op.png | Bin 0 -> 487 bytes .../src/main/resources/base/media/icon.png | Bin .../src/main/resources/base/media/shelter.png | Bin .../resources/base/media/startImage_2D.png | Bin .../src/main/resources/base/media/success.png | Bin .../main/resources/en_AS/element/string.json | 0 .../main/resources/zh_CN/element/string.json | 11 +- ui/Settings_FaceAuth/gradle.properties | 13 + .../gradle/wrapper/gradle-wrapper.properties | 5 + ui/{faceenroll => Settings_FaceAuth}/gradlew | 0 .../gradlew.bat | 0 ui/Settings_FaceAuth/package.json | 1 + ui/Settings_FaceAuth/settings.gradle | 1 + ui/faceenroll/.gitattributes | 0 ui/faceenroll/common/src/main/config.json | 23 - .../common/src/main/ets/default/Log.ets | 52 -- .../main/ets/default/common/Config/config.ets | 76 -- .../common/manager/resourceManager.ets | 48 -- .../ets/default/common/model/DeviceModel.ets | 37 - .../common/model/FaceSettingsModel.ets | 183 ---- .../default/common/model/userAuthModel.ets | 96 --- .../presenter/FaceSettingsPresenter.ets | 147 ---- .../common/presenter/userAuthPresenter.ets | 56 -- .../presenter/userSettingsPresenter.ets | 94 -- .../main/resources/base/element/string.json | 8 - .../feature/faceSettings/build.gradle | 34 - .../feature/faceSettings/src/main/config.json | 22 - .../main/ets/default/pages/faceSettings.ets | 730 ---------------- .../main/resources/base/element/string.json | 175 ---- .../src/main/resources/base/media/back.png | Bin 893 -> 0 bytes .../base/media/ic_settings_arrow.svg | 19 - .../main/resources/en_US/element/string.json | 176 ---- .../main/resources/zh_CN/element/string.json | 175 ---- .../feature/faceSettingsPad/build.gradle | 34 - .../faceSettingsPad/src/main/config.json | 22 - .../ets/default/common/DefaultConstants.ets | 52 -- .../src/main/ets/default/pages/index.ets | 603 ------------- .../main/resources/base/element/string.json | 129 --- .../src/main/resources/base/media/back.png | Bin 893 -> 0 bytes .../base/media/ic_settings_arrow.svg | 19 - .../src/main/resources/base/media/icon.png | Bin 6790 -> 0 bytes .../main/resources/en_US/element/string.json | 131 --- .../main/resources/zh_CN/element/string.json | 129 --- .../product/pad/src/main/config.json | 81 -- .../pad/src/main/ets/default/common/Log.ets | 52 -- .../src/main/ets/default/common/constant.ets | 429 ---------- .../pad/src/main/ets/default/model_2D.ets | 273 ------ .../pad/src/main/ets/default/model_3D.ets | 255 ------ .../src/main/ets/default/pages/aperture.ets | 67 -- .../src/main/ets/default/pages/declare.ets | 67 -- .../src/main/ets/default/pages/enroll_2D.ets | 170 ---- .../src/main/ets/default/pages/enroll_3D.ets | 170 ---- .../src/main/ets/default/pages/entryView.ets | 54 -- .../pad/src/main/ets/default/pages/index.ets | 45 - .../main/ets/default/pages/startViews_2D.ets | 145 ---- .../main/ets/default/pages/startViews_3D.ets | 159 ---- .../src/main/ets/default/pages/success.ets | 77 -- .../src/main/ets/default/pages/userAuth.ets | 94 -- .../main/ets/default/pages/userSettings.ets | 64 -- .../main/resources/base/element/color.json | 18 - .../main/resources/base/element/float.json | 70 -- .../main/resources/base/element/string.json | 792 ----------------- .../main/resources/base/media/aperture1.png | Bin 2585 -> 0 bytes .../main/resources/base/media/aperture2.png | Bin 4104 -> 0 bytes .../main/resources/base/media/aperture3.png | Bin 4622 -> 0 bytes .../main/resources/base/media/aperture4.png | Bin 5063 -> 0 bytes .../main/resources/base/media/aperture5.png | Bin 15116 -> 0 bytes .../src/main/resources/base/media/back.png | Bin 893 -> 0 bytes .../src/main/resources/base/media/iPad.png | Bin 62798 -> 0 bytes .../base/media/ic_settings_arrow.svg | 19 - .../src/main/resources/base/media/icon.png | Bin 6790 -> 0 bytes .../src/main/resources/base/media/image.jpg | Bin 215219 -> 0 bytes .../main/resources/base/media/into_arrow.svg | 19 - .../pad/src/main/resources/base/media/pad.png | Bin 60632 -> 0 bytes .../src/main/resources/base/media/phone.svg | 22 - .../resources/base/media/startImage1_3D.png | Bin 13080 -> 0 bytes .../resources/base/media/startImage2_3D.png | Bin 9858 -> 0 bytes .../main/resources/en_AS/element/string.json | 562 ------------ .../main/resources/zh_CN/element/string.json | 791 ----------------- ui/faceenroll/product/phone/build.gradle | 35 - .../src/main/ets/default/common/constant.ets | 423 --------- .../phone/src/main/ets/default/model_2D.ets | 273 ------ .../phone/src/main/ets/default/model_3D.ets | 257 ------ .../src/main/ets/default/pages/aperture.ets | 64 -- .../src/main/ets/default/pages/enroll_2D.ets | 162 ---- .../src/main/ets/default/pages/enroll_3D.ets | 157 ---- .../src/main/ets/default/pages/entryView.ets | 60 -- .../src/main/ets/default/pages/index.ets | 45 - .../main/ets/default/pages/startViews_2D.ets | 145 ---- .../main/ets/default/pages/startViews_3D.ets | 153 ---- .../src/main/ets/default/pages/success.ets | 73 -- .../src/main/ets/default/pages/userAuth.ets | 106 --- .../main/ets/default/pages/userSettings.ets | 64 -- .../main/resources/base/element/string.json | 807 ------------------ .../main/resources/base/media/aperture1.png | Bin 2585 -> 0 bytes .../main/resources/base/media/aperture2.png | Bin 4104 -> 0 bytes .../main/resources/base/media/aperture3.png | Bin 4622 -> 0 bytes .../main/resources/base/media/aperture4.png | Bin 5063 -> 0 bytes .../main/resources/base/media/aperture5.png | Bin 15116 -> 0 bytes .../src/main/resources/base/media/back.png | Bin 893 -> 0 bytes .../base/media/ic_settings_arrow.svg | 19 - .../src/main/resources/base/media/icon.png | Bin 6790 -> 0 bytes .../src/main/resources/base/media/image.jpg | Bin 215219 -> 0 bytes .../main/resources/base/media/into_arrow.svg | 19 - .../src/main/resources/base/media/phone.svg | 22 - .../src/main/resources/base/media/shelter.png | Bin 4478 -> 0 bytes .../resources/base/media/startImage1_3D.png | Bin 13080 -> 0 bytes .../resources/base/media/startImage2_3D.png | Bin 9858 -> 0 bytes .../resources/base/media/startImage_2D.png | Bin 13242 -> 0 bytes .../src/main/resources/base/media/success.png | Bin 3595 -> 0 bytes ui/faceenroll/settings.gradle | 18 - 147 files changed, 1665 insertions(+), 10761 deletions(-) create mode 100644 ui/Settings_FaceAuth/.gitignore create mode 100644 ui/Settings_FaceAuth/.idea/.gitignore create mode 100644 ui/Settings_FaceAuth/.idea/compiler.xml create mode 100644 ui/Settings_FaceAuth/.idea/gradle.xml create mode 100644 ui/Settings_FaceAuth/.idea/jarRepositories.xml create mode 100644 ui/Settings_FaceAuth/.idea/misc.xml create mode 100644 ui/Settings_FaceAuth/.idea/previewer/phone/phoneSettingConfig_MateX2.json create mode 100644 ui/Settings_FaceAuth/.idea/previewer/phone/phoneSettingConfig_P40.json create mode 100644 ui/Settings_FaceAuth/.idea/previewer/previewConfigV2.json create mode 100644 ui/Settings_FaceAuth/.idea/vcs.xml rename ui/{faceenroll => Settings_FaceAuth}/build.gradle (72%) create mode 100644 ui/Settings_FaceAuth/entry/.gitignore rename ui/{faceenroll/product/pad => Settings_FaceAuth/entry}/build.gradle (86%) create mode 100644 ui/Settings_FaceAuth/entry/proguard-rules.pro rename ui/{faceenroll/product/phone => Settings_FaceAuth/entry}/src/main/config.json (57%) rename ui/{faceenroll/product/phone/src/main/ets/default => Settings_FaceAuth/entry/src/main/ets/enrollmentstartview}/app.ets (52%) create mode 100644 ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/component/backComponent.ets create mode 100644 ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/component/confirmDialog.ets create mode 100644 ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/config/config.ets create mode 100644 ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/config/constant.ets rename ui/{faceenroll/feature/faceSettings/src/main/ets/default/common/DefaultConstants.ets => Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/config/defaultConstant.ets} (99%) create mode 100644 ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/controller/commonController.ets create mode 100644 ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/controller/enrollingController.ets create mode 100644 ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/controller/entryViewController.ets create mode 100644 ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/controller/faceConfigController.ets create mode 100644 ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/model/userAuthModel.ets create mode 100644 ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/model/userIDMModel.ets rename ui/{faceenroll/product/phone/src/main/ets/default/pages/declare.ets => Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/enrollDeclare.ets} (88%) create mode 100644 ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/enrollIntro.ets create mode 100644 ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/enrolling.ets create mode 100644 ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/entryView.ets create mode 100644 ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/faceConfig.ets rename ui/{faceenroll/product/pad/src/main/ets/default/app.ets => Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/utils/log.ets} (66%) rename ui/{faceenroll/product/phone => Settings_FaceAuth/entry}/src/main/resources/base/element/color.json (89%) rename ui/{faceenroll/product/phone => Settings_FaceAuth/entry}/src/main/resources/base/element/float.json (91%) create mode 100644 ui/Settings_FaceAuth/entry/src/main/resources/base/element/string.json create mode 100644 ui/Settings_FaceAuth/entry/src/main/resources/base/media/back_op.png rename ui/{faceenroll/feature/faceSettings => Settings_FaceAuth/entry}/src/main/resources/base/media/icon.png (100%) rename ui/{faceenroll/product/pad => Settings_FaceAuth/entry}/src/main/resources/base/media/shelter.png (100%) rename ui/{faceenroll/product/pad => Settings_FaceAuth/entry}/src/main/resources/base/media/startImage_2D.png (100%) rename ui/{faceenroll/product/pad => Settings_FaceAuth/entry}/src/main/resources/base/media/success.png (100%) rename ui/{faceenroll/product/phone => Settings_FaceAuth/entry}/src/main/resources/en_AS/element/string.json (100%) rename ui/{faceenroll/product/phone => Settings_FaceAuth/entry}/src/main/resources/zh_CN/element/string.json (98%) create mode 100644 ui/Settings_FaceAuth/gradle.properties create mode 100644 ui/Settings_FaceAuth/gradle/wrapper/gradle-wrapper.properties rename ui/{faceenroll => Settings_FaceAuth}/gradlew (100%) rename ui/{faceenroll => Settings_FaceAuth}/gradlew.bat (100%) create mode 100644 ui/Settings_FaceAuth/package.json create mode 100644 ui/Settings_FaceAuth/settings.gradle delete mode 100644 ui/faceenroll/.gitattributes delete mode 100644 ui/faceenroll/common/src/main/config.json delete mode 100644 ui/faceenroll/common/src/main/ets/default/Log.ets delete mode 100644 ui/faceenroll/common/src/main/ets/default/common/Config/config.ets delete mode 100644 ui/faceenroll/common/src/main/ets/default/common/manager/resourceManager.ets delete mode 100644 ui/faceenroll/common/src/main/ets/default/common/model/DeviceModel.ets delete mode 100644 ui/faceenroll/common/src/main/ets/default/common/model/FaceSettingsModel.ets delete mode 100644 ui/faceenroll/common/src/main/ets/default/common/model/userAuthModel.ets delete mode 100644 ui/faceenroll/common/src/main/ets/default/common/presenter/FaceSettingsPresenter.ets delete mode 100644 ui/faceenroll/common/src/main/ets/default/common/presenter/userAuthPresenter.ets delete mode 100644 ui/faceenroll/common/src/main/ets/default/common/presenter/userSettingsPresenter.ets delete mode 100644 ui/faceenroll/common/src/main/resources/base/element/string.json delete mode 100644 ui/faceenroll/feature/faceSettings/build.gradle delete mode 100644 ui/faceenroll/feature/faceSettings/src/main/config.json delete mode 100644 ui/faceenroll/feature/faceSettings/src/main/ets/default/pages/faceSettings.ets delete mode 100644 ui/faceenroll/feature/faceSettings/src/main/resources/base/element/string.json delete mode 100644 ui/faceenroll/feature/faceSettings/src/main/resources/base/media/back.png delete mode 100644 ui/faceenroll/feature/faceSettings/src/main/resources/base/media/ic_settings_arrow.svg delete mode 100644 ui/faceenroll/feature/faceSettings/src/main/resources/en_US/element/string.json delete mode 100644 ui/faceenroll/feature/faceSettings/src/main/resources/zh_CN/element/string.json delete mode 100644 ui/faceenroll/feature/faceSettingsPad/build.gradle delete mode 100644 ui/faceenroll/feature/faceSettingsPad/src/main/config.json delete mode 100644 ui/faceenroll/feature/faceSettingsPad/src/main/ets/default/common/DefaultConstants.ets delete mode 100644 ui/faceenroll/feature/faceSettingsPad/src/main/ets/default/pages/index.ets delete mode 100644 ui/faceenroll/feature/faceSettingsPad/src/main/resources/base/element/string.json delete mode 100644 ui/faceenroll/feature/faceSettingsPad/src/main/resources/base/media/back.png delete mode 100644 ui/faceenroll/feature/faceSettingsPad/src/main/resources/base/media/ic_settings_arrow.svg delete mode 100644 ui/faceenroll/feature/faceSettingsPad/src/main/resources/base/media/icon.png delete mode 100644 ui/faceenroll/feature/faceSettingsPad/src/main/resources/en_US/element/string.json delete mode 100644 ui/faceenroll/feature/faceSettingsPad/src/main/resources/zh_CN/element/string.json delete mode 100644 ui/faceenroll/product/pad/src/main/config.json delete mode 100644 ui/faceenroll/product/pad/src/main/ets/default/common/Log.ets delete mode 100644 ui/faceenroll/product/pad/src/main/ets/default/common/constant.ets delete mode 100644 ui/faceenroll/product/pad/src/main/ets/default/model_2D.ets delete mode 100644 ui/faceenroll/product/pad/src/main/ets/default/model_3D.ets delete mode 100644 ui/faceenroll/product/pad/src/main/ets/default/pages/aperture.ets delete mode 100644 ui/faceenroll/product/pad/src/main/ets/default/pages/declare.ets delete mode 100644 ui/faceenroll/product/pad/src/main/ets/default/pages/enroll_2D.ets delete mode 100644 ui/faceenroll/product/pad/src/main/ets/default/pages/enroll_3D.ets delete mode 100644 ui/faceenroll/product/pad/src/main/ets/default/pages/entryView.ets delete mode 100644 ui/faceenroll/product/pad/src/main/ets/default/pages/index.ets delete mode 100644 ui/faceenroll/product/pad/src/main/ets/default/pages/startViews_2D.ets delete mode 100644 ui/faceenroll/product/pad/src/main/ets/default/pages/startViews_3D.ets delete mode 100644 ui/faceenroll/product/pad/src/main/ets/default/pages/success.ets delete mode 100644 ui/faceenroll/product/pad/src/main/ets/default/pages/userAuth.ets delete mode 100644 ui/faceenroll/product/pad/src/main/ets/default/pages/userSettings.ets delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/element/color.json delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/element/float.json delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/element/string.json delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/media/aperture1.png delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/media/aperture2.png delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/media/aperture3.png delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/media/aperture4.png delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/media/aperture5.png delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/media/back.png delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/media/iPad.png delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/media/ic_settings_arrow.svg delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/media/icon.png delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/media/image.jpg delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/media/into_arrow.svg delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/media/pad.png delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/media/phone.svg delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/media/startImage1_3D.png delete mode 100644 ui/faceenroll/product/pad/src/main/resources/base/media/startImage2_3D.png delete mode 100644 ui/faceenroll/product/pad/src/main/resources/en_AS/element/string.json delete mode 100644 ui/faceenroll/product/pad/src/main/resources/zh_CN/element/string.json delete mode 100644 ui/faceenroll/product/phone/build.gradle delete mode 100644 ui/faceenroll/product/phone/src/main/ets/default/common/constant.ets delete mode 100644 ui/faceenroll/product/phone/src/main/ets/default/model_2D.ets delete mode 100644 ui/faceenroll/product/phone/src/main/ets/default/model_3D.ets delete mode 100644 ui/faceenroll/product/phone/src/main/ets/default/pages/aperture.ets delete mode 100644 ui/faceenroll/product/phone/src/main/ets/default/pages/enroll_2D.ets delete mode 100644 ui/faceenroll/product/phone/src/main/ets/default/pages/enroll_3D.ets delete mode 100644 ui/faceenroll/product/phone/src/main/ets/default/pages/entryView.ets delete mode 100644 ui/faceenroll/product/phone/src/main/ets/default/pages/index.ets delete mode 100644 ui/faceenroll/product/phone/src/main/ets/default/pages/startViews_2D.ets delete mode 100644 ui/faceenroll/product/phone/src/main/ets/default/pages/startViews_3D.ets delete mode 100644 ui/faceenroll/product/phone/src/main/ets/default/pages/success.ets delete mode 100644 ui/faceenroll/product/phone/src/main/ets/default/pages/userAuth.ets delete mode 100644 ui/faceenroll/product/phone/src/main/ets/default/pages/userSettings.ets delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/element/string.json delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/media/aperture1.png delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/media/aperture2.png delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/media/aperture3.png delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/media/aperture4.png delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/media/aperture5.png delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/media/back.png delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/media/ic_settings_arrow.svg delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/media/icon.png delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/media/image.jpg delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/media/into_arrow.svg delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/media/phone.svg delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/media/shelter.png delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/media/startImage1_3D.png delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/media/startImage2_3D.png delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/media/startImage_2D.png delete mode 100644 ui/faceenroll/product/phone/src/main/resources/base/media/success.png delete mode 100644 ui/faceenroll/settings.gradle diff --git a/ui/Settings_FaceAuth/.gitignore b/ui/Settings_FaceAuth/.gitignore new file mode 100644 index 0000000..fdc0c4a --- /dev/null +++ b/ui/Settings_FaceAuth/.gitignore @@ -0,0 +1,16 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +/entry/.preview +.cxx +/node_modules diff --git a/ui/Settings_FaceAuth/.idea/.gitignore b/ui/Settings_FaceAuth/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/ui/Settings_FaceAuth/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/ui/Settings_FaceAuth/.idea/compiler.xml b/ui/Settings_FaceAuth/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/ui/Settings_FaceAuth/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/ui/Settings_FaceAuth/.idea/gradle.xml b/ui/Settings_FaceAuth/.idea/gradle.xml new file mode 100644 index 0000000..b27c1ff --- /dev/null +++ b/ui/Settings_FaceAuth/.idea/gradle.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/ui/Settings_FaceAuth/.idea/jarRepositories.xml b/ui/Settings_FaceAuth/.idea/jarRepositories.xml new file mode 100644 index 0000000..19e238e --- /dev/null +++ b/ui/Settings_FaceAuth/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/ui/Settings_FaceAuth/.idea/misc.xml b/ui/Settings_FaceAuth/.idea/misc.xml new file mode 100644 index 0000000..58918f5 --- /dev/null +++ b/ui/Settings_FaceAuth/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/ui/Settings_FaceAuth/.idea/previewer/phone/phoneSettingConfig_MateX2.json b/ui/Settings_FaceAuth/.idea/previewer/phone/phoneSettingConfig_MateX2.json new file mode 100644 index 0000000..69beee7 --- /dev/null +++ b/ui/Settings_FaceAuth/.idea/previewer/phone/phoneSettingConfig_MateX2.json @@ -0,0 +1,25 @@ +{ + "setting": { + "1.0.1": { + "Language": { + "args": { + "Language": "zh_CN" + } + } + } + }, + "frontend": { + "1.0.0": { + "Resolution": { + "args": { + "Resolution": "360*780" + } + }, + "DeviceType": { + "args": { + "DeviceType": "phone" + } + } + } + } +} \ No newline at end of file diff --git a/ui/Settings_FaceAuth/.idea/previewer/phone/phoneSettingConfig_P40.json b/ui/Settings_FaceAuth/.idea/previewer/phone/phoneSettingConfig_P40.json new file mode 100644 index 0000000..69beee7 --- /dev/null +++ b/ui/Settings_FaceAuth/.idea/previewer/phone/phoneSettingConfig_P40.json @@ -0,0 +1,25 @@ +{ + "setting": { + "1.0.1": { + "Language": { + "args": { + "Language": "zh_CN" + } + } + } + }, + "frontend": { + "1.0.0": { + "Resolution": { + "args": { + "Resolution": "360*780" + } + }, + "DeviceType": { + "args": { + "DeviceType": "phone" + } + } + } + } +} \ No newline at end of file diff --git a/ui/Settings_FaceAuth/.idea/previewer/previewConfigV2.json b/ui/Settings_FaceAuth/.idea/previewer/previewConfigV2.json new file mode 100644 index 0000000..aef592d --- /dev/null +++ b/ui/Settings_FaceAuth/.idea/previewer/previewConfigV2.json @@ -0,0 +1,37 @@ +{ + "1.0.0": { + "LastPreviewDevice": {} + }, + "1.0.1": { + "profileList": [ + { + "id": "P40", + "deviceType": "phone", + "width": 1080, + "height": 2340, + "shape": "rect", + "dpi": 480, + "orientation": "portrait", + "language": "zh_CN", + "colorMode": "light" + }, + { + "id": "MateX2", + "deviceType": "phone", + "width": 2200, + "height": 2480, + "shape": "rect", + "dpi": 520, + "orientation": "portrait", + "language": "zh_CN", + "colorMode": "light" + } + ], + "runningProfileList": [ + "MateX2" + ], + "availableProfileList": [ + "P40" + ] + } +} \ No newline at end of file diff --git a/ui/Settings_FaceAuth/.idea/vcs.xml b/ui/Settings_FaceAuth/.idea/vcs.xml new file mode 100644 index 0000000..288b36b --- /dev/null +++ b/ui/Settings_FaceAuth/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/ui/faceenroll/build.gradle b/ui/Settings_FaceAuth/build.gradle similarity index 72% rename from ui/faceenroll/build.gradle rename to ui/Settings_FaceAuth/build.gradle index 1e889bb..8d7822b 100644 --- a/ui/faceenroll/build.gradle +++ b/ui/Settings_FaceAuth/build.gradle @@ -1,3 +1,4 @@ + /* * Copyright (c) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,40 +17,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 - defaultConfig { - compatibleSdkVersion 6 - } + compileSdkVersion 8 supportSystem "standard" } buildscript { repositories { maven { - url 'https://mirrors.huaweicloud.com/repository/maven/' + url 'https://repo.huaweicloud.com/repository/maven/' } maven { url 'https://developer.huawei.com/repo/' } - maven { - url 'http://repo.ark.tools.huawei.com/artifactory/maven-public/' - } - jcenter() } dependencies { - classpath 'com.huawei.ohos:hap:3.0.3.2' + classpath 'com.huawei.ohos:hap:3.0.5.2' + classpath 'com.huawei.ohos:decctest:1.2.7.2' } } allprojects { repositories { maven { - url 'https://mirrors.huaweicloud.com/repository/maven/' + url 'https://repo.huaweicloud.com/repository/maven/' } maven { url 'https://developer.huawei.com/repo/' } - jcenter() } } diff --git a/ui/Settings_FaceAuth/entry/.gitignore b/ui/Settings_FaceAuth/entry/.gitignore new file mode 100644 index 0000000..7d5b7a9 --- /dev/null +++ b/ui/Settings_FaceAuth/entry/.gitignore @@ -0,0 +1,2 @@ +/build +/node_modules diff --git a/ui/faceenroll/product/pad/build.gradle b/ui/Settings_FaceAuth/entry/build.gradle similarity index 86% rename from ui/faceenroll/product/pad/build.gradle rename to ui/Settings_FaceAuth/entry/build.gradle index 264827e..53aaded 100644 --- a/ui/faceenroll/product/pad/build.gradle +++ b/ui/Settings_FaceAuth/entry/build.gradle @@ -16,12 +16,10 @@ 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 + compileSdkVersion 8 defaultConfig { - compatibleSdkVersion 7 + compatibleSdkVersion 8 } - arkEnabled false - buildTypes { release { proguardOpt { @@ -30,9 +28,9 @@ ohos { } } } - } dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar', '*.har']) + testImplementation 'junit:junit:4.13.1' } - diff --git a/ui/Settings_FaceAuth/entry/proguard-rules.pro b/ui/Settings_FaceAuth/entry/proguard-rules.pro new file mode 100644 index 0000000..f7666e4 --- /dev/null +++ b/ui/Settings_FaceAuth/entry/proguard-rules.pro @@ -0,0 +1 @@ +# config module specific ProGuard rules here. \ No newline at end of file diff --git a/ui/faceenroll/product/phone/src/main/config.json b/ui/Settings_FaceAuth/entry/src/main/config.json similarity index 57% rename from ui/faceenroll/product/phone/src/main/config.json rename to ui/Settings_FaceAuth/entry/src/main/config.json index c66e027..fa182b9 100644 --- a/ui/faceenroll/product/phone/src/main/config.json +++ b/ui/Settings_FaceAuth/entry/src/main/config.json @@ -1,6 +1,6 @@ { "app": { - "bundleName": "com.ohos.faceEnroll", + "bundleName": "com.ohos.settings.faceauth", "vendor": "ohos", "version": { "code": 1000000, @@ -9,14 +9,14 @@ }, "deviceConfig": {}, "module": { - "package": "com.ohos.faceEnroll", + "package": "com.ohos.settings.faceauth", "name": ".MyApplication", "deviceType": [ "phone" ], "distro": { "deliveryWithInstall": true, - "moduleName": "phone", + "moduleName": "entry", "moduleType": "entry", "installationFree": true }, @@ -25,23 +25,19 @@ "skills": [ { "entities": [ - "entity.system.home", - "flag.home.intent.from.system" ], "actions": [ - "action.system.home", - "com.ohos.action.main" ] } ], "visible": true, - "name": "com.ohos.faceEnroll.MainAbility", + "name": ".enrollmentstartview", "icon": "$media:icon", - "description": "$string:mainability_description", - "label": "$string:app_name", + "description": "$string:description_enrollmentstartview", + "label": "$string:entry_enrollmentstartview", "type": "page", "launchType": "singleton", - "srcPath": "default", + "srcPath": "enrollmentstartview", "srcLanguage": "ets", "metaData": { "customizeData": [ @@ -52,6 +48,20 @@ } } ], + "reqPermissions": [ + { + "name": "ohos.permission.USE_USER_IDM" + }, + { + "name": "ohos.permission.MANAGE_USER_IDM" + }, + { + "name": "ohos.permission.ACCESS_USER_AUTH_INTERNAL" + }, + { + "name": "ohos.permission.ACCESS_PIN_AUTH" + } + ], "js": [ { "mode": { @@ -60,17 +70,12 @@ }, "pages": [ "pages/entryView", - "pages/userAuth", - "pages/userSettings", - "pages/index", - "pages/enroll_2D", - "pages/success", - "pages/enroll_3D", - "pages/declare", - "pages/startViews_2D", - "pages/startViews_3D" + "pages/faceConfig", + "pages/enrolling", + "pages/enrollDeclare", + "pages/enrollIntro" ], - "name": "default", + "name": ".enrollmentstartview", "window": { "designWidth": 720, "autoDesignWidth": false diff --git a/ui/faceenroll/product/phone/src/main/ets/default/app.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/app.ets similarity index 52% rename from ui/faceenroll/product/phone/src/main/ets/default/app.ets rename to ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/app.ets index ab5e2d8..8300b2c 100644 --- a/ui/faceenroll/product/phone/src/main/ets/default/app.ets +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/app.ets @@ -13,12 +13,25 @@ * limitations under the License. */ -export default { - onCreate() { - console.info('FaceEnroll entry Application onCreate') - }, - onDestroy() { - console.info('FaceEnroll entry Application onDestroy') - }, +import Log from './utils/log.ets' +import UserIDMModel from './model/userIDMModel.ets' +import CommonController from './controller/commonController.ets' -} +var TAG:string = 'App:' + +export default { + onCreate() { + Log.info(TAG, 'Application onCreate+') + Log.info(TAG, 'Application onCreate-') + }, + onDestroy() { + Log.info(TAG, 'Application onDestroy+') + UserIDMModel.destroy() + Log.info(TAG, 'Application onDestroy-') + }, + onHide() { + Log.info(TAG, 'Application onHide+, terminate ability') + CommonController.terminateAbility() + Log.info(TAG, 'Application onHide-') + } +} \ No newline at end of file diff --git a/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/component/backComponent.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/component/backComponent.ets new file mode 100644 index 0000000..dc826ca --- /dev/null +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/component/backComponent.ets @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Log from '../utils/log.ets' +import commonControler from '../controller/commonController.ets' +import Constants from '../config/constant.ets' + +@Preview +@Component +export default struct BackComponent { + private prevTag: string + private title: string = "" + private TAG : string = "BackComponent" + @State isTouch: boolean = false + + aboutToAppear() { + this.TAG = this.prevTag + "BackComp:" + } + + build() { + Row() { + Image($r('app.media.back_op')) + .height('50') + .width('50') + .borderRadius(15) + .backgroundColor(this.isTouch? "#E3E3E3": "#00000000") + .onClick(() => { + Log.info(this.TAG, 'back image onClick +') + commonControler.routeBack() + Log.info(this.TAG, 'back image onClick -') + }) + .margin({ + left: 15, + top: 5, + bottom: 5 + }) + .onTouch((event: TouchEvent) => { + if (event.type === TouchType.Down) { + this.isTouch = true; + } + if (event.type === TouchType.Up) { + this.isTouch = false; + } + }) + Text(this.title) + .fontSize(24) + .fontWeight(FontWeight.Bold) + .width('90%') + .maxLines(1) + .textOverflow({ overflow: TextOverflow.Ellipsis }) + .margin({ left: 15, right: 15 }); + }.width('100%') + .height(70) + .width("100%") + .alignItems(VerticalAlign.Center) + .align(Alignment.Start); + } +} \ No newline at end of file diff --git a/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/component/confirmDialog.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/component/confirmDialog.ets new file mode 100644 index 0000000..6279ab3 --- /dev/null +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/component/confirmDialog.ets @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Log from '../utils/log.ets' +import Constants from '../config/constant.ets' +import DefaultConstants from '../config/defaultConstant.ets' +import UserIDMModel from '../model/userIDMModel.ets' + +@CustomDialog +export default struct ConfirmDialog { + private TAG: string = "ConfirmDialog:" + private controller: CustomDialogController; + @Prop title: string + @Prop content: string + @Prop confirmText: string + @Prop cancelText: string + private confirmOperation: ()=>{} + + build() { + Column() { + Text(this.title) + .fontSize(DefaultConstants.OVERSIZE_FONT_SIZE) + .margin({ bottom: DefaultConstants.PADDING_20 }) + Text(this.content) + .fontSize(DefaultConstants.LARGE_FONT_SIZE) + .margin({ bottom: DefaultConstants.PADDING_16 }) + .margin({ left: -DefaultConstants.PADDING_10, bottom: DefaultConstants.PADDING_20 }) + + Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) { + Text(this.cancelText) + .fontColor($r('app.color.startView_color')) + .fontSize(DefaultConstants.LARGE_FONT_SIZE) + .onClick(() => { + Log.info(this.TAG, "click cancel+") + this.controller.close() + Log.info(this.TAG, "click cancel-") + }) + Divider() + .vertical(true) + .strokeWidth(DefaultConstants.DIVIDER) + .color(DefaultConstants.DARK_GREY_BACKGROUND_COLOR) + .height(DefaultConstants.PADDING_30) + Text(this.confirmText) + .fontColor(Color.Red) + .fontSize(DefaultConstants.LARGE_FONT_SIZE) + .onClick(() => { + Log.info(this.TAG, "click confirm+") + this.confirmOperation() + Log.info(this.TAG, "click confirm-") + this.controller.close() + }) + } + } + .width(DefaultConstants.TOTAL_WIDTH) + .borderRadius(DefaultConstants.BORDER_RADIUS) + .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) + .alignItems(HorizontalAlign.Start) + .padding({ + bottom: DefaultConstants.PADDING_30, + top: DefaultConstants.PADDING_20, + left: DefaultConstants.PADDING_30, + right: DefaultConstants.PADDING_30 + }) + } +} \ No newline at end of file diff --git a/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/config/config.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/config/config.ets new file mode 100644 index 0000000..3c4966a --- /dev/null +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/config/config.ets @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Log from '../utils/log.ets' +import deviceInfo from '@ohos.deviceInfo' +import display from '@ohos.display'; + +class Config { + private TAG: string = "Config:" + private deviceType : string = "tablet" + private nonAppBarDisplayHeight: number = 0 + private nonDisplayHeight: number = 0 + + constructor() { + Log.info(this.TAG, "constructor+") + display.getDefaultDisplay().then((display)=>{ + if (typeof display.height === "string") { + Log.info(this.TAG, "mock mode ") + this.deviceType = "tablet" + return + } + Log.info(this.TAG, "display height: " + display.height + + " display width: " + display.width) + if (display.height > display.width) { + this.deviceType = "phone" + } else { + this.deviceType = "tablet" + } + }) + Log.info(this.TAG, "constructor-") + } + + getDeviceType() : string { + return this.deviceType + } +} + +let config = new Config(); +export default config as Config \ No newline at end of file diff --git a/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/config/constant.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/config/constant.ets new file mode 100644 index 0000000..daf07c8 --- /dev/null +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/config/constant.ets @@ -0,0 +1,192 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default class Constants { + //code and errorCode + static CODE_RESULT = 1 + static CODE_CANCEL = 2 + static CODE_ACQUIRE = 3 + static ERROR_CODE_SUCCESS = 0 + static ERROR_CODE_FAIL = 1 + static ERROR_CODE_CANCEL = 2 + static ERROR_CODE_TIMEOUT = 4 + static ERROR_CODE_ALGORITHM_NOT_INIT = 5 + static ERROR_CODE_HAL_INVALID = 6 + static ERROR_CODE_OVER_MAX_FACES = 7 + static ERROR_CODE_INVALID_PARAMETERS = 9 + static ERROR_CODE_BUSY = 13 + static ERROR_CODE_ENROLL_HAS_REGISTERED = 16 + static ERROR_CODE_FACE_DETECTED = 38 + static ERROR_CODE_BAD_QUALITY = 4 + static ERROR_CODE_NOT_FOUND = 5 + static ERROR_CODE_TOO_SMALL = 6 + static ERROR_CODE_TOO_LARGE = 7 + static ERROR_CODE_OFFSET_LEFT = 8 + static ERROR_CODE_OFFSET_TOP = 9 + static ERROR_CODE_OFFSET_RIGHT = 10 + static ERROR_CODE_OFFSET_BOTTOM = 11 + static ERROR_CODE_LIVENESS_WARNING = 13 + static ERROR_CODE_LIVENESS_FAILURE = 14 + static ERROR_CODE_ROTATED_LEFT = 15 + static ERROR_CODE_RISE = 16 + static ERROR_CODE_ROTATED_RIGHT = 17 + static ERROR_CODE_DOWN = 18 + static ERROR_CODE_EYE_OCCLUSION = 21 + static ERROR_CODE_EYE_CLOSE = 22 + static ERROR_CODE_MOUTH_OCCLUSION = 23 + static ERROR_CODE_MULTI = 27 + static ERROR_CODE_BLUR = 28 + static ERROR_CODE_NOT_COMPLETE = 29 + static ERROR_CODE_DARKLIGHT = 30 + static ERROR_CODE_HIGHTLIGHT = 31 + static ERROR_CODE_HALF_SHADOW = 32 + static ERROR_CODE_HAS_REGISTERED = 37 + static ERROR_CODE_DARKPIC = 39 + static ERROR_CODE_ROTATE_TOP_RIGHT = 40 + static ERROR_CODE_ROTATE_TOP_LEFT = 41 + static ERROR_CODE_ROTATE_BOTTOM_RIGHT = 42 + static ERROR_CODE_ROTATE_BOTTOM_LEFT = 43 + static ERROR_CODE_OPEN_CAMERA_FAILED = 46 + static ERROR_CODE_PROGRESS_FIRST = 1004 + static ERROR_CODE_PROGRESS_SECOND = 1008 + static ERROR_CODE_PROGRESS_THIRD = 1012 + static PARAM_TOKEN = "check" + static FLAGS = 0 + static FACEID = 0 + static PREVIEWID = 2 + + //setTimeout + static TIMEOUT_100 = 100 + static TIMEOUT_200 = 200 + static TIMEOUT_300 = 300 + static TIMEOUT_400 = 400 + static TIMEOUT_500 = 500 + static TIMEOUT_600 = 600 + static TIMEOUT_700 = 700 + static TIMEOUT_800 = 800 + static TIMEOUT_900 = 900 + static TIMEOUT_1000 = 1000 + static TIMEOUT_1100 = 1100 + static TIMEOUT_1200 = 1200 + static TIMEOUT_1300 = 1300 + static TIMEOUT_1400 = 1400 + static TIMEOUT_1500 = 1500 + static TIMEOUT_1600 = 1600 + static TIMEOUT_1700 = 1700 + static TIMEOUT_1800 = 1800 + static TIMEOUT_1900 = 1900 + static TIMEOUT_2000 = 2000 + static TIMEOUT_3000 = 3000 + + //UI + static SHELTER_ANIMATOR = 1000 + static PROGRESS_START = 0 + static PROGRESS_TOTAL = 100 + static FONT_WEIGHT = 500 + static SHELTER_START_WIDTH = 1100 + static SHELTER_END_WIDTH = '100%' + static CENTER_HEIGHT = '620px' + static SHELTER_START_HEIGHT = '2000px' + static SHELTER_END_HEIGHT = '640px' + static SHELTER_3D_END_HEIGHT = '640px' + static PROGRESS_VALUE_FIRST = 30 + static PROGRESS_VALUE_SECOND = 60 + static PROGRESS_VALUE_THIRD = 100 + static SPACE = 20 + static INITIAL_INDEX = 0 + static HEIGHT_LIST = 60 + static FONTSIZE_16 = 16 + static BORDER_RADIUS = 10 + static STROKE_WIDTH = 2 + static START_MARGIN = 20 + static END_MARGIN = 20 + static SHOW_START_VIEWS_3D = '3D' + static SHOW_START_VIEWS_2D = '2D' + static LIST_PADDING = 5 + static BLUR_START = 0 + static BLUR_END = 40 + static CENTER_POSITION_Y = 5 + static BUTTON_POSITION = '92%' + static ENROLL_INFO_POSITION = '918px' + static ENROLL_INFO_WIDTH = '90%' + static CHECKBOX_POSITION_X = '5%' + static CHECKBOX_POSITION_Y = '85%' + static CHECKBOX_TEXT_POSITION_X = '18%' + static CHECKBOX_TEXT_POSITION_Y = '87%' + + static PROGRESS_WIDTH = '460px' + static BACK_WIDTH = '136px' + static BACK_HEIGHT = '110px' + static TITLE_FONT_SIZE = '48px' + static TITLE_MARGIN = '24px' + static TITLE_ENROLLING_MARGIN = '140px' + static IMAGE_MARGIN = '96px' + static IMAGE_3D_MARGIN = '48px' + static FONT_SIZE = '28px' + static SMALL_TITLE_FONT_SIZE = '36px' + static CONTENT1_MARGIN = '16px' + static CONTENT2_MARGIN = '8px' + static BUTTON_FONT_SIZE = '32px' + static BUTTON_WIDTH = '384px' + static BUTTON_HEIGHT = '80px' + static IMAGE_2D_HEIGHT = '480px' + static IMAGE_3D_WIDTH = '512px' + static ERROR_CODE_INFO_SIZE = '32px' + static ENROLL_CENTER_POSITION_Y = '240px' + static SUCCESS_WIDTH = '204px' + static CHECKBOX_SIZE = '60px' + static APERTURE1_WIDTH = '266px' + static APERTURE2_WIDTH = '264px' + static APERTURE34_WIDTH = '284px' + static APERTURE5_WIDTH = '466px' + + //PROGRESS + static PROGRESS_VALUE_5 = 5 + static PROGRESS_VALUE_10 = 10 + static PROGRESS_VALUE_15 = 15 + static PROGRESS_VALUE_20 = 20 + static PROGRESS_VALUE_25 = 25 + static PROGRESS_VALUE_30 = 30 + static PROGRESS_VALUE_35 = 35 + static PROGRESS_VALUE_40 = 40 + static PROGRESS_VALUE_45 = 45 + static PROGRESS_VALUE_50 = 50 + static PROGRESS_VALUE_55 = 55 + static PROGRESS_VALUE_60 = 60 + static PROGRESS_VALUE_65 = 65 + static PROGRESS_VALUE_70 = 70 + static PROGRESS_VALUE_75 = 75 + static PROGRESS_VALUE_80 = 80 + static PROGRESS_VALUE_85 = 85 + static PROGRESS_VALUE_90 = 90 + static PROGRESS_VALUE_95 = 95 + static PROGRESS_VALUE_100 = 100 + + static DECLARE_WIDTH = '90%' + static DECLARE_MAX_WIDTH = '100%' + static DECLARE_TITLE_FONT_SIZE = 24 + static DECLARE_SECONDARY_TITLE_FONT_SIZE = 23 + static DECLARE_TEXT_FONT_SIZE = 22 + static DECLARE_ITEM_MARGIN_BOTTOM = 10 + static DECLARE_TITLE_MARGIN_TOP = 20 + static DECLARE_TITLE_MARGIN_BOTTOM = 20 + static DECLARE_TEXT_LINE_HEIGHT = 33 + static DECLARE_SCROLL_BAR_WIDTH = 0 + static DECLARE_BACKGROUND_COLOR = "#F2F3F5" + static DECLARE_TITLE_2 = "2." + static DECLARE_TITLE_3 = "3." + static DECLARE_TITLE_4 = "4." + static DECLARE_TITLE_5 = "5." +} \ No newline at end of file diff --git a/ui/faceenroll/feature/faceSettings/src/main/ets/default/common/DefaultConstants.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/config/defaultConstant.ets similarity index 99% rename from ui/faceenroll/feature/faceSettings/src/main/ets/default/common/DefaultConstants.ets rename to ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/config/defaultConstant.ets index e24c9c7..9900707 100644 --- a/ui/faceenroll/feature/faceSettings/src/main/ets/default/common/DefaultConstants.ets +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/config/defaultConstant.ets @@ -12,6 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + export default class StyleConstants { public static DEFAULT_FONT_COLOR: string = '#ffffff' public static TOTAL_WIDTH: string = '93%'; diff --git a/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/controller/commonController.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/controller/commonController.ets new file mode 100644 index 0000000..8eca5f1 --- /dev/null +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/controller/commonController.ets @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Log from '../utils/log.ets' +import router from '@system.router'; +import FeatureAbility from '@ohos.ability.featureAbility'; +import Config from '../config/config.ets' +import UserIDMModel from '../model/userIDMModel.ets' + +class CommonController { + private TAG: string = "CommonController:" + + async routeBack() { + if (router.getLength() > 1) { + Log.info(this.TAG, 'router back: back+') + router.back() + Log.info(this.TAG, 'router back: back-') + } else { + Log.info(this.TAG, 'router back: terminate ability+') + this.terminateAbility() + Log.info(this.TAG, 'router back: terminate ability-') + } + } + + async terminateAbility() { + Log.info(this.TAG, 'terminate ability+') + UserIDMModel.destroy() + FeatureAbility.terminateAbility() + Log.info(this.TAG, 'terminate ability-') + } + + async sleepMS(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); + } + + getDialogAlignment():DialogAlignment { + if (Config.getDeviceType() === 'phone') { + return DialogAlignment.Bottom + } else { + return DialogAlignment.Center + } + } + + getHeightPercentageBegin(width: number, height: number) :string { + var a = width / 2 + var b = height / 2 + var R = Math.sqrt(a * a + b * b) + var H = R / 0.3 + var HPercentage = "" + Math.trunc(H * 166 / height) + '%' + return HPercentage + } + + setNonAppBarDisplaySize(nonAppBarDisplayWidth: number, nonAppBarDisplayHeight: number) { + if (Config.getDeviceType() != 'phone') { + return; + } + AppStorage.SetOrCreate('enrollImageHeight', nonAppBarDisplayHeight / 2); + AppStorage.SetOrCreate('enrollImageWidth', nonAppBarDisplayWidth); + // when percentage is 166%, circular diameter == height + AppStorage.SetOrCreate('stackShelterHeightBegin', + this.getHeightPercentageBegin(nonAppBarDisplayWidth, nonAppBarDisplayHeight / 2)); + AppStorage.SetOrCreate('stackShelterHeightEnd', "133%"); // 166 * 0.8 + AppStorage.SetOrCreate('stackRingHeightPercentage', "85%"); + } + + setDisplaySize(displayWidth: number, displayHeight: number) { + if (Config.getDeviceType() != 'tablet') { + return; + } + var sideLength = Math.min(displayWidth, displayHeight / 2) * 0.8 + AppStorage.SetOrCreate('enrollImageHeight', sideLength); + AppStorage.SetOrCreate('enrollImageWidth', sideLength); + AppStorage.SetOrCreate('stackShelterHeightBegin', + this.getHeightPercentageBegin(sideLength, sideLength)); + AppStorage.SetOrCreate('stackShelterHeightEnd', "146%"); // 166 * 0.88 + AppStorage.SetOrCreate('stackRingHeightPercentage', "94%"); + } +} + +let commonController = new CommonController(); +export default commonController as CommonController \ No newline at end of file diff --git a/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/controller/enrollingController.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/controller/enrollingController.ets new file mode 100644 index 0000000..1cde268 --- /dev/null +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/controller/enrollingController.ets @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Log from '../utils/log.ets' +import router from '@system.router'; +import Config from '../config/config.ets' +import CommonController from '../controller/commonController.ets' +import UserIDMModel from '../model/userIDMModel.ets' + +class EnrollingController { + private TAG: string = "EnrollingController:" + + constructor() { + Log.info(this.TAG, 'constructor+') + Log.info(this.TAG, 'constructor-') + } + + init() { + Log.info(this.TAG, 'init+') + AppStorage.Set('stackVideoVisibility', Visibility.Visible); + AppStorage.Set('stackShelterVisibility', Visibility.Hidden); + AppStorage.Set('stackProgressVisibility', Visibility.Hidden); + AppStorage.Set('stackSuccessVisibility', Visibility.Hidden); + AppStorage.Set('enrollTipVisibility', Visibility.Visible); + AppStorage.Set('enrollButtonVisibility', Visibility.Hidden); + + AppStorage.Set('stackProgressValue', 0); + AppStorage.Set('stackShelterHeight', AppStorage.Get('stackShelterHeightBegin')); + AppStorage.Set('enrollTip', ''); + AppStorage.Set('stackVideoBlurRadius', 0); + + AppStorage.Set('enrollStatus', $r('app.string.enrolling')); + + UserIDMModel.setOnAcquireCallback(this.onAcquire.bind(this)) + UserIDMModel.enrollFace().then(this.processResult.bind(this)) + Log.info(this.TAG, 'init-') + } + + async processResult(result : number) { + await this.faceDetected() + await this.enrollProcessing() + if (result == 0) { + await this.enrollSuccess() + } else { + await this.enrollFail() + } + } + + async onAcquire(result: number) { + Log.info(this.TAG, 'onAcuquire+ result: ' + result) + if (result === 25) { + Log.info(this.TAG, 'onAcuquire face detected+') + this.faceDetected() + Log.info(this.TAG, 'onAcuquire face detected-') + } + Log.info(this.TAG, 'onAcuquire-') + } + + async faceDetected() { + Log.info(this.TAG, 'faceDetected+') + AppStorage.Set('stackVideoVisibility', Visibility.Visible); + AppStorage.Set('stackShelterVisibility', Visibility.Visible); + AppStorage.Set('stackProgressVisibility', Visibility.Hidden); + AppStorage.Set('stackSuccessVisibility', Visibility.Hidden); + AppStorage.Set('enrollTipVisibility', Visibility.Visible); + AppStorage.Set('enrollButtonVisibility', Visibility.Hidden); + + AppStorage.Set('stackShelterHeight', AppStorage.Get('stackShelterHeightEnd')); + await CommonController.sleepMS(2000) + Log.info(this.TAG, 'faceDetected-') + } + + async enrollProcessing() { + Log.info(this.TAG, 'enrollProcessing+') + AppStorage.Set('stackVideoVisibility', Visibility.Visible); + AppStorage.Set('stackShelterVisibility', Visibility.Visible); + AppStorage.Set('stackProgressVisibility', Visibility.Visible); + AppStorage.Set('stackSuccessVisibility', Visibility.Hidden); + AppStorage.Set('enrollTipVisibility', Visibility.Hidden); + AppStorage.Set('enrollButtonVisibility', Visibility.Hidden); + + for (let i=0; i <= 100; i+=1) { + await CommonController.sleepMS(30) + AppStorage.Set('stackProgressValue', i); + } + + Log.info(this.TAG, 'enrollProcessing-') + } + + async enrollSuccess() { + Log.info(this.TAG, 'enrollSuccess+') + AppStorage.Set('stackVideoVisibility', Visibility.Hidden); + AppStorage.Set('stackShelterVisibility', Visibility.Hidden); + AppStorage.Set('stackProgressVisibility', Visibility.Hidden); + AppStorage.Set('stackSuccessVisibility', Visibility.Visible); + AppStorage.Set('enrollTipVisibility', Visibility.Hidden); + AppStorage.Set('enrollButtonVisibility', Visibility.Hidden); + + AppStorage.Set('enrollStatus', $r('app.string.enroll_success')); + await CommonController.sleepMS(3000) + router.replace({uri: 'pages/faceConfig'}) + Log.info(this.TAG, 'enrollSuccess-') + } + + async enrollFail() { + Log.info(this.TAG, 'enrollFail+') + AppStorage.Set('stackVideoVisibility', Visibility.Visible); + AppStorage.Set('stackShelterVisibility', Visibility.Visible); + AppStorage.Set('stackProgressVisibility', Visibility.Visible); + AppStorage.Set('stackSuccessVisibility', Visibility.Hidden); + AppStorage.Set('enrollTipVisibility', Visibility.Visible); + AppStorage.Set('enrollButtonVisibility', Visibility.Visible); + + AppStorage.Set('enrollStatus', $r('app.string.enrolling_fail')); + AppStorage.Set('enrollTip', $r('app.string.enroll_info_fail')) + AppStorage.Set('stackVideoBlurRadius', 30); + AppStorage.Set('stackProgressValue', 0); + + Log.info(this.TAG, 'enrollFail-') + } +} + +let enrollingController = new EnrollingController(); +export default enrollingController as EnrollingController \ No newline at end of file diff --git a/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/controller/entryViewController.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/controller/entryViewController.ets new file mode 100644 index 0000000..7303ff4 --- /dev/null +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/controller/entryViewController.ets @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Log from '../utils/log.ets' +import UserAuthModel from '../model/userAuthModel.ets' +import UserIDMModel from '../model/userIDMModel.ets' +import router from '@system.router'; + +class EntryViewController { + private TAG: string = "EntryViewController" + + constructor() { + Log.info(this.TAG, "constructor+") + UserIDMModel.updateFaceInfo() + Log.info(this.TAG, "constructor-") + } + + async doPINAuth() { + try { + Log.info(this.TAG, "doPINAuth in") + let challenge = await UserIDMModel.getChallenge() + Log.info(this.TAG, "get challenge " + JSON.stringify(challenge) ) + let token = await UserAuthModel.authPin(challenge) + Log.info(this.TAG, "authPin result " + JSON.stringify(token)) + if (token == null) { + Log.info(this.TAG, "authPin fail ") + throw 1 + } + UserIDMModel.setToken(token) + Log.info(this.TAG, "set token ok") + } catch(err) { + Log.info(this.TAG, "exception " + JSON.stringify(err)) + Log.info(this.TAG, "doPINAuth -") + throw 1 + } + if (UserIDMModel.getFaceNum() == 0) { + Log.info(this.TAG, "route to enrollIntro") + router.replace({uri: 'pages/enrollIntro'}) + } else { + Log.info(this.TAG, "route to faceConfig") + router.replace({uri: 'pages/faceConfig'}) + } + + Promise.resolve(0) + Log.info(this.TAG, "doPINAuth -") + } +} + +let entryViewController = new EntryViewController(); +export default entryViewController as EntryViewController \ No newline at end of file diff --git a/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/controller/faceConfigController.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/controller/faceConfigController.ets new file mode 100644 index 0000000..525f8bc --- /dev/null +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/controller/faceConfigController.ets @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Log from '../utils/log.ets' +import UserAuthModel from '../model/userAuthModel.ets' +import UserIDMModel from '../model/userIDMModel.ets' +import router from '@system.router'; +import CommonController from '../controller/commonController.ets' + +class FaceConfigController { + private TAG: string = "FaceConfigController:" + + constructor() { + Log.info(this.TAG, "constructor+") + Log.info(this.TAG, "constructor-") + } + + deleteFace() { + Log.info(this.TAG, "deleteFace+") + UserIDMModel.deleteFace().then((result)=>{ + Log.info(this.TAG, "deleteFace result: " + result) + if (result == 0) { + Log.info(this.TAG, "deleteFace routeBack+") + CommonController.routeBack() + Log.info(this.TAG, "deleteFace routerBack-") + } else { + Log.info(this.TAG, "deleteFace fail") + } + }).catch(()=>{ + Log.info(this.TAG, "deleteFace exception") + CommonController.routeBack() + }) + setTimeout(()=>{CommonController.routeBack()}, 500) + + Log.info(this.TAG, "deleteFace-") + } +} + +let faceConfigController = new FaceConfigController(); +export default faceConfigController as FaceConfigController \ No newline at end of file diff --git a/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/model/userAuthModel.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/model/userAuthModel.ets new file mode 100644 index 0000000..d49d030 --- /dev/null +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/model/userAuthModel.ets @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Log from '../utils/log.ets' +import CommonController from '../controller/commonController.ets' +import account_osAccount from '@ohos.account.osAccount'; + +class UserAuthModel { + private TAG: string = "UserAuthModel" + private pinAuthManger : any + private userAuthManager : any + + constructor() { + Log.info(this.TAG, "constructor+") + this.pinAuthManger = new account_osAccount.PINAuth() + this.userAuthManager = new account_osAccount.UserAuth() + Log.info(this.TAG, "constructor-") + } + + async authPin(challenge: Uint8Array):Promise { + Log.info(this.TAG, "auth Pin+") + this.pinAuthManger.registerInputer({ + onGetData: (AuthSubType, IInputData) => { + Log.info(this.TAG, 'FaceEnroll pin.registerInputer start') + IInputData.onSetData(10000, new Uint8Array([ 49, 50, 51, 52, 53, 54 ])) + } + }); + + var ret = new Promise((resolve)=> { + this.userAuthManager.auth(challenge, 1, 10000, { + onResult: (result, extraInfo) => { + Log.info(this.TAG, 'authPin onResult: ' + result + ' extraInfo: ' + JSON.stringify(extraInfo)); + this.pinAuthManger.unregisterInputer(); + if ((result == 0) && extraInfo.token && (Object.keys(extraInfo.token).length > 0) ) { + resolve(extraInfo.token); + Log.info(this.TAG, 'authPin success'); + setTimeout(()=>{CommonController.terminateAbility()}, 2 * 60 * 1000) + } else { + Log.error(this.TAG, 'authPin fail'); + throw 1 + } + } + }) + }) + Log.info(this.TAG, "auth Pin-") + return ret + } +} + +let userAuthModel = new UserAuthModel(); +export default userAuthModel as UserAuthModel \ No newline at end of file diff --git a/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/model/userIDMModel.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/model/userIDMModel.ets new file mode 100644 index 0000000..a3aadbe --- /dev/null +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/model/userIDMModel.ets @@ -0,0 +1,152 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Log from '../utils/log.ets' +import CommonController from '../controller/commonController.ets' +import account_osAccount from '@ohos.account.osAccount'; + +class UserIDMModel { + private TAG: string = "UserIDMModel" + private userIdentityManager: any + private challenge: Uint8Array + private token: Uint8Array + private credentialId: Uint8Array + private faceNumber: number = 0 + private onAcquireCallback : (number)=>{} + + constructor() { + Log.info(this.TAG, "constructor+") + this.userIdentityManager = new account_osAccount.UserIdentityManager() + Log.info(this.TAG, "constructor-") + } + + destroy() { + Log.info(this.TAG, "destroy+") + this.userIdentityManager.closeSession() + Log.info(this.TAG, "destroy-") + } + + async getChallenge() { + return new Promise((resolve)=> { + this.userIdentityManager.openSession((data) => { + resolve(data) + }) + }) + } + + uin8Array2String(inArray: Uint8Array): string { + return JSON.stringify(inArray) + } + + string2Uint8Array(inString: string): Uint8Array { + let buffer = [] + let parsed:object = JSON.parse(inString) + for (const key in Object.keys(parsed)) { + buffer.push(parsed[key]) + } + let token = new Uint8Array(buffer) + return token + } + + setToken(token: Uint8Array) { + let tokenStr = this.uin8Array2String(token); + AppStorage.SetOrCreate("UserIDM_Token", tokenStr) + Log.info(this.TAG, "setToken ok " + JSON.stringify(token)) + } + + getToken() : Uint8Array { + var tokenStr = AppStorage.Get("UserIDM_Token") + let token = this.string2Uint8Array(tokenStr) + Log.info(this.TAG, "getToken ok " + JSON.stringify(token)) + return token + } + + setCredentialId(credId: Uint8Array) { + let credIdStr = this.uin8Array2String(credId); + AppStorage.SetOrCreate("UserIDM_CredId", credIdStr) + Log.info(this.TAG, "setCredentialId ok " + JSON.stringify(credId)) + } + + getCredentialId() : Uint8Array { + var credIdStr = AppStorage.Get("UserIDM_CredId") + let credId = this.string2Uint8Array(credIdStr) + Log.info(this.TAG, "getCredentialId ok " + JSON.stringify(credId)) + return credId + } + + updateFaceInfo() { + this.userIdentityManager.getAuthInfo(2).then((data) => { + Log.info(this.TAG, 'getAuthInfo length ' + data.length) + AppStorage.SetOrCreate("UserIDM_FaceNum", data.length); + if (data.length > 0) { + this.setCredentialId(data[0].credentialId); + } + }); + } + + getFaceNum(): number { + return AppStorage.Get("UserIDM_FaceNum"); + } + + setOnAcquireCallback(onAcquireCallback: (result: number) => any) { + this.onAcquireCallback = onAcquireCallback + } + + async enrollFace() { + Log.info(this.TAG, "enrollFace+") + let localToken = this.getToken() + return new Promise((resolve)=> { + this.userIdentityManager.addCredential({ + credType: 2, + credSubType: 10000, + token: localToken, + }, { + onResult: (result, extraInfo) => { + Log.info(this.TAG, "enrollFace onResult+") + Log.info(this.TAG, 'FaceEnroll face.addCredential onResult ' + result) + if (result == 0) { + this.setCredentialId(extraInfo.credentialId) + this.updateFaceInfo() + } + Log.info(this.TAG, "enrollFace onResult-") + resolve(result) + } + }) + }) + } + + async deleteFace() { + Log.info(this.TAG, "deleteFace+") + if (this.credentialId === null) { + Log.info(this.TAG, "no credential to delete") + return 0 + } + + let localToken = this.getToken() + let credId = this.getCredentialId() + return new Promise((resolve)=> { + this.userIdentityManager.delCred(credId, localToken), { + onResult: (result, extraInfo) => { + Log.info(this.TAG, 'FaceEnroll face.delete onResult result = ' + result); + this.updateFaceInfo() + resolve(result) + } + } + }) + } +} + +let userIDMModel = new UserIDMModel(); +export default userIDMModel as UserIDMModel \ No newline at end of file diff --git a/ui/faceenroll/product/phone/src/main/ets/default/pages/declare.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/enrollDeclare.ets similarity index 88% rename from ui/faceenroll/product/phone/src/main/ets/default/pages/declare.ets rename to ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/enrollDeclare.ets index 8e5080f..086325a 100644 --- a/ui/faceenroll/product/phone/src/main/ets/default/pages/declare.ets +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/enrollDeclare.ets @@ -13,34 +13,23 @@ * limitations under the License. */ -import Constants from '../common/constant.ets'; -import router from '@system.router'; +import Constants from '../config/constant.ets' +import BackComponent from '../component/backComponent.ets' +import Log from '../utils/log.ets' +import CommonController from '../controller/commonController.ets' @Entry @Component -export default struct Declare { - Scroll: Scroller = new Scroller(); - pattern: string = "2D"; +export default struct EnrollDeclare { + private pattern: string = "2D"; + private TAG: string = "EnrollDeclare:" build() { Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { - Scroll(this.Scroll) { - Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) { - Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Start }) { - Image($r('app.media.back')) - .width(Constants.BACK_WIDTH) - .height(Constants.BACK_HEIGHT) - .onClick(() => { - router.back(); - }) - - Text(this.pattern == "2D" ? $r('app.string.face_guide_2d_announce_link') : $r("app.string.face_guide_3d_announce_link")) - .fontSize(Constants.DECLARE_TITLE_FONT_SIZE) - .fontWeight(FontWeight.Bold) - } - .margin({ top: $r('app.float.back_margin') }) - - Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) { + BackComponent({ prevTag:this.TAG, title: $r('app.string.face_guide_2d_announce_link' )}) + Scroll() { + Column() { + Column() { Text($r("app.string.face_feature_desc")) .fontSize(Constants.DECLARE_SECONDARY_TITLE_FONT_SIZE) .width(Constants.DECLARE_MAX_WIDTH) @@ -179,9 +168,6 @@ export default struct Declare { Span($r("app.string.face_recognize_annouce_message_14_3")).fontSize(Constants.DECLARE_TEXT_FONT_SIZE) .fontWeight(FontWeight.Bold) Span($r("app.string.face_recognize_annouce_message_15_2")).fontSize(Constants.DECLARE_TEXT_FONT_SIZE) - Span($r("app.string.face_recognize_annouce_message_15_3")).fontSize(Constants.DECLARE_TEXT_FONT_SIZE) - .fontWeight(FontWeight.Bold) - Span($r("app.string.face_recognize_annouce_message_15_4")).fontSize(Constants.DECLARE_TEXT_FONT_SIZE) } .width(Constants.DECLARE_MAX_WIDTH) .textAlign(TextAlign.Start) @@ -196,6 +182,11 @@ export default struct Declare { .backgroundColor(Constants.DECLARE_BACKGROUND_COLOR) .width(Constants.DECLARE_MAX_WIDTH) } -} - + onBackPress(): boolean { + Log.info(this.TAG, 'onBackPress+') + CommonController.routeBack() + Log.info(this.TAG, 'onBackPress-') + return true + } +} \ No newline at end of file diff --git a/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/enrollIntro.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/enrollIntro.ets new file mode 100644 index 0000000..5cb9aa9 --- /dev/null +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/enrollIntro.ets @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import router from '@system.router'; +import BackComponent from '../component/backComponent.ets' +import Log from '../utils/log.ets' +import CommonController from '../controller/commonController.ets' +import Constants from '../config/constant.ets' +import Config from '../config/config.ets' + +@Entry +@Component +struct EnrollIntro { + @State TAG: string = "EnrollIntro:" + @StorageLink('enrollImageHeight') enrollImageHeight: number = 0 + @StorageLink('enrollImageWidth') enrollImageWidth: number = 0 + + build() { + Column() { + BackComponent({prevTag:this.TAG}) + + Column() { + Column() { + Scroll() { + Column() { + Text($r('app.string.face_checker')) + .fontSize(Constants.TITLE_FONT_SIZE) + .fontWeight(FontWeight.Bold) + .margin({ + bottom: "20" + }) + Image($r('app.media.startImage_2D')) + .objectFit(ImageFit.Contain) + .width("1000%") + .height(this.enrollImageHeight) + Column() { + Text($r('app.string.enroll_face_guide_title')) + .fontSize(Constants.SMALL_TITLE_FONT_SIZE) + .fontWeight(Constants.FONT_WEIGHT) + .textAlign(TextAlign.Center) + + Text($r('app.string.face_guide_2d_way')) + .fontSize(Constants.FONT_SIZE) + .fontColor($r('app.color.font_color')) + .textAlign(TextAlign.Center) + .margin({ top: Constants.CONTENT1_MARGIN }) + + Text() { + Span($r('app.string.face_guide_2d_announce')) + .fontColor($r('app.color.font_color')) + .textCase(TextCase.UpperCase) + .fontSize(Constants.FONT_SIZE) + Span($r('app.string.face_guide_2d_announce_link')) + .textCase(TextCase.UpperCase) + .fontSize(Constants.FONT_SIZE) + .fontColor($r('app.color.startView_color')) + .onClick(() => { + router.push({ uri: 'pages/enrollDeclare' }) + }) + } + .margin({ top: Constants.CONTENT2_MARGIN }) + .textAlign(TextAlign.Center) + } + .width(Constants.ENROLL_INFO_WIDTH) + .margin({ + top: Constants.IMAGE_MARGIN, + }) + } + }.scrollable(ScrollDirection.Vertical).scrollBarColor(Color.Gray).scrollBarWidth(30) + }.width('100%').flexGrow(1) + + Flex({ justifyContent: FlexAlign.Center }) { + Button({ type: ButtonType.Capsule, stateEffect: true }) { + Text($r('app.string.face_recognitin_guide')).fontSize(Constants.BUTTON_FONT_SIZE).fontColor(0xffffff) + } + .backgroundColor($r('app.color.startView_color')) + .width(Constants.BUTTON_WIDTH) + .height(Constants.BUTTON_HEIGHT) + .onClick(() => { + router.replace({ uri: 'pages/enrolling' }) + }) + .margin({ + top: "24", + bottom: "24" + }) + } + }.width("100%").height("100%") + .constraintSize({ + maxWidth: '720' + }) + .onAreaChange((_, newArea) => { + Log.info(this.TAG, "new non app bar area :" + JSON.stringify(newArea)) + CommonController.setNonAppBarDisplaySize(Number(newArea.width), Number(newArea.height)) + Log.info(this.TAG, "non app ba aboutToAppear- w: " + newArea.width + " h: " + newArea.height) + }) + } + .width('100%') + .height('100%') + .onAreaChange((_, newArea) => { + Log.info(this.TAG, "new display area :" + JSON.stringify(newArea)) + CommonController.setDisplaySize(Number(newArea.width), Number(newArea.height)) + Log.info(this.TAG, "aboutToAppear- w: " + newArea.width + " h: " + newArea.height) + }) + } + + onBackPress(): boolean { + Log.info(this.TAG, 'onBackPress+') + CommonController.routeBack() + Log.info(this.TAG, 'onBackPress-') + return true + } +} \ No newline at end of file diff --git a/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/enrolling.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/enrolling.ets new file mode 100644 index 0000000..b6e156b --- /dev/null +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/enrolling.ets @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import router from '@system.router'; +import BackComponent from '../component/backComponent.ets' +import Log from '../utils/log.ets' +import CommonController from '../controller/commonController.ets' +import Constants from '../config/constant.ets' +import EnrollingController from '../controller/enrollingController.ets' + +@Entry +@Component +struct Enrolling { + private TAG: string = "Enrolling:" + @StorageLink('enrollStatus') enrollStatus: string = "" + @StorageLink('stackVideoVisibility') stackVideoVisibility: Visibility = Visibility.Visible + @StorageLink('stackVideoBlurRadius') stackVideoBlurRadius: number = 0 + @StorageLink('stackShelterVisibility') stackShelterVisibility: Visibility = Visibility.Visible + @StorageLink('stackShelterHeight') stackShelterHeight : string = "" + @StorageLink('stackProgressVisibility') stackProgressVisibility: Visibility = Visibility.Hidden + @StorageLink('stackProgressValue') stackProgressValue: number = 0 + @StorageLink('stackSuccessVisibility') stackSuccessVisibility: Visibility = Visibility.Hidden + @StorageLink('enrollTip') enrollTip: string = "" + @StorageLink('enrollTipVisibility') enrollTipVisibility: Visibility = Visibility.Hidden + @StorageLink('enrollButtonVisibility') enrollButtonVisibility: Visibility = Visibility.Hidden + @StorageLink('enrollImageHeight') enrollImageHeight: number = 0 + @StorageLink('enrollImageWidth') enrollImageWidth: number = 0 + @StorageLink('stackRingHeightPercentage') stackRingHeightPercentage: string = "" + + aboutToAppear() { + Log.info(this.TAG, "aboutToAppear+") + EnrollingController.init() + Log.info(this.TAG, "aboutToAppear-") + } + + build() { + Column() { + BackComponent({prevTag:this.TAG}) + Text(this.enrollStatus) + .fontSize(Constants.TITLE_FONT_SIZE) + .fontWeight(FontWeight.Bold) + .margin({ + bottom: "20" + }) + Stack() { + // to be replace by XComp + Rect() + .visibility(this.stackVideoVisibility) + .blur(this.stackVideoBlurRadius) + .height("500%") + .width("500%") + Image($r('app.media.shelter')) + .objectFit(ImageFit.Contain) + .height(this.stackShelterHeight) + .width('1000%') + .clip(true) + .markAnchor({ x: '50%', y: '50%' }) + .position({ x: '50%', y: '50%' }) + .animation({ duration: 2000, curve: Curve.Linear }) + .visibility(this.stackShelterVisibility) + Progress({ value: Constants.PROGRESS_START, total: Constants.PROGRESS_TOTAL, style: ProgressStyle.Ring }) + .value(this.stackProgressValue) + .height(this.stackRingHeightPercentage) + .color($r('app.color.startView_color')) + .visibility(this.stackProgressVisibility) + .markAnchor({ x: '50%', y: '50%' }) + .position({ x: '50%', y: '50%' }) + Image($r('app.media.success')) + .objectFit(ImageFit.Contain) + .height('30%') + .width('100%') + .visibility(this.stackSuccessVisibility) + } + .height(this.enrollImageHeight) + .width(this.enrollImageWidth) + .clip(true) + Blank() + Text(this.enrollTip) + .fontSize(Constants.ERROR_CODE_INFO_SIZE) + .textAlign(TextAlign.Center) + .visibility(this.enrollTipVisibility) + .constraintSize({ + maxWidth:720 + }) + Blank() + Button({ type: ButtonType.Capsule, stateEffect: true }) { + Text($r('app.string.enroll_button_content')) + .fontSize(Constants.BUTTON_FONT_SIZE) + .fontColor($r('app.color.startView_color')) + } + .backgroundColor($r('app.color.newBtn_color')) + .width(Constants.BUTTON_WIDTH) + .height(Constants.BUTTON_HEIGHT) + .visibility(this.enrollButtonVisibility) + .onClick(() => { + EnrollingController.init() + }) + .margin({ + top: "24", + bottom: "24", + }) + } + .width('100%') + .height('100%') + } + + onBackPress(): boolean { + Log.info(this.TAG, 'onBackPress+') + CommonController.routeBack() + Log.info(this.TAG, 'onBackPress-') + return true + } +} \ No newline at end of file diff --git a/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/entryView.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/entryView.ets new file mode 100644 index 0000000..a6103d6 --- /dev/null +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/entryView.ets @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import router from '@system.router'; +import BackComponent from '../component/backComponent.ets' +import Log from '../utils/log.ets' +import Constants from '../config/constant.ets' +import EntryViewController from '../controller/entryViewController.ets' +import CommonController from '../controller/commonController.ets' + +@Entry +@Component +struct Index { + private TAG: string = "Index:" + @State resultString: string = "" + + build() { + Column() { + BackComponent({ prevTag: this.TAG }) + Text("临时认证界面") + .fontSize(Constants.TITLE_FONT_SIZE) + .fontWeight(FontWeight.Bold) + Text("请将PIN码设置为123456后,点击认证按钮") + .fontSize(Constants.FONT_SIZE) + Button({ type: ButtonType.Capsule, stateEffect: true }){ + Text('认证').fontSize(Constants.BUTTON_FONT_SIZE).fontColor(0xffffff).fontSize(Constants.TITLE_FONT_SIZE) + } + .backgroundColor($r('app.color.startView_color')) + .onClick(()=>{ + EntryViewController.doPINAuth() + .catch(()=>{this.resultString = "认证失败,请将密码设置为123456后重试"}) + }) + .width(Constants.BUTTON_WIDTH) + .height(Constants.BUTTON_HEIGHT) + .margin({ + top: "24", + bottom: "24" + }) + Text(this.resultString) + .fontSize(Constants.FONT_SIZE) + .fontWeight(FontWeight.Bold) + }.alignItems(HorizontalAlign.Center) + .width("100%") + .height("100%") + } + + onBackPress(): boolean { + Log.info(this.TAG, 'onBackPress+') + CommonController.routeBack() + Log.info(this.TAG, 'onBackPress-') + return true + } +} \ No newline at end of file diff --git a/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/faceConfig.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/faceConfig.ets new file mode 100644 index 0000000..8ea47e1 --- /dev/null +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/pages/faceConfig.ets @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import BackComponent from '../component/backComponent.ets' +import Log from '../utils/log.ets' +import CommonController from '../controller/commonController.ets' +import FaceConfigController from '../controller/faceConfigController.ets' +import ConfirmDialog from '../component/confirmDialog.ets' + +@Entry +@Component +struct FaceConfig { + @State TAG: string = "FaceConfig:" + @State touched: boolean = false + private deleteFaceDialogController: CustomDialogController = new CustomDialogController({ + builder: ConfirmDialog({ + title: $r('app.string.delete_record_title'), + content: $r('app.string.wether_delete_face_data'), + confirmText: $r('app.string.face_record_delete'), + cancelText: $r('app.string.face_record_cancel'), + confirmOperation: this.deleteFace.bind(this) + }), + alignment: CommonController.getDialogAlignment() + }) + + deleteFace() { + Log.info(this.TAG, 'deleteFace+') + FaceConfigController.deleteFace() + Log.info(this.TAG, 'deleteFace-') + } + + build() { + Column() { + BackComponent({ prevTag: this.TAG, title: $r('app.string.face_checker') }) + Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems:ItemAlign.Center }) { + Row() { + Text($r('app.string.delete_record_title')) + .fontSize(22) + .fontColor(Color.Red) + .margin({left:24, top:8, bottom:8, right:0}) + .textAlign(TextAlign.Start); + } + } + .backgroundColor(this.touched? "#D8D8D8":"#FFFFFF") + .height(56) + .margin({left:24, right:24, top:16}) + .borderRadius(24) + .onClick(()=>{ + this.deleteFaceDialogController.open() + }) + .onTouch((event: TouchEvent) => { + if (event.type === TouchType.Down) { + this.touched = true; + } + if (event.type === TouchType.Up) { + this.touched = false; + } + }); + }.width("100%") + .height("100%") + .backgroundColor("#E3E3E3"); + } + + onBackPress(): boolean { + Log.info(this.TAG, 'onBackPress+') + CommonController.routeBack() + Log.info(this.TAG, 'onBackPress-') + return true + } +} \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/ets/default/app.ets b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/utils/log.ets similarity index 66% rename from ui/faceenroll/product/pad/src/main/ets/default/app.ets rename to ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/utils/log.ets index ab5e2d8..2772794 100644 --- a/ui/faceenroll/product/pad/src/main/ets/default/app.ets +++ b/ui/Settings_FaceAuth/entry/src/main/ets/enrollmentstartview/utils/log.ets @@ -13,12 +13,19 @@ * limitations under the License. */ -export default { - onCreate() { - console.info('FaceEnroll entry Application onCreate') - }, - onDestroy() { - console.info('FaceEnroll entry Application onDestroy') - }, +const TAG = 'Settings_FaceAuth'; -} +export default class Log { + + static info(tag, log) { + console.info(`Info:${TAG}:${tag} ${log}`); + } + + static debug(tag, log) { + console.debug(`Debug:${TAG}:${tag} ${log}`); + } + + static error(tag, log) { + console.error(`Error:${TAG}:${tag} ${log}`); + } +} \ No newline at end of file diff --git a/ui/faceenroll/product/phone/src/main/resources/base/element/color.json b/ui/Settings_FaceAuth/entry/src/main/resources/base/element/color.json similarity index 89% rename from ui/faceenroll/product/phone/src/main/resources/base/element/color.json rename to ui/Settings_FaceAuth/entry/src/main/resources/base/element/color.json index c7bec91..09f74d9 100644 --- a/ui/faceenroll/product/phone/src/main/resources/base/element/color.json +++ b/ui/Settings_FaceAuth/entry/src/main/resources/base/element/color.json @@ -6,7 +6,7 @@ }, { "name": "startView_color", - "value": "#0A59F7" + "value": "#00A6F9" }, { "name": "newBtn_color", diff --git a/ui/faceenroll/product/phone/src/main/resources/base/element/float.json b/ui/Settings_FaceAuth/entry/src/main/resources/base/element/float.json similarity index 91% rename from ui/faceenroll/product/phone/src/main/resources/base/element/float.json rename to ui/Settings_FaceAuth/entry/src/main/resources/base/element/float.json index c992e6a..089225d 100644 --- a/ui/faceenroll/product/phone/src/main/resources/base/element/float.json +++ b/ui/Settings_FaceAuth/entry/src/main/resources/base/element/float.json @@ -19,7 +19,11 @@ }, { "name": "enroll_center_position_X", - "value": "0" + "value": "880" + }, + { + "name": "enroll_center_position_Xx", + "value": "790" }, { "name": "enroll_info_X", diff --git a/ui/Settings_FaceAuth/entry/src/main/resources/base/element/string.json b/ui/Settings_FaceAuth/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..5f18b9f --- /dev/null +++ b/ui/Settings_FaceAuth/entry/src/main/resources/base/element/string.json @@ -0,0 +1,28 @@ +{ + "string": [ + { + "name": "entry_MainAbility", + "value": "entry_MainAbility" + }, + { + "name": "description_mainability", + "value": "eTS_Empty Ability" + }, + { + "name": "description_intro", + "value": "eTS_Empty Ability" + }, + { + "name": "entry_intro", + "value": "entry_intro" + }, + { + "name": "description_enrollmentstartview", + "value": "eTS_Empty Ability" + }, + { + "name": "entry_enrollmentstartview", + "value": "entry_enrollmentstartview" + } + ] +} \ No newline at end of file diff --git a/ui/Settings_FaceAuth/entry/src/main/resources/base/media/back_op.png b/ui/Settings_FaceAuth/entry/src/main/resources/base/media/back_op.png new file mode 100644 index 0000000000000000000000000000000000000000..c7f5cf3a09f80eb54b1e9df307800454fb27222e GIT binary patch literal 487 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tmUKs7M+SzC{oH>NS%G|oWRD45dJguM!v-tY$DUh!@P+6=(yLU`q0KcVYP7-hXC4kjGx) z>Fdh=jG0?pTXW;#dO4ubdrud~kch)?ryKG$IS9DQ=N%W-SkoJGK)Ha~+gh7{L3zV1 zFaHCq8w@s@U99NH{mK?4z$BI6nAUsrA6MF;dTaa1ISlH{<4-0ZZe42oo2B>Jt^bz; z)ql^hWLP=(^6?ClSuE#oTL1pP(SOd~&F@pAGmc6%uvgDxj?I_h>KB?|Bzz{>ahm;< z?*{`f%rk1vx+OT-Pds3K$C}r*@ylEo?%cd-+1MHyD*s-RQBgohq*{Snz2OC7#SED=^7a88XATenpqiIS{ayW w8(3Hw81OkRsYTI{o1c=IR*9m))XK!z%ES<&;i+HE2cQN9Pgg&ebxsLQ0Efh+&j0`b literal 0 HcmV?d00001 diff --git a/ui/faceenroll/feature/faceSettings/src/main/resources/base/media/icon.png b/ui/Settings_FaceAuth/entry/src/main/resources/base/media/icon.png similarity index 100% rename from ui/faceenroll/feature/faceSettings/src/main/resources/base/media/icon.png rename to ui/Settings_FaceAuth/entry/src/main/resources/base/media/icon.png diff --git a/ui/faceenroll/product/pad/src/main/resources/base/media/shelter.png b/ui/Settings_FaceAuth/entry/src/main/resources/base/media/shelter.png similarity index 100% rename from ui/faceenroll/product/pad/src/main/resources/base/media/shelter.png rename to ui/Settings_FaceAuth/entry/src/main/resources/base/media/shelter.png diff --git a/ui/faceenroll/product/pad/src/main/resources/base/media/startImage_2D.png b/ui/Settings_FaceAuth/entry/src/main/resources/base/media/startImage_2D.png similarity index 100% rename from ui/faceenroll/product/pad/src/main/resources/base/media/startImage_2D.png rename to ui/Settings_FaceAuth/entry/src/main/resources/base/media/startImage_2D.png diff --git a/ui/faceenroll/product/pad/src/main/resources/base/media/success.png b/ui/Settings_FaceAuth/entry/src/main/resources/base/media/success.png similarity index 100% rename from ui/faceenroll/product/pad/src/main/resources/base/media/success.png rename to ui/Settings_FaceAuth/entry/src/main/resources/base/media/success.png diff --git a/ui/faceenroll/product/phone/src/main/resources/en_AS/element/string.json b/ui/Settings_FaceAuth/entry/src/main/resources/en_AS/element/string.json similarity index 100% rename from ui/faceenroll/product/phone/src/main/resources/en_AS/element/string.json rename to ui/Settings_FaceAuth/entry/src/main/resources/en_AS/element/string.json diff --git a/ui/faceenroll/product/phone/src/main/resources/zh_CN/element/string.json b/ui/Settings_FaceAuth/entry/src/main/resources/zh_CN/element/string.json similarity index 98% rename from ui/faceenroll/product/phone/src/main/resources/zh_CN/element/string.json rename to ui/Settings_FaceAuth/entry/src/main/resources/zh_CN/element/string.json index c4b079a..7af2771 100644 --- a/ui/faceenroll/product/phone/src/main/resources/zh_CN/element/string.json +++ b/ui/Settings_FaceAuth/entry/src/main/resources/zh_CN/element/string.json @@ -403,15 +403,6 @@ "name": "face_recognize_annouce_message_15_2", "value": "删除后本设备将不再保存这些数据。" }, - - { - "name": "face_recognize_annouce_message_15_3", - "value": "" - }, - { - "name": "face_recognize_annouce_message_15_4", - "value": "" - }, { "name": "face_guide_3d_announce_link", "value": "关于3D人脸识别的声明" @@ -567,7 +558,7 @@ }, { "name": "delete_all_face_data", - "value": "删除主用及备用面容" + "value": "删除面容" }, { "name": "wether_delete_face_data", diff --git a/ui/Settings_FaceAuth/gradle.properties b/ui/Settings_FaceAuth/gradle.properties new file mode 100644 index 0000000..be49249 --- /dev/null +++ b/ui/Settings_FaceAuth/gradle.properties @@ -0,0 +1,13 @@ +# Project-wide Gradle settings. +# IDE (e.g. DevEco Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# If the Chinese output is garbled, please configure the following parameter. +# This function is enabled by default when the DevEco Studio builds the hap/app,if you need disable gradle parallel,you should set org.gradle.parallel false. +# more information see https://docs.gradle.org/current/userguide/performance.html +# org.gradle.parallel=false +# org.gradle.jvmargs=-Dfile.encoding=GBK \ No newline at end of file diff --git a/ui/Settings_FaceAuth/gradle/wrapper/gradle-wrapper.properties b/ui/Settings_FaceAuth/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..63c817f --- /dev/null +++ b/ui/Settings_FaceAuth/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://repo.huaweicloud.com/gradle/gradle-7.3-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/ui/faceenroll/gradlew b/ui/Settings_FaceAuth/gradlew similarity index 100% rename from ui/faceenroll/gradlew rename to ui/Settings_FaceAuth/gradlew diff --git a/ui/faceenroll/gradlew.bat b/ui/Settings_FaceAuth/gradlew.bat similarity index 100% rename from ui/faceenroll/gradlew.bat rename to ui/Settings_FaceAuth/gradlew.bat diff --git a/ui/Settings_FaceAuth/package.json b/ui/Settings_FaceAuth/package.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/ui/Settings_FaceAuth/package.json @@ -0,0 +1 @@ +{} diff --git a/ui/Settings_FaceAuth/settings.gradle b/ui/Settings_FaceAuth/settings.gradle new file mode 100644 index 0000000..4773db7 --- /dev/null +++ b/ui/Settings_FaceAuth/settings.gradle @@ -0,0 +1 @@ +include ':entry' diff --git a/ui/faceenroll/.gitattributes b/ui/faceenroll/.gitattributes deleted file mode 100644 index e69de29..0000000 diff --git a/ui/faceenroll/common/src/main/config.json b/ui/faceenroll/common/src/main/config.json deleted file mode 100644 index 083b3b4..0000000 --- a/ui/faceenroll/common/src/main/config.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "app": { - "bundleName": "com.ohos.faceEnroll", - "vendor": "ohos", - "version": { - "code": 1000000, - "name": "1.0.0" - } - }, - "deviceConfig": {}, - "module": { - "package": "com.ohos.faceEnroll", - "deviceType": [ - "phone" - ], - "distro": { - "deliveryWithInstall": true, - "moduleName": "common", - "moduleType": "har" - } - } - -} \ No newline at end of file diff --git a/ui/faceenroll/common/src/main/ets/default/Log.ets b/ui/faceenroll/common/src/main/ets/default/Log.ets deleted file mode 100644 index 556da62..0000000 --- a/ui/faceenroll/common/src/main/ets/default/Log.ets +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const TAG = 'faceenroll_Default'; - -/** - * Basic log class - */ -export default class Log { - - /** - * print info level log - * - * @param {string} tag - Page or class tag - * @param {string} log - Log needs to be printed - */ - static showInfo(tag, log) { - console.info(`${TAG} tag: ${tag} --> ${log}`); - } - - /** - * print debug level log - * - * @param {string} tag - Page or class tag - * @param {string} log - Log needs to be printed - */ - static showDebug(tag, log) { - console.debug(`${TAG} tag: ${tag} --> ${log}`); - } - - /** - * print error level log - * - * @param {string} tag - Page or class tag - * @param {string} log - Log needs to be printed - */ - static showError(tag, log) { - console.error(`${TAG} tag: ${tag} --> ${log}`); - } -} \ No newline at end of file diff --git a/ui/faceenroll/common/src/main/ets/default/common/Config/config.ets b/ui/faceenroll/common/src/main/ets/default/common/Config/config.ets deleted file mode 100644 index 215e5d6..0000000 --- a/ui/faceenroll/common/src/main/ets/default/common/Config/config.ets +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export default class Config { - public static FACE_TOKEN: array = new Uint8Array([1,2,3,4,5,6]) - public static TRUSTED_DEVICE_CHECK = false - public static AUTH_TYPE = 2 - public static TYPE2D = "2D" - public static AUTH = [ - { - credentialId:new Uint8Array([1,2,3,4,5,6]), - authType:2, - authSubType:20000, - templateId:1 - }, - { - credentialId:new Uint8Array([1,2,3,4,5,6]), - authType:2, - authSubType:20000, - templateId:2 - } - ] - public static FACE_DATA = { - credentialId: credentialId, - authType: 2, - authSubType: 1, - templateId: 1 - } - public static DEVICE_LIST = [ - { - name: "HuaWei Mate40", - isLock: true - }, - { - name: "HuaWei Mate30", - isLock: true - }, - { - name: "HuaWei p40", - isLock: true - }, - { - name: "HuaWei p30", - isLock: true - } - ] - public static ADD_LIST = [ - { - name: "HuaWei Mate40 add", - isLock: true - }, - { - name: "HuaWei Mate30 add", - isLock: true - }, - { - name: "HuaWei p40 add", - isLock: false - }, - { - name: "HuaWei p30 add", - isLock: false - } - ] -} \ No newline at end of file diff --git a/ui/faceenroll/common/src/main/ets/default/common/manager/resourceManager.ets b/ui/faceenroll/common/src/main/ets/default/common/manager/resourceManager.ets deleted file mode 100644 index b8d9ea0..0000000 --- a/ui/faceenroll/common/src/main/ets/default/common/manager/resourceManager.ets +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Config from "../Config/Config.ets" - -export default class ResourceManager { - - private static resourceManager: ResourceManager = new ResourceManager(); - - public static getInstance(): ResourceManager{ - return this.resourceManager; - } - - /** - * Start pinAuth abillity and get token. - * @param callback - * @param getTokenCallback - */ - public jumpToUserAuth(callback,getTokenCallback) { - callback(Config.FACE_TOKEN,getTokenCallback); - // FeatureAbility.startAbilityForResult({ - // want: { - // bundleName: 'com.ohos....', - // abilityName: 'com.ohos...' - // }, - // requestCode: 1, - // }, - // (err, data) => { - // console.log("FaceEnroll resourceManager startAbilityForResult asyncCallback StartAbilityResult: " - // + err.code + " data: " + data) - // }).then(data => - // console.info("FaceEnroll resourceManager startApplicationForResult promise::then : " + JSON.stringify(data)); - // ).catch(error => - // console.info("FaceEnroll resourceManager startApplicationForResult promise::catch : " + JSON.stringify(error)); - // ); - } -} \ No newline at end of file diff --git a/ui/faceenroll/common/src/main/ets/default/common/model/DeviceModel.ets b/ui/faceenroll/common/src/main/ets/default/common/model/DeviceModel.ets deleted file mode 100644 index f55e392..0000000 --- a/ui/faceenroll/common/src/main/ets/default/common/model/DeviceModel.ets +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Config from "../Config/Config.ets" - -export default class trustedModel { - private static trustedModel = new trustedModel(); - - public static getInstance(): trustedModel{ - return this.trustedModel; - } - - public getDeviceList(callback){ - callback(Config.DEVICE_LIST); - } - public getAddDeviceList(callback){ - callback(Config.ADD_LIST); - } - - public removeDevice(device){ - } - - public addDevice(device){ - } - -} \ No newline at end of file diff --git a/ui/faceenroll/common/src/main/ets/default/common/model/FaceSettingsModel.ets b/ui/faceenroll/common/src/main/ets/default/common/model/FaceSettingsModel.ets deleted file mode 100644 index 68ff9dd..0000000 --- a/ui/faceenroll/common/src/main/ets/default/common/model/FaceSettingsModel.ets +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Config from "../Config/Config.ets" -/** - * Class FaceSettingsModel. - */ -export default class FaceSettingsModel { - private static mFaceSettingsModel: FaceSettingsModel = new FaceSettingsModel(); - - /** - * Return an instance of FaceSettingsModel. - */ - public static getInstance(): FaceSettingsModel { - return this.mFaceSettingsModel; - } - - /** - * New face data. (pad) - * - * @param {object} callback - The callback from presenter. - */ - NewFaceData(callback) { - console.info("FaceEnroll FaceSettingsModel NewFaceData start"); - let credentialId = Math.random()*1000; - let faceData = Config.FACE_DATA - callback(faceData); - console.info("FaceEnroll FaceSettingsModel NewFaceData end"); - } - - - /** - * Choose unlock method - * - * @param {object} methods - The unlock method - */ - chooseUnlockMethod(method) { - console.info('FaceEnroll FaceSettingsModel chooseUnlockMethod start'); - console.info('FaceEnroll FaceSettingsModel chooseUnlockMethod method' + method); - console.info('FaceEnroll FaceSettingsModel chooseUnlockMethod end '); - } - - /** - * Whether to start up app lock - * - * @param {object} status - The AppLock status - */ - AppLock(status) { - console.info('FaceEnroll FaceSettingsModel activateAppLock start'); - if (status === true) { - AppStorage.SetOrCreate('appLock_isOn', true); - } else { - console.info("FaceEnroll FaceSettingsModel close AppLock "); - AppStorage.SetOrCreate('appLock_isOn', false); - } - console.info('FaceEnroll FaceSettingsModel activateAppLock end '); - } - - /** - * Whether to start up safe cabinet - * - * @param {object} status - The SafeCabinet status - */ - SafeCabinet(status) { - console.info('FaceEnroll FaceSettingsModel activateSafeCabinet start'); - if (status === true) { - AppStorage.SetOrCreate('safeCabinet_isOn', true); - } else { - console.info("FaceEnroll FaceSettingsModel close activateSafeCabinet "); - AppStorage.SetOrCreate('safeCabinet_isOn', false); - } - console.info('FaceEnroll FaceSettingsModel activateSafeCabinet end '); - } - - - /** - * Whether to start up Screen fill light in low light environment - * - * @param {object} status - The ScreenFillFightInLowLightEnvironment status - */ - ScreenFillFightInLowLightEnvironment(status) { - console.info("FaceEnroll FaceSettingsModel ScreenFillFightInLowLightEnvironment start"); - if (status == true) { - AppStorage.SetOrCreate('fillLight_isOn', true); - } else { - console.info("FaceEnroll FaceSettingsModel close ScreenFillFightInLowLightEnvironment "); - AppStorage.SetOrCreate('fillLight_isOn', false); - } - console.info("FaceEnroll FaceSettingsModel ScreenFillFightInLowLightEnvironment end"); - } - - /** - * Whether to start up smart lock screen notifications - * - * @param {object} status - The SmartLockScreenNotifications status - */ - SmartLockScreenNotifications(status) { - console.info("FaceEnroll FaceSettingsModel SmartLockScreenNotifications start"); - if (status === true) { - AppStorage.SetOrCreate('smartDisplayLockScreen_isOn', true); - } else { - console.info("FaceEnroll FaceSettingsModel close SmartLockScreenNotifications "); - AppStorage.SetOrCreate('smartDisplayLockScreen_isOn', false); - } - console.info("FaceEnroll FaceSettingsModel SmartLockScreenNotifications end"); - } - - /** - * Whether to start up automatic fill in account password - * - * @param {object} status - The FillInAccountPassword status - */ - FillInAccountPassword(status) { - console.info("faceSettingsModel FillInAccountPassword start"); - if (status === true) { - AppStorage.SetOrCreate('fillInAccount_isOn', true); - } else { - console.info("FaceEnroll FaceSettingsModel close FillInAccountPassword "); - AppStorage.SetOrCreate('fillInAccount_isOn', false); - } - console.info("FaceEnroll FaceSettingsModel FillInAccountPassword end"); - } - - /** - * Whether to start up look at screen during face recognition - * - * @param {object} status - The lookAtScreenDuringFaceRecognition status - */ - lookAtScreenDuringFaceRecognition(status) { - console.info("FaceEnroll FaceSettingsModel lookAtScreenDuringFaceRecognition start"); - if (status === true) { - AppStorage.SetOrCreate('lookAtScreenDuringFaceRecognition_isOn', true); - } else { - console.info("FaceEnroll FaceSettingsModel close lookAtScreenDuringFaceRecognition "); - AppStorage.SetOrCreate('lookAtScreenDuringFaceRecognition_isOn', false); - } - console.info("FaceEnroll FaceSettingsModel lookAtScreenDuringFaceRecognition end"); - } - - /** - * Whether to start up auxiliary mode - * - * @param {object} status - The auxiliaryMode status - */ - auxiliaryMode(status) { - console.info("FaceEnroll FaceSettingsModel auxiliaryMode start"); - if (status === true) { - AppStorage.SetOrCreate('auxiliaryMode_isOn', true); - } else { - console.info("FaceEnroll FaceSettingsModel close auxiliaryMode "); - AppStorage.SetOrCreate('auxiliaryMode_isOn', false); - } - console.info("FaceEnroll FaceSettingsModel auxiliaryMode end"); - } - - - /** - * Whether to turn off and pick up the phone to turn on the screen - * - * @param {object} status - The BrightScreenOfThePhone status - */ - BrightScreenOfThePhone(status) { - console.info("FaceEnroll FaceSettingsModel BrightScreenOfThePhone start"); - if (status === true) { - AppStorage.SetOrCreate('BrightScreenOfThePhone_isOn', true); - } else { - console.info("FaceEnroll FaceSettingsModel close BrightScreenOfThePhone "); - AppStorage.SetOrCreate('BrightScreenOfThePhone_isOn', false); - } - console.info("FaceEnroll FaceSettingsModel BrightScreenOfThePhone end"); - } -} diff --git a/ui/faceenroll/common/src/main/ets/default/common/model/userAuthModel.ets b/ui/faceenroll/common/src/main/ets/default/common/model/userAuthModel.ets deleted file mode 100644 index 1076a24..0000000 --- a/ui/faceenroll/common/src/main/ets/default/common/model/userAuthModel.ets +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import UserIDM from '@ohos.useridm'; -import Config from "../Config/Config.ets" - -const auth = Config.AUTH -export default class userAuthModel { - private static userAuthModel = new userAuthModel(); - private authCounts: number; - private UserIDM ; - - constructor() { - this.UserIDM = UserIDM.constructor(); - } - - /** - * Return an instance of userAuthModel. - */ - public static getInstance(): userAuthModel{ - return this.userAuthModel; - } - - /** - * Get userAuthInfo. - * @param {function} callback - Callback function. - * @param {function} getUserMode - Do after callback function. - */ - public getUserAuthInfo(callback, getUserMode) { - console.info("FaceEnroll userAuthModel getUserAuthInfo start"); - this.UserIDM.getAuthInfo(Config.AUTH_TYPE, (data) => { - try { - console.info('FaceEnroll userAuthModel getUserAuthInfo getAuthInfo success', JSON.stringify(data)); - callback(data,getUserMode); - } - catch (e) { - console.info('FaceEnroll userAuthModel getUserAuthInfo getAuthInfo error' + JSON.stringify(e)); - } - }) - console.info("FaceEnroll userAuthModel getUserAuthInfo end"); - } - - /** - * Get phone mode(2D or 3D). - * @param callback - */ - public getUserMode(callback) { - callback(Config.TYPE2D); - } - - /** - * Delete face. - * @param {number} credentialId - CredentialId. - * @param {unit8Array} token - Token. - * @param callback - * @param sucssCallback - */ - public deleteFace(credentialId, token, callback, sucssCallback) { - console.info("FaceEnroll userAuthModel deleteFace start"); - this.UserIDM.delCred(credentialId, token, { - onResult: (result, extraInfo) => { - try { - console.info('FaceEnroll uaerAuthModel deleteFace delCred result', JSON.stringify(result)); - callback(result); - } - catch (e) { - console.info('FaceEnroll uaerAuthModel deleteFace delCred error', JSON.stringify(e)); - } - }, - onAcquireInfo: (moduleNum, acquireNum, extraInfo) => { - console.info('FaceEnroll uaerAuthModel deleteFace delCred onAcquireInfo callback'); - } - }) - console.info("FaceEnroll userAuthModel deleteFace end"); - } - - /** - * - * @param callback - */ - public getIsCheck(callback) { - callback(Config.TRUSTED_DEVICE_CHECK) - } -} diff --git a/ui/faceenroll/common/src/main/ets/default/common/presenter/FaceSettingsPresenter.ets b/ui/faceenroll/common/src/main/ets/default/common/presenter/FaceSettingsPresenter.ets deleted file mode 100644 index d4ab2ac..0000000 --- a/ui/faceenroll/common/src/main/ets/default/common/presenter/FaceSettingsPresenter.ets +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import FaceSettingsModel from '../model/FaceSettingsModel.ets'; - -/** - * Class FaceSettingsPresenter. - */ -export default class FaceSettingsPresenter { - private static FaceSettingsPresenter: FaceSettingsPresenter = new FaceSettingsPresenter(); - private mFaceSettingsModel: FaceSettingsModel; - - private constructor() { - this.mFaceSettingsModel = FaceSettingsModel.getInstance(); - - } - - /** - * Return an instance of FaceSettingsPresenter. - */ - public static getInstance(): FaceSettingsPresenter{ - return this.FaceSettingsPresenter; - } - - /** - * New face data.(pad) - */ - NewFaceData(callback) { - console.info("FaceEnroll FaceSettingsPresenter NewFaceData start"); - this.mFaceSettingsModel.NewFaceData((data) => { - callback(data) - }) - console.info("FaceEnroll FaceSettingsPresenter NewFaceData end"); - } - - - /** - * Choose unlock method - * - * @param {object} methods - The unlock method - */ - chooseUnlockMethod(method) { - console.info("FaceEnroll FaceSettingsPresenter chooseUnlockMethod start"); - this.mFaceSettingsModel.chooseUnlockMethod(method); - console.info("FaceEnroll FaceSettingsPresenter chooseUnlockMethod end"); - } - - /** - * Whether to start up app lock - * - * @param {object} status - The AppLock status - */ - AppLock(status) { - console.info("FaceEnroll FaceSettingsPresenter AppLock start"); - this.mFaceSettingsModel.AppLock(status); - console.info("FaceEnroll FaceSettingsPresenter AppLock end"); - } - - /** - * start up safe cabinet - * - * @param {object} status - The SafeCabinet status - */ - SafeCabinet(status) { - console.info("FaceEnroll FaceSettingsPresenter SafeCabinet start"); - this.mFaceSettingsModel.SafeCabinet(status); - console.info("FaceEnroll FaceSettingsPresenter SafeCabinet end"); - } - - /** - * Whether to start up Screen fill light in low light environment - * - * @param {object} status - The ScreenFillFightInLowLightEnvironment status - */ - ScreenFillFightInLowLightEnvironment(status) { - console.info("FaceEnroll FaceSettingsPresenter ScreenFillFightInLowLightEnvironment start"); - this.mFaceSettingsModel.ScreenFillFightInLowLightEnvironment(status); - console.info("FaceEnroll FaceSettingsPresenter ScreenFillFightInLowLightEnvironment end"); - } - - /** - * smart lock screen notifications - * - * @param {object} status - The SmartLockScreenNotifications status - */ - SmartLockScreenNotifications(status) { - console.info("FaceEnroll FaceSettingsPresenter SmartLockScreenNotifications start"); - this.mFaceSettingsModel.SmartLockScreenNotifications(status); - console.info("FaceEnroll FaceSettingsPresenter SmartLockScreenNotifications end"); - } - - /** - * Whether to start up automatic fill in account password - * - * @param {object} status - The FillInAccountPassword status - */ - FillInAccountPassword(status) { - console.info("FaceEnroll FaceSettingsPresenter FillInAccountPassword start"); - this.mFaceSettingsModel.FillInAccountPassword(status); - console.info("FaceEnroll FaceSettingsPresenter FillInAccountPassword end"); - } - - /** - * Whether to start up look at screen during face recognition - * - * @param {object} status - The lookAtScreenDuringFaceRecognition status - */ - lookAtScreenDuringFaceRecognition(status) { - console.info("FaceEnroll FaceSettingsPresenter lookAtScreenDuringFaceRecognition start"); - this.mFaceSettingsModel.lookAtScreenDuringFaceRecognition(status); - console.info("FaceEnroll FaceSettingsPresenter lookAtScreenDuringFaceRecognition end"); - } - - /** - * Whether to start up auxiliary mode - * - * @param {object} status - The auxiliaryMode status - */ - auxiliaryMode(status) { - console.info("FaceEnroll FaceSettingsPresenter auxiliaryMode start"); - this.mFaceSettingsModel.auxiliaryMode(status); - console.info("FaceEnroll FaceSettingsPresenter auxiliaryMode end"); - } - - /** - * Whether to turn off and pick up the phone to turn on the screen - * - * @param {object} status - The BrightScreenOfThePhone status - */ - BrightScreenOfThePhone(status) { - console.info("FaceEnroll FaceSettingsPresenter BrightScreenOfThePhone start"); - this.mFaceSettingsModel.BrightScreenOfThePhone(status) - console.info("FaceEnroll FaceSettingsPresenter BrightScreenOfThePhone end"); - } -} \ No newline at end of file diff --git a/ui/faceenroll/common/src/main/ets/default/common/presenter/userAuthPresenter.ets b/ui/faceenroll/common/src/main/ets/default/common/presenter/userAuthPresenter.ets deleted file mode 100644 index 2ce6df7..0000000 --- a/ui/faceenroll/common/src/main/ets/default/common/presenter/userAuthPresenter.ets +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import ResourceManager from '../manager/resourceManager.ets' -import router from '@system.router'; - -export default class UserAuthPresenter { - protected mResourceManager: ResourceManager; - private static userAuthPresenter: UserAuthPresenter = new UserAuthPresenter(); - private static resourceManager: ResourceManager = new ResourceManager(); - - protected constructor() { - this.mResourceManager = ResourceManager.getInstance(); - } - - public static getInstance(): UserAuthPresenter{ - return this.userAuthPresenter; - } - - /** - * Jump to userAuth page. - * @param callback - */ - public jumpToUserAuth(callback) { - this.mResourceManager.jumpToUserAuth(this.jumpToUserAuthCallBack.bind(this),callback); - } - - /** - * Jump to userAuth after got token. - * @param {unit8Array} token - Token. - * @param {function} getTokenCallback - Do after get token. - */ - public jumpToUserAuthCallBack(token,getTokenCallback) { - AppStorage.SetOrCreate('faceToken', token); - getTokenCallback(); - setTimeout(()=>{ - router.push({ - uri:'pages/entryView' - }); - AppStorage.Delete('faceToken'); - },600000); - } -} - diff --git a/ui/faceenroll/common/src/main/ets/default/common/presenter/userSettingsPresenter.ets b/ui/faceenroll/common/src/main/ets/default/common/presenter/userSettingsPresenter.ets deleted file mode 100644 index 95fb680..0000000 --- a/ui/faceenroll/common/src/main/ets/default/common/presenter/userSettingsPresenter.ets +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import UserAuthModel from '../model/userAuthModel.ets' -import FeatureAbility from '@ohos.ability.featureAbility'; -import ResourceManager from '../manager/resourceManager.ets' -import router from '@system.router'; - -/** - * Class UserSettingsPresenter. - */ -export default class UserSettingsPresenter { - private authLength: number ; - protected mUserAuthModel: UserAuthModel; - protected mResourceManager: ResourceManager; - private deleteResArr = new Array(); - private faceInfo; - private static userSettingsPresenter: UserSettingsPresenter = new UserSettingsPresenter(); - private static resourceManager: ResourceManager = new ResourceManager(); - - protected constructor() { - this.mUserAuthModel = UserAuthModel.getInstance(); - this.mResourceManager = ResourceManager.getInstance(); - if (this.mUserAuthModel != undefined) { - this.faceInfo = AppStorage.Get('faceInfo'); - } - } - - /** - * Return an instance of UserSettingsPresenter. - */ - public static getInstance(): UserSettingsPresenter{ - return this.userSettingsPresenter; - } - - /** - * Delete face. - * @param {object} faceInfos - User faceInfos. - * @param {Uint8Array} token - Token. - * @param {function} sucssCallback - Do this after callback. - */ - public deleteFace(faceInfos, token, sucssCallback) { - for (let i = this.deleteResArr.length; i < faceInfos.length; i++) { - this.mUserAuthModel.deleteFace(faceInfos[i].credentialId, token, this.deleteFaceCallback.bind(this), sucssCallback); - } - } - - /** - * Delete face callback. - * @param {boolean} deleteRes - Delete face result. - * @param {function} sucssCallback - Do this after get delete result. - */ - public deleteFaceCallback(deleteRes, sucssCallback) { - let res: boolean = deleteRes; - this.deleteResArr.push(res); - if (this.deleteResArr.length == this.faceInfo.length) { - AppStorage.SetOrCreate('deleteRes', this.deleteResArr); - sucssCallback(); - } - } - - /** - * Delete face pad. - * @param {object} faceInfos - User faceInfos. - * @param {Uint8Array} token - Token. - * @param {function} sucssCallback - Do this after callback. - */ - public deleteFacePad(faceInfo, token, sucssCallback) { - this.mUserAuthModel.deleteFace(faceInfo.credentialId, token, this.deleteFaceCallbackPad.bind(this), sucssCallback); - } - /** - * Delete face Pad callback. - * @param {boolean} deleteRes - Delete face result. - * @param {function} sucssCallback - Do this after get delete result. - */ - public deleteFaceCallbackPad(deleteRes, sucssCallback) { - if (deleteRes == true) { - sucssCallback(); - } - } -} - diff --git a/ui/faceenroll/common/src/main/resources/base/element/string.json b/ui/faceenroll/common/src/main/resources/base/element/string.json deleted file mode 100644 index 146f146..0000000 --- a/ui/faceenroll/common/src/main/resources/base/element/string.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "string": [ - { - "name": "commonutil_library", - "value": "commonutil_library" - } - ] -} diff --git a/ui/faceenroll/feature/faceSettings/build.gradle b/ui/faceenroll/feature/faceSettings/build.gradle deleted file mode 100644 index f36dadb..0000000 --- a/ui/faceenroll/feature/faceSettings/build.gradle +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -apply plugin: 'com.huawei.ohos.library' -//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 - } - arkEnabled false - buildTypes { - release { - proguardOpt { - proguardEnabled false - rulesFiles 'proguard-rules.pro' - } - } - } -} -dependencies { -} \ No newline at end of file diff --git a/ui/faceenroll/feature/faceSettings/src/main/config.json b/ui/faceenroll/feature/faceSettings/src/main/config.json deleted file mode 100644 index 5fde09b..0000000 --- a/ui/faceenroll/feature/faceSettings/src/main/config.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "app": { - "bundleName": "com.ohos.faceEnroll", - "vendor": "ohos", - "version": { - "code": 1000000, - "name": "1.0.0" - } - }, - "deviceConfig": {}, - "module": { - "package": "com.ohos.faceEnroll", - "deviceType": [ - "phone" - ], - "distro": { - "deliveryWithInstall": true, - "moduleName": "faceSettings1", - "moduleType": "har" - } - } -} \ No newline at end of file diff --git a/ui/faceenroll/feature/faceSettings/src/main/ets/default/pages/faceSettings.ets b/ui/faceenroll/feature/faceSettings/src/main/ets/default/pages/faceSettings.ets deleted file mode 100644 index 1673f1b..0000000 --- a/ui/faceenroll/feature/faceSettings/src/main/ets/default/pages/faceSettings.ets +++ /dev/null @@ -1,730 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import DefaultConstants from '../common/DefaultConstants.ets'; -import FaceSettingsPresenter from "../../../../../../../common/src/main/ets/default/common/presenter/FaceSettingsPresenter.ets"; -import UserSettingsPresenter from '../../../../../../../common/src/main/ets/default/common/presenter/userSettingsPresenter.ets'; -import router from '@system.router'; - -const FACELENGTH: number = 1; -const USER_MODE: string = '3D'; -let mFaceSettingsPresenter: FaceSettingsPresenter; -let mUserSettingsPresenter: UserSettingsPresenter; - -@Component -export default struct faceSettings { - scroller: Scroller = new Scroller(); - @Prop faceLength: number; - @Prop userMode: string; - @State mFaceLength: number = 1; - @StorageLink('deleteRes') @Watch('deleteFaceSuccess') resultArr: [] = []; - @StorageLink('smartDisplayLockScreen_isOn') smartDisplayLockScreen_isOn: boolean = true; - @StorageLink('fillInAccount_isOn') fillInAccount_isOn: boolean = false; - @StorageLink('lookAtScreenDuringFaceRecognition_isOn') lookAtScreenDuringFaceRecognition_isOn: boolean = false; - @StorageLink('fillLight_isOn') fillLight_isOn: boolean = false; - @StorageLink('auxiliaryMode_isOn') auxiliaryMode_isOn: boolean = false; - @State unlock_num: number = 2; - @State safeCabinet_isOn: boolean = true; - @State appLock_isOn: boolean = true; - - private aboutToAppear(): void { - console.info("FaceEnroll FaceSettings aboutToAppear start"); - console.info('FaceEnroll FaceSettings faceLength = ' + this.faceLength); - console.info('FaceEnroll FaceSettings userMode = ' + this.userMode); - mUserSettingsPresenter = UserSettingsPresenter.getInstance(); - mFaceSettingsPresenter = FaceSettingsPresenter.getInstance(); - this.mFaceLength = this.faceLength; - console.info("FaceEnroll FaceSettings aboutToAppear end"); - } - - SafeCabinetDialogController: CustomDialogController = new CustomDialogController({ - builder: SafeCabinetDialog({ status: $safeCabinet_isOn }), - autoCancel: false, - // offset: { - // dx: 0, dy: -30 - // }, - alignment: DialogAlignment.Bottom, - // customStyle: true - }) - AppLockDialogController: CustomDialogController = new CustomDialogController({ - builder: AppLockDialog({ status: $appLock_isOn }), - autoCancel: false, - alignment: DialogAlignment.Bottom, - // customStyle: true - }) - UnlockDialogController: CustomDialogController = new CustomDialogController({ - builder: UnlockDialog({ num: $unlock_num }), - autoCancel: false, - alignment: DialogAlignment.Bottom, - // customStyle: true - }) - deleteFaceDialogController: CustomDialogController = new CustomDialogController({ - builder: DeleteFaceDialog({ faceNum: this.mFaceLength, confirm: this.onAccept.bind(this) }), - autoCancel: false, - alignment: DialogAlignment.Bottom, - // customStyle: true - }) - -/** - * Delete face. - */ - onAccept() { - console.info("FaceSettings AppStorage.Get('faceInfo')" + JSON.stringify(AppStorage.Get('faceInfo'))); - let faceInfos = new Array(); - faceInfos = AppStorage.Get('faceInfo'); - let faceToken = AppStorage.Get('faceToken'); - let deleteResult = mUserSettingsPresenter.deleteFace(faceInfos, faceToken, this.deleteFaceSuccess.bind(this)); - } - -/** - * Do after delete face successfully. - */ - deleteFaceSuccess() { - console.info('FaceSettings deleteFaceSuccess start'); - let deleteRes: [] = AppStorage.Get('deleteRes'); - let faceInfos = new Array(); - faceInfos = AppStorage.Get('faceInfo'); - if (deleteRes.length == faceInfos.length) { - let resultSucFlag = 0; - for (let i = 0; i < deleteRes.length; i++) { - if (deleteRes[i]) { - resultSucFlag += 1; - } - } - if (resultSucFlag == deleteRes.length) { - this.deleteFaceDialogController.close(); - router.push({ - uri: 'pages/entryView' - }) - } else { - this.deleteFaceDialogController.close(); - console.info('FaceEnroll faceSettings delete face fail'); - } - } else { - this.deleteFaceSuccess(); - } - } - - build() { - Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) { - Scroll(this.scroller) { - Column() { - Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) { - Image($r('app.media.back')) - .width(DefaultConstants.BACK_ICON_WIDTH) - .height(DefaultConstants.BACK_ICON_HEIGHT) - Text($r('app.string.face_checker')) - .fontSize(DefaultConstants.OVERSIZE_FONT_SIZE) - .margin({ left: DefaultConstants.PADDING_30 }) - } - .padding({ left: DefaultConstants.PADDING, right: DefaultConstants.PADDING }) - .height(DefaultConstants.SINGLE_HEIGHT) - .onClick(() => { - router.push({ - uri: 'pages/entryView' - }) - }) - - Text($r('app.string.face_recognition_is_used')) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .padding({ left: DefaultConstants.PADDING, right: DefaultConstants.PADDING }) - .margin({ bottom: DefaultConstants.PADDING_16, top: DefaultConstants.PADDING_24 }) - Column() { - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Text($r('app.string.face_unlock_method')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - Row() { - if (this.unlock_num === 2) { - Text($r('app.string.face_unlock_method_close')) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - } else if (this.unlock_num === 1) { - Text($r('app.string.face_recognize_slideunlock_title')) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - } - else if (this.unlock_num === 0) { - Text($r('app.string.face_recognize_unlock_title')) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - } - Image($r('app.media.ic_settings_arrow')) - .width(DefaultConstants.ICON_WIDTH) - .height(DefaultConstants.ICON_HEIGHT) - } - } - .height(DefaultConstants.SINGLE_HEIGHT_) - .onClick(() => { - this.UnlockDialogController.open() - }) - - Divider() - .strokeWidth(DefaultConstants.DIVIDER) - .color(DefaultConstants.GREY_BACKGROUND_COLOR) - Flex({ - direction: FlexDirection.Row, - justifyContent: FlexAlign.SpaceBetween, - alignItems: ItemAlign.Center - }) { - Text($r('app.string.secure_notification_new')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - Toggle({ type: ToggleType.Switch, isOn: this.smartDisplayLockScreen_isOn }) - .onChange(() => { - this.smartDisplayLockScreen_isOn = !this.smartDisplayLockScreen_isOn - mFaceSettingsPresenter.SmartLockScreenNotifications(this.smartDisplayLockScreen_isOn); - }) - } - .height(DefaultConstants.SINGLE_HEIGHT_) - - Divider() - .strokeWidth(DefaultConstants.DIVIDER) - .color(DefaultConstants.GREY_BACKGROUND_COLOR) - if (this.userMode === USER_MODE) { - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Text($r('app.string.title_strong_box_pref')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - if (this.safeCabinet_isOn === true) { - Toggle({ type: ToggleType.Switch, isOn: this.safeCabinet_isOn }).onChange(() => { - this.safeCabinet_isOn = false - }) - } else { - Flex({ justifyContent: FlexAlign.End }) { - Toggle({ type: ToggleType.Switch, isOn: this.safeCabinet_isOn }) - .enabled(false) - }.width(DefaultConstants.SINGLE_HEIGHT_) - .height(DefaultConstants.WIDTH) - .onClick(() => { - console.log('lzx====> SafeCabinetDialogController onchange') - if (this.safeCabinet_isOn === false) { - this.SafeCabinetDialogController.open(); - } else { - this.safeCabinet_isOn = false - } - }) - } - } - .height(DefaultConstants.SINGLE_HEIGHT_) - - Divider() - .strokeWidth(DefaultConstants.DIVIDER) - .color(DefaultConstants.GREY_BACKGROUND_COLOR) - } - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Text($r('app.string.title_apps_security_pref')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - if (this.appLock_isOn === true) { - Toggle({ type: ToggleType.Switch, isOn: this.appLock_isOn }) - .onChange(() => { - this.appLock_isOn = false - mFaceSettingsPresenter.AppLock(this.appLock_isOn); - }) - } else { - Flex({ justifyContent: FlexAlign.End }) { - Toggle({ type: ToggleType.Switch, isOn: this.appLock_isOn }) - .enabled(false) - }.width(DefaultConstants.SINGLE_HEIGHT_) - .height(DefaultConstants.WIDTH) - .onClick(() => { - if (this.appLock_isOn === false) { - this.AppLockDialogController.open(); - } else { - this.appLock_isOn = false - mFaceSettingsPresenter.AppLock(this.appLock_isOn); - } - }) - } - } - .height(DefaultConstants.SINGLE_HEIGHT_) - - Divider() - .strokeWidth(DefaultConstants.DIVIDER) - .color(DefaultConstants.GREY_BACKGROUND_COLOR) - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Start }) { - Text($r('app.string.face_fingerprint_settings_switch_title')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .margin({ bottom: DefaultConstants.PADDING_4 }) - Text($r('app.string.face_fingerprint_settings_switch_summary')) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - } - - Toggle({ type: ToggleType.Switch, isOn: this.fillInAccount_isOn }) - .onChange(() => { - this.fillInAccount_isOn = !this.fillInAccount_isOn - mFaceSettingsPresenter.FillInAccountPassword(this.fillInAccount_isOn); - }) - } - .height(DefaultConstants.DOUBLE_HEIGHT_) - } - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .margin({ bottom: DefaultConstants.PADDING }) - .padding({ - top: DefaultConstants.PADDING_8, - bottom: DefaultConstants.PADDING_8, - left: DefaultConstants.PADDING, - right: DefaultConstants.PADDING - }) - - Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) { - Text($r('app.string.delete_record_title')) - .fontColor(Color.Red) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - } - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .margin({ bottom: DefaultConstants.PADDING_16 }) - .padding({ left: DefaultConstants.PADDING, right: DefaultConstants.PADDING }) - .height(DefaultConstants.SINGLE_HEIGHT) - .onClick(() => { - this.deleteFaceDialogController.open(); - }) - - if (this.faceLength === FACELENGTH) { - Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) { - Text($r('app.string.enroll_backup_face_title')) - .fontColor(Color.Blue) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - } - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .margin({ bottom: DefaultConstants.PADDING_16 }) - .padding({ left: DefaultConstants.PADDING, right: DefaultConstants.PADDING }) - .height(DefaultConstants.SINGLE_HEIGHT) - - Text($r('app.string.enroll_backup_face_summary')) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .margin({ bottom: DefaultConstants.PADDING_32 }) - .padding({ left: DefaultConstants.PADDING, right: DefaultConstants.PADDING }) - } else { - Text($r('app.string.main_and_backup_faces')) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .margin({ bottom: DefaultConstants.PADDING_32 }) - .padding({ left: DefaultConstants.PADDING, right: DefaultConstants.PADDING }) - } - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Text($r('app.string.face_introdution_title')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - Row() { - Text($r('app.string.face_enterance_off')) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - Image($r('app.media.ic_settings_arrow')) - .width(DefaultConstants.ICON_WIDTH) - .height(DefaultConstants.ICON_HEIGHT) - } - } - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .margin({ bottom: DefaultConstants.PADDING }) - .padding({ left: DefaultConstants.PADDING, right: DefaultConstants.PADDING }) - .height(DefaultConstants.SINGLE_HEIGHT) - .onClick(() => { - AppStorage.SetOrCreate('facePageFlag', 1); - }) - - if (this.userMode === USER_MODE) { - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Text($r('app.string.title_face_stare_aux')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - Toggle({ type: ToggleType.Switch, isOn: this.lookAtScreenDuringFaceRecognition_isOn }) - .onChange(() => { - this.lookAtScreenDuringFaceRecognition_isOn = !this.lookAtScreenDuringFaceRecognition_isOn - mFaceSettingsPresenter.lookAtScreenDuringFaceRecognition(this.lookAtScreenDuringFaceRecognition_isOn); - }) - } - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .margin({ bottom: DefaultConstants.PADDING_16 }) - .padding({ left: DefaultConstants.PADDING, right: DefaultConstants.PADDING }) - .height(DefaultConstants.SINGLE_HEIGHT) - } else { - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Text($r('app.string.title_fill_light')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - Toggle({ type: ToggleType.Switch, isOn: this.fillLight_isOn }) - .onChange(() => { - this.fillLight_isOn = !this.fillLight_isOn - mFaceSettingsPresenter.ScreenFillFightInLowLightEnvironment(this.fillLight_isOn); - }) - } - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .margin({ bottom: DefaultConstants.PADDING }) - .padding({ left: DefaultConstants.PADDING, right: DefaultConstants.PADDING }) - .height(DefaultConstants.SINGLE_HEIGHT) - - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Start }) { - Text($r('app.string.auxiliary_mode')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .margin({ bottom: DefaultConstants.PADDING_4 }) - Text($r('app.string.recognize_without_opening_eyes')) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - } - - Toggle({ type: ToggleType.Switch, isOn: this.auxiliaryMode_isOn }) - .onChange(() => { - this.auxiliaryMode_isOn = !this.auxiliaryMode_isOn - mFaceSettingsPresenter.auxiliaryMode(this.auxiliaryMode_isOn); - }) - } - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .margin({ bottom: DefaultConstants.PADDING }) - .padding({ left: DefaultConstants.PADDING, right: DefaultConstants.PADDING }) - .height(DefaultConstants.DOUBLE_HEIGHT) - } - Text() { - Span($r('app.string.face_3dguide_info_2')) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - if (this.userMode === USER_MODE) { - Span($r('app.string.face_guide_3d_announce_link')) - .fontColor(Color.Blue) - } else { - Span($r('app.string.face_guide_2d_announce_link')) - .fontColor(Color.Blue) - } - } - .fontSize(DefaultConstants.SMALL_FONT_SIZE) - .padding({ left: DefaultConstants.PADDING, right: DefaultConstants.PADDING }) - .onClick(() => { - router.push({ - uri: 'pages/declare' - }) - }) - - Column() { - Text($r('app.string.recommend_preference_title')) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - .margin({ bottom: DefaultConstants.PADDING_16 }) - Text($r('app.string.face_config_light_01_universal')) - .fontColor(Color.Blue) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - if (this.userMode === USER_MODE) { - Text($r('app.string.annotation_screen_keeps_on')) - .fontColor(Color.Blue) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - .margin({ top: DefaultConstants.PADDING_16 }) - } - } - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.DARK_GREY_BACKGROUND_COLOR) - .margin({ bottom: DefaultConstants.PADDING_32, top: DefaultConstants.PADDING_32 }) - .padding({ - bottom: DefaultConstants.PADDING_30, - top: DefaultConstants.PADDING_30, - left: DefaultConstants.PADDING, - right: DefaultConstants.PADDING - }) - .width(DefaultConstants.WIDTH) - .alignItems(HorizontalAlign.Start) - } - .backgroundColor(DefaultConstants.GREY_BACKGROUND_COLOR) - .width(DefaultConstants.TOTAL_WIDTH) - .alignItems(HorizontalAlign.Start) - } - .scrollBarWidth(0) - } - .width(DefaultConstants.WIDTH) - .height(DefaultConstants.WIDTH) - .backgroundColor(DefaultConstants.GREY_BACKGROUND_COLOR) - } -} - -@CustomDialog -struct UnlockDialog { - @Link num: number - controller: CustomDialogController; - @State booleans: boolean[] = [false, false, false] - - aboutToAppear() { - this.booleans[this.num] = true - } - - isChecked(num) { - for (let i = 0;i < this.booleans.length; i++) { - if (i != num) { - this.booleans[i] = false - } else { - this.booleans[i] = true - } - } - } - - build() { - Column() { - Text($r('app.string.face_unlock_method')) - .fontSize(DefaultConstants.OVERSIZE_FONT_SIZE) - .margin({ bottom: DefaultConstants.PADDING_30 }) - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Start }) { - Text($r('app.string.face_recognize_unlock_title')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .margin({ bottom: DefaultConstants.PADDING_4 }) - Text($r('app.string.face_recognize_unlock_summary_3d')) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - } - - Toggle({ type: ToggleType.Checkbox, isOn: this.booleans[0] }) - .width(DefaultConstants.RADIO_SIZE) - .height(DefaultConstants.RADIO_SIZE) - .onChange(() => { - this.isChecked(0) - this.num = 0 - mFaceSettingsPresenter.chooseUnlockMethod(this.num); - this.controller.close(); - }) - }.height(DefaultConstants.DOUBLE_HEIGHT_) - - Divider() - .strokeWidth(DefaultConstants.DIVIDER) - .color(DefaultConstants.GREY_BACKGROUND_COLOR) - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Start }) { - Text($r('app.string.face_recognize_slideunlock_title')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .margin({ bottom: DefaultConstants.PADDING_4 }) - Text($r('app.string.face_recognize_slideunlock_summary_3d')) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - } - - Toggle({ type: ToggleType.Checkbox, isOn: this.booleans[1] }) - .width(DefaultConstants.RADIO_SIZE) - .height(DefaultConstants.RADIO_SIZE) - .onChange(() => { - this.isChecked(1) - this.num = 1 - mFaceSettingsPresenter.chooseUnlockMethod(this.num); - this.controller.close() - }) - }.height(DefaultConstants.DOUBLE_HEIGHT_) - - Divider() - .strokeWidth(DefaultConstants.DIVIDER) - .color(DefaultConstants.GREY_BACKGROUND_COLOR) - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Text($r('app.string.face_unlock_method_close')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - Toggle({ type: ToggleType.Checkbox, isOn: this.booleans[2] }) - .width(DefaultConstants.RADIO_SIZE) - .height(DefaultConstants.RADIO_SIZE) - .onChange(() => { - this.isChecked(2) - this.num = 2; - mFaceSettingsPresenter.chooseUnlockMethod(this.num); - this.controller.close() - }) - }.height(DefaultConstants.SINGLE_HEIGHT_) - - Column() { - Text($r('app.string.face_record_cancel')) - .fontColor(Color.Blue) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - } - .width(DefaultConstants.WIDTH) - .margin({ top: DefaultConstants.PADDING_20 }) - .onClick(() => { - this.controller.close() - }) - } - .width(DefaultConstants.TOTAL_WIDTH) - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .alignItems(HorizontalAlign.Start) - .padding({ - bottom: DefaultConstants.PADDING_30, - top: DefaultConstants.PADDING_20, - left: DefaultConstants.PADDING_30, - right: DefaultConstants.PADDING_30 - }) - } -} - -@CustomDialog -struct SafeCabinetDialog { - @Link status: boolean - controller: CustomDialogController - - build() { - Column() { - Text($r('app.string.activate_safe')) - .fontSize(DefaultConstants.OVERSIZE_FONT_SIZE) - .margin({ bottom: DefaultConstants.PADDING_30 }) - Text($r('app.string.face_inform_open_strongbox_msg')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .margin({ bottom: DefaultConstants.PADDING_20 }) - Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) { - Text($r('app.string.face_record_cancel')) - .fontColor(Color.Blue) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .onClick(() => { - this.controller.close() - }) - Divider() - .vertical(true) - .strokeWidth(DefaultConstants.DIVIDER) - .color(DefaultConstants.DARK_GREY_BACKGROUND_COLOR) - .height(DefaultConstants.PADDING_30) - Text($r('app.string.enable')) - .fontColor(Color.Blue) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .onClick(() => { - this.status = true; - mFaceSettingsPresenter.SafeCabinet(this.status); - this.controller.close() - }) - } - } - .width(DefaultConstants.TOTAL_WIDTH) - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .alignItems(HorizontalAlign.Start) - .padding({ - bottom: DefaultConstants.PADDING_30, - top: DefaultConstants.PADDING_20, - left: DefaultConstants.PADDING_30, - right: DefaultConstants.PADDING_30 - }) - } -} - -@CustomDialog -struct AppLockDialog { - @Link status: boolean - controller: CustomDialogController - - build() { - Column() { - Text($r('app.string.activate_app_lock')) - .fontSize(DefaultConstants.OVERSIZE_FONT_SIZE) - .margin({ bottom: DefaultConstants.PADDING_30 }) - Text($r('app.string.face_inform_open_applock_msg')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .margin({ bottom: DefaultConstants.PADDING_20 }) - Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) { - Text($r('app.string.face_record_cancel')) - .fontColor(Color.Blue) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .onClick(() => { - this.controller.close() - }) - Divider() - .vertical(true) - .strokeWidth(DefaultConstants.DIVIDER) - .color(DefaultConstants.DARK_GREY_BACKGROUND_COLOR) - .height(DefaultConstants.PADDING_30) - Text($r('app.string.enable')) - .fontColor(Color.Blue) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .onClick(() => { - this.status = true; - mFaceSettingsPresenter.AppLock(this.status); - this.controller.close() - }) - } - } - .width(DefaultConstants.TOTAL_WIDTH) - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .alignItems(HorizontalAlign.Start) - .padding({ - bottom: DefaultConstants.PADDING_30, - top: DefaultConstants.PADDING_20, - left: DefaultConstants.PADDING_30, - right: DefaultConstants.PADDING_30 - }) - } -} - -@CustomDialog -struct DeleteFaceDialog { - controller: CustomDialogController; - @Prop faceNum: number; - @StorageLink('BrightScreenOfThePhone_isOn') BrightScreenOfThePhone_isOn: boolean = true; - confirm: () => void; - - aboutToAppear() { - console.log('FaceSettings faceNum ' + this.faceNum) - } - - build() { - Column() { - if (this.faceNum === FACELENGTH) { - Text($r('app.string.delete_record_title')) - .fontSize(DefaultConstants.OVERSIZE_FONT_SIZE) - .margin({ bottom: DefaultConstants.PADDING_20 }) - } else { - Text($r('app.string.delete_all_face_data')) - .fontSize(DefaultConstants.OVERSIZE_FONT_SIZE) - .margin({ bottom: DefaultConstants.PADDING_20 }) - } - Text($r('app.string.wether_delete_face_data')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .margin({ bottom: DefaultConstants.PADDING_16 }) - Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) { - Toggle({ type: ToggleType.Checkbox, isOn: this.BrightScreenOfThePhone_isOn }) - .width(DefaultConstants.RADIO_SIZE) - .height(DefaultConstants.RADIO_SIZE) - .onChange((isOn) => { - this.BrightScreenOfThePhone_isOn = !this.BrightScreenOfThePhone_isOn - }) - Text($r('app.string.face_recognize_lighton_close_universal')) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - } - .margin({ left: -DefaultConstants.PADDING_10, bottom: DefaultConstants.PADDING_20 }) - - Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) { - Text($r('app.string.face_record_cancel')) - .fontColor(Color.Blue) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .onClick(() => { - this.controller.close() - }) - Divider() - .vertical(true) - .strokeWidth(DefaultConstants.DIVIDER) - .color(DefaultConstants.DARK_GREY_BACKGROUND_COLOR) - .height(DefaultConstants.PADDING_30) - Text($r('app.string.face_record_delete')) - .fontColor(Color.Red) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .onClick(() => { - mFaceSettingsPresenter.BrightScreenOfThePhone(this.BrightScreenOfThePhone_isOn); - this.controller.close() - this.confirm() - }) - } - } - .width(DefaultConstants.TOTAL_WIDTH) - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .alignItems(HorizontalAlign.Start) - .padding({ - bottom: DefaultConstants.PADDING_30, - top: DefaultConstants.PADDING_20, - left: DefaultConstants.PADDING_30, - right: DefaultConstants.PADDING_30 - }) - } -} diff --git a/ui/faceenroll/feature/faceSettings/src/main/resources/base/element/string.json b/ui/faceenroll/feature/faceSettings/src/main/resources/base/element/string.json deleted file mode 100644 index 7d9c40f..0000000 --- a/ui/faceenroll/feature/faceSettings/src/main/resources/base/element/string.json +++ /dev/null @@ -1,175 +0,0 @@ -{ - "string": [ - { - "name": "entry_MainAbility", - "value": "entry_MainAbility" - }, - { - "name": "mainability_description", - "value": "ETS_Empty Ability" - }, - { - "name": "face_checker", - "value": "人脸识别" - }, - - { - "name": "face_unlock_method", - "value": "解锁屏幕" - }, - { - "name": "face_recognize_slideunlock_title", - "value": "滑动解锁" - }, - { - "name": "secure_notification_new", - "value": "智能显示锁屏通知" - }, - - { - "name": "face_fingerprint_settings_switch_title", - "value": "自动填充账号和密码" - }, - { - "name": "face_fingerprint_settings_switch_summary", - "value": "使用密码保险箱保存的帐号和密码" - }, - { - "name": "delete_record_title", - "value": "删除面部数据" - }, - { - "name": "enroll_backup_face_title", - "value": "设置备用面容" - }, - { - "name": "enroll_backup_face_summary", - "value": "除继续学习您的长相外,还可识别另一种面容" - }, - - { - "name": "face_introdution_title", - "value": "解锁时需连接可信设备" - }, - - { - "name": "title_face_stare_aux", - "value": "人脸识别时需注视屏幕" - }, - - { - "name": "face_3dguide_info_2", - "value": "人脸识别可基于您的面部特征信息进行身份识别,了解" - }, - { - "name": "face_guide_2d_announce_link", - "value": "关于人脸识别的声明。" - }, - { - "name": "face_guide_3d_announce_link", - "value": "关于3D人脸识别的声明。" - }, - { - "name": "recommend_preference_title", - "value": "是否在寻找其他设置项?" - }, - { - "name": "face_config_light_01_universal", - "value": "拿起手机亮屏" - }, - - { - "name": "face_recognize_unlock_title", - "value": "直接解锁" - }, - { - "name": "face_recognize_unlock_summary_3d", - "value": "人脸识别成功后直接解锁" - }, - { - "name": "face_recognize_slideunlock_summary_3d", - "value": "人脸识别成功后滑动屏幕解锁" - }, - { - "name": "face_unlock_method_close", - "value": "关闭" - }, - { - "name": "face_record_cancel", - "value": "取消" - }, - { - "name": "face_inform_open_strongbox_msg", - "value": "需要启用文件管理保密柜完成人脸关联。是否启用?" - }, - { - "name": "face_inform_open_applock_msg", - "value": "需开启应用锁功能才能完成人脸关联。是否立即启用应用锁?" - }, - { - "name": "face_record_delete", - "value": "删除" - }, - { - "name": "face_recognize_lighton_close_universal", - "value": "同时关闭拿起手机亮屏" - }, - { - "name": "title_strong_box_pref", - "value": "访问保密柜" - }, - { - "name": "title_apps_security_pref", - "value": "访问应用锁" - }, - { - "name": "face_enterance_off", - "value": "已关闭" - }, - { - "name": "title_fill_light", - "value": "暗光环境下屏幕补光" - }, - { - "name": "face_recognition_is_used", - "value": "人脸识别用于" - }, - { - "name": "main_and_backup_faces", - "value": "已设置主用及备用面容" - }, - - { - "name": "auxiliary_mode", - "value": "辅助模式" - }, - { - "name": "recognize_without_opening_eyes", - "value": "开启屏幕朗读后无需睁眼即可识别" - }, - { - "name": "annotation_screen_keeps_on", - "value": "注视屏幕不熄屏" - }, - { - "name": "enable", - "value": "启用" - }, - { - "name": "activate_safe", - "value": "启用保密柜" - }, - { - "name": "activate_app_lock", - "value": "启用应用锁" - }, - { - "name": "delete_all_face_data", - "value": "删除主用及备用面容" - }, - { - "name": "wether_delete_face_data", - "value": "删除后,基于面部数据的功能将不可用。是否删除?" - } - ] -} \ No newline at end of file diff --git a/ui/faceenroll/feature/faceSettings/src/main/resources/base/media/back.png b/ui/faceenroll/feature/faceSettings/src/main/resources/base/media/back.png deleted file mode 100644 index 85dcc6ad6895ff1b4ef599be169e0df24a7b01b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 893 zcmV-@1A_dCP)EX>4Tx04R}tkv&MmKpe$iQ%l8G3fe)$AwzYtAS&W0RV;#q(pG5I!Q|2}Xws0R zxHt-~1qVMCs}3&Cx;nTDg5U>;o12rOiOg)ia%%JP|x`&6acTt|z{oJ3UU&)&c@QB27OgAjz4dR(i zOXs{#9A+g+AwDM_H|T=Ik6f2se&bwpSm2pqBa@mZ4ik&T4wgHZl?;`5nmD4U8s!UF zmle)ioYhK=weHDZ7|d%cX|B^8K^#j+APEsNYAB-u3sG7%QcR?1Ki0)R?D&)9lF3yD zBgX=&P$4;f@IUz7ty!3wbd!QH!1rR?AESVO7iiXP`}^3ony{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2jvS71s@{2AB;x;00DVPL_t(&-tE>sNCPn##_>cd zh#**7AqY;+?QBKp)I|{Cy_|!CUmz${1-&jVPR@ z?{#Q~x(TJ)a?fuK7sCIJ%PRx`000000002Me`4k#RB)`dQ(F5^K~UO63~Q&g_Ft7! zY>e5BdyHAF{dc8QWQ^I0dyF|x`yVdGM%-hpc-sF`N_`q*mg62{wJFAY++%Ee+K-e{ zZ^js}lg}#uAjZzZ;?iE_>Qa=;<^4jTaMt3McT&pxt_;G=+1hUy~pJM6q^^ zh#p*&BWCVF6l*g?^ys1-;M!?KnIxj;ASj(M^8ku8rdV9T000000000003GieI()ku TraWJ?00000NkvXXu0mjf+ewd3 diff --git a/ui/faceenroll/feature/faceSettings/src/main/resources/base/media/ic_settings_arrow.svg b/ui/faceenroll/feature/faceSettings/src/main/resources/base/media/ic_settings_arrow.svg deleted file mode 100644 index d7dd265..0000000 --- a/ui/faceenroll/feature/faceSettings/src/main/resources/base/media/ic_settings_arrow.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ui/faceenroll/feature/faceSettings/src/main/resources/en_US/element/string.json b/ui/faceenroll/feature/faceSettings/src/main/resources/en_US/element/string.json deleted file mode 100644 index f163048..0000000 --- a/ui/faceenroll/feature/faceSettings/src/main/resources/en_US/element/string.json +++ /dev/null @@ -1,176 +0,0 @@ -{ - "string": [ - { - "name": "entry_MainAbility", - "value": "entry_MainAbility" - }, - { - "name": "mainability_description", - "value": "ETS_Empty Ability" - }, - { - "name": "face_checker", - "value": "Face Recognition" - }, - - { - "name": "face_unlock_method", - "value": "Unlock device" - }, - { - "name": "face_recognize_slideunlock_title", - "value": "Slide to unlock" - }, - { - "name": "secure_notification_new", - "value": "Show notifications" - }, - - { - "name": "face_fingerprint_settings_switch_title", - "value": "Autofill usernames and passwords" - }, - { - "name": "face_fingerprint_settings_switch_summary", - "value": "Usernames and passwords are accessed from Password Vault." - }, - { - "name": "delete_record_title", - "value": "Delete facial data" - }, - { - "name": "enroll_backup_face_title", - "value": "Set an alternate look" - }, - { - "name": "enroll_backup_face_summary", - "value": "Add another appearance for accurate facial recognition even if you change your look." - }, - - { - "name": "face_introdution_title", - "value": "Require trusted device" - }, - - { - "name": "title_face_stare_aux", - "value": "Require eye contact" - }, - - { - "name": "face_3dguide_info_2", - "value": "Face Recognition verifies your identity based on your facial features. To learn more, see the" - }, - { - "name": "face_guide_2d_announce_link", - "value": "Statement About Face Recognition" - }, - { - "name": "face_guide_3d_announce_link", - "value": "Statement About 3D Face Recognition" - }, - { - "name": "recommend_preference_title", - "value": "Looking for other settings?" - }, - { - "name": "face_config_light_01_universal", - "value": "Raise to wake" - }, - { - "name": "face_recognize_unlock_title", - "value": "Direct unlock" - }, - { - "name": "face_recognize_unlock_summary_3d", - "value": "Unlock directly after successful facial recognition." - }, - { - "name": "face_recognize_slideunlock_summary_3d", - "value": "Slide to unlock after successful facial recognition." - }, - { - "name": "face_unlock_method_close", - "value": "Off" - }, - { - "name": "face_record_cancel", - "value": "Cancel" - }, - { - "name": "face_inform_open_strongbox_msg", - "value": "The Safe feature hasn\\'t been enabled yet." - }, - { - "name": "face_inform_open_applock_msg", - "value": "App Lock is not enabled. Enable now?" - }, - { - "name": "face_record_delete", - "value": "Delete" - }, - { - "name": "face_recognize_lighton_close_universal", - "value": "Disable raise to wake" - }, - { - "name": "title_strong_box_pref", - "value": "Access Safe" - }, - { - "name": "title_apps_security_pref", - "value": "Access App Lock" - }, - { - "name": "face_enterance_off", - "value": "Off" - }, - { - "name": "title_fill_light", - "value": "Low light compensation" - }, - - - { - "name": "face_recognition_is_used", - "value": "人脸识别用于" - }, - { - "name": "main_and_backup_faces", - "value": "已设置主用及备用面容" - }, - - { - "name": "auxiliary_mode", - "value": "辅助模式" - }, - { - "name": "recognize_without_opening_eyes", - "value": "开启屏幕朗读后无需睁眼即可识别" - }, - { - "name": "annotation_screen_keeps_on", - "value": "注视屏幕不熄屏" - }, - { - "name": "enable", - "value": "启用" - }, - { - "name": "activate_safe", - "value": "启用保密柜" - }, - { - "name": "activate_app_lock", - "value": "启用应用锁" - }, - { - "name": "delete_all_face_data", - "value": "删除主用及备用面容" - }, - { - "name": "wether_delete_face_data", - "value": "删除后,基于面部数据的功能将不可用。是否删除?" - } - ] -} \ No newline at end of file diff --git a/ui/faceenroll/feature/faceSettings/src/main/resources/zh_CN/element/string.json b/ui/faceenroll/feature/faceSettings/src/main/resources/zh_CN/element/string.json deleted file mode 100644 index 7d9c40f..0000000 --- a/ui/faceenroll/feature/faceSettings/src/main/resources/zh_CN/element/string.json +++ /dev/null @@ -1,175 +0,0 @@ -{ - "string": [ - { - "name": "entry_MainAbility", - "value": "entry_MainAbility" - }, - { - "name": "mainability_description", - "value": "ETS_Empty Ability" - }, - { - "name": "face_checker", - "value": "人脸识别" - }, - - { - "name": "face_unlock_method", - "value": "解锁屏幕" - }, - { - "name": "face_recognize_slideunlock_title", - "value": "滑动解锁" - }, - { - "name": "secure_notification_new", - "value": "智能显示锁屏通知" - }, - - { - "name": "face_fingerprint_settings_switch_title", - "value": "自动填充账号和密码" - }, - { - "name": "face_fingerprint_settings_switch_summary", - "value": "使用密码保险箱保存的帐号和密码" - }, - { - "name": "delete_record_title", - "value": "删除面部数据" - }, - { - "name": "enroll_backup_face_title", - "value": "设置备用面容" - }, - { - "name": "enroll_backup_face_summary", - "value": "除继续学习您的长相外,还可识别另一种面容" - }, - - { - "name": "face_introdution_title", - "value": "解锁时需连接可信设备" - }, - - { - "name": "title_face_stare_aux", - "value": "人脸识别时需注视屏幕" - }, - - { - "name": "face_3dguide_info_2", - "value": "人脸识别可基于您的面部特征信息进行身份识别,了解" - }, - { - "name": "face_guide_2d_announce_link", - "value": "关于人脸识别的声明。" - }, - { - "name": "face_guide_3d_announce_link", - "value": "关于3D人脸识别的声明。" - }, - { - "name": "recommend_preference_title", - "value": "是否在寻找其他设置项?" - }, - { - "name": "face_config_light_01_universal", - "value": "拿起手机亮屏" - }, - - { - "name": "face_recognize_unlock_title", - "value": "直接解锁" - }, - { - "name": "face_recognize_unlock_summary_3d", - "value": "人脸识别成功后直接解锁" - }, - { - "name": "face_recognize_slideunlock_summary_3d", - "value": "人脸识别成功后滑动屏幕解锁" - }, - { - "name": "face_unlock_method_close", - "value": "关闭" - }, - { - "name": "face_record_cancel", - "value": "取消" - }, - { - "name": "face_inform_open_strongbox_msg", - "value": "需要启用文件管理保密柜完成人脸关联。是否启用?" - }, - { - "name": "face_inform_open_applock_msg", - "value": "需开启应用锁功能才能完成人脸关联。是否立即启用应用锁?" - }, - { - "name": "face_record_delete", - "value": "删除" - }, - { - "name": "face_recognize_lighton_close_universal", - "value": "同时关闭拿起手机亮屏" - }, - { - "name": "title_strong_box_pref", - "value": "访问保密柜" - }, - { - "name": "title_apps_security_pref", - "value": "访问应用锁" - }, - { - "name": "face_enterance_off", - "value": "已关闭" - }, - { - "name": "title_fill_light", - "value": "暗光环境下屏幕补光" - }, - { - "name": "face_recognition_is_used", - "value": "人脸识别用于" - }, - { - "name": "main_and_backup_faces", - "value": "已设置主用及备用面容" - }, - - { - "name": "auxiliary_mode", - "value": "辅助模式" - }, - { - "name": "recognize_without_opening_eyes", - "value": "开启屏幕朗读后无需睁眼即可识别" - }, - { - "name": "annotation_screen_keeps_on", - "value": "注视屏幕不熄屏" - }, - { - "name": "enable", - "value": "启用" - }, - { - "name": "activate_safe", - "value": "启用保密柜" - }, - { - "name": "activate_app_lock", - "value": "启用应用锁" - }, - { - "name": "delete_all_face_data", - "value": "删除主用及备用面容" - }, - { - "name": "wether_delete_face_data", - "value": "删除后,基于面部数据的功能将不可用。是否删除?" - } - ] -} \ No newline at end of file diff --git a/ui/faceenroll/feature/faceSettingsPad/build.gradle b/ui/faceenroll/feature/faceSettingsPad/build.gradle deleted file mode 100644 index f36dadb..0000000 --- a/ui/faceenroll/feature/faceSettingsPad/build.gradle +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -apply plugin: 'com.huawei.ohos.library' -//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 - } - arkEnabled false - buildTypes { - release { - proguardOpt { - proguardEnabled false - rulesFiles 'proguard-rules.pro' - } - } - } -} -dependencies { -} \ No newline at end of file diff --git a/ui/faceenroll/feature/faceSettingsPad/src/main/config.json b/ui/faceenroll/feature/faceSettingsPad/src/main/config.json deleted file mode 100644 index 5fde09b..0000000 --- a/ui/faceenroll/feature/faceSettingsPad/src/main/config.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "app": { - "bundleName": "com.ohos.faceEnroll", - "vendor": "ohos", - "version": { - "code": 1000000, - "name": "1.0.0" - } - }, - "deviceConfig": {}, - "module": { - "package": "com.ohos.faceEnroll", - "deviceType": [ - "phone" - ], - "distro": { - "deliveryWithInstall": true, - "moduleName": "faceSettings1", - "moduleType": "har" - } - } -} \ No newline at end of file diff --git a/ui/faceenroll/feature/faceSettingsPad/src/main/ets/default/common/DefaultConstants.ets b/ui/faceenroll/feature/faceSettingsPad/src/main/ets/default/common/DefaultConstants.ets deleted file mode 100644 index e7040a8..0000000 --- a/ui/faceenroll/feature/faceSettingsPad/src/main/ets/default/common/DefaultConstants.ets +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export default class StyleConstants { - public static DEFAULT_FONT_COLOR: string = '#ffffff' - public static WIDTH: string = '100%'; - public static DIALOG_WIDTH: number = 440; - public static DIALOG_PADDING: number = 24; - public static DIALOG_TITLE_TOP: number = 20; - public static DIALOG_TITLE_BOTTOM: number = 25; - public static DIALOG_BUTTON_WIDTH: number = 196; - public static DIALOG_BUTTON_WIDTH2: number = 392; - public static DIALOG_BUTTON_HEIGHT: number = 45; - public static ICON_WIDTH: number = 25; - public static ICON_HEIGHT: number = 35; - public static BACK_ICON_HEIGHT: number = 60; - public static BACK_ICON_WIDTH: number = 30; - public static RADIO_SIZE: number = 25; - public static TOGGLE_SIZE: number = 40; - public static TOGGLE_BOX_SIZE: number = 50; - public static SINGLE_HEIGHT: number = 68; - public static SINGLE_HEIGHT_: number = 55; - public static DOUBLE_HEIGHT_: number = 68; - public static DIVIDER: number = 1; - public static BORDER_RADIUS: number = 20; - public static PADDING: number = 14; - public static PADDING_30: number = 30; - public static PADDING_4: number = 4; - public static TEXT_PADDING: number = 10; - public static TEXT_PADDING2: number = 20; - public static GERY_BORDER_PADDING: number = 16; - public static WHITE_BACKGROUND_COLOR: string = '#FFFFFF'; - public static GREY_BACKGROUND_COLOR: string = '#F2F3F5'; - public static DARK_GREY_BACKGROUND_COLOR: string = '#E5E6E8'; - public static GREY_FONT_COLOR: string = '#5B5C5E'; - public static BLUE_FONT_COLOR: string = '#0A58F6'; - public static SMALL_FONT_SIZE: number = 17; - public static MEDIUM_FONT_SIZE: number = 18; - public static LARGE_FONT_SIZE: number = 19; - public static OVERSIZE_FONT_SIZE: number = 22; -} \ No newline at end of file diff --git a/ui/faceenroll/feature/faceSettingsPad/src/main/ets/default/pages/index.ets b/ui/faceenroll/feature/faceSettingsPad/src/main/ets/default/pages/index.ets deleted file mode 100644 index 2c69009..0000000 --- a/ui/faceenroll/feature/faceSettingsPad/src/main/ets/default/pages/index.ets +++ /dev/null @@ -1,603 +0,0 @@ -// @ts-nocheck -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import DefaultConstants from '../common/DefaultConstants.ets' -import FaceSettingsPresenter from "../../../../../../../common/src/main/ets/default/common/presenter/FaceSettingsPresenter.ets" -import UserSettingsPresenter from '../../../../../../../common/src/main/ets/default/common/presenter/userSettingsPresenter.ets' - -let mFaceSettingsPresenter: FaceSettingsPresenter; -let mUserSettingsPresenter: UserSettingsPresenter; -const FACENAME = '面部'; - -@Component -export default struct FaceSettings { - scroller: Scroller = new Scroller(); - @Prop faceLength: number; - @Prop userMode: string; - @StorageLink('faceInfo') faceInfos: [] = []; - @StorageLink('fillLight_isOn') fillLight_isOn: boolean = false; - @StorageLink('fillInAccount_isOn') fillInAccount_isOn: boolean = false; - @State appLock_isOn: boolean = true; - @State unlock_num: number = 2; - @State text: string = '面部1'; - private removeFace ; - @State faceNames: [] = []; - private name: [] = [{ isUsed:false }, { isUsed:false },{ isUsed:false },{ isUsed:false },{ isUsed:false }]; - - private aboutToAppear(): void { - console.info("FaceEnroll FaceSettings aboutToAppear start"); - console.info('FaceEnroll FaceSettings faceLength = ' + this.faceLength); - console.info('FaceEnroll FaceSettings userMode = ' + this.userMode); - mFaceSettingsPresenter = FaceSettingsPresenter.getInstance(); - mUserSettingsPresenter = UserSettingsPresenter.getInstance(); - for (let i = 0; i < this.faceInfos.length; i++) { - this.faceNames.push({ - id: this.faceInfos[i].credentialId, - name: i+1 - }); - this.name[i].isUsed = true; - } - console.info("FaceEnroll FaceSettings aboutToAppear end"); - } - - AppLockDialogController: CustomDialogController = new CustomDialogController({ - builder: AppLockDialog({ status: $appLock_isOn }), - autoCancel: false, - customStyle: true - }) - UnlockDialogController: CustomDialogController = new CustomDialogController({ - builder: UnlockDialog({ num: $unlock_num }), - autoCancel: false, - customStyle: true - }) - ReviseFaceController: CustomDialogController = new CustomDialogController({ - builder: ReviseFaceDialog({ text: $text, confirm: this.onAccept.bind(this) }), - autoCancel: false, - customStyle: true - }) - - onAccept() { - let faceToken = AppStorage.Get('faceToken'); - mUserSettingsPresenter.deleteFacePad(this.removeFace, faceToken, this.deleteFaceSuccess.bind(this)); - } - - deleteFaceSuccess() { - if (this.faceInfos.length != 0) { -// let index = this.faceInfos.indexOf(this.removeFace) -// this.faceInfos.splice(index, 1) - for(let i =0;i { - this.UnlockDialogController.open(); - }) - - Divider() - .strokeWidth(DefaultConstants.DIVIDER) - .color(DefaultConstants.GREY_BACKGROUND_COLOR) - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Text($r('app.string.title_apps_security_pref')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - if (this.appLock_isOn === true) { - Row() { - Toggle({ type: ToggleType.Switch, isOn: this.appLock_isOn }) - .width(DefaultConstants.TOGGLE_SIZE) - .onChange(() => { - this.appLock_isOn = false; - mFaceSettingsPresenter.AppLock(this.appLock_isOn); - }) - }.width(DefaultConstants.TOGGLE_BOX_SIZE) - .height(DefaultConstants.SINGLE_HEIGHT_) - } else { - Row() { - Toggle({ type: ToggleType.Switch, isOn: this.appLock_isOn }) - .width(DefaultConstants.TOGGLE_SIZE) - .enabled(false) - - }.width(DefaultConstants.TOGGLE_BOX_SIZE) - .height(DefaultConstants.SINGLE_HEIGHT_) - - .onClick(() => { - if (this.appLock_isOn === false) { - this.AppLockDialogController.open(); - } else { - this.appLock_isOn = false; - mFaceSettingsPresenter.AppLock(this.appLock_isOn); - } - }) - } - } - .height(DefaultConstants.SINGLE_HEIGHT_) - - Divider() - .strokeWidth(DefaultConstants.DIVIDER) - .color(DefaultConstants.GREY_BACKGROUND_COLOR) - - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Start }) { - Text($r('app.string.face_fingerprint_settings_switch_title')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .margin({ bottom: DefaultConstants.PADDING_4 }) - Text($r('app.string.face_fingerprint_settings_switch_summary')) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - } - - Toggle({ type: ToggleType.Switch, isOn: this.fillInAccount_isOn }) - .width(DefaultConstants.TOGGLE_SIZE) - .onChange(() => { - this.fillInAccount_isOn = !this.fillInAccount_isOn - mFaceSettingsPresenter.FillInAccountPassword(this.fillInAccount_isOn); - }) - } - .height(DefaultConstants.DOUBLE_HEIGHT_) - } - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .margin({ bottom: DefaultConstants.PADDING }) - .padding({ - top: DefaultConstants.PADDING_4, - bottom: DefaultConstants.PADDING_4, - left: DefaultConstants.PADDING, - right: DefaultConstants.PADDING - }) - - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Text($r('app.string.face_introdution_title')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - Row() { - Text($r('app.string.face_enterance_off')) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - Image($r('app.media.ic_settings_arrow')) - .width(DefaultConstants.ICON_WIDTH) - .height(DefaultConstants.ICON_HEIGHT) - } - } - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .margin({ bottom: DefaultConstants.PADDING }) - .padding({ left: DefaultConstants.PADDING, right: DefaultConstants.PADDING }) - .height(DefaultConstants.SINGLE_HEIGHT) - .onClick(() => { - AppStorage.SetOrCreate('facePageFlag', 1); - }) - - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Text($r('app.string.title_fill_light')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - Toggle({ type: ToggleType.Switch, isOn: this.fillLight_isOn }) - .width(DefaultConstants.TOGGLE_SIZE) - .onChange(() => { - this.fillLight_isOn = !this.fillLight_isOn - mFaceSettingsPresenter.ScreenFillFightInLowLightEnvironment(this.fillLight_isOn); - }) - } - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .margin({ bottom: DefaultConstants.PADDING }) - .padding({ left: DefaultConstants.PADDING, right: DefaultConstants.PADDING }) - .height(DefaultConstants.SINGLE_HEIGHT) - - Text() { - Span($r('app.string.multiface_list_title')) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - if (Number(this.faceInfos.length) != 0) { - Span('(' + Number(this.faceInfos.length) + '/5)') - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - } - } - .padding({ left: DefaultConstants.PADDING, right: DefaultConstants.PADDING }) - .margin({ bottom: DefaultConstants.TEXT_PADDING, top: DefaultConstants.TEXT_PADDING }) - - Column() { - ForEach(this.faceNames, (item) => { - Column() { - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Text(FACENAME + item.name) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - } - .height(DefaultConstants.SINGLE_HEIGHT_) - .onClick(() => { - this.text = FACENAME + item.name; - this.removeFace = item.id; - this.ReviseFaceController.open(); - }) - - if (this.faceInfos.length <= 4) { - Divider() - .strokeWidth(DefaultConstants.DIVIDER) - .color(DefaultConstants.GREY_BACKGROUND_COLOR) - } - } - }) - if (this.faceInfos.length != 5) { - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Text($r('app.string.multiface_enroll_new_face')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .fontColor(DefaultConstants.BLUE_FONT_COLOR) - } - .height(DefaultConstants.SINGLE_HEIGHT_) - .onClick(() => { - mFaceSettingsPresenter.NewFaceData(this.addFaceInfo.bind(this)); - }) - } - } - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .padding({ - top: DefaultConstants.PADDING_4, - bottom: DefaultConstants.PADDING_4, - left: DefaultConstants.PADDING, - right: DefaultConstants.PADDING - }) - - Text() { - Span($r('app.string.face_3dguide_info_2')) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - Span($r('app.string.face_guide_2d_announce_link')) - .fontColor(DefaultConstants.BLUE_FONT_COLOR) - } - .fontSize(DefaultConstants.SMALL_FONT_SIZE) - .padding({ left: DefaultConstants.PADDING, right: DefaultConstants.PADDING }) - .margin({ bottom: DefaultConstants.PADDING, top: DefaultConstants.TEXT_PADDING }) - - Column() { - Text($r('app.string.recommend_preference_title')) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - .margin({ bottom: DefaultConstants.GERY_BORDER_PADDING }) - Text($r('app.string.face_config_light_01_universal')) - .fontColor(DefaultConstants.BLUE_FONT_COLOR) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - } - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.DARK_GREY_BACKGROUND_COLOR) - .margin({ top: DefaultConstants.PADDING }) - .padding({ - bottom: DefaultConstants.GERY_BORDER_PADDING, - top: DefaultConstants.GERY_BORDER_PADDING, - left: DefaultConstants.PADDING, - right: DefaultConstants.PADDING - }) - .width(DefaultConstants.WIDTH) - .alignItems(HorizontalAlign.Start) - } - // .backgroundColor(DefaultConstants.GREY_BACKGROUND_COLOR) - .padding({ - left: DefaultConstants.PADDING, - right: DefaultConstants.PADDING - }) - .alignItems(HorizontalAlign.Start) - } - .scrollBarWidth(0) - } - .width(DefaultConstants.WIDTH) - .height(DefaultConstants.WIDTH) - .backgroundColor(DefaultConstants.GREY_BACKGROUND_COLOR) - } -} - -@CustomDialog -struct ReviseFaceDialog { - controller: CustomDialogController; - @Link text: string; - confirm: () => {} - - build() { - Column() { - Text($r('app.string.multiface_face_name_title')) - .fontSize(DefaultConstants.OVERSIZE_FONT_SIZE) - .margin({ bottom: DefaultConstants.DIALOG_TITLE_BOTTOM }) - TextInput({ placeholder: '面部1', text: this.text }) - .margin({ bottom: DefaultConstants.DIALOG_TITLE_TOP }) - .placeholderFont({ size: DefaultConstants.LARGE_FONT_SIZE }) - .caretColor(Color.White) - .placeholderColor(Color.Grey) - .width(DefaultConstants.WIDTH) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .onChange((value: string) => { - this.text = value; - }); - Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) { - Button() { - Text($r('app.string.delete_face')) - .fontColor(DefaultConstants.BLUE_FONT_COLOR) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - } - .type(ButtonType.Capsule) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .width(DefaultConstants.DIALOG_BUTTON_WIDTH) - .height(DefaultConstants.DIALOG_BUTTON_HEIGHT) - .onClick(() => { - this.controller.close(); - this.confirm(); - }) - - Button() { - Text($r('app.string.multiface_save')) - .fontColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - } - .backgroundColor(DefaultConstants.BLUE_FONT_COLOR) - .type(ButtonType.Capsule) - .width(DefaultConstants.DIALOG_BUTTON_WIDTH) - .height(DefaultConstants.DIALOG_BUTTON_HEIGHT) - .onClick(() => { - this.controller.close(); - }) - } - } - .width(DefaultConstants.DIALOG_WIDTH) - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .alignItems(HorizontalAlign.Start) - .padding({ - top: DefaultConstants.DIALOG_TITLE_TOP, - bottom: DefaultConstants.DIALOG_TITLE_TOP, - left: DefaultConstants.DIALOG_PADDING, - right: DefaultConstants.DIALOG_PADDING - }) - } -} - -@CustomDialog -struct AppLockDialog { - @Link status: boolean - controller: CustomDialogController - - build() { - Column() { - Text($r('app.string.activate_app_lock')) - .fontSize(DefaultConstants.OVERSIZE_FONT_SIZE) - .margin({ bottom: DefaultConstants.DIALOG_TITLE_BOTTOM }) - Text($r('app.string.face_inform_open_applock_msg')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .margin({ bottom: DefaultConstants.DIALOG_TITLE_TOP }) - Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) { - Button() { - Text($r('app.string.face_record_cancel')) - .fontColor(DefaultConstants.BLUE_FONT_COLOR) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - } - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .type(ButtonType.Capsule) - .width(DefaultConstants.DIALOG_BUTTON_WIDTH) - .height(DefaultConstants.DIALOG_BUTTON_HEIGHT) - .onClick(() => { - this.controller.close(); - }) - - Divider() - .vertical(true) - .strokeWidth(DefaultConstants.DIVIDER) - .color(DefaultConstants.DARK_GREY_BACKGROUND_COLOR) - .height(DefaultConstants.PADDING_30) - Button() { - Text($r('app.string.enable')) - .fontColor(DefaultConstants.BLUE_FONT_COLOR) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - } - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .type(ButtonType.Capsule) - .width(DefaultConstants.DIALOG_BUTTON_WIDTH) - .height(DefaultConstants.DIALOG_BUTTON_HEIGHT) - .onClick(() => { - this.status = true; - mFaceSettingsPresenter.AppLock(this.status); - this.controller.close(); - }) - } - } - .width(DefaultConstants.DIALOG_WIDTH) - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .alignItems(HorizontalAlign.Start) - .padding({ - top: DefaultConstants.DIALOG_TITLE_TOP, - bottom: DefaultConstants.DIALOG_TITLE_TOP, - left: DefaultConstants.DIALOG_PADDING, - right: DefaultConstants.DIALOG_PADDING - }) - } -} - -@CustomDialog -struct UnlockDialog { - @Link num: number - controller: CustomDialogController; - @State booleans: boolean[] = [false, false, false] - - aboutToAppear() { - this.booleans[this.num] = true - } - - isChecked(num) { - for (let i = 0;i < this.booleans.length; i++) { - if (i != num) { - this.booleans[i] = false - } else { - this.booleans[i] = true - } - } - } - - build() { - Column() { - Text($r('app.string.face_unlock_method')) - .fontSize(DefaultConstants.OVERSIZE_FONT_SIZE) - .margin({ bottom: DefaultConstants.DIALOG_TITLE_BOTTOM }) - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Start }) { - Text($r('app.string.face_recognize_unlock_title')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .margin({ bottom: DefaultConstants.PADDING_4 }) - Text($r('app.string.face_recognize_unlock_summary_3d')) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - } - - Toggle({ type: ToggleType.Checkbox, isOn: this.booleans[0] }) - .width(DefaultConstants.RADIO_SIZE) - .height(DefaultConstants.RADIO_SIZE) - .onChange(() => { - this.isChecked(0) - this.num = 0 - mFaceSettingsPresenter.chooseUnlockMethod(this.num); - this.controller.close(); - }) - }.height(DefaultConstants.DOUBLE_HEIGHT_) - - Divider() - .strokeWidth(DefaultConstants.DIVIDER) - .color(DefaultConstants.GREY_BACKGROUND_COLOR) - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Start }) { - Text($r('app.string.face_recognize_slideunlock_title')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - .margin({ bottom: DefaultConstants.PADDING_4 }) - Text($r('app.string.face_recognize_slideunlock_summary_3d')) - .fontColor(DefaultConstants.GREY_FONT_COLOR) - .fontSize(DefaultConstants.MEDIUM_FONT_SIZE) - } - - Toggle({ type: ToggleType.Checkbox, isOn: this.booleans[1] }) - .width(DefaultConstants.RADIO_SIZE) - .height(DefaultConstants.RADIO_SIZE) - .onChange(() => { - this.isChecked(1) - this.num = 1 - mFaceSettingsPresenter.chooseUnlockMethod(this.num); - this.controller.close() - }) - }.height(DefaultConstants.DOUBLE_HEIGHT_) - - Divider() - .strokeWidth(DefaultConstants.DIVIDER) - .color(DefaultConstants.GREY_BACKGROUND_COLOR) - Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - Text($r('app.string.face_unlock_method_close')) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - Toggle({ type: ToggleType.Checkbox, isOn: this.booleans[2] }) - .width(DefaultConstants.RADIO_SIZE) - .height(DefaultConstants.RADIO_SIZE) - .onChange(() => { - this.isChecked(2) - this.num = 2; - mFaceSettingsPresenter.chooseUnlockMethod(this.num); - this.controller.close() - }) - }.height(DefaultConstants.SINGLE_HEIGHT_) - - Button() { - Text($r('app.string.face_record_cancel')) - .fontColor(DefaultConstants.BLUE_FONT_COLOR) - .fontSize(DefaultConstants.LARGE_FONT_SIZE) - } - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .type(ButtonType.Capsule) - .width(DefaultConstants.DIALOG_BUTTON_WIDTH2) - .height(DefaultConstants.DIALOG_BUTTON_HEIGHT) - .onClick(() => { - this.controller.close(); - }) - } - .width(DefaultConstants.DIALOG_WIDTH) - .borderRadius(DefaultConstants.BORDER_RADIUS) - .backgroundColor(DefaultConstants.WHITE_BACKGROUND_COLOR) - .alignItems(HorizontalAlign.Start) - .padding({ - top: DefaultConstants.DIALOG_TITLE_TOP, - bottom: DefaultConstants.DIALOG_TITLE_TOP, - left: DefaultConstants.DIALOG_PADDING, - right: DefaultConstants.DIALOG_PADDING - }) - } -} \ No newline at end of file diff --git a/ui/faceenroll/feature/faceSettingsPad/src/main/resources/base/element/string.json b/ui/faceenroll/feature/faceSettingsPad/src/main/resources/base/element/string.json deleted file mode 100644 index ed637ac..0000000 --- a/ui/faceenroll/feature/faceSettingsPad/src/main/resources/base/element/string.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "string": [ - { - "name": "entry_MainAbility", - "value": "entry_MainAbility" - }, - { - "name": "mainability_description", - "value": "ETS_Empty Ability" - }, - { - "name": "face_checker", - "value": "人脸识别" - }, - - { - "name": "face_unlock_method", - "value": "解锁屏幕" - }, - { - "name": "face_recognize_slideunlock_title", - "value": "滑动解锁" - }, - { - "name": "title_apps_security_pref", - "value": "访问应用锁" - }, - { - "name": "title_fill_light", - "value": "暗光环境下屏幕补光" - }, - { - "name": "recommend_preference_title", - "value": "是否在寻找其他设置项?" - }, - { - "name": "face_config_light_01_universal", - "value": "拿起手机亮屏" - }, - { - "name": "multiface_list_title", - "value": "面部列表" - }, - { - "name": "multiface_default_face_name_1", - "value": "面部 1" - }, - { - "name": "multiface_default_face_name", - "value": "面部" - }, - { - "name": "multiface_enroll_new_face", - "value": "新建面部数据" - }, - { - "name": "multiface_face_name_title", - "value": "面部名称" - }, - { - "name": "delete_face", - "value": "删除面部" - }, - { - "name": "multiface_save", - "value": "保存" - }, - { - "name": "face_unlock_method_close", - "value": "关闭" - }, - { - "name": "face_recognize_unlock_title", - "value": "直接解锁" - }, - { - "name": "face_3dguide_info_2", - "value": "人脸识别可基于您的面部特征信息进行身份识别,了解" - }, - { - "name": "face_guide_2d_announce_link", - "value": "关于人脸识别的声明。" - }, - { - "name": "activate_app_lock", - "value": "启用应用锁" - }, - { - "name": "face_inform_open_applock_msg", - "value": "需开启应用锁功能才能完成人脸关联。是否立即启用应用锁?" - }, - { - "name": "face_record_cancel", - "value": "取消" - }, - { - "name": "enable", - "value": "启用" - }, - { - "name": "face_recognize_unlock_summary_3d", - "value": "人脸识别成功后直接解锁" - }, - { - "name": "face_recognize_slideunlock_summary_3d", - "value": "人脸识别成功后,滑动屏幕解锁" - }, - { - "name": "face_recognition_is_used", - "value": "人脸识别用于" - }, - { - "name": "face_introdution_title", - "value": "解锁时需连接可信设备" - }, - { - "name": "face_enterance_off", - "value": "已关闭" - }, - { - "name": "face_fingerprint_settings_switch_title", - "value": "自动填充账号和密码" - }, - { - "name": "face_fingerprint_settings_switch_summary", - "value": "使用密码保险箱保存的帐号和密码" - } - ] -} \ No newline at end of file diff --git a/ui/faceenroll/feature/faceSettingsPad/src/main/resources/base/media/back.png b/ui/faceenroll/feature/faceSettingsPad/src/main/resources/base/media/back.png deleted file mode 100644 index 85dcc6ad6895ff1b4ef599be169e0df24a7b01b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 893 zcmV-@1A_dCP)EX>4Tx04R}tkv&MmKpe$iQ%l8G3fe)$AwzYtAS&W0RV;#q(pG5I!Q|2}Xws0R zxHt-~1qVMCs}3&Cx;nTDg5U>;o12rOiOg)ia%%JP|x`&6acTt|z{oJ3UU&)&c@QB27OgAjz4dR(i zOXs{#9A+g+AwDM_H|T=Ik6f2se&bwpSm2pqBa@mZ4ik&T4wgHZl?;`5nmD4U8s!UF zmle)ioYhK=weHDZ7|d%cX|B^8K^#j+APEsNYAB-u3sG7%QcR?1Ki0)R?D&)9lF3yD zBgX=&P$4;f@IUz7ty!3wbd!QH!1rR?AESVO7iiXP`}^3ony{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2jvS71s@{2AB;x;00DVPL_t(&-tE>sNCPn##_>cd zh#**7AqY;+?QBKp)I|{Cy_|!CUmz${1-&jVPR@ z?{#Q~x(TJ)a?fuK7sCIJ%PRx`000000002Me`4k#RB)`dQ(F5^K~UO63~Q&g_Ft7! zY>e5BdyHAF{dc8QWQ^I0dyF|x`yVdGM%-hpc-sF`N_`q*mg62{wJFAY++%Ee+K-e{ zZ^js}lg}#uAjZzZ;?iE_>Qa=;<^4jTaMt3McT&pxt_;G=+1hUy~pJM6q^^ zh#p*&BWCVF6l*g?^ys1-;M!?KnIxj;ASj(M^8ku8rdV9T000000000003GieI()ku TraWJ?00000NkvXXu0mjf+ewd3 diff --git a/ui/faceenroll/feature/faceSettingsPad/src/main/resources/base/media/ic_settings_arrow.svg b/ui/faceenroll/feature/faceSettingsPad/src/main/resources/base/media/ic_settings_arrow.svg deleted file mode 100644 index d7dd265..0000000 --- a/ui/faceenroll/feature/faceSettingsPad/src/main/resources/base/media/ic_settings_arrow.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ui/faceenroll/feature/faceSettingsPad/src/main/resources/base/media/icon.png b/ui/faceenroll/feature/faceSettingsPad/src/main/resources/base/media/icon.png deleted file mode 100644 index ce307a8827bd75456441ceb57d530e4c8d45d36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6790 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 ${log}`); - } - - /** - * print debug level log - * - * @param {string} tag - Page or class tag - * @param {string} log - Log needs to be printed - */ - static showDebug(tag, log) { - console.debug(`${TAG} tag: ${tag} --> ${log}`); - } - - /** - * print error level log - * - * @param {string} tag - Page or class tag - * @param {string} log - Log needs to be printed - */ - static showError(tag, log) { - console.error(`${TAG} tag: ${tag} --> ${log}`); - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/ets/default/common/constant.ets b/ui/faceenroll/product/pad/src/main/ets/default/common/constant.ets deleted file mode 100644 index bab219a..0000000 --- a/ui/faceenroll/product/pad/src/main/ets/default/common/constant.ets +++ /dev/null @@ -1,429 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import router from '@system.router'; -import Log from '../common/Log.ets' - -const TAG = 'constant' - -async function routeSuccess() { - let options = { - uri: 'pages/success' - } - try { - await router.push(options) - } catch (err) { - console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`) - } -} - -async function route_back() { - let options = { - uri: 'pages/index' - } - try { - await router.push(options) - } catch (err) { - console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`) - } -} - -export default class Constants { - - //code and errorCode - static CODE_RESULT = 1 - static CODE_CANCEL = 2 - static CODE_ACQUIRE = 3 - static ERROR_CODE_SUCCESS = 0 - static ERROR_CODE_FAIL = 1 - static ERROR_CODE_CANCEL = 2 - static ERROR_CODE_TIMEOUT = 4 - static ERROR_CODE_ALGORITHM_NOT_INIT = 5 - static ERROR_CODE_HAL_INVALID = 6 - static ERROR_CODE_OVER_MAX_FACES = 7 - static ERROR_CODE_INVALID_PARAMETERS = 9 - static ERROR_CODE_BUSY = 13 - static ERROR_CODE_ENROLL_HAS_REGISTERED = 16 - static ERROR_CODE_FACE_DETECTED = 38 - static ERROR_CODE_BAD_QUALITY = 4 - static ERROR_CODE_NOT_FOUND = 5 - static ERROR_CODE_TOO_SMALL = 6 - static ERROR_CODE_TOO_LARGE = 7 - static ERROR_CODE_OFFSET_LEFT = 8 - static ERROR_CODE_OFFSET_TOP = 9 - static ERROR_CODE_OFFSET_RIGHT = 10 - static ERROR_CODE_OFFSET_BOTTOM = 11 - static ERROR_CODE_LIVENESS_WARNING = 13 - static ERROR_CODE_LIVENESS_FAILURE = 14 - static ERROR_CODE_ROTATED_LEFT = 15 - static ERROR_CODE_RISE = 16 - static ERROR_CODE_ROTATED_RIGHT = 17 - static ERROR_CODE_DOWN = 18 - static ERROR_CODE_EYE_OCCLUSION = 21 - static ERROR_CODE_EYE_CLOSE = 22 - static ERROR_CODE_MOUTH_OCCLUSION = 23 - static ERROR_CODE_MULTI = 27 - static ERROR_CODE_BLUR = 28 - static ERROR_CODE_NOT_COMPLETE = 29 - static ERROR_CODE_DARKLIGHT = 30 - static ERROR_CODE_HIGHTLIGHT = 31 - static ERROR_CODE_HALF_SHADOW = 32 - static ERROR_CODE_HAS_REGISTERED = 37 - static ERROR_CODE_DARKPIC = 39 - static ERROR_CODE_ROTATE_TOP_RIGHT = 40 - static ERROR_CODE_ROTATE_TOP_LEFT = 41 - static ERROR_CODE_ROTATE_BOTTOM_RIGHT = 42 - static ERROR_CODE_ROTATE_BOTTOM_LEFT = 43 - static ERROR_CODE_OPEN_CAMERA_FAILED = 46 - static ERROR_CODE_PROGRESS_FIRST = 1004 - static ERROR_CODE_PROGRESS_SECOND = 1008 - static ERROR_CODE_PROGRESS_THIRD = 1012 - static PARAM_TOKEN = "check" - static FLAGS = 0 - static FACEID = 0 - static PREVIEWID = 2 - - - //setTimeout - static TIMEOUT_100 = 100 - static TIMEOUT_200 = 200 - static TIMEOUT_300 = 300 - static TIMEOUT_400 = 400 - static TIMEOUT_500 = 500 - static TIMEOUT_600 = 600 - static TIMEOUT_700 = 700 - static TIMEOUT_800 = 800 - static TIMEOUT_900 = 900 - static TIMEOUT_1000 = 1000 - static TIMEOUT_1100 = 1100 - static TIMEOUT_1200 = 1200 - static TIMEOUT_1300 = 1300 - static TIMEOUT_1400 = 1400 - static TIMEOUT_1500 = 1500 - static TIMEOUT_1600 = 1600 - static TIMEOUT_1700 = 1700 - static TIMEOUT_1800 = 1800 - static TIMEOUT_1900 = 1900 - static TIMEOUT_2000 = 2000 - static TIMEOUT_3000 = 3000 - - //UI - static SHELTER_ANIMATOR = 1000 - static PROGRESS_START = 0 - static PROGRESS_TOTAL = 100 - static FONT_WEIGHT = 500 - static ENROll_TITLE = 600 - static SHELTER_START_WIDTH = 1100 - static SHELTER_END_WIDTH = '100%' - static CENTER_HEIGHT = '620lpx' - static SHELTER_START_HEIGHT = '2000lpx' - static SHELTER_END_HEIGHT = '640lpx' - static SHELTER_3D_END_HEIGHT = '640lpx' - static PROGRESS_VALUE_FIRST = 30 - static PROGRESS_VALUE_SECOND = 60 - static PROGRESS_VALUE_THIRD = 100 - static SPACE = 20 - static INITIAL_INDEX = 0 - static HEIGHT_LIST = 60 - static FONTSIZE_16 = 16 - static BORDER_RADIUS = 10 - static STROKE_WIDTH = 2 - static START_MARGIN = 20 - static END_MARGIN = 20 - static SHOW_START_VIEWS_3D = '3D' - static SHOW_START_VIEWS_2D = '2D' - static LIST_PADDING = 5 - static BLUR_START = 0 - static BLUR_END = 40 - static CENTER_POSITION_Y = 5 - static BUTTON_POSITION = '92%' - static ENROLL_INFO_POSITION = '918lpx' - static ENROLL_INFO_WIDTH = '90%' - static CHECKBOX_POSITION_X = '5%' - static CHECKBOX_POSITION_Y = '85%' - static CHECKBOX_TEXT_POSITION_X = '18%' - static CHECKBOX_TEXT_POSITION_Y = '87%' - - - static PROGRESS_WIDTH = '460lpx' - static BACK_WIDTH = '136lpx' - static BACK_HEIGHT = '110lpx' - static TITLE_FONT_SIZE = '48lpx' - static TITLE_MARGIN = '24lpx' - static TITLE_ENROLLING_MARGIN = '140lpx' - static IMAGE_MARGIN = '96lpx' - static IMAGE_3D_MARGIN = '48lpx' - static FONT_SIZE = '28lpx' - static SMALL_TITLE_FONT_SIZE = '36lpx' - static CONTENT1_MARGIN = '16lpx' - static CONTENT2_MARGIN = '8lpx' - static BUTTON_FONT_SIZE = '32lpx' - static BUTTON_WIDTH = '384lpx' - static BUTTON_HEIGHT = '80lpx' - static IMAGE_2D_HEIGHT = '480lpx' - static IMAGE_3D_WIDTH = '512lpx' - static ERROR_CODE_INFO_SIZE = '32lpx' - static ENROLL_CENTER_POSITION_Y = '240lpx' - static SUCCESS_WIDTH = '204lpx' - static CHECKBOX_SIZE = '70lpx' - static APERTURE1_WIDTH = '266lpx' - static APERTURE2_WIDTH = '264lpx' - static APERTURE34_WIDTH = '284lpx' - static APERTURE5_WIDTH = '466lpx' - - - - //PROGRESS - static PROGRESS_VALUE_5 = 5 - static PROGRESS_VALUE_10 = 10 - static PROGRESS_VALUE_15 = 15 - static PROGRESS_VALUE_20 = 20 - static PROGRESS_VALUE_25 = 25 - static PROGRESS_VALUE_30 = 30 - static PROGRESS_VALUE_35 = 35 - static PROGRESS_VALUE_40 = 40 - static PROGRESS_VALUE_45 = 45 - static PROGRESS_VALUE_50 = 50 - static PROGRESS_VALUE_55 = 55 - static PROGRESS_VALUE_60 = 60 - static PROGRESS_VALUE_65 = 65 - static PROGRESS_VALUE_70 = 70 - static PROGRESS_VALUE_75 = 75 - static PROGRESS_VALUE_80 = 80 - static PROGRESS_VALUE_85 = 85 - static PROGRESS_VALUE_90 = 90 - static PROGRESS_VALUE_95 = 95 - static PROGRESS_VALUE_100 = 100 - - static DECLARE_WIDTH = '90%' - static DECLARE_MAX_WIDTH = '100%' - static DECLARE_TITLE_FONT_SIZE = 25 - static DECLARE_SECONDARY_TITLE_FONT_SIZE = 23 - static DECLARE_TEXT_FONT_SIZE = 22 - static DECLARE_ITEM_MARGIN_BOTTOM = 10 - static DECLARE_TITLE_MARGIN_TOP = 20 - static DECLARE_TITLE_MARGIN_BOTTOM = 20 - static DECLARE_TEXT_LINE_HEIGHT = 33 - static DECLARE_SCROLL_BAR_WIDTH = 0 - static DECLARE_BACKGROUND_COLOR = "#F2F3F5" - static DECLARE_TITLE_2 = "2." - static DECLARE_TITLE_3 = "3." - static DECLARE_TITLE_4 = "4." - static DECLARE_TITLE_5 = "5." - - - - - //errorCode value - static value(){ - const info = new Map() - info.set(Constants.ERROR_CODE_BAD_QUALITY,$r('app.string.enroll_info_bad_quality')) - info.set(Constants.ERROR_CODE_NOT_FOUND,$r('app.string.enroll_info_not_found')) - info.set(Constants.ERROR_CODE_TOO_SMALL,$r('app.string.face_record_3d_tip_close')) - info.set(Constants.ERROR_CODE_TOO_LARGE,$r('app.string.face_record_3d_tip_far')) - info.set(Constants.ERROR_CODE_OFFSET_LEFT,$r('app.string.face_enroll_too_left')) - info.set(Constants.ERROR_CODE_OFFSET_TOP,$r('app.string.face_enroll_too_high')) - info.set(Constants.ERROR_CODE_OFFSET_RIGHT,$r('app.string.face_enroll_too_right')) - info.set(Constants.ERROR_CODE_OFFSET_BOTTOM,$r('app.string.face_enroll_too_low')) - info.set(Constants.ERROR_CODE_LIVENESS_WARNING,$r('app.string.enroll_info_liveness_warning')) - info.set(Constants.ERROR_CODE_LIVENESS_FAILURE,$r('app.string.enroll_info_liveness_failure')) - info.set(Constants.ERROR_CODE_ROTATED_LEFT,$r('app.string.face_rotate_too_left')) - info.set(Constants.ERROR_CODE_RISE,$r('app.string.face_rotate_too_high')) - info.set(Constants.ERROR_CODE_ROTATED_RIGHT,$r('app.string.face_rotate_too_right')) - info.set(Constants.ERROR_CODE_DOWN,$r('app.string.face_rotate_too_low')) - info.set(Constants.ERROR_CODE_EYE_OCCLUSION,$r('app.string.enroll_info_eye_occlusion')) - info.set(Constants.ERROR_CODE_EYE_CLOSE,$r('app.string.enroll_info_eye_close')) - info.set(Constants.ERROR_CODE_MOUTH_OCCLUSION,$r('app.string.enroll_info_mouth_occlusion')) - info.set(Constants.ERROR_CODE_MULTI,$r('app.string.face_record_3d_tip_multi')) - info.set(Constants.ERROR_CODE_BLUR,$r('app.string.enroll_info_blur')) - info.set(Constants.ERROR_CODE_NOT_COMPLETE,$r('app.string.enroll_info_not_complete')) - info.set(Constants.ERROR_CODE_DARKLIGHT,$r('app.string.enroll_info_darklight')) - info.set(Constants.ERROR_CODE_HIGHTLIGHT,$r('app.string.enroll_info_highlight')) - info.set(Constants.ERROR_CODE_HALF_SHADOW,$r('app.string.enroll_info_half_shadow')) - info.set(Constants.ERROR_CODE_HAS_REGISTERED,$r('app.string.enroll_info_face_has_registered')) - info.set(Constants.ERROR_CODE_DARKPIC,$r('app.string.enroll_info_darkpic')) - info.set(Constants.ERROR_CODE_ROTATE_TOP_RIGHT,$r('app.string.enroll_info_rotate_top_right')) - info.set(Constants.ERROR_CODE_ROTATE_TOP_LEFT,$r('app.string.enroll_info_rotate_top_left')) - info.set(Constants.ERROR_CODE_ROTATE_BOTTOM_RIGHT,$r('app.string.enroll_info_rotate_bottom_right')) - info.set(Constants.ERROR_CODE_ROTATE_BOTTOM_LEFT,$r('app.string.enroll_info_rotate_bottom_left')) - info.set(Constants.ERROR_CODE_OPEN_CAMERA_FAILED,$r('app.string.enroll_info_open_camera_failed')) - - return info - } - - //face progress_3D - static progress() { - const pro = new Map() - pro.set(Constants.ERROR_CODE_PROGRESS_FIRST,Constants.PROGRESS_VALUE_FIRST) - pro.set(Constants.ERROR_CODE_PROGRESS_SECOND,Constants.PROGRESS_VALUE_SECOND) - pro.set(Constants.ERROR_CODE_PROGRESS_THIRD,Constants.PROGRESS_VALUE_THIRD) - - return pro - } - static result() { - const res = new Map() - res.set(Constants.ERROR_CODE_FAIL,'') - res.set(Constants.ERROR_CODE_CANCEL,$r('app.string.enroll_info_cancel')) - res.set(Constants.ERROR_CODE_ALGORITHM_NOT_INIT,$r('app.string.enroll_info_algorithm_not_init')) - res.set(Constants.ERROR_CODE_HAL_INVALID,$r('app.string.enroll_info_hal_invalid')) - res.set(Constants.ERROR_CODE_OVER_MAX_FACES,$r('app.string.enroll_info_over_max_faces')) - res.set(Constants.ERROR_CODE_INVALID_PARAMETERS,$r('app.string.enroll_info_invalid_parameters')) - res.set(Constants.ERROR_CODE_BUSY,$r('app.string.enroll_info_busy')) - res.set(Constants.ERROR_CODE_ENROLL_HAS_REGISTERED,$r('app.string.enroll_info_has_registered')) - - return res - } - - //face progress_2D - static progress_2D(){ - Log.showInfo(TAG,'progress_2D') - - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_5) - },Constants.TIMEOUT_100); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_10) - },Constants.TIMEOUT_200); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_15) - },Constants.TIMEOUT_300); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_20) - },Constants.TIMEOUT_400); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_25) - },Constants.TIMEOUT_500); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_30) - },Constants.TIMEOUT_600); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_35) - },Constants.TIMEOUT_700); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_40) - },Constants.TIMEOUT_800); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_45) - },Constants.TIMEOUT_900); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_50) - },Constants.TIMEOUT_1000); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_55) - },Constants.TIMEOUT_1100); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_60) - },Constants.TIMEOUT_1200); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_65) - },Constants.TIMEOUT_1300); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_70) - },Constants.TIMEOUT_1400); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_75) - },Constants.TIMEOUT_1500); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_80) - },Constants.TIMEOUT_1600); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_85) - },Constants.TIMEOUT_1700); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_90) - },Constants.TIMEOUT_1800); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_95) - },Constants.TIMEOUT_1900); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_100) - routeSuccess() - },Constants.TIMEOUT_2000) - } - - static aperture(){ - setTimeout(() => { - AppStorage.Set('showAperture1',false) - AppStorage.Set('showAperture2',true) - }, Constants.TIMEOUT_1000) - setTimeout(() => { - AppStorage.Set('showAperture2',false) - AppStorage.Set('showAperture3',true) - }, Constants.TIMEOUT_1300) - setTimeout(() => { - AppStorage.Set('showAperture3',false) - AppStorage.Set('showAperture4',true) - }, Constants.TIMEOUT_1600) - setTimeout(() => { - AppStorage.Set('showAperture4',false) - AppStorage.Set('showAperture5',true) - }, Constants.TIMEOUT_1900) - } - - static RESULT_CODE_SUCCESS = 0 - static RESULT_CODE_FAIL = 1 - static RESULT_CODE_GENERAL_ERROR = 2 - static RESULT_CODE_CANCELED = 3 - static RESULT_CODE_TIMEOUT = 4 - static RESULT_CODE_TYPE_NOT_SUPPORT = 5 - static RESULT_CODE_TRUST_LEVEL_NOT_SUPPORT = 6 - static RESULT_CODE_BUSY = 7 - static RESULT_CODE_INVALID_PARAMETERS = 8 - static RESULT_CODE_LOCKED = 9 - static RESULT_CODE_NOT_ENROLLED = 10 - - static resultCode(){ - const Code = new Map() - Code.set(Constants.RESULT_CODE_SUCCESS,$r('app.string.enroll_success')) - Code.set(Constants.RESULT_CODE_FAIL,$r('app.string.enrolling_fail')) - Code.set(Constants.RESULT_CODE_GENERAL_ERROR,$r('app.string.enrolling_fail')) - Code.set(Constants.RESULT_CODE_CANCELED,$r('app.string.enroll_info_cancel')) - Code.set(Constants.RESULT_CODE_TIMEOUT,$r('app.string.enrolling_timeout')) - Code.set(Constants.RESULT_CODE_TYPE_NOT_SUPPORT,$r('app.string.enrolling_fail')) - Code.set(Constants.RESULT_CODE_TRUST_LEVEL_NOT_SUPPORT,$r('app.string.enrolling_fail')) - Code.set(Constants.RESULT_CODE_BUSY,$r('app.string.enrolling_fail')) - Code.set(Constants.RESULT_CODE_INVALID_PARAMETERS,$r('app.string.enrolling_fail')) - Code.set(Constants.RESULT_CODE_LOCKED,$r('app.string.enrolling_fail')) - Code.set(Constants.RESULT_CODE_NOT_ENROLLED,$r('app.string.enrolling_fail')) - return Code - } - - static FACE_AUTH_TIP_TOO_BRIGHT = 1 - static FACE_AUTH_TIP_TOO_DARK = 2 - static FACE_AUTH_TIP_TOO_CLOSE = 3 - static FACE_AUTH_TIP_TOO_FAR = 4 - static FACE_AUTH_TIP_TOO_HIGH = 5 - static FACE_AUTH_TIP_TOO_LOW = 6 - static FACE_AUTH_TIP_TOO_RIGHT = 7 - static FACE_AUTH_TIP_TOO_LEFT = 8 - static FACE_AUTH_TIP_TOO_MUCH_MOTION = 9 - static FACE_AUTH_TIP_POOR_GAZE = 10 - static FACE_AUTH_TIP_NOT_DETECTED = 11 - - static FaceTips(){ - const Tips = new Map() - Tips.set(Constants.FACE_AUTH_TIP_TOO_BRIGHT,$r('app.string.enroll_info_highlight')) - Tips.set(Constants.FACE_AUTH_TIP_TOO_DARK,$r('app.string.enroll_info_darklight')) - Tips.set(Constants.FACE_AUTH_TIP_TOO_CLOSE,$r('app.string.enroll_info_scale_too_large')) - Tips.set(Constants.FACE_AUTH_TIP_TOO_FAR,$r('app.string.enroll_info_scale_too_small')) - Tips.set(Constants.FACE_AUTH_TIP_TOO_HIGH,$r('app.string.enroll_info_offset_top')) - Tips.set(Constants.FACE_AUTH_TIP_TOO_LOW,$r('app.string.enroll_info_offset_bottom')) - Tips.set(Constants.FACE_AUTH_TIP_TOO_RIGHT,$r('app.string.enroll_info_offset_right')) - Tips.set(Constants.FACE_AUTH_TIP_TOO_LEFT,$r('app.string.enroll_info_offset_left')) - Tips.set(Constants.FACE_AUTH_TIP_TOO_MUCH_MOTION,$r('app.string.enroll_info_blur')) - Tips.set(Constants.FACE_AUTH_TIP_POOR_GAZE,$r('app.string.enroll_info_eye_occlusion')) - Tips.set(Constants.FACE_AUTH_TIP_NOT_DETECTED,$r('app.string.enroll_info_not_found')) - return Tips - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/ets/default/model_2D.ets b/ui/faceenroll/product/pad/src/main/ets/default/model_2D.ets deleted file mode 100644 index e0aacb1..0000000 --- a/ui/faceenroll/product/pad/src/main/ets/default/model_2D.ets +++ /dev/null @@ -1,273 +0,0 @@ -// @ts-nocheck -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Constants from './common/constant.ets'; -import UserIDM from '@ohos.useridm'; - -var mPrgvalue; -var mResultCode = Constants.resultCode(); -var mFaceTips = Constants.FaceTips(); - -export class model_2D { - private UserIDM; - - constructor() { - this.UserIDM = UserIDM.constructor(); - } - /** - * init FaceModel - */ - initFaceModel(credentialInfo) { - console.info("FaceEnroll model_2D initFaceModel start"); - AppStorage.Link('width'); - AppStorage.Link('showBack'); - AppStorage.Link('height'); - AppStorage.Link('showAperture'); - AppStorage.Link('blur'); - AppStorage.Link('showPrg'); - mPrgvalue = AppStorage.Link('prgValue'); - AppStorage.Link('enrollInfo'); - AppStorage.Link('showBtn'); - AppStorage.Link('enrollTitle'); - this.startEnroll(credentialInfo); - console.info("FaceEnroll model_2D initFaceModel end"); - } - - /** - * Open session and get challenge. - * @param callback - */ - openSession(callback) { - console.info("FaceEnroll model_2D openSession start"); - this.UserIDM.openSession((data) => { - try { - console.info("FaceEnroll model_2D openSession data", data); - callback(data); - } - catch (e) { - console.info("FaceEnroll model_2D openSession error", e); - } - }) - callback(); - console.info("FaceEnroll model_2D openSession end"); - } - - /** - * resume page, unInit FaceModel - */ - uninitFaceModel() { - console.info(" FaceEnroll model_2D uninitFaceModel start"); - if (mPrgvalue != Constants.PROGRESS_TOTAL) { - this.cancelEnroll(); - } - setTimeout(() => { - AppStorage.Set('width', Constants.SHELTER_START_WIDTH) - AppStorage.Set('height', Constants.SHELTER_START_HEIGHT) - AppStorage.Set('showBtn', false) - AppStorage.Set('showPrg', false) - AppStorage.Set('showBack', true) - AppStorage.Set('blur', Constants.BLUR_START) - AppStorage.Set('showAperture', true) - mPrgvalue = AppStorage.Set('prgValue', $r('app.float.progress_value_start')) - AppStorage.Set('enrollInfo', $r('app.string.enroll_info')) - AppStorage.Set('enrollTitle', $r('app.string.face_record')) - }, Constants.TIMEOUT_500) - console.info(" FaceEnroll model_2D uninitFaceModel end"); - } - - /** - * start enroll, get callback value - */ - startEnroll(credentialInfo) { - console.info(" FaceEnroll model_2D startEnroll 2d start "); - this.UserIDM.addCredential(credentialInfo, { - onResult: (result, extraInfo) => { - if (result == Constants.RESULT_CODE_SUCCESS) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('showPrg', true); - Constants.progress_2D(); - this.endEnroll(); - } - if (result == Constants.RESULT_CODE_FAIL) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_GENERAL_ERROR) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_CANCELED) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - } - if (result == Constants.RESULT_CODE_TIMEOUT) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.enrolling_timeout')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_TYPE_NOT_SUPPORT) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_TRUST_LEVEL_NOT_SUPPORT) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_BUSY) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_INVALID_PARAMETERS) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_LOCKED) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_NOT_ENROLLED) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - }, - onAcquireInfo: (callbackModule, acquire, extraInfo) => { - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.enrolling')); - AppStorage.Set('enrollInfo', mFaceTips.get(acquire)); - } - }) - this.endEnroll(); - } - - /** - * end enroll - */ - endEnroll() { - console.info("FaceEnroll model_2D endEnroll start"); - this.UserIDM.closeSession(); - console.info("FaceEnroll model_2D endEnroll userEnroll.closeSession()"); - AppStorage.Delete('faceSession'); - console.info("FaceEnroll model_2D endEnroll end"); - } - - /** - * cancel enroll - */ - cancelEnroll() { - console.info("FaceEnroll model_2D cancelEnroll start"); - let can = this.UserIDM.cancel(AppStorage.Get('faceSession')); - console.info("FaceEnroll model_2D cancelEnroll userEnroll.cancel()", can); - this.endEnroll(); - console.info("FaceEnroll model_2D cancelEnroll end"); - } - - /** - * change index 3d - */ - change_3D() { - AppStorage.Set('show_startViews', '3D'); - } - - /** - * change index 2d - */ - change_2D() { - AppStorage.Set('show_startViews', '2D'); - } - - /** - * init index - */ - init() { - AppStorage.SetAndLink('show_startViews', '2D'); - } -} - -let mFaceModel = new model_2D(); - -export default mFaceModel as model_2D; diff --git a/ui/faceenroll/product/pad/src/main/ets/default/model_3D.ets b/ui/faceenroll/product/pad/src/main/ets/default/model_3D.ets deleted file mode 100644 index 7d43f5d..0000000 --- a/ui/faceenroll/product/pad/src/main/ets/default/model_3D.ets +++ /dev/null @@ -1,255 +0,0 @@ -// @ts-nocheck -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Constants from '../default/common/constant.ets'; -import UserIDM from '@ohos.useridm'; - -var mPrgvalue; -var mResultCode = Constants.resultCode(); -var mFaceTips = Constants.FaceTips(); - - -export class model_3D { - private UserIDM; - - constructor() { - this.UserIDM = UserIDM.constructor(); - } - /** - * init FaceModel - */ - initFaceModel(credentialInfo) { - console.info("FaceEnroll model_3D initFaceModel start"); - AppStorage.Link('width'); - AppStorage.Link('height'); - AppStorage.Link('showPrg'); - mPrgvalue = AppStorage.Link('prgValue'); - AppStorage.Link('showBtn'); - AppStorage.Link('blur'); - AppStorage.Link('showBack'); - AppStorage.Set('enrollInfo', $r('app.string.enroll_info')) - AppStorage.Set('enrollTitle', $r('app.string.face_record')) - AppStorage.Link('showAperture1') - this.startEnroll(credentialInfo); - console.info("FaceEnroll model_3D initFaceModel end"); - } - - /** - * resume page, unInit FaceModel - */ - uninitFaceModel() { - console.info(" FaceEnroll model_3D uninitFaceModel start"); - if (mPrgvalue != Constants.PROGRESS_TOTAL) { - this.cancelEnroll(); - } - setTimeout(() => { - AppStorage.Set('width', Constants.SHELTER_START_WIDTH); - AppStorage.Set('height', Constants.SHELTER_START_HEIGHT); - AppStorage.Set('showPrg', false) - mPrgvalue = AppStorage.Set('prgValue', $r('app.float.progress_value_start')) - AppStorage.Set('showBack', true) - AppStorage.Set('blur', Constants.BLUR_START) - AppStorage.Set('showBtn', false) - AppStorage.Set('enrollInfo', $r('app.string.enroll_info')) - AppStorage.Set('enrollTitle', $r('app.string.face_record')) - AppStorage.Set('showAperture1',true) - AppStorage.Set('showAperture2',false) - AppStorage.Set('showAperture3',false) - AppStorage.Set('showAperture4',false) - AppStorage.Set('showAperture5',false) - - },Constants.TIMEOUT_500) - } - - /** - * Open session and get challenge. - * @param callback - */ - openSession(callback) { - console.info("FaceEnroll model_3D openSession start"); - this.UserIDM.openSession((data) => { - try { - console.info("FaceEnroll model_3D openSession data", data); - callback(data); - } - catch (e) { - console.info("FaceEnroll model_3D openSession error", e); - } - }) - callback(); - console.info("FaceEnroll model_3D openSession end"); - } - - /** - * start enroll, get callback value - */ - startEnroll(credentialInfo) { - console.info(" FaceEnroll model_3D startEnroll 3d start "); - this.UserIDM.addCredential(credentialInfo, { - onResult: (result, extraInfo) => { - if (result == Constants.RESULT_CODE_SUCCESS) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('showPrg', true); - Constants.progress_2D(); - this.endEnroll(); - } - if (result == Constants.RESULT_CODE_FAIL) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_GENERAL_ERROR) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_CANCELED) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - } - if (result == Constants.RESULT_CODE_TIMEOUT) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.enrolling_timeout')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_TYPE_NOT_SUPPORT) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_TRUST_LEVEL_NOT_SUPPORT) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_BUSY) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_INVALID_PARAMETERS) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_LOCKED) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_NOT_ENROLLED) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - }, - onAcquireInfo: (callbackModule, acquire, extraInfo) => { - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.enrolling')); - AppStorage.Set('enrollInfo', mFaceTips.get(acquire)); - } - }) - this.endEnroll(); - } - - /** - * end enroll - */ - endEnroll() { - console.info("FaceEnroll model_3D endEnroll start"); - this.UserIDM.closeSession(); - console.info("FaceEnroll model_3D endEnroll userEnroll.closeSession()"); - AppStorage.Delete('faceSession'); - console.info("FaceEnroll model_3D endEnroll end"); - } - - /** - * cancel enroll - */ - cancelEnroll() { - console.info("FaceEnroll model_3D cancelEnroll start"); - let can = this.UserIDM.cancel(AppStorage.Get('faceSession')); - console.info("FaceEnroll model_2D cancelEnroll userEnroll.cancel()", can); - this.endEnroll(); - console.info("FaceEnroll model_3D cancelEnroll end"); - } -} -let mFaceModel = new model_3D(); -export default mFaceModel as model_3D; \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/ets/default/pages/aperture.ets b/ui/faceenroll/product/pad/src/main/ets/default/pages/aperture.ets deleted file mode 100644 index 683247b..0000000 --- a/ui/faceenroll/product/pad/src/main/ets/default/pages/aperture.ets +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Constants from '../common/constant.ets'; - -@Entry -@Component - -export default - -struct Aperture { - - @StorageLink('showAperture1') showAperture1:boolean = true; - @StorageLink('showAperture2') showAperture2:boolean = false; - @StorageLink('showAperture3') showAperture3:boolean = false; - @StorageLink('showAperture4') showAperture4:boolean = false; - @StorageLink('showAperture5') showAperture5:boolean = false; - - build() { - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - if (this.showAperture1) { - Image($r('app.media.aperture1')) - .width(Constants.APERTURE1_WIDTH) - .height(Constants.APERTURE1_WIDTH) - .align(Alignment.Center) - } - if (this.showAperture2) { - Image($r('app.media.aperture2')) - .width(Constants.APERTURE2_WIDTH) - .height(Constants.APERTURE2_WIDTH) - .align(Alignment.Center) - } - if (this.showAperture3) { - Image($r('app.media.aperture3')) - .width(Constants.APERTURE34_WIDTH) - .height(Constants.APERTURE34_WIDTH) - .align(Alignment.Center) - } - if (this.showAperture4) { - Image($r('app.media.aperture4')) - .width(Constants.APERTURE34_WIDTH) - .height(Constants.APERTURE34_WIDTH) - .align(Alignment.Center) - } - if (this.showAperture5) { - Image($r('app.media.aperture5')) - .width(Constants.APERTURE5_WIDTH) - .height(Constants.APERTURE5_WIDTH) - .align(Alignment.Center) - } - }.position({x: $r('app.float.enroll_center_position_X'),y:Constants.ENROLL_CENTER_POSITION_Y}) - .width('100%') - .height(Constants.CENTER_HEIGHT) - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/ets/default/pages/declare.ets b/ui/faceenroll/product/pad/src/main/ets/default/pages/declare.ets deleted file mode 100644 index 683247b..0000000 --- a/ui/faceenroll/product/pad/src/main/ets/default/pages/declare.ets +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Constants from '../common/constant.ets'; - -@Entry -@Component - -export default - -struct Aperture { - - @StorageLink('showAperture1') showAperture1:boolean = true; - @StorageLink('showAperture2') showAperture2:boolean = false; - @StorageLink('showAperture3') showAperture3:boolean = false; - @StorageLink('showAperture4') showAperture4:boolean = false; - @StorageLink('showAperture5') showAperture5:boolean = false; - - build() { - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - if (this.showAperture1) { - Image($r('app.media.aperture1')) - .width(Constants.APERTURE1_WIDTH) - .height(Constants.APERTURE1_WIDTH) - .align(Alignment.Center) - } - if (this.showAperture2) { - Image($r('app.media.aperture2')) - .width(Constants.APERTURE2_WIDTH) - .height(Constants.APERTURE2_WIDTH) - .align(Alignment.Center) - } - if (this.showAperture3) { - Image($r('app.media.aperture3')) - .width(Constants.APERTURE34_WIDTH) - .height(Constants.APERTURE34_WIDTH) - .align(Alignment.Center) - } - if (this.showAperture4) { - Image($r('app.media.aperture4')) - .width(Constants.APERTURE34_WIDTH) - .height(Constants.APERTURE34_WIDTH) - .align(Alignment.Center) - } - if (this.showAperture5) { - Image($r('app.media.aperture5')) - .width(Constants.APERTURE5_WIDTH) - .height(Constants.APERTURE5_WIDTH) - .align(Alignment.Center) - } - }.position({x: $r('app.float.enroll_center_position_X'),y:Constants.ENROLL_CENTER_POSITION_Y}) - .width('100%') - .height(Constants.CENTER_HEIGHT) - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/ets/default/pages/enroll_2D.ets b/ui/faceenroll/product/pad/src/main/ets/default/pages/enroll_2D.ets deleted file mode 100644 index ab6e737..0000000 --- a/ui/faceenroll/product/pad/src/main/ets/default/pages/enroll_2D.ets +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import router from '@system.router'; -import mFaceModel from "../model_2D.ets"; -import Constants from '../common/constant.ets'; -const SUBTYPE_FACE_2D = 20000; -const AUTHTYPE_FACE = 2; - -async function route_back() { - let options = { - uri: 'pages/entryView' - } - try { - await router.push(options); - } catch (err) { - console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`); - } -} - -@Entry -@Component -export default struct Enroll_2D { - @StorageLink('showAperture') showAperture: boolean = true; - @StorageLink('blur') blur: number = Constants.BLUR_START; - @StorageLink('width') width: any = Constants.SHELTER_START_WIDTH; - @StorageLink('height') height: any = Constants.SHELTER_START_HEIGHT; - @StorageLink('showPrg') showPrg: boolean = false; - @StorageLink('prgValue') prgValue: number = Constants.PROGRESS_START; - @StorageLink('enrollInfo') enrollInfo: any = $r('app.string.enroll_info'); - @StorageLink('enrollTitle') enrollTitle: any = $r('app.string.face_record'); - @StorageLink('showBtn') showBtn: boolean = false; - @StorageLink('showBack') showBack: boolean = true; - private credentialInfo; - - private aboutToAppear(): void { - setTimeout(()=> { - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView' - }); - }, 180000) - this.credentialInfo = { - credType:AUTHTYPE_FACE, - credSubType:SUBTYPE_FACE_2D, - token:AppStorage.Get('token') - }; - mFaceModel.initFaceModel(this.credentialInfo); - } - - private onPageHide() { - mFaceModel.uninitFaceModel(); - } - - private onBackPress(): void{ - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView', - }) - } - - build() { - Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) { - Image($r('app.media.image')) - .width('100%') - .height(Constants.CENTER_HEIGHT) - .align(Alignment.Center) - .position({x: $r('app.float.enroll_center_position_X'),y:Constants.ENROLL_CENTER_POSITION_Y}) - - Flex() - .width('100%') - .height(Constants.CENTER_HEIGHT) - .align(Alignment.Center) - .blur(this.blur) - .position({x:$r('app.float.enroll_center_position_X'),y: Constants.ENROLL_CENTER_POSITION_Y}) - .animation({ duration: Constants.SHELTER_ANIMATOR, curve: Curve.Linear }) - - if (this.showAperture) { - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - Image($r('app.media.aperture1')) - .width(Constants.APERTURE1_WIDTH) - .height(Constants.APERTURE1_WIDTH) - .align(Alignment.Center) - } - .position({x:$r('app.float.enroll_center_position_X'),y:Constants.ENROLL_CENTER_POSITION_Y}) - .height(Constants.CENTER_HEIGHT) - .width('100%') - } - - Flex() - .width('100%') - .height(Constants.ENROLL_CENTER_POSITION_Y) - - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - Image($r('app.media.shelter')) - .width(this.width) - .height(this.height) - .animation({ duration: Constants.SHELTER_ANIMATOR, curve: Curve.Linear }) - }.width('100%') - .height(Constants.CENTER_HEIGHT) - - - if(this.showPrg) { - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - Progress({ value: Constants.PROGRESS_START, total: Constants.PROGRESS_TOTAL, style: ProgressStyle.Capsule }) - .value(this.prgValue) - .width(Constants.PROGRESS_WIDTH) - .color(Color.Red) - }.position({x:$r('app.float.enroll_center_position_X'),y:Constants.ENROLL_CENTER_POSITION_Y}) - .height(Constants.CENTER_HEIGHT) - .width('100%') - } - - if(this.showBack) { - Flex() { - Image($r('app.media.back')) - .width(Constants.BACK_WIDTH) - .height(Constants.BACK_HEIGHT) - .onClick(() => { - router.back() - }) - }.position({ x: $r('app.float.enroll_center_position_X'), y: Constants.CENTER_POSITION_Y }) - } - - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - Text(this.enrollTitle) - .fontSize(Constants.TITLE_FONT_SIZE) - .fontWeight(Constants.ENROll_TITLE) - }.position({x:$r('app.float.enroll_title_position_X'),y:Constants.TITLE_ENROLLING_MARGIN}) - - Flex({justifyContent:FlexAlign.Center}) { - Text(this.enrollInfo) - .fontSize(Constants.ERROR_CODE_INFO_SIZE) - .textAlign(TextAlign.Center) - } - .position({ x:$r('app.float.enroll_info_X'), y: Constants.ENROLL_INFO_POSITION}) - .width(Constants.ENROLL_INFO_WIDTH) - - if(this.showBtn){ - Flex({justifyContent:FlexAlign.Center}) { - Button({ type: ButtonType.Capsule, stateEffect: true }) { - Text($r('app.string.enroll_button_content')) - .fontSize(Constants.BUTTON_FONT_SIZE) - .fontColor($r('app.color.startView_color')) - } - .backgroundColor($r('app.color.newBtn_color')) - .width(Constants.BUTTON_WIDTH) - .height(Constants.BUTTON_HEIGHT) - .onClick(() => { - route_back() - }) - }.position({ x:$r('app.float.enroll_center_position_X'), y: Constants.BUTTON_POSITION}) - } - } - .width('100%') - .height('100%') - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/ets/default/pages/enroll_3D.ets b/ui/faceenroll/product/pad/src/main/ets/default/pages/enroll_3D.ets deleted file mode 100644 index 4beb183..0000000 --- a/ui/faceenroll/product/pad/src/main/ets/default/pages/enroll_3D.ets +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import router from '@system.router'; -import mFaceModel from "../model_3D.ets"; -import Constants from '../common/constant.ets'; -const SUBTYPE_FACE_2D = 20000; -const AUTHTYPE_FACE = 2; - -async function route_back() { - let options = { - uri: 'pages/entryView' - } - try { - await router.push(options); - } catch (err) { - console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`); - } -} - -@Entry -@Component -export default struct Enroll_3D { - @StorageLink('showAperture') showAperture: boolean = true; - @StorageLink('blur') blur: number = Constants.BLUR_START; - @StorageLink('width') width: any = Constants.SHELTER_START_WIDTH; - @StorageLink('height') height: any = Constants.SHELTER_START_HEIGHT; - @StorageLink('showPrg') showPrg: boolean = false; - @StorageLink('prgValue') prgValue: number = Constants.PROGRESS_START; - @StorageLink('enrollInfo') enrollInfo: any = $r('app.string.enroll_info'); - @StorageLink('enrollTitle') enrollTitle: any = $r('app.string.face_record'); - @StorageLink('showBtn') showBtn: boolean = false; - @StorageLink('showBack') showBack: boolean = true; - private credentialInfo; - - private aboutToAppear(): void { - setTimeout(()=> { - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView' - }); - }, 180000) - this.credentialInfo = { - credType:AUTHTYPE_FACE, - credSubType:SUBTYPE_FACE_2D, - token:AppStorage.Get('token') - }; - mFaceModel.initFaceModel(this.credentialInfo); - } - - private onPageHide() { - mFaceModel.uninitFaceModel(); - } - - private onBackPress(): void{ - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView', - }) - } - - build() { - Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) { - Image($r('app.media.image')) - .width('100%') - .height(Constants.CENTER_HEIGHT) - .align(Alignment.Center) - .position({x: $r('app.float.enroll_center_position_X'),y:Constants.ENROLL_CENTER_POSITION_Y}) - - Flex() - .width('100%') - .height(Constants.CENTER_HEIGHT) - .align(Alignment.Center) - .blur(this.blur) - .position({x:$r('app.float.enroll_center_position_X'),y: Constants.ENROLL_CENTER_POSITION_Y}) - .animation({ duration: Constants.SHELTER_ANIMATOR, curve: Curve.Linear }) - - if (this.showAperture) { - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - Image($r('app.media.aperture1')) - .width(Constants.APERTURE1_WIDTH) - .height(Constants.APERTURE1_WIDTH) - .align(Alignment.Center) - } - .position({x:$r('app.float.enroll_center_position_X'),y:Constants.ENROLL_CENTER_POSITION_Y}) - .height(Constants.CENTER_HEIGHT) - .width('100%') - } - - Flex() - .width('100%') - .height(Constants.ENROLL_CENTER_POSITION_Y) - - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - Image($r('app.media.shelter')) - .width(this.width) - .height(this.height) - .animation({ duration: Constants.SHELTER_ANIMATOR, curve: Curve.Linear }) - }.width('100%') - .height(Constants.CENTER_HEIGHT) - - - if(this.showPrg) { - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - Progress({ value: Constants.PROGRESS_START, total: Constants.PROGRESS_TOTAL, style: ProgressStyle.Capsule }) - .value(this.prgValue) - .width(Constants.PROGRESS_WIDTH) - .color(Color.Red) - }.position({x:$r('app.float.enroll_center_position_X'),y:Constants.ENROLL_CENTER_POSITION_Y}) - .height(Constants.CENTER_HEIGHT) - .width('100%') - } - - if(this.showBack) { - Flex() { - Image($r('app.media.back')) - .width(Constants.BACK_WIDTH) - .height(Constants.BACK_HEIGHT) - .onClick(() => { - router.back() - }) - }.position({ x: $r('app.float.enroll_center_position_X'), y: Constants.CENTER_POSITION_Y }) - } - - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - Text(this.enrollTitle) - .fontSize(Constants.TITLE_FONT_SIZE) - .fontWeight(Constants.ENROll_TITLE) - }.position({x:$r('app.float.enroll_title_position_X'),y:Constants.TITLE_ENROLLING_MARGIN}) - - Flex({justifyContent:FlexAlign.Center}) { - Text(this.enrollInfo) - .fontSize(Constants.ERROR_CODE_INFO_SIZE) - .textAlign(TextAlign.Center) - } - .position({ x:$r('app.float.enroll_info_X'), y: Constants.ENROLL_INFO_POSITION}) - .width(Constants.ENROLL_INFO_WIDTH) - - if(this.showBtn){ - Flex({justifyContent:FlexAlign.Center}) { - Button({ type: ButtonType.Capsule, stateEffect: true }) { - Text($r('app.string.enroll_button_content')) - .fontSize(Constants.BUTTON_FONT_SIZE) - .fontColor($r('app.color.startView_color')) - } - .backgroundColor($r('app.color.newBtn_color')) - .width(Constants.BUTTON_WIDTH) - .height(Constants.BUTTON_HEIGHT) - .onClick(() => { - route_back() - }) - }.position({ x:$r('app.float.enroll_center_position_X'), y: Constants.BUTTON_POSITION}) - } - } - .width('100%') - .height('100%') - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/ets/default/pages/entryView.ets b/ui/faceenroll/product/pad/src/main/ets/default/pages/entryView.ets deleted file mode 100644 index 86035ce..0000000 --- a/ui/faceenroll/product/pad/src/main/ets/default/pages/entryView.ets +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import router from '@system.router'; -import UserAuthPresenter from '../../../../../../../common/src/main/ets/default/common/presenter/UserAuthPresenter.ets' - -let mUserAuthPresenter: UserAuthPresenter; - -@Entry -@Component -struct entryView { - - @State open_userAuth: boolean = false; - - private aboutToAppear(): void { - AppStorage.Delete('faceInfo'); - AppStorage.Delete('authLength'); - AppStorage.Delete('userMode'); - AppStorage.Delete('faceToken'); - mUserAuthPresenter = UserAuthPresenter.getInstance(); - } - build() { - Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { - Button('人脸识别', { type: ButtonType.Normal, stateEffect: true}) - .onClick(() => { - mUserAuthPresenter.jumpToUserAuth(this.getTokenCallBack.bind(this)); - }) - } - } - - public getTokenCallBack() { - let faceToken = AppStorage.Get('faceToken'); - if (faceToken != undefined) { - this.jumpToUserAuth(); - } - } - - private jumpToUserAuth() { - router.push({ - uri: 'pages/userAuth', - }) - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/ets/default/pages/index.ets b/ui/faceenroll/product/pad/src/main/ets/default/pages/index.ets deleted file mode 100644 index 65b31d4..0000000 --- a/ui/faceenroll/product/pad/src/main/ets/default/pages/index.ets +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import StartViews_2D from "./startViews_2D.ets"; -import StartViews_3D from "./startViews_3D.ets"; -import Constants from "../common/constant.ets"; -import router from '@system.router'; - -@Entry -@Component -struct Index { - @StorageLink('show_startViews') show_startViews: string = Constants.SHOW_START_VIEWS_2D; - private onBackPress(): void{ - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView', - }) - } - build() { - - Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) { - if (this.show_startViews == Constants.SHOW_START_VIEWS_3D) { - StartViews_3D(); - } - else if(this.show_startViews == Constants.SHOW_START_VIEWS_2D) - { - StartViews_2D(); - } - } - .width('100%') - .height('100%') - } -} diff --git a/ui/faceenroll/product/pad/src/main/ets/default/pages/startViews_2D.ets b/ui/faceenroll/product/pad/src/main/ets/default/pages/startViews_2D.ets deleted file mode 100644 index eb22c8e..0000000 --- a/ui/faceenroll/product/pad/src/main/ets/default/pages/startViews_2D.ets +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import router from '@system.router'; -import Constants from '../common/constant.ets'; -import mFaceModel from "../model_2D.ets"; - -async function routeDeclare() { - let options = { - uri: 'pages/declare' - } - try { - await router.push(options); - } catch (err) { - console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`); - } -} -async function routeEnroll_2D() { - let options = { - uri: 'pages/enroll_2D' - } - try { - await router.push(options); - } catch (err) { - console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`); - } -} - -@Entry -@Component -export default -struct StartViews_2D { - @StorageLink('checkbox_color') checkbox_color : any = $r('app.color.startView_color'); - private pageHideFlag: number = 0; - - public openSessionCallBack() { - routeEnroll_2D(); - } - - private onPageHide(): void { - if (this.pageHideFlag == 0) { - router.push({ - uri: 'pages/entryView' - }) - } - } - private onBackPress(): void{ - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView', - }) - } - - build() { - Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) { - - Flex() { - Image($r('app.media.back')) - .width(Constants.BACK_WIDTH) - .height(Constants.BACK_HEIGHT) - .onClick(()=>{ - }) - }.margin({ top: $r('app.float.back_margin') }) - .width('100%') - - Text($r('app.string.face_checker')) - .fontSize(Constants.TITLE_FONT_SIZE) - .fontWeight(FontWeight.Bold) - .margin({ top: Constants.TITLE_MARGIN }) - - Image($r('app.media.startImage_2D')) - .width('100%') - .height(Constants.IMAGE_2D_HEIGHT) - .margin({ top: Constants.IMAGE_MARGIN}) - - Column() { - Text($r('app.string.enroll_face_guide_title')) - .fontSize(Constants.SMALL_TITLE_FONT_SIZE) - .fontWeight(Constants.FONT_WEIGHT) - .textAlign(TextAlign.Center) - - Text($r('app.string.face_guide_2d_way')) - .fontSize(Constants.FONT_SIZE) - .fontColor($r('app.color.font_color')) - .textAlign(TextAlign.Center) - .margin({ top: Constants.CONTENT1_MARGIN }) - - Text() { - Span($r('app.string.face_guide_2d_announce')) - .fontColor($r('app.color.font_color')) - .textCase(TextCase.UpperCase) - .fontSize(Constants.FONT_SIZE) - Span($r('app.string.face_guide_2d_announce_link')) - .textCase(TextCase.UpperCase) - .fontSize(Constants.FONT_SIZE) - .fontColor($r('app.color.startView_color')) - }.margin({ top: Constants.CONTENT2_MARGIN }) - .textAlign(TextAlign.Center) - .onClick(() => { - routeDeclare() - }) - - }.width(Constants.ENROLL_INFO_WIDTH) - .margin({ top: Constants.IMAGE_MARGIN }) - - Flex() { - Toggle({ type: ToggleType.Checkbox, isOn: true }) - .size({ width: Constants.CHECKBOX_SIZE, height: Constants.CHECKBOX_SIZE }) - .selectedColor(this.checkbox_color) - .onChange((isOn: boolean) => {console.info('Component status:' + isOn) - }) - }.position({x:Constants.CHECKBOX_POSITION_X,y:Constants.CHECKBOX_POSITION_Y}) - - Text($r('app.string.face_2dguide_light_notify_universal')) - .fontSize(Constants.FONT_SIZE) - .fontColor(Color.Black) - .position({x:Constants.CHECKBOX_TEXT_POSITION_X,y:Constants.CHECKBOX_TEXT_POSITION_Y}) - - Flex({justifyContent:FlexAlign.Center}) { - Button({ type: ButtonType.Capsule, stateEffect: true }) { - Text($r('app.string.face_record')).fontSize(Constants.BUTTON_FONT_SIZE).fontColor(0xffffff) - } - .backgroundColor($r('app.color.startView_color')).width(Constants.BUTTON_WIDTH).height(Constants.BUTTON_HEIGHT) - .onClick(() => { - this.pageHideFlag = 1; - mFaceModel.openSession(this.openSessionCallBack.bind(this)); - }) - }.position({ x:$r('app.float.enroll_center_position_X'), y: Constants.BUTTON_POSITION}) - } - .width('100%') - .height('100%') - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/ets/default/pages/startViews_3D.ets b/ui/faceenroll/product/pad/src/main/ets/default/pages/startViews_3D.ets deleted file mode 100644 index 05d6cca..0000000 --- a/ui/faceenroll/product/pad/src/main/ets/default/pages/startViews_3D.ets +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import router from '@system.router'; -import Constants from '../common/constant.ets'; -import mFaceModel from "../model_3D.ets"; - -async function routeEnroll_3D() { - let options = { - uri: 'pages/enroll_3D' - } - try { - await router.push(options); - } catch (err) { - console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`); - } -} -async function routeDeclare() { - let options = { - uri: 'pages/declare' - } - try { - await router.push(options); - } catch (err) { - console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`); - } -} - - -@Entry -@Component - -export default - -struct StartViews_3D { - @StorageLink('checkbox_color') checkbox_color : any = $r('app.color.startView_color'); - private pageHideFlag: number = 0; - - public openSessionCallBack() { - routeEnroll_3D(); - } - - private onPageHide(): void { - if (this.pageHideFlag == 0) { - router.push({ - uri: 'pages/entryView' - }) - } - } - - private onBackPress(): void{ - console.info("FaceEnroll StartViews_3D onBackPress start"); - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView', - }) - console.info("FaceEnroll StartViews_3D onBackPress end"); - } - build() { - Flex({ direction: FlexDirection.Column,alignItems: ItemAlign.Center}) { - - Flex() { - Image($r('app.media.back')) - .width(Constants.BACK_WIDTH) - .height(Constants.BACK_HEIGHT) - .onClick(()=>{ - }) - }.margin({ top: $r('app.float.back_margin') }) - .width('100%') - - Text($r('app.string.face_checker')) - .fontSize(Constants.TITLE_FONT_SIZE) - .fontWeight(FontWeight.Bold) - .margin({ top: Constants.TITLE_MARGIN }) - - Stack(){ - Image($r('app.media.startImage1_3D')) - .width(Constants.IMAGE_3D_WIDTH) - .height(Constants.IMAGE_3D_WIDTH) - - Image($r('app.media.startImage2_3D')) - .width(Constants.IMAGE_3D_WIDTH) - .height(Constants.IMAGE_3D_WIDTH) - - }.margin({top:Constants.IMAGE_3D_MARGIN}) - .width('100%') - .height(Constants.IMAGE_3D_WIDTH) - - Column() { - Text($r('app.string.enroll_face_guide_title')) - .fontSize(Constants.SMALL_TITLE_FONT_SIZE) - .fontWeight(Constants.FONT_WEIGHT) - .textAlign(TextAlign.Center) - - Text($r('app.string.face_guide_3d_way')) - .fontSize(Constants.FONT_SIZE) - .fontColor($r('app.color.font_color')) - .textAlign(TextAlign.Center) - .margin({ top: Constants.CONTENT1_MARGIN }) - - Text() { - Span($r('app.string.face_guide_3d_announce')) - .fontColor($r('app.color.font_color')) - .textCase(TextCase.UpperCase) - .fontSize(Constants.FONT_SIZE) - Span($r('app.string.face_guide_3d_announce_link')) - .textCase(TextCase.UpperCase) - .fontSize(Constants.FONT_SIZE) - .fontColor($r('app.color.startView_color')) - } - .margin({ top: Constants.CONTENT2_MARGIN }) - .textAlign(TextAlign.Center) - .onClick(() => { - routeDeclare() - }) - }.width(Constants.ENROLL_INFO_WIDTH) - .margin({ top: Constants.IMAGE_MARGIN }) - - Flex() { - Toggle({ type: ToggleType.Checkbox, isOn: true }) - .size({ width: Constants.CHECKBOX_SIZE, height: Constants.CHECKBOX_SIZE }) - .selectedColor(this.checkbox_color) - .onChange((isOn: boolean) => { - console.info('Component status:' + isOn) - }) - }.position({x:Constants.CHECKBOX_POSITION_X,y:Constants.CHECKBOX_POSITION_Y}) - - Text($r('app.string.face_2dguide_light_notify_universal')) - .fontSize(Constants.FONT_SIZE) - .fontColor(Color.Black) - .position({x:Constants.CHECKBOX_TEXT_POSITION_X,y:Constants.CHECKBOX_TEXT_POSITION_Y}) - - Flex({justifyContent:FlexAlign.Center}) { - Button({ type: ButtonType.Capsule, stateEffect: true }) { - Text($r('app.string.face_recognitin_guide')).fontSize(Constants.BUTTON_FONT_SIZE).fontColor(0xffffff) - } - .backgroundColor($r('app.color.startView_color')) .width(Constants.BUTTON_WIDTH).height(Constants.BUTTON_HEIGHT) - .onClick(() => { - this.pageHideFlag = 1; - mFaceModel.openSession(this.openSessionCallBack.bind(this)); - }) - }.position({ x:$r('app.float.enroll_center_position_X'), y: Constants.BUTTON_POSITION}) - } - .width('100%') - .height('100%') - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/ets/default/pages/success.ets b/ui/faceenroll/product/pad/src/main/ets/default/pages/success.ets deleted file mode 100644 index 9a061bb..0000000 --- a/ui/faceenroll/product/pad/src/main/ets/default/pages/success.ets +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import router from '@system.router'; -import Constants from '../common/constant.ets'; - -async function routeCase() { - let options = { - uri: 'pages/entryView' - } - try { - await router.push(options); - } catch (err) { - console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`); - } -} - -@Entry -@Component -struct Success { - - onPageShow(){ - setTimeout(()=>{ - router.push({ - uri: 'pages/userAuth' - }) - },Constants.TIMEOUT_2000) - } - private onBackPress(): void{ - console.info("FaceEnroll Success onBackPress start"); - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView', - }) - console.info("FaceEnroll Success onBackPress end"); - } - - - build() { - Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) { - Flex() { - Image($r('app.media.back')) - .width(Constants.BACK_WIDTH) - .height(Constants.BACK_HEIGHT) - }.margin({ top: $r('app.float.back_margin') }) - .onClick(()=>{ - routeCase() - }) - - Text($r('app.string.face_record_success')) - .fontSize(Constants.TITLE_FONT_SIZE) - .fontWeight(FontWeight.Bold) - .margin({ top: Constants.TITLE_MARGIN}) - - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}){ - Image($r('app.media.success')) - .width(Constants.SUCCESS_WIDTH) - .height(Constants.SUCCESS_WIDTH) - }.width('100%') - .height(Constants.SUCCESS_WIDTH) - .margin({ top: $r('app.float.success_margin') }) - } - .width('100%') - .height('100%') - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/ets/default/pages/userAuth.ets b/ui/faceenroll/product/pad/src/main/ets/default/pages/userAuth.ets deleted file mode 100644 index 18be409..0000000 --- a/ui/faceenroll/product/pad/src/main/ets/default/pages/userAuth.ets +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import router from '@system.router'; -import userAuthModel from '../../../../../../../common/src/main/ets/default/common/model/userAuthModel.ets'; - -@Entry -@Component -struct userAuth { - @State authLength: number = 0; - @State userMode: string = ''; - private mUserAuthModel: userAuthModel; - private faceInfo ; - @State faceToken: string = ''; - @State getAllCallback: boolean = false; - - private aboutToAppear(): void { - this.mUserAuthModel = userAuthModel.getInstance(); - this.faceToken = AppStorage.Get('faceToken'); - if (this.mUserAuthModel != undefined) { - this.mUserAuthModel.getUserAuthInfo(this.getAuthInfoCallback.bind(this),this.getUserMode.bind(this)); - } - } - - public getUserMode() { - this.mUserAuthModel.getUserMode(this.getUserModeCallback.bind(this)); - } - - onPageShow() { - if (this.faceToken == '' || this.faceToken == undefined) { - router.push({ - uri: 'pages/entryView', - }) - } - } - - public getAuthInfoCallback(authInfo,getUserMode) { - this.faceInfo = authInfo; - this.authLength = authInfo.length; - AppStorage.SetOrCreate('authLength',this.authLength); - AppStorage.SetOrCreate('faceInfo',this.faceInfo); - AppStorage.SetOrCreate('facePageFlag',0); - getUserMode(); - } - - public getUserModeCallback(userMode) { - this.userMode = userMode; - AppStorage.SetOrCreate('userMode',this.userMode); - this.getAllCallback = true; - - } - - build() { - Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { - if (this.getAllCallback) { - getRouter({ - authLength: this.authLength - }) - - } - } - } -} - -@Component -struct getRouter{ - @Prop authLength: number; - public aboutToAppear() { - if (this.authLength == 0) { - router.push({ - uri: 'pages/index', - }) - }else if(this.authLength > 0) { - router.push({ - uri: 'pages/userSettings', - }) - } - } - - build() { - Column() {} - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/ets/default/pages/userSettings.ets b/ui/faceenroll/product/pad/src/main/ets/default/pages/userSettings.ets deleted file mode 100644 index 3bc87a7..0000000 --- a/ui/faceenroll/product/pad/src/main/ets/default/pages/userSettings.ets +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import faceSettings from '../../../../../../../feature/faceSettingsPad/src/main/ets/default/pages/index.ets' -import TrustedDevices from '../../../../../../../feature/trustedDevicePad/src/main/ets/default/pages/index.ets' -import router from '@system.router'; - -@Entry -@Component -struct userSettings { - @State authLength: number = 1; - @State userMode: string = ''; - @StorageLink('facePageFlag') facePageFlag: number = 0; - private faceInfo; - private faceToken; - - private aboutToAppear(): void { - this.faceInfo = AppStorage.Get('faceInfo'); - this.authLength = AppStorage.Get('authLength'); - this.userMode = AppStorage.Get('userMode'); - } - - private onPageHide(): void { - router.push({ - uri: 'pages/entryView' - }) - } - private onBackPress(): void{ - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView', - }) - } - - build() { - Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { - if(this.authLength != 0) { - if (this.facePageFlag == 0) { - faceSettings({ - faceLength: this.authLength, - userMode: this.userMode - }); - }else if(this.facePageFlag == 1) { - TrustedDevices(); - } - } - } - .width('100%') - .height('100%') - .backgroundColor('#F2F3F5') - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/resources/base/element/color.json b/ui/faceenroll/product/pad/src/main/resources/base/element/color.json deleted file mode 100644 index c7bec91..0000000 --- a/ui/faceenroll/product/pad/src/main/resources/base/element/color.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "color": [ - { - "name": "font_color", - "value": "#99000000" - }, - { - "name": "startView_color", - "value": "#0A59F7" - }, - { - "name": "newBtn_color", - "value": "#efefef" - } - - - ] -} \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/resources/base/element/float.json b/ui/faceenroll/product/pad/src/main/resources/base/element/float.json deleted file mode 100644 index 4863bec..0000000 --- a/ui/faceenroll/product/pad/src/main/resources/base/element/float.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "float": [ - - { - "name": "back_margin", - "value": "5" - }, - { - "name": "enroll_title_position_X", - "value": "0" - }, - { - "name": "startImage_3D_width", - "value": "256" - }, - - { - "name": "checkbox_size", - "value": "25" - }, - { - "name": "enroll_center_position_X", - "value": "0" - }, - { - "name": "enroll_info_X", - "value": "20" - }, - { - "name": "progress_width", - "value": "230" - }, - { - "name": "progress_value_start", - "value": "0" - }, - { - "name": "blur_start", - "value": "0" - }, - { - "name": "blur_end", - "value": "40" - }, - { - "name": "aperture1_width", - "value": "133" - }, - { - "name": "aperture2_width", - "value": "132" - }, - { - "name": "aperture34_width", - "value": "142" - }, - { - "name": "aperture5_width", - "value": "233" - }, - { - "name": "success_image", - "value": "102" - }, - { - "name": "success_margin", - "value": "100" - } - ] -} \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/resources/base/element/string.json b/ui/faceenroll/product/pad/src/main/resources/base/element/string.json deleted file mode 100644 index 3f4e5c8..0000000 --- a/ui/faceenroll/product/pad/src/main/resources/base/element/string.json +++ /dev/null @@ -1,792 +0,0 @@ -{ - "string": [ - { - "name": "app_name", - "value": "faceEnroll" - }, - { - "name": "mainability_description", - "value": "JS_Phone_Empty Feature Ability" - }, - { - "name": "description_product", - "value": "ETS_Empty Ability" - }, - { - "name": "entry_product", - "value": "entry_product" - }, - { - "name": "enrolling", - "value": "正在录入" - }, - { - "name": "enrolling_fail", - "value": "录入失败" - }, - { - "name": "enrolling_timeout", - "value": "录入超时" - }, - { - "name": "declare", - "value": "声明" - }, - { - "name": "declare_content", - "value": "如果您选择添加人脸数据,在亮屏状态,您将可以通过正面注视手机屏幕瞬间解锁。人脸数据储存在您的设备,而且不会通过云服务或者其他工具备份他处。" - }, - { - "name": "open_clock", - "value": "打开”拿起手机亮屏“,提升解锁体验" - }, - { - "name": "face_enroll", - "value": "人脸识别" - }, - { - "name": "enroll_success", - "value": "录入成功" - }, - { - "name": "start_title", - "value": "如何录入面部数据" - }, - { - "name": "start_2D_content1", - "value": "首先,确保摄像头清洁、面部无遮挡,录入环境光线充足、无阳光直射。然后,正对屏幕,将面部完整移入识别区。" - }, - { - "name": "start_2D_content2", - "value": "人脸识别可用于解锁屏幕及访问应用锁。点击“开始录入”即表示您同意" - }, - { - "name": "start_2D_content3", - "value": "关于人脸识别的声明。" - }, - { - "name": "start_3D_content1", - "value": "首先,请确保您的面部全部显示在识别区内。然后注视屏幕并缓缓转动头部以完成全方位采集。" - }, - { - "name": "start_3D_content2", - "value": "人脸识别可用于解锁屏幕,访问应用锁、保密柜及支付。点击“开始录入”即表示您同意" - }, - { - "name": "start_3D_content3", - "value": "关于3D人脸识别的声明。" - }, - { - "name": "button_content", - "value": "开始录入" - }, - { - "name": "enroll_info_fail", - "value": "请确保摄像头清洁,面部无遮挡,在光线充足、无阳光直射的环境里录入。" - }, - { - "name": "enroll_info", - "value": "请保持不动" - }, - { - "name": "enroll_info_cancel", - "value": "被取消" - }, - { - "name": "enroll_info_algorithm_not_init", - "value": "算法未初始化" - }, - { - "name": "enroll_info_hal_invalid", - "value": "人脸识别demon不可用" - }, - { - "name": "enroll_info_over_max_faces", - "value": "录入超过最大上限" - }, - { - "name": "enroll_info_invalid_parameters", - "value": "入参无效" - }, - { - "name": "enroll_info_busy", - "value": "人脸流程正在进行中,请求busy" - }, - { - "name": "enroll_info_has_registered", - "value": "当前人脸已经录入过" - }, - { - "name": "enroll_info_bad_quality", - "value": "图像质量太差" - }, - { - "name": "enroll_info_not_found", - "value": "没检测到人脸" - }, - { - "name": "enroll_info_scale_too_small", - "value": "人脸太小" - }, - { - "name": "enroll_info_scale_too_large", - "value": "人脸太大" - }, - { - "name": "enroll_info_offset_left", - "value": "人脸太靠左" - }, - { - "name": "enroll_info_offset_top", - "value": "人脸太靠上" - }, - { - "name": "enroll_info_offset_right", - "value": "人脸太靠右" - }, - { - "name": "enroll_info_offset_bottom", - "value": "人脸太靠下" - }, - { - "name": "enroll_info_liveness_warning", - "value": "活体检测有风险" - }, - { - "name": "enroll_info_liveness_failure", - "value": "活体检测失败" - }, - { - "name": "enroll_info_rotated_left", - "value": "头向左转的角度太大" - }, - { - "name": "enroll_info_rise", - "value": "头抬的角度太高" - }, - { - "name": "enroll_info_face_has_registered", - "value": "转动头部" - }, - { - "name": "enroll_info_rotated_right", - "value": "头向右转的角度太大" - }, - { - "name": "enroll_info_down", - "value": "头抬的角度太低" - }, - { - "name": "enroll_info_eye_occlusion", - "value": "眼睛不清晰" - }, - { - "name": "enroll_info_eye_close", - "value": "闭眼" - }, - { - "name": "enroll_info_mouth_occlusion", - "value": "嘴巴不清晰" - }, - { - "name": "enroll_info_mutlify", - "value": "出现多张脸" - }, - { - "name": "enroll_info_blur", - "value": "脸不清晰" - }, - { - "name": "enroll_info_not_complete", - "value": "脸不完整" - }, - { - "name": "enroll_info_darklight", - "value": "光线太暗" - }, - { - "name": "enroll_info_highlight", - "value": "光线太强" - }, - { - "name": "enroll_info_half_shadow", - "value": "阴阳脸" - }, - { - "name": "enroll_info_darkpic", - "value": "图片太暗" - }, - { - "name": "enroll_info_rotate_top_right", - "value": "人脸头顶朝右" - }, - { - "name": "enroll_info_rotate_top_left", - "value": "人脸头顶朝左" - }, - { - "name": "enroll_info_rotate_bottom_right", - "value": "人脸下巴朝右" - }, - { - "name": "enroll_info_rotate_bottom_left", - "value": "人脸下巴朝左" - }, - { - "name": "enroll_info_open_camera_failed", - "value": "打开Camera失败" - }, - { - "name": "enroll_button_content", - "value": "重新录入" - }, - { - "name": "deleteTitle", - "value": "删除数据" - } ,{ - "name": "face_introdution_title", - "value": "解锁时需连接可信设备" - }, - { - "name": "face_introdution_tip", - "value": "进行人脸识别解锁手机时,需连接可信设备以进一步提升安全性。" - }, - { - "name": "trusted_devices_title", - "value": "可信设备" - }, - { - "name": "face_introdution_button", - "value": "添加可信设备" - }, - { - "name": "connect_tip", - "value": "已连接" - }, - { - "name": "disconnect_tip", - "value": "未连接" - }, - { - "name": "cancel_button", - "value": "取消" - }, - { - "name": "remove_device_button", - "value": "移除" - }, - { - "name": "add_device_button", - "value": "添加" - }, - { - "name": "remove_device_tip", - "value": "移除后,人脸识别解锁本机时将不再需要连接可信设备。是否移除?" - }, - { - "name": "remove_device_title", - "value": "移除可信设备" - }, - { - "name": "add_device_or_not_tip", - "value": "是否添加" - }, - { - "name": "using_tips", - "value": "使用提示" - }, - { - "name": "add_device_tip", - "value": "添加后,当可信设备与本机断开连接时,将无法使用人脸识别解锁。您可以使用其他方式解锁。" - } - - - , - { - "name": "face_guide_2d_announce_link", - "value": "关于人脸识别的声明" - }, - { - "name": "face_feature_desc", - "value": "功能介绍" - }, - { - "name": "face_recognize_annouce_message_01", - "value": "人脸识别是一种基于人的脸部特征信息进行身份识别的生物识别技术。它通过手机前置摄像头捕捉人脸面部数据,进而快速完成面部特征比对和身份认证。可用于解锁屏幕、访问应用锁等场景。" - }, - { - "name": "face_recognize_annouce_message_02", - "value": "录入面部数据时,需注意以下事项:" - }, - { - "name": "face_recognize_annouce_message_03", - "value": "1.确保摄像头清洁;" - }, - { - "name": "face_recognize_annouce_message_04", - "value": "2.在光线充足的环境下录入,但需避免强光直射;" - }, - { - "name": "face_recognize_annouce_message_05", - "value": "3.勿用衣帽、头发、墨镜、口罩、浓妆等遮挡面部;" - }, - { - "name": "face_recognize_annouce_message_06", - "value": "4.确保面部正面完整清晰地出现在提示框内,不要闭眼、大幅度仰头或低头" - }, - { - "name": "face_recognize_annouce_message_07", - "value": "5.避免其他人出现在录入画面中。" - }, - { - "name": "face_recognize_annouce_message_08", - "value": "任何技术都存在一定局限和风险,使用人脸识别时,需注意以下事项:" - }, - { - "name": "face_recognize_annouce_message_09", - "value": "1.在暗光、强光、逆光或角度过大等场景下,人脸识别的成功率会有所降低;" - }, - { - "name": "face_annouce_tip1_item2_3d", - "value": "2.人脸识别的安全性低于图案密码、数字密码、混合密码。;" - }, - { - "name": "face_recognize_annouce_message_10", - "value": "您的设备可能会被容貌、外形与您相近的人或物品解锁;" - }, - { - "name": "face_recognize_annouce_message_11", - "value": "请勿将设备随意交给他人使用,避免人脸识别功能被恶意利用;" - }, - { - "name": "face_recognize_annouce_message_12", - "value": "除以上事项外,您还需注意其他可能影响人脸识别功能正常使用的情况。" - }, - { - "name": "face_recognize_annouce_message_13", - "value": "隐私声明" - }, - { - "name": "face_recognize_annouce_message_14_1", - "value": "您的" - }, - { - "name": "face_recognize_annouce_message_14_2", - "value": "将受到严格保护。该数据仅加密保存于本设备的安全隔离区域,华为不会进行备份,其他应用也无法访问或备份。例如,您使用人脸识别进行应用内认证时,应用仅能收到认证是否成功的通知,而无法访问、备份或录入" - }, - { - "name": "face_recognize_annouce_message_14_3", - "value": "面部数据。" - }, - { - "name": "face_recognize_annouce_message_15_1", - "value": "您拥有人脸识别的自主控制权,可灵活控制人脸识别的使用及适用范围。例如,您不想使用人脸识别访问应用锁,在“设置”中将其关闭即可,此时人脸识别仍可用于其他操作,但不可用于进入应用锁。您还可彻底删除" - }, - { - "name": "face_recognize_annouce_message_15_2", - "value": "删除后本设备将不再保存这些数据。" - }, - - { - "name": "face_recognize_annouce_message_15_3", - "value": "" - }, - { - "name": "face_recognize_annouce_message_15_4", - "value": "" - }, - { - "name": "face_guide_3d_announce_link", - "value": "关于3D人脸识别的声明" - }, - { - "name": "face_3drecognize_annouce_message_01", - "value": "3D人脸识别是新一代人脸识别技术。它通过深度感应技术,捕捉更丰富的面部数据,实现三维立体防伪识别。在暗光、逆光、无光等环境下,也可用于解锁屏幕,访问应用锁、保密柜及支付,其安全性、准确率和环境适应性较传统人脸识别技术大幅提升。" - } - - - - , - { - "name": "face_recognition", - "value": "人脸识别" - }, - { - "name": "face_recognition_is_used", - "value": "人脸识别用于" - }, - { - "name": "unlock_screen", - "value": "解锁屏幕" - }, - { - "name": "slide_to_unlock", - "value": "滑动解锁" - }, - { - "name": "smart_display_lock_screen_notification", - "value": "智能显示锁屏通知" - }, - { - "name": "access_safe", - "value": "访问保密柜" - }, - { - "name": "access_app_lock", - "value": "访问应用锁" - }, - { - "name": "automatically_fill_in_account", - "value": "自动填充账号和密码" - }, - { - "name": "use_password_safe_to_save_account", - "value": "使用密码保险箱保存账号和密码" - }, - { - "name": "delete_face_data", - "value": "删除面部数据" - }, - { - "name": "set_backup_face", - "value": "设置备用面容" - }, - { - "name": "recognize_another_face", - "value": "除继续学习您的长相外,还可识别另一种面容" - }, - { - "name": "main_and_backup_faces", - "value": "已设置主用及备用面容" - }, - { - "name": "trusted_device_be_connected_when_unlocking", - "value": "解锁时需连接可信设备" - }, - { - "name": "closed", - "value": "已关闭" - }, - { - "name": "look_at_screen_during_face_recognition", - "value": "人脸识别时需注视屏幕" - }, - { - "name": "fill_light", - "value": "暗光环境下屏幕补光" - }, - { - "name": "auxiliary_mode", - "value": "辅助模式" - }, - { - "name": "recognize_without_opening_eyes", - "value": "开启屏幕朗读后无需睁眼即可识别" - }, - { - "name": "be_based_on_facial_feature_information", - "value": "人脸识别可基于您的面部特征信息进行身份识别,了解" - }, - { - "name": "statement_on_face_recognition", - "value": "关于人脸识别的声明。" - }, - { - "name": "statement3D_on_face_recognition", - "value": "关于3D人脸识别的声明。" - }, - { - "name": "looking_for_other_settings", - "value": "是否在寻找其设置项?" - }, - { - "name": "pick_up_phone_turn_on_screen", - "value": "拿起手机亮屏" - }, - { - "name": "annotation_screen_keeps_on", - "value": "注视屏幕不息屏" - }, - { - "name": "unlock_directly", - "value": "直接解锁" - }, - { - "name": "unlock_directly_after_successful_face_recognition", - "value": "人脸识别成功后直接解锁" - }, - { - "name": "Slide_to_unlock_after_successful_face_recognition", - "value": "人脸识别成功后滑动屏幕解锁" - }, - { - "name": "close", - "value": "关闭" - }, - { - "name": "enable", - "value": "启用" - }, - { - "name": "activate_safe", - "value": "启动保密柜" - }, - { - "name": "whether_to_enable_safe", - "value": "需开启应用文件管理保密柜完成人脸关联。是否启用?" - }, - - { - "name": "activate_app_lock", - "value": "启动应用锁" - }, - { - "name": "Whether_to_activate_app_lock", - "value": "需开启应用锁功能才能完成人脸关联。是否立即启动应用锁?" - }, - { - "name": "delete_all_face_data", - "value": "删除主用及备用面容" - }, - { - "name": "wether_delete_face_data", - "value": "删除后,基于面部数据的功能将不可用。是否删除?" - }, - { - "name": "pick_up_phone", - "value": "同时关闭拿起手机亮屏" - }, - - - { - "name": "entry_MainAbility", - "value": "entry_MainAbility" - }, - { - "name": "face_lists", - "value": "面部列表" - }, - { - "name": "face_1", - "value": "面部1" - }, - { - "name": "face", - "value": "面部" - }, - { - "name": "new_face", - "value": "新建面部数据" - }, - { - "name": "face_name", - "value": "面部名称" - }, - { - "name": "delete_face", - "value": "删除面部" - }, - { - "name": "save", - "value": "保存" - }, - - { - "name": "face_checker", - "value": "人脸识别" - }, - - { - "name": "face_unlock_method", - "value": "解锁屏幕" - }, - { - "name": "face_recognize_slideunlock_title", - "value": "滑动解锁" - }, - { - "name": "title_apps_security_pref", - "value": "访问应用锁" - }, - { - "name": "title_fill_light", - "value": "暗光环境下屏幕补光" - }, - { - "name": "recommend_preference_title", - "value": "是否在寻找其他设置项?" - }, - { - "name": "face_config_light_01_universal", - "value": "拿起手机亮屏" - }, - { - "name": "multiface_list_title", - "value": "面部列表" - }, - { - "name": "multiface_default_face_name_1", - "value": "面部 1" - }, - { - "name": "multiface_default_face_name", - "value": "面部" - }, - { - "name": "multiface_enroll_new_face", - "value": "新建面部数据" - }, - { - "name": "multiface_face_name_title", - "value": "面部名称" - }, - - { - "name": "multiface_save", - "value": "保存" - }, - { - "name": "face_unlock_method_close", - "value": "关闭" - }, - { - "name": "face_recognize_unlock_title", - "value": "直接解锁" - }, - { - "name": "face_3dguide_info_2", - "value": "人脸识别可基于您的面部特征信息进行身份识别,了解" - }, - - { - "name": "face_inform_open_applock_msg", - "value": "需开启应用锁功能才能完成人脸关联。是否立即启用应用锁?" - }, - { - "name": "face_record_cancel", - "value": "取消" - }, - - { - "name": "face_recognize_unlock_summary_3d", - "value": "人脸识别成功后直接解锁" - }, - { - "name": "face_recognize_slideunlock_summary_3d", - "value": "人脸识别成功后,滑动屏幕解锁" - }, - { - "name": "face_enterance_off", - "value": "已关闭" - }, - { - "name": "open_bluetooth", - "value": "使用此功能需先开启蓝牙,点击设置" - }, - { - "name": "no_available_devices_title", - "value": "没有可添加的设备" - }, - { - "name": "no_available_devices_tip", - "value": "没有检测到可添加的配对设备。是否前往蓝牙设置配对?" - }, - { - "name": "pair_button", - "value": "去配对" - }, - { - "name": "face_fingerprint_settings_switch_title", - "value": "自动填充账号和密码" - }, - { - "name": "face_fingerprint_settings_switch_summary", - "value": "使用密码保险箱保存的帐号和密码" - } - , - { - "name": "face_record", - "value": "正在录入" - }, - { - "name": "face_record_3d_record_fail", - "value": "录入失败" - }, - { - "name": "enroll_face_guide_title", - "value": "如何录入面部数据" - }, - { - "name": "face_guide_2d_way", - "value": "首先,确保摄像头清洁、面部无遮挡,录入环境光线充足、无阳光直射。然后,正对屏幕,将面部完整移入识别区。" - }, - { - "name": "face_guide_2d_announce", - "value": "人脸识别可用于解锁屏幕及访问应用锁。点击“开始录入”即表示您同意" - }, - { - "name": "face_2dguide_light_notify_universal", - "value": "打开”拿起手机亮屏“,提升解锁体验" - }, - { - "name": "face_guide_3d_way", - "value": "首先,请确保您的面部全部显示在识别区内。然后注视屏幕并缓缓转动头部以完成全方位采集。" - }, - { - "name": "face_guide_3d_announce", - "value": "人脸识别可用于解锁屏幕,访问应用锁、保密柜及支付。点击“开始录入”即表示您同意" - }, - { - "name": "face_recognitin_guide", - "value": "开始录入" - }, - { - "name": "face_record_success", - "value": "录入成功" - }, - { - "name": "face_record_3d_tip_close", - "value": "人脸太小" - }, - { - "name": "face_record_3d_tip_far", - "value": "人脸太大" - }, - { - "name": "face_enroll_too_left", - "value": "人脸太靠左" - }, - { - "name": "face_enroll_too_high", - "value": "人脸太靠上" - }, - { - "name": "face_enroll_too_right", - "value": "人脸太靠右" - }, - { - "name": "face_enroll_too_low", - "value": "人脸太靠下" - }, - { - "name": "face_record_3d_tip_multi", - "value": "出现多张脸" - }, - { - "name": "face_rotate_too_left", - "value": "头向左转的角度太大" - }, - { - "name": "face_rotate_too_high", - "value": "头抬的角度太高" - }, - { - "name": "face_rotate_too_right", - "value": "头向右转的角度太大" - }, - { - "name": "face_rotate_too_low", - "value": "头抬的角度太低" - } - ] -} \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/resources/base/media/aperture1.png b/ui/faceenroll/product/pad/src/main/resources/base/media/aperture1.png deleted file mode 100644 index 697d7cc06b4d07480e4be454deae5f01033a6af8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2585 zcmdT``&ShA6-NXka1@noYfKIzx^b-mXWzR%j?C=r>f_+EHGztVnn*NJQ>!Nm)(16eELf9 z8j}OL=}45xMVTCq)bF%M!*l?sz)sN)59x6_#(W%z!!Ba8iy)2x5;3_jj|Ubuub2Zt z*0FfPe0>7ilB4M>Tt$Ac5n_3lPd)kc6bO^n4mz2=VcL95CE2xD8L7$QeWp1RxxL41xfAor69TWjSB-4QLRt)M9l z7SccpD@P1CV;;TPCbOzyxGd$f@ihh$I5r}q%OIL=xKA%#{1!~%`iXSVRmF4P~2 zdhMDD!a*ek5N;L(ZE{TNp^`?j+#Vy0K8`RL^~CM8-WxJ`DV;Bg%XujsfD+2sxY3D8 zQg#fBI^#|yp>Qaov>WnO_-T1m8jQIkT#F)1@W>FB2pF`mm?}poF`EbmVQ}q4iMSZR zfIh(l3KinS`K5*kI539t%6SsKtK6XoD@d5Mm}R6u?oz5ymz>YDYZ4J!BUDBtB1G)4 z@v($V=i-g>1Vbv1lL`~tD^!ZXF0mUIbKE*A1w1-)N*LkBOG~*T_{CKLy~-U;{bQ5A z=y>q_^0UH~ZuHosX=#~W1qvII%lmfT(i-3?Yg~mmw`1a*@w3urjjt)GDfzNwc1hvG zb??p|UvnmBT;X)z<;vp);rIJn0&7R7rYaec2`tR$ z#XqRMtt-gg`K~%8+WWZR*2V4iTm7#H=S#aJa~Ks&_Q=q_!267x$v4hiEc#Q~ll$8X z3kOdP-e|krz0(;f|1ACTJSke7{&c^)XCy<)Yguq~?Kf`*)Mje)09ASa;wLS!w^~-M z{-NX1#JqLuJj7Qj*5vjF=h_CxP5t)HUuS<><-62V)LXE-Hvi-L=2hu??oWNAqi_D^ zRV?LV{@ZIRC)b5P7fswSYyHosqd0>V`WGYPi+gBJ&0JRYZ$+u>YFl(q=J`BErt(6go*j3t3f-SKg>m)K z%C@ZR(*COls;isxYs7HXmpiRS9KZG}_FNWpLjOs2_O~hMZbs%C39k``m*t+XZ#>hh zKKM)4$M?_H<}qr!_Zu@aV@sw-s?&e7=-7eA#zU{z)%ePAlj&zaS@1`XXA;ZnuD{o^ zV1Li0Zhuzy?Qi}zvMD?Q?Km)DpSonkvgxN$s{RCC-~4RW`E7>IEc9G!+wvXPLk*g( z1@%Y2pBL}E`{8CqLE)f(+v29)l?#vdcDEhs9(r{w80F=zx_@V5^DmYkf0j+*KXjE9 z6gKR*{<-1N$r+3*Lk@5^yN=D_N7JWnO>F31SbyT#aEA2M7P|LX(;p6Z@F~sG!pH3o zR9_FZ|1;Tx-SPhMddF^emv6#{SKqyu`>LkNXsgVrdyb-~wl3=Upzqkpk4|36AAj|$ znj=*1R;YBB;Pl-m{S7&-8rF@Qg=gi{2lp!8VZQk^=L2r4(tU5*1#$esv_e~3yJL0V z(e1=wkR;dUO*viCd2oiJL%XWBs`kvXcKd>0z5U76Ewiqyxpk+qYt6>F{etF5rlJ+U qcBD1G$+`aRlG@F$nRXm`K3Uw%Tf1!d{3P(pm!^=a(L>0}>i+;-L-OMQ diff --git a/ui/faceenroll/product/pad/src/main/resources/base/media/aperture2.png b/ui/faceenroll/product/pad/src/main/resources/base/media/aperture2.png deleted file mode 100644 index 39ce11d0e8673ba3ffdf9fac2518c38e89b87296..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4104 zcmeHKi&vA^vJZrZhyn^C3TOnPD1v#CM6@L#Auk9d1oA*52_zxpL0*IqMS^-tq`n9W z)E2E4RIn7S8WF|jw6V0cV2y~ufKWKCLPdOl+7|2ms6Ff6KjNOhPUO0dGd=Ln*x%<}z1QPh$HI#&b;#1~605M=dNjNAT4ke)9`Nib$3)rai($q{CJd;*j zTBhS;a~NgHvh1?-IS7a>MkbS9#LJP~jn78l2Gem5njKdVN^hCUlz?d`Tai9o7J|ah9qNJze5u_|0v4F(QQnIp&F&M4h zAjQFmGM0gtovnmR8L4==Qo;}uVCghMv6zq#*Dzp|Qo2@6%qW9rmT)o?OA!T36%|dB zGIUrj(Lga4Xv-AXG%5)=h7Ze@7MB?qIvqy`&yeI8^EE^g6JM6E$W&{{Jif`uLMgGb zY)yfJL}cpJfC)ucR7BLWMLAjYG!{XdAF|soyd|nQg zkR{Kc%kbQSl2i?!he%|z@jN`0r%{pNr4uqNH+|m@UjFGlUsH zfm!-uAwwZik|Y=eU4p@s5YQ?fQmRwZaB`qy2qu(-AQqe0CPX?tQ=`Yh(z5|6sw|Nq z2Pn)`k}k^N({KQ<0&X+GSOf${Fq*K1X($|oZ5nGVPE-)B0MH(y+ zKAWE^D+6vg5$IrG`QIk~yQ6{iKhFk|bO(J$3j+C zOx#bb{ERjQNyk;H&6GlT;euEvk=^P|Os=*z#73Q5#J*oyBM4lAZSo5xdaw1skAHf& zdv@yAt2-`F8l-fCRAR+k=^82p|;K;3cRn=d<_)arl3#!VdhFn>Ee zFMed;3EerCa(y6H{8Q}EynaRi!!4fQ3oxcJB7Vo6nh6{vh!3={!a4l%+*1yHVwO;N$Ye`1C>IPpR8yT9he_vtM>@-4e+U(V7}&<$L&4I?B@%p#rx~*dkx#%FHZIA;-b=&JY&KgC#UO)Le%RgN0 zSkgYwdv*prQe~G}N72Z~sHkL@AQ&6kFyHIvniW31KD{e%mX4f@T=oz{DL?nx9_jP> z(dzK{#~aMG(9N(2zi&LhemQGjW`Ec@U*oS{9W+%Qcv>A_{5HUKpz~wT2tUQ$nfjmK z+`iJLP7IP6jnH$6Pko-gFsC>-w?%dLd$@mF4SVT1nzB6dr_IpKiG9`r58-y{$Z7lH z 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 B>tp}` diff --git a/ui/faceenroll/product/pad/src/main/resources/base/media/aperture4.png b/ui/faceenroll/product/pad/src/main/resources/base/media/aperture4.png deleted file mode 100644 index 381693d5621ea4a4d25ac60a5786d7a5a1369870..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5063 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 D1Bg0UA9LOP_b0^1 zoVz3_HUI#;X>S!{Zx??%q%#5l5>ft73M4G(;O6BG5&?sRg;kspHr}3Yu9zey-^I-q zX@^AE{^yynps*015ay7A35tV66fs3a6on-Cg+)b8|5M(|9^v}m6^Zc+Vk+P?Lb}?z z`FUZI+Az#XNDz}PqJ&8q=@^NNa$ypR?(WVABZRdE(i^*3-(5AL)iEE+on?#xI1)Qg-lkbHNl+m6YNag(2y`8Uv|FfE1Pg9T*;B{vZ`8kfIPs zN$fxMikKQ}!o0NnR8)*GWI>(0^-SD#j5J+b-Ax3wG(GI~kybEcn6Q=x6e4M(=Z&dB zRo7iz6#+9i~0>ymY{B6Yp;cgPTDw>YQ7}hI6bTstTJyjgV{naG`g_NN# z1}YN%5E~6gWe+_oe^o;bHG3sPZ+|64TPb}hDODwPXI(3(fq}k@zLbxuw!5;UFU&;H z-_y`e-x(2LEa4+;;^knkZX)4sZzJenqpxNtp>Grj^})2H=dKc{<6~*=`~dkea|!vlm2kp5a?%FebDa9<(oKvh*KR~Hi{cLPZ=L1>^Th9Xax zk-e+6h^e=liI1+7l$)fTVStz+Ox(my-A2_%QpZXU(~zK|ryJD8Bv8@Y2dwNDXp8g- zRDzjUyTELqN*a!e5F4*RaW@?a2wYV}-M~ssTm+%!?c*n^JHy~EE?RIgLuH7# zhl4(*HbyuB&bzsH<)rAStTuEEb@v>!<23WDIc@ zu@w=8=}4+-NU2)|+DQZ&c}h8pAZ(0XO(abmoqUC?Y@C&Rt#$wP$5=N&U))s73Jh}+ zvlexSiGnq46(NE;M(+Ab?v4Szm?E~u_QsAF)|h$=i&_c#I2pUyiTfG*iAd^MOZr)B zN{P4&1-imSb#-+8FyacvNGzsn|5IrH9};ZqYOU@Hw(%E57`b>@xhbm$syY1sB>10f z{~r?UY^x>(_JY`}D1z@k1ch#H{q(Bn*vJjMRn1t%Q-@ z{wi=|MNBiQ>VEpdD*A>_VpI82}2YG4ICXk zygikSFr(w|p=;!!q#7Wp2k~+9G;o)Mfx)^EYmA05()AN_v$2Ki`iQ7H2P&(I`@uXt zrG(r>^|f8~B;4I};bIz4Ct+<7JFt_jFBGAqZDS|`h5Fclt(7EHpeClOO5SSXM$Y=` zZiX0kV-71{UzoFpw+;+LkCK+KqrIjHM!hOQOjIR&bPNKmrNktW5=x3X|Hy?I3TYd; z*cl>)B{6rxMlh(~e+|O_Z5%KK{#${IsQmpHxCsET03cvRn7_qA2ua;@BlvF#H?7AO z;xu@N?KD&madES6fe$&0$^@Quu@9IPegiOFMX=GgUB48U9Sjmp-_d=fMWOhNWveip zHuYs#`m7u96`>OKuO%ajTeq$!hwT^n*GWf$vxucUuhHe5+>qZEH@WqFmXXV!pE!-w zZ(DecT#vXBTRY|9y0)G4Rhl(8H&b+q1B4Y6!XhJ#O-G+^i{MHB6_gwJwk1i;RZTvVjVQf&e<1$D z$<-89x;H8P>Fb7ov+Z(~;-F|v)MoHy)7P(G5tLF%f0uT>eWme!rw6tS^dUrT8*Xe<2#7ZaDPnd_OK>KLwU&r04|$)?T6-@;z56GC6f zf0VI7eBG<-n#x*(||BDZ)>@p+<5Rmaa6hm9h=F2+40BZJ?5KnY&uWre>(sy~yXvKf2! zqi;qm7k5&$#GL4px1*-r+SWVA_<6jLrl-+6w(r-O zF+<*LN4sP5AzgHbR63vSTge6Qx2p_cssXEP`|saG4WQW{xD*K%g2Au5PDWz~(ofn< zRDJeZ`?eE)mOMBHdkMSbrMu5+a+X;kcYkwa_(~1c9*jD#NA`=@hr~+^=A4qXifUzj z=x=5-yjrb`>9A9RGz(6OB3#+1OXj|Bd4&)BZW)9<(~{r%$)PpGEJTL`6k~ zxZ-IkFWb4#Q~1X;(W)P;>#y@hD$5Gafm#56#TyKH%AyPz2`IKYMyICwzQu-o(#CEO zzwZJSH3qoUnL?yW$i!^txPm@Tv>Gi<=H+pC7-1%O|FDDy`%o>Di&&7^$Kni4&1v1Y zC!?cJHJRndze6&aX3G4E8^jZRr1Nl?|HAf9!^}#GEm(q@r*_Sy57biw-<~_S@o5=k zcgh6Q_KvG9KL*uT0rixh%NMrM33w~^--`)gy*o($a$>Naef0b3Hl(k8!VG9dg zZB_X+eBC57RJ&35sm#((-;09MsTB@Sx)K_vH#72RqD~8cAzd`J`-^B|jIsjtTT-Dy z03HE zISsXcqZBc6w5S)klHS0#Gqsteq&E%uZkZ<9_sm{b2Ai=qtMfd{nK~tcRd)}!us8s! z*1@Y7e)gzU^edJ6RNAv(Lv#CuXZ2Il)e*Y-WXnk}qXWeq98v2*`>Ejv#jt5h>#{f8 z$on>Wn}Q3zzN-)SR6l7nT=Xs8aFr!Q)cPV`zsz`njSh6mP{MOp12htJ3O{PZapwW- zU`zJrH{i429OD31a5^8qU%@)oVkeIqxE$*6X{hoJDAW3?$DpS#!bRxqOH*%skd(_@ zx+e!%B4-dmT767#4u95&xx8m~^Xp+9wPz!5*{(LB? zl?sJU+87G7n!x>{V$VyR(#!UeaQq3w32^)Y;Wt>TD}iE%i3tr)^(UH?JwI-a4y-gq z)Ox6GjSl9$mErR<=a%$a#k;ATJ?kJ@^#aI0SPjFuN{c;q6Pc5JK~&x;R%?jqrNn~f z4?FrUaRam0EuQcTAb=e2mp0d!0lW*CMzHjHyWfB& z(#||DlJxk_zjsXGW3ZCfJ=_soM|W7VEm`}KR(%{vsa_0jGBU+^fe4LI67OSJ&kFj_m=@wDA$ zSZ&D1J+ksY3i;PB=F`&R9TnFrr+nGr@IdXX%u!*2QJx^;&IM;bqRF&M$5xTlOv4_7 zFYk@d3129qJSk5qOVJh!KfGSAS@pwmA;`zWBO|-Fx3`6TY|>qH<=o1QV+6;H0NK`> ziC-K1r-elA(m&M7_uQ}x#MXv`LklcOR^dRUa_hb9fUvSUQXa!)_J-8$Juk+wT4$Xl z#nr)*Eje9yGsO$s@IulC@`X=A9;t?K`hB*&pJdU}(qr;ew+^?N7dst%u24|(+_>tB za2=(d8nufZ@l=a{@t4@bqPGbHIqZMdv!9H{Mxkp58OA|7GFxGDqu-d)-pFwKeP6&{)z-+Z zQf9b_pykJ5F@AY6PYvu2<3Vm8*yZMS5;Zg$1gJ#XAYINTd9PCzWQf9s!0C1Ms4*XN zxIm-VjLw|SB9Vpo;T0?$Iv}!G#qfu-D$SOdr7vsX>7i%uk5DaeY4TGEc**+xYpYky zX4J^KsUH1Sdjq5b*{T2_I94S~EwpT@6fGdG5gB$(p1-5A`Lk)v<@6pxM^FxfJU47b z)HOE5r{}nz&EK_6Zar+KtQywSTMue%tU7g|&a#?4eBTYrsf!H>vRA1te_LMf4m0sa>rZQM+ynh+@& zyF(QHtv8CTqG1Vb$7OR%B|j*w-9N7WJseFHr%W#?AedUU%WJhgwqpj$G`ELe&;fpl zaXd~PnfqBU#|u1qjBuvyTkTIdz^Rj-&ji{BPqdE2!M>$b>4TUMo=VOA!+P27vN02d zC)0WWA~aNU|4eqP_$;PI@lf1GDp)BceLqI3zyTy^_lxSPtfGpR(mE~15kHaznm{I< zKlV;EQA%!lh^Hl!f#wN(CLnF>u^Hq+YHP<}gr~|W_uV5i#zm~y$JRfrs$zpH&v8Qi z@$DUFHDo_$Ty})!di@eSa{FT{^Fn^8t?w7v$m-j8LW3hHM$%@pzCY^G#kH38NJ~QO z(rI6Hmz0zY&3^x`{YKeQumSY}33X$8N$k!3tDI!aINce3;fHmbB6q|D>~`1KwQKzb zmu;NadVTXn3Cxa7$+J`w%@2cTU;P~_3Rnv`i|R3@L=RREr@B1q-~fg#jwh=IR(kk9 zcWLpEg-`_!sX5wkA(J9be?xG+)E=9}<-pQ27iNEy^k%dd^t$Z7{n4CynVJ}R;Dhg; z$^F^)QP#2Pjr&RPwR7v+&V(JZAPe}6(PPuNq_w+VK;wIQ!gq}NpAP7Ka2PZo*S>0e zSm7@czDp)}GB4UE4D1h$w!fsvTw7~DKL>a04H7- zo;`khRZ~BBron+iPj>nGW461;r90C#>C;+|$cKx3-~TE$^2tL}1!-)OEa-kn`>L}` zX#MrX3?Qokc9{J7T@4#OSOidbl>x-!A>jzyU&d$y% zBfPeJb){pWNrh^+X`J**7uGz<;b>Gw+E2d5ad-wsb-^}wcbHkL>)O_6K?%+DsIfT-V@yfvW!GNRGsmqIWo1I2**ABIs2QMy{=%ajH@qW=A&6bJ>Pew$wkUo=1T@O18 z_2;7v^&6d)c`KCLmnyG_ude{#!Z+&9LbeW{xwPz!{hG6cben#Bc?R_+Zn+ zigA)LisR$t@f67GSMK3O6kX&c#V)6-`Yh33x5(5>Umy#VMvH;W>7pz(TI!gwDCi(r zdEoWXBb-2q@X54lg&TbeSqVmYEtjJEcec05>apqy(B7I9ynh>k-KIQIBdac&dNv7U z@0H@2ID<#dB-ef#NLn`6oz0BDcdE)lEaq2dc9Xv>mRG?-I3D( zxi%%M)(EUl3FJf3iLr(D2OUCE^-n0cHrZO-D7WHRJYy?BllBYB zDi`!bBqT#rzjix)%Yr@D`@ZQu^bC(AT~y1UrEeFwLw7J`i&xs)L&MF z-+4v+5z_SXcpZ@_Lo&1M<^f}0qdq?O3 z;^gvLZz+9WyIcxX)L!?4gAVZH$`yElo3(txUQBb33Pb7APwr{uMD8uV;0_0Abh|1M zY6Q5!(|!Dnm)8$~-9Y`Wdh@!-T+4+UpITkW2!o2{@pp_(7W#Vc4KeG^)!M8Vi@+i0 z@`@^f)@Zx{~ceLP^~4p)RL*z~@L z8a~aa);bdKNGoaU(9*OF-ccp;UpCt=nhcUj)>^R{{96&br~nQ?eKZ1V)9%8Npa&kw zzf$26K~KX45(u*<5{AtQKs;M_e1R6XU*s|GF6dL}z)MuV&WnsWc!@Q(LkA;VK2EW6 z&DLOgoD!SFAs1r!ByA3lS7CrR{$z6DaK4Qk>H&FsP-(oa#)G@CA(pncn~dsescftqlhNYp5EG>@`<#2;(lY&P5Au3D zADEoGWxV=b4iv7IFGYJ=f2*e+S%he+zZp9pUdHS`L`dXEZ~gzKdtBXnJE*fMpEL(b z50A-r)S>1_ruSSRDDMQpsA*Z@n(pKTN+S{4LEnynJ-SIvvK2ZT*4x~rZx8EV;x1aK zv#V2yXb|qy92g6fTJkWdVJxiLIP5DAKnEL;?I*MC9@X2SSCA@dO3#D7@18`Z+*1DE z_HTqJt+pB!&vdN!bg-}Z&pxSa-ncvtHA|mPF{R7?WSA2*0DMK;K$mAVFB=_KJ%?K4@Z;SoaXDMVOWTl`%gr^`~+(O=PyGNHMC`rStT+{^Ui1a_?TC z9SO+|Rj=Sr-t}bl62PU8j%M)671c4|0^vJlZ``%sZ8Lc#$8bp0tUDY%QnQmat!d%f z+8@uN(c^hjf#r!)!Uf}NsMiJ zrJ$&({tH}Br3()X*gfFe*hLVj*!7u%fV>lrf)@&k3k`e&$%J z47bvZmwtQ8ur-H`yhb!e1P{-k7&k2o~AkKLnD>V zL%h~fWx6kVU~`WZ;y}tLlxSR7y5QJh)@NMeT^_)pA$y<2j{k$6))(+BLT%Miez0Iw z@jlUVp(2)?@yavWz@hEGIuW9(-g9wgnh>lW@a>XQMR@(J5N z6;H4KTL`~(v%%OPRMP=)c$S*Ky^Y?Lx58RL7C%O`BlaJ91{;0GP<#qcaYR^3s=}WD z!kx)iC@8mS2&N`Q;j>x1L!qH= zlmJ=M;`_M0vY*vK z&4AD=THx5-*DigS1*6v?EM0a2=xK=U^Mr)2^p8;cS!~M>xPAni2M2-#ZJmv_z+1&r z!3&3{Zyg!qA0+@ikLb;EJeu+`1di(|shgN*ZqDCnS{SiSiq0@c?L~l zi?njYT}XDF(db!`pXO;9AJCEhUl^a^3gXsGXYWT6IQyr>Qed3vkfrAHRG<=bF-!K& z+H*U^@#>dW^xzpM{UiK9C-{t&&l3*d(F3LV8tONgdGLf}RZhj&VvOPTc?`KjaSxur z15*e*J-2LATka`vNuLgZ7S&} zpY-W+`QTcNPmAR1B7CMFu=+_d*;x~Q^!2lYrUr>?h}d^lfslh8mEQDR$#Ml|$efMJ zX2=_#A3-(OvA`nxaEP~ufUtC7rypEzUO57d;&5(__XN$2b&b1CH(50; z1vC`N&B@s}tt*sCG$zbQd!v&7JYOwO7nXR>W8 zw3M_3WS{WLi&ew5$ci+<4Wy`CH0tHc*+u?ZLEOf^$GgcjV!`B{@v+G@g>D8jG#hd) zTCu%zD4Ak>gUoLceh)Nt3}$3ZXDTc^BHvU@Ug;#1_)22h##->+JTKjB!+&-Z{gH*n<7pI{#k z0DmI$aL&KgD$A!z&t7$+N12}wwyH#)O#XO}+k#O9blp7f4LoL62%`V&J>hhE8tO1Zbi2fb`E8R zvI7N}3yS$w4rqYgLDmUW?lN2kbj|Yd`rn&In|v*Jfo&g8?An3M*A%rV>C>8*x(ehg z46HBT2vk-}uPWjYta}bw814ML9TDM1=An{~&~R)-detu8v8Xi222wDRSo8quc=AZCK8&4(d+gCGdZ)O)9Jr6Pk|0))-_uOi zy*Xnl2a(LKC;pLmiS?xGBdi()Bh}9g(dr8I z8U`ELV6Z3577x!boA`aei*EIIRK2h3K2jT~y+a95P!Gbuz*=3q_aS!>yqLdW>b8j{r?V9dAuw$@E11d0oJO^%D};LdUbJe*cfWQuf*oQf-Z z+E1od#}Gs{q!}qKvUXX%g<$tB+f&8A(N$q45s#7cxSa)}6ir|=e3$UcX>Y=vdcxPDk z6QT!fZ(S&~;8obi*Z`H$q6Dnqco2ok=CY!3<0wmAl94E#a@5F81f1D+-;-s!`Q)FmIW zpXzQ(^4uM-79)rW&x%HqZk~cSiwXxgpHMx>;2S5>goiN##!8$UX(*NOZbIn)l6GzY zWDUT}6!GIW3VW&H=zFYi1>9q1%7EMOdQS$xUqr_{4&X{<)!Vz3G@ctzZV2j0H@31H zdavCdV=K?~-Ei%uVkQ5)q6RA2-TbiA#I^{W-vXW{VmWO|U{PS3ITX%tDH-Ss`%jQi%A9(?u)D?f1u+URQBsl#8=e3w**``|?teKRW~j{GY)HqB%#`Qv+B zdGYUOl-D=OYK@HKsR2w@WC|m?_`5ryM58pi{HaM`8Zc-7~je^q9F2O|=v$j>l z_7MlG)W2W`gvVb$p!B%4P*lgDw7aME_4Nj$pNF(vbbCd$bf#K0qN90-K5ZH@fXBj` zlqcz*eSD_J8Ex}N2Ot`9!~uLqjv%dhlKPL2*x_T8VPvZuU@$@Ozzd?)YrrxKa4grn zDmuuM|6w3Iglc`aN9)fhxeinXEO|*+ zurX+b3SPugfBSfcUL)u5XN|-fCIA@+WO9pHMg#ID=921FP%4|0v7Z`=?|>12MR?N% zc-o3Ldk+easWHunZR0QY=xvAbVAO5;g*-cuT)>zvjC8dO@QI3&){D43uLM_ft`7is zxbrU-pg18R0qmGNJ7bx0P`H^X#WKE29{WnwhJwlJM{ zrQFr{TZG0H3?}Go1|0GMUoc*mh%NhPpj1%9YJhexh<@@slhQq~GFaxg?FBw9eBIhjIJHb76_;=E~J1Env^ z4_4D+$9<0$V3<8=J3CN8=A1ZI0#^VFerE(wFnH)&Q}0CupjjgVDiI3~Lr!~{D;C67wc?GHOKTE-acFi0w$BTv!! zz*iB>T91tS{j)rVf4z#FigLY$U_?RWBQwz|0(gpQc+gSRydPsNoj0oeMB`C6OI8`q z>Iz`I^1d8+I*UiWWf>L4?n$_j5b~(hd(@jRf*&KAVF-{$s43Vy14aQ9=VU2M_y<)M zeL1hFLOlk@#r#;6ZOfnA_YbI|qtxyzsM>YG3a0N=(j+Fg4oRFQ5|~0zcFM&ElcEQc zE(Kz;QFdZ4e&+}#{1?*M%GCO zaOS4>^jK>N2@r5P9pBvSUU)~*JnJlvcD{vL6%k~t!8u5-vDFX~9F0}4kfWeQe3v1>zR!Ua5it|g2&hmrqHfxkBxn>azE={v* z&ilF$U;ezyGTJcu?~ygI_otngS*L@~DBe5~7&})a~f@2b~6kk+%Lx{W;)d zoH^!9d^$5rj8H1w54?XiuEZq|g!{0*ZA>5(v3TWV2wgWlD>L8d0i5OW!So$vo;*Z* z20{lRo3m#h0cqIN<=iRiU^b!Xz>@;!`&GLDeCcAe`8&2ocF^FB%I1Vh&u_rxUn@fz zh3>9;46g62y=1)*KEq@RiC|a?CoAL5BO0DBq&sQ{c9Y(=j}#y_zcvdf-T;-Jg*w0d zXO4!uHN z6f=LQ0UZY4gUZn`-4FN^h2F;CS5R+q�MkE;z_N-yJ3$%TGzkz0$cI5Vpbv)ZuQC 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 diff --git a/ui/faceenroll/product/pad/src/main/resources/base/media/back.png b/ui/faceenroll/product/pad/src/main/resources/base/media/back.png deleted file mode 100644 index 85dcc6ad6895ff1b4ef599be169e0df24a7b01b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 893 zcmV-@1A_dCP)EX>4Tx04R}tkv&MmKpe$iQ%l8G3fe)$AwzYtAS&W0RV;#q(pG5I!Q|2}Xws0R zxHt-~1qVMCs}3&Cx;nTDg5U>;o12rOiOg)ia%%JP|x`&6acTt|z{oJ3UU&)&c@QB27OgAjz4dR(i zOXs{#9A+g+AwDM_H|T=Ik6f2se&bwpSm2pqBa@mZ4ik&T4wgHZl?;`5nmD4U8s!UF zmle)ioYhK=weHDZ7|d%cX|B^8K^#j+APEsNYAB-u3sG7%QcR?1Ki0)R?D&)9lF3yD zBgX=&P$4;f@IUz7ty!3wbd!QH!1rR?AESVO7iiXP`}^3ony{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2jvS71s@{2AB;x;00DVPL_t(&-tE>sNCPn##_>cd zh#**7AqY;+?QBKp)I|{Cy_|!CUmz${1-&jVPR@ z?{#Q~x(TJ)a?fuK7sCIJ%PRx`000000002Me`4k#RB)`dQ(F5^K~UO63~Q&g_Ft7! zY>e5BdyHAF{dc8QWQ^I0dyF|x`yVdGM%-hpc-sF`N_`q*mg62{wJFAY++%Ee+K-e{ zZ^js}lg}#uAjZzZ;?iE_>Qa=;<^4jTaMt3McT&pxt_;G=+1hUy~pJM6q^^ zh#p*&BWCVF6l*g?^ys1-;M!?KnIxj;ASj(M^8ku8rdV9T000000000003GieI()ku TraWJ?00000NkvXXu0mjf+ewd3 diff --git a/ui/faceenroll/product/pad/src/main/resources/base/media/iPad.png b/ui/faceenroll/product/pad/src/main/resources/base/media/iPad.png deleted file mode 100644 index d48706b244bcb700d5af35c3d599b2c9228501e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62798 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μCl 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 - - - - - - - - - - - - - - - - diff --git a/ui/faceenroll/product/pad/src/main/resources/base/media/icon.png b/ui/faceenroll/product/pad/src/main/resources/base/media/icon.png deleted file mode 100644 index ce307a8827bd75456441ceb57d530e4c8d45d36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6790 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

BVMGd3|AJ_LRJ{BtJ0| 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 KD590bfB)GV#f2sS diff --git a/ui/faceenroll/product/phone/src/main/resources/base/media/into_arrow.svg b/ui/faceenroll/product/phone/src/main/resources/base/media/into_arrow.svg deleted file mode 100644 index af9aaad..0000000 --- a/ui/faceenroll/product/phone/src/main/resources/base/media/into_arrow.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ui/faceenroll/product/phone/src/main/resources/base/media/phone.svg b/ui/faceenroll/product/phone/src/main/resources/base/media/phone.svg deleted file mode 100644 index b81e4e3..0000000 --- a/ui/faceenroll/product/phone/src/main/resources/base/media/phone.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ui/faceenroll/product/phone/src/main/resources/base/media/shelter.png b/ui/faceenroll/product/phone/src/main/resources/base/media/shelter.png deleted file mode 100644 index dfb40a6ee32262d1b91c750425739d17dac9724f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4478 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 C;>;)j diff --git a/ui/faceenroll/product/phone/src/main/resources/base/media/startImage1_3D.png b/ui/faceenroll/product/phone/src/main/resources/base/media/startImage1_3D.png deleted file mode 100644 index aa04ba19585617d4f8bfabfffd433675f87a51a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13080 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 diff --git a/ui/faceenroll/product/phone/src/main/resources/base/media/startImage2_3D.png b/ui/faceenroll/product/phone/src/main/resources/base/media/startImage2_3D.png deleted file mode 100644 index cd40d2e1350de5d41a158ca7a59444bef0baa18f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9858 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 z 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 diff --git a/ui/faceenroll/product/phone/src/main/resources/base/media/success.png b/ui/faceenroll/product/phone/src/main/resources/base/media/success.png deleted file mode 100644 index 5b5ae5f6dd26f882a3c91c6435cd06ce2c23ba50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3595 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 RALIZ4002ovPDHLkV1lJfu@(RT diff --git a/ui/faceenroll/settings.gradle b/ui/faceenroll/settings.gradle deleted file mode 100644 index 742508e..0000000 --- a/ui/faceenroll/settings.gradle +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -include ':phone', ':common', ':feature', ':feature:facesettings', ':feature:faceSettingsPad', ':feature:trustedDevice',':pad', ':feature:trusteddevicepad' -project(':phone').projectDir = new File('./product/phone') -project(':pad').projectDir = new File('./product/pad') \ No newline at end of file

BVMGd3|AJ_LRJ{BtJ0| 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 KD590bfB)GV#f2sS diff --git a/ui/faceenroll/product/pad/src/main/resources/base/media/into_arrow.svg b/ui/faceenroll/product/pad/src/main/resources/base/media/into_arrow.svg deleted file mode 100644 index af9aaad..0000000 --- a/ui/faceenroll/product/pad/src/main/resources/base/media/into_arrow.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/resources/base/media/pad.png b/ui/faceenroll/product/pad/src/main/resources/base/media/pad.png deleted file mode 100644 index d2147588d2884bbb85495be345bef5ada69bb5f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60632 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 Ruq(iiqU - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ui/faceenroll/product/pad/src/main/resources/base/media/startImage1_3D.png b/ui/faceenroll/product/pad/src/main/resources/base/media/startImage1_3D.png deleted file mode 100644 index aa04ba19585617d4f8bfabfffd433675f87a51a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13080 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 diff --git a/ui/faceenroll/product/pad/src/main/resources/base/media/startImage2_3D.png b/ui/faceenroll/product/pad/src/main/resources/base/media/startImage2_3D.png deleted file mode 100644 index cd40d2e1350de5d41a158ca7a59444bef0baa18f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9858 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 z z3#7DaTlg%c-WR!(tP>UNL6vt)ycA1PWDR-6c5PdQpx`F#t8g+Xt-H25^MLqQbk+$PN=>pe z=RV0$sE83{-A7zgbmaa!;&_SDZ_ozgECfe|1;#Zvxb0G?gsoLrI}-jW53RIY{u8(I z(^L6x$o_NV&BC5GKCp%-Fm?X*8*L&bvspFtk^zSJD{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_5) - },Constants.TIMEOUT_100); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_10) - },Constants.TIMEOUT_200); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_15) - },Constants.TIMEOUT_300); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_20) - },Constants.TIMEOUT_400); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_25) - },Constants.TIMEOUT_500); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_30) - },Constants.TIMEOUT_600); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_35) - },Constants.TIMEOUT_700); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_40) - },Constants.TIMEOUT_800); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_45) - },Constants.TIMEOUT_900); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_50) - },Constants.TIMEOUT_1000); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_55) - },Constants.TIMEOUT_1100); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_60) - },Constants.TIMEOUT_1200); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_65) - },Constants.TIMEOUT_1300); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_70) - },Constants.TIMEOUT_1400); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_75) - },Constants.TIMEOUT_1500); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_80) - },Constants.TIMEOUT_1600); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_85) - },Constants.TIMEOUT_1700); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_90) - },Constants.TIMEOUT_1800); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_95) - },Constants.TIMEOUT_1900); - setTimeout(()=>{ - AppStorage.Set('prgValue',Constants.PROGRESS_VALUE_100) - routeSuccess() - },Constants.TIMEOUT_2000) - } - - static aperture(){ - setTimeout(() => { - AppStorage.Set('showAperture1',false) - AppStorage.Set('showAperture2',true) - }, Constants.TIMEOUT_1000) - setTimeout(() => { - AppStorage.Set('showAperture2',false) - AppStorage.Set('showAperture3',true) - }, Constants.TIMEOUT_1300) - setTimeout(() => { - AppStorage.Set('showAperture3',false) - AppStorage.Set('showAperture4',true) - }, Constants.TIMEOUT_1600) - setTimeout(() => { - AppStorage.Set('showAperture4',false) - AppStorage.Set('showAperture5',true) - }, Constants.TIMEOUT_1900) - } - static RESULT_CODE_SUCCESS = 0 - static RESULT_CODE_FAIL = 1 - static RESULT_CODE_GENERAL_ERROR = 2 - static RESULT_CODE_CANCELED = 3 - static RESULT_CODE_TIMEOUT = 4 - static RESULT_CODE_TYPE_NOT_SUPPORT = 5 - static RESULT_CODE_TRUST_LEVEL_NOT_SUPPORT = 6 - static RESULT_CODE_BUSY = 7 - static RESULT_CODE_INVALID_PARAMETERS = 8 - static RESULT_CODE_LOCKED = 9 - static RESULT_CODE_NOT_ENROLLED = 10 - - static resultCode(){ - const Code = new Map() - Code.set(Constants.RESULT_CODE_SUCCESS,$r('app.string.enroll_success')) - Code.set(Constants.RESULT_CODE_FAIL,$r('app.string.enrolling_fail')) - Code.set(Constants.RESULT_CODE_GENERAL_ERROR,$r('app.string.enrolling_fail')) - Code.set(Constants.RESULT_CODE_CANCELED,$r('app.string.enroll_info_cancel')) - Code.set(Constants.RESULT_CODE_TIMEOUT,$r('app.string.enrolling_timeout')) - Code.set(Constants.RESULT_CODE_TYPE_NOT_SUPPORT,$r('app.string.enrolling_fail')) - Code.set(Constants.RESULT_CODE_TRUST_LEVEL_NOT_SUPPORT,$r('app.string.enrolling_fail')) - Code.set(Constants.RESULT_CODE_BUSY,$r('app.string.enrolling_fail')) - Code.set(Constants.RESULT_CODE_INVALID_PARAMETERS,$r('app.string.enrolling_fail')) - Code.set(Constants.RESULT_CODE_LOCKED,$r('app.string.enrolling_fail')) - Code.set(Constants.RESULT_CODE_NOT_ENROLLED,$r('app.string.enrolling_fail')) - return Code - } - - static FACE_AUTH_TIP_TOO_BRIGHT = 1 - static FACE_AUTH_TIP_TOO_DARK = 2 - static FACE_AUTH_TIP_TOO_CLOSE = 3 - static FACE_AUTH_TIP_TOO_FAR = 4 - static FACE_AUTH_TIP_TOO_HIGH = 5 - static FACE_AUTH_TIP_TOO_LOW = 6 - static FACE_AUTH_TIP_TOO_RIGHT = 7 - static FACE_AUTH_TIP_TOO_LEFT = 8 - static FACE_AUTH_TIP_TOO_MUCH_MOTION = 9 - static FACE_AUTH_TIP_POOR_GAZE = 10 - static FACE_AUTH_TIP_NOT_DETECTED = 11 - - static FaceTips(){ - const Tips = new Map() - Tips.set(Constants.FACE_AUTH_TIP_TOO_BRIGHT,$r('app.string.enroll_info_highlight')) - Tips.set(Constants.FACE_AUTH_TIP_TOO_DARK,$r('app.string.enroll_info_darklight')) - Tips.set(Constants.FACE_AUTH_TIP_TOO_CLOSE,$r('app.string.enroll_info_scale_too_large')) - Tips.set(Constants.FACE_AUTH_TIP_TOO_FAR,$r('app.string.enroll_info_scale_too_small')) - Tips.set(Constants.FACE_AUTH_TIP_TOO_HIGH,$r('app.string.enroll_info_offset_top')) - Tips.set(Constants.FACE_AUTH_TIP_TOO_LOW,$r('app.string.enroll_info_offset_bottom')) - Tips.set(Constants.FACE_AUTH_TIP_TOO_RIGHT,$r('app.string.enroll_info_offset_right')) - Tips.set(Constants.FACE_AUTH_TIP_TOO_LEFT,$r('app.string.enroll_info_offset_left')) - Tips.set(Constants.FACE_AUTH_TIP_TOO_MUCH_MOTION,$r('app.string.enroll_info_blur')) - Tips.set(Constants.FACE_AUTH_TIP_POOR_GAZE,$r('app.string.enroll_info_eye_occlusion')) - Tips.set(Constants.FACE_AUTH_TIP_NOT_DETECTED,$r('app.string.enroll_info_not_found')) - return Tips - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/phone/src/main/ets/default/model_2D.ets b/ui/faceenroll/product/phone/src/main/ets/default/model_2D.ets deleted file mode 100644 index 51ac382..0000000 --- a/ui/faceenroll/product/phone/src/main/ets/default/model_2D.ets +++ /dev/null @@ -1,273 +0,0 @@ -// @ts-nocheck -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Constants from './common/constant.ets'; -import UserIDM from '@ohos.useridm'; - -var mPrgvalue; -var mResultCode = Constants.resultCode(); -var mFaceTips = Constants.FaceTips(); - -export class model_2D { - private UserIDM; - - constructor() { - this.UserIDM = UserIDM.constructor(); - } - - /** - * init FaceModel - */ - initFaceModel(credentialInfo) { - console.info("FaceEnroll model_2D initFaceModel start"); - AppStorage.Link('width'); - AppStorage.Link('showBack'); - AppStorage.Link('height'); - AppStorage.Link('showAperture'); - AppStorage.Link('blur'); - AppStorage.Link('showPrg'); - mPrgvalue = AppStorage.Link('prgValue'); - AppStorage.Link('enrollInfo'); - AppStorage.Link('showBtn'); - AppStorage.Link('enrollTitle'); - this.startEnroll(credentialInfo); - console.info("FaceEnroll model_2D initFaceModel end"); - } - - /** - * resume page, unInit FaceModel - */ - uninitFaceModel() { - console.info(" FaceEnroll model_2D uninitFaceModel start"); - if (mPrgvalue != Constants.PROGRESS_TOTAL) { - this.cancelEnroll(); - } - setTimeout(() => { - AppStorage.Set('width', Constants.SHELTER_START_WIDTH); - AppStorage.Set('height', Constants.SHELTER_START_HEIGHT); - AppStorage.Set('showBtn', false); - AppStorage.Set('showPrg', false); - AppStorage.Set('showBack', true); - AppStorage.Set('blur', Constants.BLUR_START); - AppStorage.Set('showAperture', true); - mPrgvalue = AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - AppStorage.Set('enrollTitle', $r('app.string.face_record')); - AppStorage.Set('enrollInfo', $r('app.string.enroll_info')); - }, Constants.TIMEOUT_500); - console.info(" FaceEnroll model_2D uninitFaceModel end"); - } - - /** - * Open session and get challenge. - * @param callback - */ - openSession(callback) { - console.info("FaceEnroll model_2D openSession start"); - this.UserIDM.openSession((data) => { - try { - console.info("FaceEnroll model_2D openSession data", data); - callback(data); - } - catch (e) { - console.info("FaceEnroll model_2D openSession error", e); - } - }) - callback(); - console.info("FaceEnroll model_2D openSession end"); - } - - /** - * start enroll, get callback value - */ - startEnroll(credentialInfo) { - this.UserIDM.addCredential(credentialInfo, { - onResult: (result, extraInfo) => { - if (result == Constants.RESULT_CODE_SUCCESS) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('showPrg', true); - Constants.progress_2D(); - this.endEnroll(); - } - if (result == Constants.RESULT_CODE_FAIL) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_GENERAL_ERROR) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_CANCELED) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - } - if (result == Constants.RESULT_CODE_TIMEOUT) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.enrolling_timeout')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_TYPE_NOT_SUPPORT) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_TRUST_LEVEL_NOT_SUPPORT) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_BUSY) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_INVALID_PARAMETERS) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_LOCKED) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_NOT_ENROLLED) { - console.info(" FaceEnroll model_2D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - }, - onAcquireInfo: (callbackModule, acquire, extraInfo) => { - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.enrolling')); - AppStorage.Set('enrollInfo', mFaceTips.get(acquire)); - } - }) - this.endEnroll(); - } - - /** - * end enroll - */ - endEnroll() { - console.info("FaceEnroll model_2D endEnroll start"); - this.UserIDM.closeSession(); - console.info("FaceEnroll model_2D endEnroll userEnroll.closeSession() close"); - AppStorage.Delete('faceSession'); - console.info("FaceEnroll model_2D endEnroll end"); - } - - /** - * cancel enroll - */ - cancelEnroll() { - console.info("FaceEnroll model_2D cancelEnroll start"); - let can = this.UserIDM.cancel(AppStorage.Get('faceSession')); - console.info("FaceEnroll model_2D cancelEnroll userEnroll.cancel() can" + can); - this.endEnroll(); - console.info("FaceEnroll model_2D cancelEnroll end"); - } - - /** - * change index 3d - */ - change_3D() { - AppStorage.Set('show_startViews', '3D'); - } - - /** - * change index 2d - */ - change_2D() { - AppStorage.Set('show_startViews', '2D'); - } - - /** - * init index - */ - init() { - AppStorage.SetAndLink('show_startViews', '2D'); - } -} - -let mFaceModel = new model_2D(); - -export default mFaceModel as model_2D; diff --git a/ui/faceenroll/product/phone/src/main/ets/default/model_3D.ets b/ui/faceenroll/product/phone/src/main/ets/default/model_3D.ets deleted file mode 100644 index 8932a09..0000000 --- a/ui/faceenroll/product/phone/src/main/ets/default/model_3D.ets +++ /dev/null @@ -1,257 +0,0 @@ -// @ts-nocheck -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Constants from '../default/common/constant.ets'; -import UserIDM from '@ohos.useridm'; - -var mPrgvalue; -var mResultCode = Constants.resultCode(); -var mFaceTips = Constants.FaceTips(); - - -export class model_3D { - private UserIDM; - - constructor() { - this.UserIDM = UserIDM.constructor(); - } - - /** - * init FaceModel - */ - initFaceModel(credentialInfo) { - console.info("FaceEnroll model_3D initFaceModel start"); - AppStorage.Link('width'); - AppStorage.Link('height'); - AppStorage.Link('showPrg'); - mPrgvalue = AppStorage.Link('prgValue'); - AppStorage.Link('showBtn'); - AppStorage.Link('blur'); - AppStorage.Link('showBack'); - AppStorage.Set('enrollInfo', $r('app.string.enroll_info')) - AppStorage.Set('enrollTitle', $r('app.string.face_record')) - AppStorage.Link('showAperture1') - this.startEnroll(credentialInfo); - console.info("FaceEnroll model_3D initFaceModel end"); - } - - /** - * resume page, unInit FaceModel - */ - uninitFaceModel() { - console.info(" FaceEnroll model_3D uninitFaceModel start"); - if (mPrgvalue != Constants.PROGRESS_TOTAL) { - this.cancelEnroll(); - } - setTimeout(() => { - AppStorage.Set('width', Constants.SHELTER_START_WIDTH); - AppStorage.Set('height', Constants.SHELTER_START_HEIGHT); - AppStorage.Set('showPrg', false) - mPrgvalue = AppStorage.Set('prgValue', $r('app.float.progress_value_start')) - AppStorage.Set('showBack', true) - AppStorage.Set('blur', Constants.BLUR_START) - AppStorage.Set('showBtn', false) - AppStorage.Set('enrollInfo', $r('app.string.enroll_info')) - AppStorage.Set('enrollTitle', $r('app.string.face_record')) - AppStorage.Set('showAperture1',true) - AppStorage.Set('showAperture2',false) - AppStorage.Set('showAperture3',false) - AppStorage.Set('showAperture4',false) - AppStorage.Set('showAperture5',false) - - },Constants.TIMEOUT_500) - } - - /** - * Open session and get challenge. - * @param callback - */ - openSession(callback) { - console.info("FaceEnroll model_3D openSession start"); - this.UserIDM.openSession((data) => { - try { - console.info("FaceEnroll model_3D openSession data", data); - callback(data); - } - catch (e) { - console.info("FaceEnroll model_3D openSession error", e); - } - }) - callback(); - console.info("FaceEnroll model_3D openSession end"); - } - - /** - * start enroll, get callback value - */ - startEnroll(credentialInfo) { - console.info(" FaceEnroll model_3D startEnroll 3d start "); - this.UserIDM.addCredential(credentialInfo, { - onResult: (result, extraInfo) => { - if (result == Constants.RESULT_CODE_SUCCESS) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('showPrg', true); - Constants.progress_2D(); - this.endEnroll(); - } - if (result == Constants.RESULT_CODE_FAIL) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_GENERAL_ERROR) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_CANCELED) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - } - if (result == Constants.RESULT_CODE_TIMEOUT) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.enrolling_timeout')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_TYPE_NOT_SUPPORT) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_TRUST_LEVEL_NOT_SUPPORT) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_BUSY) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_INVALID_PARAMETERS) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_LOCKED) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - if (result == Constants.RESULT_CODE_NOT_ENROLLED) { - console.info(" FaceEnroll model_3D startEnroll UserIDM.addCredential onResult result", result); - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.face_record_3d_record_fail')); - AppStorage.Set('enrollInfo', mResultCode.get(result)); - AppStorage.Set('blur', Constants.BLUR_END); - AppStorage.Set('showBtn', true); - AppStorage.Set('showBack', false); - AppStorage.Set('prgValue', $r('app.float.progress_value_start')); - } - }, - onAcquireInfo: (callbackModule, acquire, extraInfo) => { - AppStorage.Set('width', Constants.SHELTER_END_WIDTH); - AppStorage.Set('height', Constants.SHELTER_END_HEIGHT); - AppStorage.Set('showAperture', false); - AppStorage.Set('enrollTitle', $r('app.string.enrolling')); - AppStorage.Set('enrollInfo', mFaceTips.get(acquire)); - } - }) - this.endEnroll(); - } - - /** - * end enroll - */ - endEnroll() { - console.info("FaceEnroll model_3D endEnroll start"); - this.UserIDM.closeSession(); - console.info("FaceEnroll model_3D endEnroll userEnroll.closeSession()"); - AppStorage.Delete('faceSession'); - console.info("FaceEnroll model_3D endEnroll end"); - } - - /** - * cancel enroll - */ - cancelEnroll() { - console.info("FaceEnroll model_3D cancelEnroll start"); - let can = this.UserIDM.cancel(AppStorage.Get('faceSession')); - console.info("FaceEnroll model_3D cancelEnroll userEnroll.cancel() can" + can); - this.endEnroll(); - console.info("FaceEnroll model_3D cancelEnroll end"); - } - -} -let mFaceModel = new model_3D(); -export default mFaceModel as model_3D; \ No newline at end of file diff --git a/ui/faceenroll/product/phone/src/main/ets/default/pages/aperture.ets b/ui/faceenroll/product/phone/src/main/ets/default/pages/aperture.ets deleted file mode 100644 index 89dd881..0000000 --- a/ui/faceenroll/product/phone/src/main/ets/default/pages/aperture.ets +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Constants from '../common/constant.ets'; - -@Entry -@Component -export default -struct Aperture { - @StorageLink('showAperture1') showAperture1:boolean = true; - @StorageLink('showAperture2') showAperture2:boolean = false; - @StorageLink('showAperture3') showAperture3:boolean = false; - @StorageLink('showAperture4') showAperture4:boolean = false; - @StorageLink('showAperture5') showAperture5:boolean = false; - - build() { - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - if (this.showAperture1) { - Image($r('app.media.aperture1')) - .width(Constants.APERTURE1_WIDTH) - .height(Constants.APERTURE1_WIDTH) - .align(Alignment.Center) - } - if (this.showAperture2) { - Image($r('app.media.aperture2')) - .width(Constants.APERTURE2_WIDTH) - .height(Constants.APERTURE2_WIDTH) - .align(Alignment.Center) - } - if (this.showAperture3) { - Image($r('app.media.aperture3')) - .width(Constants.APERTURE34_WIDTH) - .height(Constants.APERTURE34_WIDTH) - .align(Alignment.Center) - } - if (this.showAperture4) { - Image($r('app.media.aperture4')) - .width(Constants.APERTURE34_WIDTH) - .height(Constants.APERTURE34_WIDTH) - .align(Alignment.Center) - } - if (this.showAperture5) { - Image($r('app.media.aperture5')) - .width(Constants.APERTURE5_WIDTH) - .height(Constants.APERTURE5_WIDTH) - .align(Alignment.Center) - } - }.position({x: $r('app.float.enroll_center_position_X'),y:Constants.ENROLL_CENTER_POSITION_Y}) - .width('100%') - .height(Constants.CENTER_HEIGHT) - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/phone/src/main/ets/default/pages/enroll_2D.ets b/ui/faceenroll/product/phone/src/main/ets/default/pages/enroll_2D.ets deleted file mode 100644 index ab2163f..0000000 --- a/ui/faceenroll/product/phone/src/main/ets/default/pages/enroll_2D.ets +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import router from '@system.router'; -import mFaceModel from "../model_2D.ets"; -import Constants from '../common/constant.ets'; -const SUBTYPE_FACE_2D = 20000; -const AUTHTYPE_FACE = 2; - -async function route_back() { - let options = { - uri: 'pages/entryView' - } - try { - await router.push(options); - } catch (err) { - console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`); - } -} - -@Entry -@Component -export default struct Enroll_2D { - @StorageLink('showAperture') showAperture: boolean = true; - @StorageLink('blur') blur: number = Constants.BLUR_START; - @StorageLink('width') width: any = Constants.SHELTER_START_WIDTH; - @StorageLink('height') height: any = Constants.SHELTER_START_HEIGHT; - @StorageLink('showPrg') showPrg: boolean = false; - @StorageLink('prgValue') prgValue: number = Constants.PROGRESS_START; - @StorageLink('enrollInfo') enrollInfo: any = ''; - @StorageLink('enrollTitle') enrollTitle: any = ''; - @StorageLink('showBtn') showBtn: boolean = false; - @StorageLink('showBack') showBack: boolean = true; - private credentialInfo; - - private aboutToAppear(): void { - setTimeout(()=> { - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView' - }); - }, 180000) - - this.credentialInfo = { - credType:AUTHTYPE_FACE, - credSubType:SUBTYPE_FACE_2D, - token:AppStorage.Get('token') - }; - mFaceModel.initFaceModel(this.credentialInfo); - } - - private onPageHide() { - mFaceModel.uninitFaceModel(); - } - private onBackPress(): void{ - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView', - }) - } - build() { - Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) { - Image($r('app.media.image')) - .width('100%') - .height(Constants.CENTER_HEIGHT) - .align(Alignment.Center) - .position({x: $r('app.float.enroll_center_position_X'),y:Constants.ENROLL_CENTER_POSITION_Y}) - Flex() - .width('100%') - .height(Constants.CENTER_HEIGHT) - .align(Alignment.Center) - .blur(this.blur) - .position({x:$r('app.float.enroll_center_position_X'),y: Constants.ENROLL_CENTER_POSITION_Y}) - .animation({ duration: Constants.SHELTER_ANIMATOR, curve: Curve.Linear }) - if (this.showAperture) { - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - Image($r('app.media.aperture1')) - .width(Constants.APERTURE1_WIDTH) - .height(Constants.APERTURE1_WIDTH) - .align(Alignment.Center) - } - .position({x:$r('app.float.enroll_center_position_X'),y:Constants.ENROLL_CENTER_POSITION_Y}) - .height(Constants.CENTER_HEIGHT) - .width('100%') - } - - Flex() - .width('100%') - .height(Constants.ENROLL_CENTER_POSITION_Y) - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - Image($r('app.media.shelter')) - .width(this.width) - .height(this.height) - .animation({ duration: Constants.SHELTER_ANIMATOR, curve: Curve.Linear }) - }.width('100%') - .height(Constants.CENTER_HEIGHT) - - if(this.showPrg) { - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - Progress({ value: Constants.PROGRESS_START, total: Constants.PROGRESS_TOTAL, style: ProgressStyle.Capsule }) - .value(this.prgValue) - .width(Constants.PROGRESS_WIDTH) - .color(Color.Red) - }.position({x:$r('app.float.enroll_center_position_X'),y:Constants.ENROLL_CENTER_POSITION_Y}) - .height(Constants.CENTER_HEIGHT) - .width('100%') - } - if(this.showBack) { - Flex() { - Image($r('app.media.back')) - .width(Constants.BACK_WIDTH) - .height(Constants.BACK_HEIGHT) - .onClick(() => { - mFaceModel.cancelEnroll(); - router.back(); - }) - }.position({ x: $r('app.float.enroll_center_position_X'), y: Constants.CENTER_POSITION_Y }) - } - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - Text(this.enrollTitle) - .fontSize(Constants.TITLE_FONT_SIZE) - .fontWeight(Constants.ENROll_TITLE) - }.position({x:$r('app.float.enroll_title_position_X'),y:Constants.TITLE_ENROLLING_MARGIN}) - Flex({justifyContent:FlexAlign.Center}) { - Text(this.enrollInfo) - .fontSize(Constants.ERROR_CODE_INFO_SIZE) - .textAlign(TextAlign.Center) - } - .position({ x:$r('app.float.enroll_info_X'), y: Constants.ENROLL_INFO_POSITION}) - .width(Constants.ENROLL_INFO_WIDTH) - if(this.showBtn){ - Flex({justifyContent:FlexAlign.Center}) { - Button({ type: ButtonType.Capsule, stateEffect: true }) { - Text($r('app.string.enroll_button_content')) - .fontSize(Constants.BUTTON_FONT_SIZE) - .fontColor($r('app.color.startView_color')) - } - .backgroundColor($r('app.color.newBtn_color')) - .width(Constants.BUTTON_WIDTH) - .height(Constants.BUTTON_HEIGHT) - .onClick(() => { - route_back(); - }) - }.position({ x:$r('app.float.enroll_center_position_X'), y: Constants.BUTTON_POSITION}) - } - } - .width('100%') - .height('100%') - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/phone/src/main/ets/default/pages/enroll_3D.ets b/ui/faceenroll/product/phone/src/main/ets/default/pages/enroll_3D.ets deleted file mode 100644 index cc9723a..0000000 --- a/ui/faceenroll/product/phone/src/main/ets/default/pages/enroll_3D.ets +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import router from '@system.router'; -import Aperture from './aperture.ets'; -import mFaceModel from '../model_3D.ets'; -import Constants from '../common/constant.ets'; -const SUBTYPE_FACE_2D = 20000; -const AUTHTYPE_FACE = 2; - -async function route_back() { - let options = { - uri: 'pages/entryView' - } - try { - await router.push(options); - } catch (err) { - console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`); - } -} - -@Entry -@Component -struct Enroll_3D { - @StorageLink('blur') blur: number = Constants.BLUR_START; - @StorageLink('width') width: any = Constants.SHELTER_START_WIDTH; - @StorageLink('height') height: any = Constants.SHELTER_START_HEIGHT; - @StorageLink('showPrg') showPrg: boolean = false; - @StorageLink('prgValue') prgValue: number = Constants.PROGRESS_START; - @StorageLink('enrollInfo') enrollInfo: any = $r('app.string.enroll_info'); - @StorageLink('enrollTitle') enrollTitle: any = $r('app.string.face_record'); - @StorageLink('showBtn') showBtn: boolean = false; - @StorageLink('showBack') showBack: boolean = true; - private credentialInfo; - - private aboutToAppear(): void { - setTimeout(()=> { - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView' - }); - }, 180000) - - this.credentialInfo = { - credType:AUTHTYPE_FACE, - credSubType:SUBTYPE_FACE_2D, - token:AppStorage.Get('token') - }; - mFaceModel.initFaceModel(this.credentialInfo); - } - - private onPageHide() { - mFaceModel.uninitFaceModel(); - } - - private onBackPress(): void{ - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView', - }) - } - - build() { - Flex({direction: FlexDirection.Column, alignItems: ItemAlign.Center}) { - Image($r('app.media.image')) - .width('100%') - .height(Constants.CENTER_HEIGHT) - .align(Alignment.Center) - .position({x: $r('app.float.enroll_center_position_X'),y:Constants.ENROLL_CENTER_POSITION_Y}) - - Flex() - .width('100%') - .height(Constants.CENTER_HEIGHT) - .align(Alignment.Center) - .blur(this.blur) - .position({x:$r('app.float.enroll_center_position_X'),y: Constants.ENROLL_CENTER_POSITION_Y}) - .animation({ duration: Constants.SHELTER_ANIMATOR, curve: Curve.Linear }) - - Flex() - .width('100%') - .height(Constants.ENROLL_CENTER_POSITION_Y) - - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - Image($r('app.media.shelter')) - .width(this.width) - .height(this.height) - .animation({ duration: Constants.SHELTER_ANIMATOR, curve: Curve.Linear }) - }.width('100%') - .height(Constants.CENTER_HEIGHT) - - if(this.showPrg) { - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - Progress({ value: Constants.PROGRESS_START, total: Constants.PROGRESS_TOTAL, style: ProgressStyle.Capsule }) - .value(this.prgValue) - .width(Constants.PROGRESS_WIDTH) - .color(0x317aff) - }.position({x:$r('app.float.enroll_center_position_X'),y: Constants.ENROLL_CENTER_POSITION_Y}) - .height(Constants.CENTER_HEIGHT) - .width('100%') - } - Aperture() - Flex({justifyContent:FlexAlign.Center}) { - Text(this.enrollInfo) - .fontSize(Constants.ERROR_CODE_INFO_SIZE) - .textAlign(TextAlign.Center) - } - .position({ x:$r('app.float.enroll_info_X'), y: Constants.ENROLL_INFO_POSITION}) - .width(Constants.ENROLL_INFO_WIDTH) - - if(this.showBack) { - Image($r('app.media.back')) - .width(Constants.BACK_WIDTH) - .height(Constants.BACK_HEIGHT) - .position({ x:$r('app.float.enroll_center_position_X'), y: Constants.CENTER_POSITION_Y }) - .onClick(() => { - mFaceModel.cancelEnroll(); - router.back(); - }) - } - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}) { - Text(this.enrollTitle) - .fontSize(Constants.TITLE_FONT_SIZE) - .fontWeight(Constants.ENROll_TITLE) - }.position({x:$r('app.float.enroll_title_position_X'),y:Constants.TITLE_ENROLLING_MARGIN}) - - if(this.showBtn){ - Flex({justifyContent:FlexAlign.Center}) { - Button({ type: ButtonType.Capsule, stateEffect: true }) { - Text($r('app.string.enroll_button_content')) - .fontSize(Constants.BUTTON_FONT_SIZE) - .fontColor($r('app.color.startView_color')) - } - .backgroundColor($r('app.color.newBtn_color')) - .width(Constants.BUTTON_WIDTH) - .height(Constants.BUTTON_HEIGHT) - .onClick(() => { - route_back(); - }) - }.position({ x:$r('app.float.enroll_center_position_X'), y: Constants.BUTTON_POSITION}) - } - } - .width('100%') - .height('100%') - } -} diff --git a/ui/faceenroll/product/phone/src/main/ets/default/pages/entryView.ets b/ui/faceenroll/product/phone/src/main/ets/default/pages/entryView.ets deleted file mode 100644 index eafddb7..0000000 --- a/ui/faceenroll/product/phone/src/main/ets/default/pages/entryView.ets +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import router from '@system.router'; -import UserAuthPresenter from '../../../../../../../common/src/main/ets/default/common/presenter/userAuthPresenter.ets' - -let mUserAuthPresenter: UserAuthPresenter; - -@Entry -@Component -struct entryView { - @State open_userAuth: boolean = false; - - private aboutToAppear(): void { - AppStorage.Delete('faceInfo'); - AppStorage.Delete('authLength'); - AppStorage.Delete('userMode'); - AppStorage.Delete('faceToken'); - mUserAuthPresenter = UserAuthPresenter.getInstance(); - } - - build() { - Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { - Button('人脸识别', { type: ButtonType.Normal, stateEffect: true }) - .onClick(() => { - mUserAuthPresenter.jumpToUserAuth(this.getTokenCallBack.bind(this)); - }) - } - } - -/** - * Get token callback. - */ - public getTokenCallBack() { - let faceToken = AppStorage.Get('faceToken'); - if (faceToken != undefined) { - this.jumpToUserAuth(); - } - } - -/** - * Jump to userAuth page. - */ - private jumpToUserAuth() { - router.push({ - uri: 'pages/userAuth', - }) - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/phone/src/main/ets/default/pages/index.ets b/ui/faceenroll/product/phone/src/main/ets/default/pages/index.ets deleted file mode 100644 index 7883a45..0000000 --- a/ui/faceenroll/product/phone/src/main/ets/default/pages/index.ets +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import StartViews_2D from "./startViews_2D.ets"; -import StartViews_3D from "./startViews_3D.ets"; -import Constants from "../common/constant.ets"; -import router from '@system.router'; - -@Entry -@Component -struct Index { - @StorageLink('show_startViews') show_startViews: string = Constants.SHOW_START_VIEWS_2D; - private onBackPress(): void{ - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView', - }) - } - build() { - - Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) { - if (this.show_startViews == Constants.SHOW_START_VIEWS_3D) { - StartViews_3D() - } - else if(this.show_startViews == Constants.SHOW_START_VIEWS_2D) - { - StartViews_2D() - } - } - .width('100%') - .height('100%') - } -} diff --git a/ui/faceenroll/product/phone/src/main/ets/default/pages/startViews_2D.ets b/ui/faceenroll/product/phone/src/main/ets/default/pages/startViews_2D.ets deleted file mode 100644 index 559f399..0000000 --- a/ui/faceenroll/product/phone/src/main/ets/default/pages/startViews_2D.ets +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import router from '@system.router'; -import Constants from '../common/constant.ets'; -import mFaceModel from "../model_2D.ets"; - -async function routeDeclare() { - let options = { - uri: 'pages/declare' - } - try { - await router.push(options); - } catch (err) { - console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`); - } -} -async function routeEnroll_2D() { - let options = { - uri: 'pages/enroll_2D' - } - try { - await router.push(options); - } catch (err) { - console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`); - } -} - -@Entry -@Component -export default -struct StartViews_2D { - @StorageLink('checkbox_color') checkbox_color : any = $r('app.color.startView_color'); - private pageHideFlag: number = 0; - - public openSessionCallBack() { - routeEnroll_2D(); - } - - private onPageHide(): void { - if (this.pageHideFlag == 0) { - router.push({ - uri: 'pages/entryView' - }) - } - } - private onBackPress(): void{ - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView', - }) - } - build() { - Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) { - - Flex() { - Image($r('app.media.back')) - .width(Constants.BACK_WIDTH) - .height(Constants.BACK_HEIGHT) - .onClick(()=>{ - }) - }.margin({ top: $r('app.float.back_margin') }) - .width('100%') - - - Text($r('app.string.face_checker')) - .fontSize(Constants.TITLE_FONT_SIZE) - .fontWeight(FontWeight.Bold) - .margin({ top: Constants.TITLE_MARGIN }) - - Image($r('app.media.startImage_2D')) - .width('100%') - .height(Constants.IMAGE_2D_HEIGHT) - .margin({ top: Constants.IMAGE_MARGIN}) - - Column() { - Text($r('app.string.enroll_face_guide_title')) - .fontSize(Constants.SMALL_TITLE_FONT_SIZE) - .fontWeight(Constants.FONT_WEIGHT) - .textAlign(TextAlign.Center) - - Text($r('app.string.face_guide_2d_way')) - .fontSize(Constants.FONT_SIZE) - .fontColor($r('app.color.font_color')) - .textAlign(TextAlign.Center) - .margin({ top: Constants.CONTENT1_MARGIN }) - - Text() { - Span($r('app.string.face_guide_2d_announce')) - .fontColor($r('app.color.font_color')) - .textCase(TextCase.UpperCase) - .fontSize(Constants.FONT_SIZE) - Span($r('app.string.face_guide_2d_announce_link')) - .textCase(TextCase.UpperCase) - .fontSize(Constants.FONT_SIZE) - .fontColor($r('app.color.startView_color')) - }.margin({ top: Constants.CONTENT2_MARGIN }) - .textAlign(TextAlign.Center) - .onClick(() => { - routeDeclare(); - }) - - }.width(Constants.ENROLL_INFO_WIDTH) - .margin({ top: Constants.IMAGE_MARGIN }) - - Flex() { - Toggle({ type: ToggleType.Checkbox, isOn: true }) - .size({ width: Constants.CHECKBOX_SIZE, height: Constants.CHECKBOX_SIZE }) - .selectedColor(this.checkbox_color) - .onChange((isOn: boolean) => {console.info('Component status:' + isOn) - }) - }.position({x:Constants.CHECKBOX_POSITION_X,y:Constants.CHECKBOX_POSITION_Y}) - - Text($r('app.string.face_2dguide_light_notify_universal')) - .fontSize(Constants.FONT_SIZE) - .fontColor(Color.Black) - .position({x:Constants.CHECKBOX_TEXT_POSITION_X,y:Constants.CHECKBOX_TEXT_POSITION_Y}) - - Flex({justifyContent:FlexAlign.Center}) { - Button({ type: ButtonType.Capsule, stateEffect: true }) { - Text($r('app.string.face_record')).fontSize(Constants.BUTTON_FONT_SIZE).fontColor(0xffffff) - } - .backgroundColor($r('app.color.startView_color')).width(Constants.BUTTON_WIDTH).height(Constants.BUTTON_HEIGHT) - .onClick(() => { - this.pageHideFlag = 1; - mFaceModel.openSession(this.openSessionCallBack.bind(this)); - }) - }.position({ x:$r('app.float.enroll_center_position_X'), y: Constants.BUTTON_POSITION}) - } - .width('100%') - .height('100%') - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/phone/src/main/ets/default/pages/startViews_3D.ets b/ui/faceenroll/product/phone/src/main/ets/default/pages/startViews_3D.ets deleted file mode 100644 index 8283bf8..0000000 --- a/ui/faceenroll/product/phone/src/main/ets/default/pages/startViews_3D.ets +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import router from '@system.router'; -import Constants from '../common/constant.ets'; -import mFaceModel from "../model_3D.ets"; - -async function routeEnroll_3D() { - let options = { - uri: 'pages/enroll_3D' - } - try { - await router.push(options); - } catch (err) { - console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`); - } -} -async function routeDeclare() { - let options = { - uri: 'pages/declare' - } - try { - await router.push(options); - } catch (err) { - console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`); - } -} - -@Entry -@Component -export default -struct StartViews_3D { - private pageHideFlag: number = 0; - @StorageLink('checkbox_color') checkbox_color : any = $r('app.color.startView_color'); - - public openSessionCallBack() { - routeEnroll_3D(); - } - - private onPageHide(): void { - if (this.pageHideFlag == 0) { - router.push({ - uri: 'pages/entryView' - }) - } - } - private onBackPress(): void{ - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView', - }) - } - build() { - Flex({ direction: FlexDirection.Column,alignItems: ItemAlign.Center}) { - - Flex() { - Image($r('app.media.back')) - .width(Constants.BACK_WIDTH) - .height(Constants.BACK_HEIGHT) - .onClick(()=>{ - }) - }.margin({ top: $r('app.float.back_margin') }) - .width('100%') - - Text($r('app.string.face_checker')) - .fontSize(Constants.TITLE_FONT_SIZE) - .fontWeight(FontWeight.Bold) - .margin({ top: Constants.TITLE_MARGIN }) - - Stack(){ - Image($r('app.media.startImage1_3D')) - .width(Constants.IMAGE_3D_WIDTH) - .height(Constants.IMAGE_3D_WIDTH) - - Image($r('app.media.startImage2_3D')) - .width(Constants.IMAGE_3D_WIDTH) - .height(Constants.IMAGE_3D_WIDTH) - - }.margin({top:Constants.IMAGE_3D_MARGIN}) - .width('100%') - .height(Constants.IMAGE_3D_WIDTH) - - Column() { - Text($r('app.string.enroll_face_guide_title')) - .fontSize(Constants.SMALL_TITLE_FONT_SIZE) - .fontWeight(Constants.FONT_WEIGHT) - .textAlign(TextAlign.Center) - - Text($r('app.string.face_guide_3d_way')) - .fontSize(Constants.FONT_SIZE) - .fontColor($r('app.color.font_color')) - .textAlign(TextAlign.Center) - .margin({ top: Constants.CONTENT1_MARGIN }) - - Text() { - Span($r('app.string.face_guide_3d_announce')) - .fontColor($r('app.color.font_color')) - .textCase(TextCase.UpperCase) - .fontSize(Constants.FONT_SIZE) - Span($r('app.string.face_guide_3d_announce_link')) - .textCase(TextCase.UpperCase) - .fontSize(Constants.FONT_SIZE) - .fontColor($r('app.color.startView_color')) - } - .margin({ top: Constants.CONTENT2_MARGIN }) - .textAlign(TextAlign.Center) - .onClick(() => { - routeDeclare(); - }) - }.width(Constants.ENROLL_INFO_WIDTH) - .margin({ top: Constants.IMAGE_MARGIN }) - - Flex() { - Toggle({ type: ToggleType.Checkbox, isOn: true }) - .size({ width: Constants.CHECKBOX_SIZE, height: Constants.CHECKBOX_SIZE }) - .selectedColor(this.checkbox_color) - .onChange((isOn: boolean) => { - console.info('Component status:' + isOn) - }) - }.position({x:Constants.CHECKBOX_POSITION_X,y:Constants.CHECKBOX_POSITION_Y}) - - Text($r('app.string.face_2dguide_light_notify_universal')) - .fontSize(Constants.FONT_SIZE) - .fontColor(Color.Black) - .position({x:Constants.CHECKBOX_TEXT_POSITION_X,y:Constants.CHECKBOX_TEXT_POSITION_Y}) - - Flex({justifyContent:FlexAlign.Center}) { - Button({ type: ButtonType.Capsule, stateEffect: true }) { - Text($r('app.string.face_recognitin_guide')).fontSize(Constants.BUTTON_FONT_SIZE).fontColor(0xffffff) - } - .backgroundColor($r('app.color.startView_color')) .width(Constants.BUTTON_WIDTH).height(Constants.BUTTON_HEIGHT) - .onClick(() => { - this.pageHideFlag = 1; - mFaceModel.openSession(this.openSessionCallBack.bind(this)); - }) - }.position({ x:$r('app.float.enroll_center_position_X'), y: Constants.BUTTON_POSITION}) - } - .width('100%') - .height('100%') - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/phone/src/main/ets/default/pages/success.ets b/ui/faceenroll/product/phone/src/main/ets/default/pages/success.ets deleted file mode 100644 index aa73854..0000000 --- a/ui/faceenroll/product/phone/src/main/ets/default/pages/success.ets +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import router from '@system.router'; -import Constants from '../common/constant.ets'; - -async function routeCase() { - let options = { - uri: 'pages/entryView' - } - try { - await router.push(options); - } catch (err) { - console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`); - } -} - -@Entry -@Component -struct Success { - - onPageShow(){ - setTimeout(()=>{ - router.push({ - uri: 'pages/userAuth' - }) - },Constants.TIMEOUT_2000) - } - private onBackPress(): void{ - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView', - }) - } - build() { - Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) { - Flex() { - Image($r('app.media.back')) - .width(Constants.BACK_WIDTH) - .height(Constants.BACK_HEIGHT) - }.margin({ top: $r('app.float.back_margin') }) - .onClick(()=>{ - routeCase() - }) - - Text($r('app.string.face_record_success')) - .fontSize(Constants.TITLE_FONT_SIZE) - .fontWeight(FontWeight.Bold) - .margin({ top: Constants.TITLE_MARGIN}) - - Flex({ alignItems: ItemAlign.Center , justifyContent:FlexAlign.Center}){ - Image($r('app.media.success')) - .width(Constants.SUCCESS_WIDTH) - .height(Constants.SUCCESS_WIDTH) - }.width('100%') - .height(Constants.SUCCESS_WIDTH) - .margin({ top: $r('app.float.success_margin') }) - } - .width('100%') - .height('100%') - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/phone/src/main/ets/default/pages/userAuth.ets b/ui/faceenroll/product/phone/src/main/ets/default/pages/userAuth.ets deleted file mode 100644 index b27e276..0000000 --- a/ui/faceenroll/product/phone/src/main/ets/default/pages/userAuth.ets +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import router from '@system.router'; -import userAuthModel from '../../../../../../../common/src/main/ets/default/common/model/userAuthModel.ets'; - -@Entry -@Component -struct userAuth { - @State authLength: number = 0; - @State userMode: string = ''; - private mUserAuthModel: userAuthModel; - private faceInfo ; - @State faceToken: string = ''; - @State getAllCallback: boolean = false; - - private aboutToAppear(): void { - this.mUserAuthModel = userAuthModel.getInstance(); - this.faceToken = AppStorage.Get('faceToken'); - if (this.mUserAuthModel != undefined) { - this.mUserAuthModel.getUserAuthInfo(this.getAuthInfoCallback.bind(this),this.getUserMode.bind(this)); - } - } - -/** - * Get phone mode(2D or 3D). - */ - public getUserMode() { - this.mUserAuthModel.getUserMode(this.getUserModeCallback.bind(this)); - } - - onPageShow() { - if (this.faceToken == '' || this.faceToken == undefined) { - router.push({ - uri: 'pages/entryView', - }) - } - } - -/** - * Get authInfo callback. - * @param {object} authInfo - Callback data. - * @param {function} getUserMode - Do this function after callback. - */ - public getAuthInfoCallback(authInfo,getUserMode) { - this.faceInfo = authInfo; - this.authLength = authInfo.length; - AppStorage.SetOrCreate('authLength',this.authLength); - AppStorage.SetOrCreate('faceInfo',this.faceInfo); - AppStorage.SetOrCreate('facePageFlag',0); - getUserMode(); - } - -/** - * Get phone mode(2D or 3D) callback. - * @param {string} userMode - Phone mode(2D or 3D). - */ - public getUserModeCallback(userMode) { - this.userMode = userMode; - AppStorage.SetOrCreate('userMode',this.userMode); - this.getAllCallback = true; - - } - - build() { - Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { - if (this.getAllCallback) { - getRouter({ - authLength: this.authLength - }) - - } - } - } -} - -@Component -struct getRouter{ - @Prop authLength: number; - public aboutToAppear() { - if (this.authLength == 0) { - router.push({ - uri: 'pages/index', - }) - }else if(this.authLength > 0) { - router.push({ - uri: 'pages/userSettings', - }) - } - } - - build() { - Column() {} - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/phone/src/main/ets/default/pages/userSettings.ets b/ui/faceenroll/product/phone/src/main/ets/default/pages/userSettings.ets deleted file mode 100644 index 5ec6ab3..0000000 --- a/ui/faceenroll/product/phone/src/main/ets/default/pages/userSettings.ets +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import faceSettings from '../../../../../../../feature/faceSettings/src/main/ets/default/pages/faceSettings.ets'; -import TrustedDevices from '../../../../../../../feature/trustedDevice/src/main/ets/default/pages/index.ets'; -import router from '@system.router'; - -@Entry -@Component -struct userSettings { - @State authLength: number = 1; - @State userMode: string = ''; - @StorageLink('facePageFlag') facePageFlag: number = 0; - private faceInfo; - private faceToken; - - private aboutToAppear(): void { - this.faceInfo = AppStorage.Get('faceInfo'); - this.authLength = AppStorage.Get('authLength'); - this.userMode = AppStorage.Get('userMode'); - } - - private onPageHide(): void { - router.push({ - uri: 'pages/entryView' - }) - } - private onBackPress(): void{ - AppStorage.Delete('faceToken'); - router.push({ - uri: 'pages/entryView', - }) - } - onPageShow() { - - } - - build() { - Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { - if(this.authLength != 0) { - if (this.facePageFlag == 0) { - faceSettings({ - faceLength: this.authLength, - userMode: this.userMode - }); - }else if(this.facePageFlag == 1) { - TrustedDevices(); - } - } - } - } -} \ No newline at end of file diff --git a/ui/faceenroll/product/phone/src/main/resources/base/element/string.json b/ui/faceenroll/product/phone/src/main/resources/base/element/string.json deleted file mode 100644 index 9958a87..0000000 --- a/ui/faceenroll/product/phone/src/main/resources/base/element/string.json +++ /dev/null @@ -1,807 +0,0 @@ -{ - "string": [ - { - "name": "app_name", - "value": "faceEnroll" - }, - { - "name": "mainability_description", - "value": "JS_Phone_Empty Feature Ability" - }, - { - "name": "enrolling", - "value": "正在录入" - }, - { - "name": "enrolling_fail", - "value": "录入失败" - }, - { - "name": "enrolling_timeout", - "value": "录入超时" - }, - - { - "name": "declare", - "value": "声明" - }, - { - "name": "declare_content", - "value": " 如果您选择添加人脸数据,在亮屏状态,您将可以通过正面注视手机屏幕瞬间解锁。人脸数据储存在您的设备,而且不会通过云服务或者其他工具备份他处。" - }, - { - "name": "open_clock", - "value": "打开”拿起手机亮屏“,提升解锁体验" - }, - { - "name": "face_enroll", - "value": "人脸识别" - }, - { - "name": "enroll_success", - "value": "录入成功" - }, - { - "name": "start_title", - "value": "如何录入面部数据" - }, - { - "name": "start_2D_content1", - "value": "首先,确保摄像头清洁、面部无遮挡,录入环境光线充足、无阳光直射。然后,正对屏幕,将面部完整移入识别区。" - }, - { - "name": "start_2D_content2", - "value": "人脸识别可用于解锁屏幕及访问应用锁。点击“开始录入”即表示您同意" - }, - { - "name": "start_2D_content3", - "value": "关于人脸识别的声明。" - }, - { - "name": "start_3D_content1", - "value": "首先,请确保您的面部全部显示在识别区内。然后注视屏幕并缓缓转动头部以完成全方位采集。" - }, - { - "name": "start_3D_content2", - "value": "人脸识别可用于解锁屏幕,访问应用锁、保密柜及支付。点击“开始录入”即表示您同意" - }, - { - "name": "start_3D_content3", - "value": "关于3D人脸识别的声明。" - }, - { - "name": "button_content", - "value": "开始录入" - }, - { - "name": "enroll_info_fail", - "value": "请确保摄像头清洁,面部无遮挡,在光线充足、无阳光直射的环境里录入。" - }, - { - "name": "enroll_info", - "value": "请保持不动" - }, - { - "name": "enroll_info_cancel", - "value": "被取消" - }, - { - "name": "enroll_info_algorithm_not_init", - "value": "算法未初始化" - }, - { - "name": "enroll_info_hal_invalid", - "value": "人脸识别demon不可用" - }, - { - "name": "enroll_info_over_max_faces", - "value": "录入超过最大上限" - }, - { - "name": "enroll_info_invalid_parameters", - "value": "入参无效" - }, - { - "name": "enroll_info_busy", - "value": "人脸流程正在进行中,请求busy" - }, - { - "name": "enroll_info_has_registered", - "value": "当前人脸已经录入过" - }, - { - "name": "enroll_info_bad_quality", - "value": "图像质量太差" - }, - { - "name": "enroll_info_not_found", - "value": "没检测到人脸" - }, - { - "name": "enroll_info_scale_too_small", - "value": "人脸太小" - }, - { - "name": "enroll_info_scale_too_large", - "value": "人脸太大" - }, - { - "name": "enroll_info_offset_left", - "value": "人脸太靠左" - }, - { - "name": "enroll_info_offset_top", - "value": "人脸太靠上" - }, - { - "name": "enroll_info_offset_right", - "value": "人脸太靠右" - }, - { - "name": "enroll_info_offset_bottom", - "value": "人脸太靠下" - }, - { - "name": "enroll_info_liveness_warning", - "value": "活体检测有风险" - }, - { - "name": "enroll_info_liveness_failure", - "value": "活体检测失败" - }, - { - "name": "enroll_info_rotated_left", - "value": "头向左转的角度太大" - }, - { - "name": "enroll_info_rise", - "value": "头抬的角度太高" - }, - { - "name": "enroll_info_rotated_right", - "value": "头向右转的角度太大" - }, - { - "name": "enroll_info_down", - "value": "头抬的角度太低" - }, - { - "name": "enroll_info_eye_occlusion", - "value": "眼睛不清晰" - }, - { - "name": "enroll_info_eye_close", - "value": "闭眼" - }, - { - "name": "enroll_info_mouth_occlusion", - "value": "嘴巴不清晰" - }, - { - "name": "enroll_info_mutlify", - "value": "出现多张脸" - }, - { - "name": "enroll_info_blur", - "value": "脸不清晰" - }, - { - "name": "enroll_info_not_complete", - "value": "脸不完整" - }, - { - "name": "enroll_info_darklight", - "value": "光线太暗" - }, - { - "name": "enroll_info_highlight", - "value": "光线太强" - }, - { - "name": "enroll_info_half_shadow", - "value": "阴阳脸" - }, - { - "name": "enroll_info_darkpic", - "value": "图片太暗" - }, - { - "name": "enroll_info_rotate_top_right", - "value": "人脸头顶朝右" - }, - { - "name": "enroll_info_rotate_top_left", - "value": "人脸头顶朝左" - }, - { - "name": "enroll_info_rotate_bottom_right", - "value": "人脸下巴朝右" - }, - { - "name": "enroll_info_rotate_bottom_left", - "value": "人脸下巴朝左" - }, - { - "name": "enroll_info_open_camera_failed", - "value": "打开Camera失败" - }, - { - "name": "enroll_info_face_has_registered", - "value": "转动头部" - }, - { - "name": "enroll_button_content", - "value": "重新录入" - }, - { - "name": "description_product", - "value": "ETS_Empty Ability" - }, - { - "name": "entry_product", - "value": "entry_product" - }, - { - "name": "deleteTitle", - "value": "delete" - } - ,{ - "name": "face_introdution_title", - "value": "解锁时需连接可信设备" - }, - { - "name": "face_introdution_tip", - "value": "进行人脸识别解锁手机时,需连接可信设备以进一步提升安全性。" - }, - { - "name": "trusted_devices_title", - "value": "可信设备" - }, - { - "name": "face_introdution_button", - "value": "添加可信设备" - }, - { - "name": "connect_tip", - "value": "已连接" - }, - { - "name": "disconnect_tip", - "value": "未连接" - }, - { - "name": "cancel_button", - "value": "取消" - }, - { - "name": "remove_device_button", - "value": "移除" - }, - { - "name": "add_device_button", - "value": "添加" - }, - { - "name": "remove_device_tip", - "value": "移除后,人脸识别解锁本机时将不再需要连接可信设备。是否移除?" - }, - { - "name": "remove_device_title", - "value": "移除可信设备" - }, - { - "name": "add_device_or_not_tip", - "value": "是否添加" - }, - { - "name": "using_tips", - "value": "使用提示" - }, - { - "name": "add_device_tip", - "value": "添加后,当可信设备与本机断开连接时,将无法使用人脸识别解锁。您可以使用其他方式解锁。" - } - - - , - { - "name": "face_guide_2d_announce_link", - "value": "关于人脸识别的声明" - }, - { - "name": "face_feature_desc", - "value": "功能介绍" - }, - { - "name": "face_recognize_annouce_message_01", - "value": "人脸识别是一种基于人的脸部特征信息进行身份识别的生物识别技术。它通过手机前置摄像头捕捉人脸面部数据,进而快速完成面部特征比对和身份认证。可用于解锁屏幕、访问应用锁等场景。" - }, - { - "name": "face_recognize_annouce_message_02", - "value": "录入面部数据时,需注意以下事项:" - }, - { - "name": "face_recognize_annouce_message_03", - "value": "1.确保摄像头清洁;" - }, - { - "name": "face_recognize_annouce_message_04", - "value": "2.在光线充足的环境下录入,但需避免强光直射;" - }, - { - "name": "face_recognize_annouce_message_05", - "value": "3.勿用衣帽、头发、墨镜、口罩、浓妆等遮挡面部;" - }, - { - "name": "face_recognize_annouce_message_06", - "value": "4.确保面部正面完整清晰地出现在提示框内,不要闭眼、大幅度仰头或低头" - }, - { - "name": "face_recognize_annouce_message_07", - "value": "5.避免其他人出现在录入画面中。" - }, - { - "name": "face_recognize_annouce_message_08", - "value": "任何技术都存在一定局限和风险,使用人脸识别时,需注意以下事项:" - }, - { - "name": "face_recognize_annouce_message_09", - "value": "1.在暗光、强光、逆光或角度过大等场景下,人脸识别的成功率会有所降低;" - }, - { - "name": "face_annouce_tip1_item2_3d", - "value": "2.人脸识别的安全性低于图案密码、数字密码、混合密码。;" - }, - { - "name": "face_recognize_annouce_message_10", - "value": "您的设备可能会被容貌、外形与您相近的人或物品解锁;" - }, - { - "name": "face_recognize_annouce_message_11", - "value": "请勿将设备随意交给他人使用,避免人脸识别功能被恶意利用;" - }, - { - "name": "face_recognize_annouce_message_12", - "value": "除以上事项外,您还需注意其他可能影响人脸识别功能正常使用的情况。" - }, - { - "name": "face_recognize_annouce_message_13", - "value": "隐私声明" - }, - { - "name": "face_recognize_annouce_message_14_1", - "value": "您的" - }, - { - "name": "face_recognize_annouce_message_14_2", - "value": "将受到严格保护。该数据仅加密保存于本设备的安全隔离区域,华为不会进行备份,其他应用也无法访问或备份。例如,您使用人脸识别进行应用内认证时,应用仅能收到认证是否成功的通知,而无法访问、备份或录入" - }, - { - "name": "face_recognize_annouce_message_14_3", - "value": "面部数据。" - }, - { - "name": "face_recognize_annouce_message_15_1", - "value": "您拥有人脸识别的自主控制权,可灵活控制人脸识别的使用及适用范围。例如,您不想使用人脸识别访问应用锁,在“设置”中将其关闭即可,此时人脸识别仍可用于其他操作,但不可用于进入应用锁。您还可彻底删除" - }, - { - "name": "face_recognize_annouce_message_15_2", - "value": "删除后本设备将不再保存这些数据。" - }, - { - "name": "face_recognize_annouce_message_15_3", - "value": "" - }, - { - "name": "face_recognize_annouce_message_15_4", - "value": "" - }, - { - "name": "face_guide_3d_announce_link", - "value": "关于3D人脸识别的声明" - }, - { - "name": "face_3drecognize_annouce_message_01", - "value": "3D人脸识别是新一代人脸识别技术。它通过深度感应技术,捕捉更丰富的面部数据,实现三维立体防伪识别。在暗光、逆光、无光等环境下,也可用于解锁屏幕,访问应用锁、保密柜及支付,其安全性、准确率和环境适应性较传统人脸识别技术大幅提升。" - } - - - - , - { - "name": "face_recognition", - "value": "人脸识别" - }, - { - "name": "face_recognition_is_used", - "value": "人脸识别用于" - }, - { - "name": "unlock_screen", - "value": "解锁屏幕" - }, - { - "name": "slide_to_unlock", - "value": "滑动解锁" - }, - { - "name": "smart_display_lock_screen_notification", - "value": "智能显示锁屏通知" - }, - { - "name": "access_safe", - "value": "访问保密柜" - }, - { - "name": "access_app_lock", - "value": "访问应用锁" - }, - { - "name": "automatically_fill_in_account", - "value": "自动填充账号和密码" - }, - { - "name": "use_password_safe_to_save_account", - "value": "使用密码保险箱保存账号和密码" - }, - { - "name": "delete_face_data", - "value": "删除面部数据" - }, - { - "name": "set_backup_face", - "value": "设置备用面容" - }, - { - "name": "recognize_another_face", - "value": "除继续学习您的长相外,还可识别另一种面容" - }, - { - "name": "main_and_backup_faces", - "value": "已设置主用及备用面容" - }, - { - "name": "trusted_device_be_connected_when_unlocking", - "value": "解锁时需连接可信设备" - }, - { - "name": "closed", - "value": "已关闭" - }, - { - "name": "look_at_screen_during_face_recognition", - "value": "人脸识别时需注视屏幕" - }, - { - "name": "fill_light", - "value": "暗光环境下屏幕补光" - }, - { - "name": "auxiliary_mode", - "value": "辅助模式" - }, - { - "name": "recognize_without_opening_eyes", - "value": "开启屏幕朗读后无需睁眼即可识别" - }, - { - "name": "be_based_on_facial_feature_information", - "value": "人脸识别可基于您的面部特征信息进行身份识别,了解" - }, - { - "name": "statement_on_face_recognition", - "value": "关于人脸识别的声明。" - }, - { - "name": "statement3D_on_face_recognition", - "value": "关于3D人脸识别的声明。" - }, - { - "name": "looking_for_other_settings", - "value": "是否在寻找其设置项?" - }, - { - "name": "pick_up_phone_turn_on_screen", - "value": "拿起手机亮屏" - }, - { - "name": "annotation_screen_keeps_on", - "value": "注视屏幕不息屏" - }, - { - "name": "unlock_directly", - "value": "直接解锁" - }, - { - "name": "unlock_directly_after_successful_face_recognition", - "value": "人脸识别成功后直接解锁" - }, - { - "name": "Slide_to_unlock_after_successful_face_recognition", - "value": "人脸识别成功后滑动屏幕解锁" - }, - { - "name": "close", - "value": "关闭" - }, - { - "name": "cancel", - "value": "取消" - }, - { - "name": "enable", - "value": "启用" - }, - { - "name": "activate_safe", - "value": "启动保密柜" - }, - { - "name": "whether_to_enable_safe", - "value": "需开启应用文件管理保密柜完成人脸关联。是否启用?" - }, - - { - "name": "activate_app_lock", - "value": "启动应用锁" - }, - { - "name": "Whether_to_activate_app_lock", - "value": "需开启应用锁功能才能完成人脸关联。是否立即启动应用锁?" - }, - { - "name": "delete_all_face_data", - "value": "删除主用及备用面容" - }, - { - "name": "delete", - "value": "删除" - }, - { - "name": "wether_delete_face_data", - "value": "删除后,基于面部数据的功能将不可用。是否删除?" - }, - { - "name": "pick_up_phone", - "value": "同时关闭拿起手机亮屏" - }, - { - "name": "face_checker", - "value": "人脸识别" - }, - - { - "name": "face_unlock_method", - "value": "解锁屏幕" - }, - { - "name": "face_recognize_slideunlock_title", - "value": "滑动解锁" - }, - { - "name": "title_apps_security_pref", - "value": "访问应用锁" - }, - { - "name": "title_fill_light", - "value": "暗光环境下屏幕补光" - }, - { - "name": "recommend_preference_title", - "value": "是否在寻找其他设置项?" - }, - { - "name": "face_config_light_01_universal", - "value": "拿起手机亮屏" - }, - { - "name": "multiface_list_title", - "value": "面部列表" - }, - { - "name": "multiface_default_face_name_1", - "value": "面部 1" - }, - { - "name": "multiface_default_face_name", - "value": "面部" - }, - { - "name": "multiface_enroll_new_face", - "value": "新建面部数据" - }, - { - "name": "multiface_face_name_title", - "value": "面部名称" - }, - { - "name": "delete_face", - "value": "删除面容" - }, - { - "name": "multiface_save", - "value": "保存" - }, - { - "name": "face_unlock_method_close", - "value": "关闭" - }, - { - "name": "face_recognize_unlock_title", - "value": "直接解锁" - }, - { - "name": "face_3dguide_info_2", - "value": "人脸识别可基于您的面部特征信息进行身份识别,了解" - }, - - { - "name": "face_inform_open_applock_msg", - "value": "需开启应用锁功能才能完成人脸关联。是否立即启用应用锁?" - }, - { - "name": "face_record_cancel", - "value": "取消" - }, - - { - "name": "face_recognize_unlock_summary_3d", - "value": "人脸识别成功后直接解锁" - }, - { - "name": "face_recognize_slideunlock_summary_3d", - "value": "人脸识别成功后滑动屏幕解锁" - }, - - - { - "name": "secure_notification_new", - "value": "智能显示锁屏通知" - }, - - { - "name": "face_fingerprint_settings_switch_title", - "value": "自动填充账号和密码" - }, - { - "name": "face_fingerprint_settings_switch_summary", - "value": "使用密码保险箱保存的帐号和密码" - }, - { - "name": "delete_record_title", - "value": "删除面部数据" - }, - { - "name": "enroll_backup_face_title", - "value": "设置备用面容" - }, - { - "name": "enroll_backup_face_summary", - "value": "除继续学习您的长相外,还可识别另一种面容" - }, - { - "name": "title_face_stare_aux", - "value": "人脸识别时需注视屏幕" - }, - { - "name": "face_inform_open_strongbox_msg", - "value": "需要启用文件管理保密柜完成人脸关联。是否启用?" - }, - { - "name": "face_record_delete", - "value": "删除" - }, - { - "name": "face_recognize_lighton_close_universal", - "value": "同时关闭拿起手机亮屏" - }, - { - "name": "title_strong_box_pref", - "value": "访问保密柜" - }, - { - "name": "face_enterance_off", - "value": "已关闭" - }, - { - "name": "open_bluetooth", - "value": "使用此功能需先开启蓝牙,点击设置" - }, - { - "name": "no_available_devices_title", - "value": "没有可添加的设备" - }, - { - "name": "no_available_devices_tip", - "value": "没有检测到可添加的配对设备。是否前往蓝牙设置配对?" - }, - { - "name": "pair_button", - "value": "去配对" - }, - { - "name": "face_record", - "value": "正在录入" - }, - { - "name": "face_record_3d_record_fail", - "value": "录入失败" - }, - { - "name": "enroll_face_guide_title", - "value": "如何录入面部数据" - }, - { - "name": "face_guide_2d_way", - "value": "首先,确保摄像头清洁、面部无遮挡,录入环境光线充足、无阳光直射。然后,正对屏幕,将面部完整移入识别区。" - }, - { - "name": "face_guide_2d_announce", - "value": "人脸识别可用于解锁屏幕及访问应用锁。点击“开始录入”即表示您同意" - }, - { - "name": "face_2dguide_light_notify_universal", - "value": "打开”拿起手机亮屏“,提升解锁体验" - }, - { - "name": "face_guide_3d_way", - "value": "首先,请确保您的面部全部显示在识别区内。然后注视屏幕并缓缓转动头部以完成全方位采集。" - }, - { - "name": "face_guide_3d_announce", - "value": "人脸识别可用于解锁屏幕,访问应用锁、保密柜及支付。点击“开始录入”即表示您同意" - }, - { - "name": "face_recognitin_guide", - "value": "开始录入" - }, - { - "name": "face_record_success", - "value": "录入成功" - }, - { - "name": "face_record_3d_tip_close", - "value": "人脸太小" - }, - { - "name": "face_record_3d_tip_far", - "value": "人脸太大" - }, - { - "name": "face_enroll_too_left", - "value": "人脸太靠左" - }, - { - "name": "face_enroll_too_high", - "value": "人脸太靠上" - }, - { - "name": "face_enroll_too_right", - "value": "人脸太靠右" - }, - { - "name": "face_enroll_too_low", - "value": "人脸太靠下" - }, - { - "name": "face_record_3d_tip_multi", - "value": "出现多张脸" - }, - { - "name": "face_rotate_too_left", - "value": "头向左转的角度太大" - }, - { - "name": "face_rotate_too_high", - "value": "头抬的角度太高" - }, - { - "name": "face_rotate_too_right", - "value": "头向右转的角度太大" - }, - { - "name": "face_rotate_too_low", - "value": "头抬的角度太低" - } - ] -} \ No newline at end of file diff --git a/ui/faceenroll/product/phone/src/main/resources/base/media/aperture1.png b/ui/faceenroll/product/phone/src/main/resources/base/media/aperture1.png deleted file mode 100644 index 697d7cc06b4d07480e4be454deae5f01033a6af8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2585 zcmdT``&ShA6-NXka1@noYfKIzx^b-mXWzR%j?C=r>f_+EHGztVnn*NJQ>!Nm)(16eELf9 z8j}OL=}45xMVTCq)bF%M!*l?sz)sN)59x6_#(W%z!!Ba8iy)2x5;3_jj|Ubuub2Zt z*0FfPe0>7ilB4M>Tt$Ac5n_3lPd)kc6bO^n4mz2=VcL95CE2xD8L7$QeWp1RxxL41xfAor69TWjSB-4QLRt)M9l z7SccpD@P1CV;;TPCbOzyxGd$f@ihh$I5r}q%OIL=xKA%#{1!~%`iXSVRmF4P~2 zdhMDD!a*ek5N;L(ZE{TNp^`?j+#Vy0K8`RL^~CM8-WxJ`DV;Bg%XujsfD+2sxY3D8 zQg#fBI^#|yp>Qaov>WnO_-T1m8jQIkT#F)1@W>FB2pF`mm?}poF`EbmVQ}q4iMSZR zfIh(l3KinS`K5*kI539t%6SsKtK6XoD@d5Mm}R6u?oz5ymz>YDYZ4J!BUDBtB1G)4 z@v($V=i-g>1Vbv1lL`~tD^!ZXF0mUIbKE*A1w1-)N*LkBOG~*T_{CKLy~-U;{bQ5A z=y>q_^0UH~ZuHosX=#~W1qvII%lmfT(i-3?Yg~mmw`1a*@w3urjjt)GDfzNwc1hvG zb??p|UvnmBT;X)z<;vp);rIJn0&7R7rYaec2`tR$ z#XqRMtt-gg`K~%8+WWZR*2V4iTm7#H=S#aJa~Ks&_Q=q_!267x$v4hiEc#Q~ll$8X z3kOdP-e|krz0(;f|1ACTJSke7{&c^)XCy<)Yguq~?Kf`*)Mje)09ASa;wLS!w^~-M z{-NX1#JqLuJj7Qj*5vjF=h_CxP5t)HUuS<><-62V)LXE-Hvi-L=2hu??oWNAqi_D^ zRV?LV{@ZIRC)b5P7fswSYyHosqd0>V`WGYPi+gBJ&0JRYZ$+u>YFl(q=J`BErt(6go*j3t3f-SKg>m)K z%C@ZR(*COls;isxYs7HXmpiRS9KZG}_FNWpLjOs2_O~hMZbs%C39k``m*t+XZ#>hh zKKM)4$M?_H<}qr!_Zu@aV@sw-s?&e7=-7eA#zU{z)%ePAlj&zaS@1`XXA;ZnuD{o^ zV1Li0Zhuzy?Qi}zvMD?Q?Km)DpSonkvgxN$s{RCC-~4RW`E7>IEc9G!+wvXPLk*g( z1@%Y2pBL}E`{8CqLE)f(+v29)l?#vdcDEhs9(r{w80F=zx_@V5^DmYkf0j+*KXjE9 z6gKR*{<-1N$r+3*Lk@5^yN=D_N7JWnO>F31SbyT#aEA2M7P|LX(;p6Z@F~sG!pH3o zR9_FZ|1;Tx-SPhMddF^emv6#{SKqyu`>LkNXsgVrdyb-~wl3=Upzqkpk4|36AAj|$ znj=*1R;YBB;Pl-m{S7&-8rF@Qg=gi{2lp!8VZQk^=L2r4(tU5*1#$esv_e~3yJL0V z(e1=wkR;dUO*viCd2oiJL%XWBs`kvXcKd>0z5U76Ewiqyxpk+qYt6>F{etF5rlJ+U qcBD1G$+`aRlG@F$nRXm`K3Uw%Tf1!d{3P(pm!^=a(L>0}>i+;-L-OMQ diff --git a/ui/faceenroll/product/phone/src/main/resources/base/media/aperture2.png b/ui/faceenroll/product/phone/src/main/resources/base/media/aperture2.png deleted file mode 100644 index 39ce11d0e8673ba3ffdf9fac2518c38e89b87296..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4104 zcmeHKi&vA^vJZrZhyn^C3TOnPD1v#CM6@L#Auk9d1oA*52_zxpL0*IqMS^-tq`n9W z)E2E4RIn7S8WF|jw6V0cV2y~ufKWKCLPdOl+7|2ms6Ff6KjNOhPUO0dGd=Ln*x%<}z1QPh$HI#&b;#1~605M=dNjNAT4ke)9`Nib$3)rai($q{CJd;*j zTBhS;a~NgHvh1?-IS7a>MkbS9#LJP~jn78l2Gem5njKdVN^hCUlz?d`Tai9o7J|ah9qNJze5u_|0v4F(QQnIp&F&M4h zAjQFmGM0gtovnmR8L4==Qo;}uVCghMv6zq#*Dzp|Qo2@6%qW9rmT)o?OA!T36%|dB zGIUrj(Lga4Xv-AXG%5)=h7Ze@7MB?qIvqy`&yeI8^EE^g6JM6E$W&{{Jif`uLMgGb zY)yfJL}cpJfC)ucR7BLWMLAjYG!{XdAF|soyd|nQg zkR{Kc%kbQSl2i?!he%|z@jN`0r%{pNr4uqNH+|m@UjFGlUsH zfm!-uAwwZik|Y=eU4p@s5YQ?fQmRwZaB`qy2qu(-AQqe0CPX?tQ=`Yh(z5|6sw|Nq z2Pn)`k}k^N({KQ<0&X+GSOf${Fq*K1X($|oZ5nGVPE-)B0MH(y+ zKAWE^D+6vg5$IrG`QIk~yQ6{iKhFk|bO(J$3j+C zOx#bb{ERjQNyk;H&6GlT;euEvk=^P|Os=*z#73Q5#J*oyBM4lAZSo5xdaw1skAHf& zdv@yAt2-`F8l-fCRAR+k=^82p|;K;3cRn=d<_)arl3#!VdhFn>Ee zFMed;3EerCa(y6H{8Q}EynaRi!!4fQ3oxcJB7Vo6nh6{vh!3={!a4l%+*1yHVwO;N$Ye`1C>IPpR8yT9he_vtM>@-4e+U(V7}&<$L&4I?B@%p#rx~*dkx#%FHZIA;-b=&JY&KgC#UO)Le%RgN0 zSkgYwdv*prQe~G}N72Z~sHkL@AQ&6kFyHIvniW31KD{e%mX4f@T=oz{DL?nx9_jP> z(dzK{#~aMG(9N(2zi&LhemQGjW`Ec@U*oS{9W+%Qcv>A_{5HUKpz~wT2tUQ$nfjmK z+`iJLP7IP6jnH$6Pko-gFsC>-w?%dLd$@mF4SVT1nzB6dr_IpKiG9`r58-y{$Z7lH z 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 B>tp}` diff --git a/ui/faceenroll/product/phone/src/main/resources/base/media/aperture4.png b/ui/faceenroll/product/phone/src/main/resources/base/media/aperture4.png deleted file mode 100644 index 381693d5621ea4a4d25ac60a5786d7a5a1369870..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5063 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 D1Bg0UA9LOP_b0^1 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�MkE;z_N-yJ3$%TGzkz0$cI5Vpbv)ZuQC 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 diff --git a/ui/faceenroll/product/phone/src/main/resources/base/media/back.png b/ui/faceenroll/product/phone/src/main/resources/base/media/back.png deleted file mode 100644 index 85dcc6ad6895ff1b4ef599be169e0df24a7b01b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 893 zcmV-@1A_dCP)EX>4Tx04R}tkv&MmKpe$iQ%l8G3fe)$AwzYtAS&W0RV;#q(pG5I!Q|2}Xws0R zxHt-~1qVMCs}3&Cx;nTDg5U>;o12rOiOg)ia%%JP|x`&6acTt|z{oJ3UU&)&c@QB27OgAjz4dR(i zOXs{#9A+g+AwDM_H|T=Ik6f2se&bwpSm2pqBa@mZ4ik&T4wgHZl?;`5nmD4U8s!UF zmle)ioYhK=weHDZ7|d%cX|B^8K^#j+APEsNYAB-u3sG7%QcR?1Ki0)R?D&)9lF3yD zBgX=&P$4;f@IUz7ty!3wbd!QH!1rR?AESVO7iiXP`}^3ony{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2jvS71s@{2AB;x;00DVPL_t(&-tE>sNCPn##_>cd zh#**7AqY;+?QBKp)I|{Cy_|!CUmz${1-&jVPR@ z?{#Q~x(TJ)a?fuK7sCIJ%PRx`000000002Me`4k#RB)`dQ(F5^K~UO63~Q&g_Ft7! zY>e5BdyHAF{dc8QWQ^I0dyF|x`yVdGM%-hpc-sF`N_`q*mg62{wJFAY++%Ee+K-e{ zZ^js}lg}#uAjZzZ;?iE_>Qa=;<^4jTaMt3McT&pxt_;G=+1hUy~pJM6q^^ zh#p*&BWCVF6l*g?^ys1-;M!?KnIxj;ASj(M^8ku8rdV9T000000000003GieI()ku TraWJ?00000NkvXXu0mjf+ewd3 diff --git a/ui/faceenroll/product/phone/src/main/resources/base/media/ic_settings_arrow.svg b/ui/faceenroll/product/phone/src/main/resources/base/media/ic_settings_arrow.svg deleted file mode 100644 index d7dd265..0000000 --- a/ui/faceenroll/product/phone/src/main/resources/base/media/ic_settings_arrow.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ui/faceenroll/product/phone/src/main/resources/base/media/icon.png b/ui/faceenroll/product/phone/src/main/resources/base/media/icon.png deleted file mode 100644 index ce307a8827bd75456441ceb57d530e4c8d45d36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6790 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