mirror of
https://github.com/openharmony/useriam_faceauth.git
synced 2026-07-01 21:44:25 -04:00
@@ -15,7 +15,7 @@
|
||||
|
||||
import Ability from '@ohos.application.Ability'
|
||||
import Log from '../utils/log'
|
||||
import UserIDMModel from '../model/userIDMModel'
|
||||
import UserIdmModel from '../model/userIdmModel'
|
||||
import CommonController from '../controller/commonController'
|
||||
|
||||
export default class MainAbility extends Ability {
|
||||
@@ -28,7 +28,7 @@ export default class MainAbility extends Ability {
|
||||
|
||||
onDestroy() {
|
||||
Log.info(this.TAG, 'Application onDestroy+')
|
||||
UserIDMModel.destroy()
|
||||
UserIdmModel.destroy()
|
||||
Log.info(this.TAG, 'Application onDestroy-')
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ import Log from '../utils/log'
|
||||
|
||||
@CustomDialog
|
||||
export default struct ConfirmDialog {
|
||||
private TAG: string = "ConfirmDialog:"
|
||||
private TAG: string = "ConfirmDialog"
|
||||
private controller: CustomDialogController;
|
||||
private title: string | Resource
|
||||
private content: string | Resource
|
||||
|
||||
@@ -17,7 +17,7 @@ import Log from '../utils/log'
|
||||
import display from '@ohos.display';
|
||||
|
||||
class Config {
|
||||
private TAG: string = "Config:"
|
||||
private TAG: string = "Config"
|
||||
private deviceType : string = "tablet"
|
||||
private nonAppBarDisplayHeight: number = 0
|
||||
private nonDisplayHeight: number = 0
|
||||
|
||||
@@ -16,10 +16,10 @@
|
||||
import Log from '../utils/log'
|
||||
import router from '@system.router';
|
||||
import Config from '../config/config'
|
||||
import UserIDMModel from '../model/userIDMModel'
|
||||
import UserIdmModel from '../model/userIdmModel'
|
||||
|
||||
class CommonController {
|
||||
private TAG: string = "CommonController:"
|
||||
private TAG: string = "CommonController"
|
||||
|
||||
async routeBack() {
|
||||
Log.info(this.TAG, 'router getLength: ' + router.getLength())
|
||||
@@ -36,10 +36,10 @@ class CommonController {
|
||||
|
||||
async terminateAbility() {
|
||||
Log.info(this.TAG, 'terminate ability+')
|
||||
UserIDMModel.destroy()
|
||||
UserIdmModel.destroy()
|
||||
globalThis.abilityContext.terminateSelf()
|
||||
.then(data => Log.info(this.TAG, 'terminateSelf promise::then : ' + data))
|
||||
.catch(error => Log.error(this.TAG, 'terminateSelf promise::catch : ' + error));
|
||||
.then(data => Log.info(this.TAG, 'terminateSelf promise then ' + data))
|
||||
.catch(error => Log.error(this.TAG, 'terminateSelf promise catch ' + error));
|
||||
Log.info(this.TAG, 'terminate ability-')
|
||||
}
|
||||
|
||||
@@ -76,7 +76,9 @@ class CommonController {
|
||||
if (Config.getDeviceType() != 'phone') {
|
||||
return;
|
||||
}
|
||||
let sideLength = Math.floor((nonAppBarDisplayHeight / 4) * 2)
|
||||
nonAppBarDisplayHeight = nonAppBarDisplayHeight + AppStorage.Get<number>('SYSTEM_NAVIGATION_BAR_HEIGHT')
|
||||
Log.info(this.TAG, 'update nonAppBarDisplayHeight to ' + nonAppBarDisplayHeight)
|
||||
let sideLength = Math.floor(nonAppBarDisplayHeight / 2)
|
||||
AppStorage.SetOrCreate('enrollImageHeight', sideLength);
|
||||
AppStorage.SetOrCreate('enrollImageWidth', nonAppBarDisplayWidth);
|
||||
// when percentage is 166%, circular diameter == height
|
||||
@@ -91,6 +93,8 @@ class CommonController {
|
||||
if (Config.getDeviceType() != 'tablet') {
|
||||
return;
|
||||
}
|
||||
displayHeight = displayHeight + AppStorage.Get<number>('SYSTEM_NAVIGATION_BAR_HEIGHT') + AppStorage.Get<number>('SYSTEM_STATUS_BAR_HEIGHT')
|
||||
Log.info(this.TAG, 'update displayHeight to ' + displayHeight)
|
||||
let sideLength = Math.floor(Math.min(displayWidth, displayHeight / 2) * 0.8 / 2) * 2
|
||||
Log.info(this.TAG, 'sideLength ' + sideLength)
|
||||
AppStorage.SetOrCreate('enrollImageHeight', sideLength);
|
||||
@@ -159,6 +163,13 @@ class CommonController {
|
||||
buffer.push(0)
|
||||
return new Uint8Array(buffer)
|
||||
}
|
||||
|
||||
getStartViewImage() : any {
|
||||
if (Config.getDeviceType() === 'tablet') {
|
||||
return $r('app.media.face_start_view_pad')
|
||||
}
|
||||
return $r('app.media.face_start_view')
|
||||
}
|
||||
}
|
||||
|
||||
let commonController = new CommonController();
|
||||
|
||||
@@ -17,11 +17,11 @@ import Constants from '../config/constant'
|
||||
import Log from '../utils/log'
|
||||
import router from '@system.router';
|
||||
import CommonController from '../controller/commonController'
|
||||
import UserIDMModel from '../model/userIDMModel'
|
||||
import UserIdmModel from '../model/userIdmModel'
|
||||
import UserAuthModel from '../model/userAuthModel'
|
||||
|
||||
class EnrollingController {
|
||||
private TAG: string = "EnrollingController:"
|
||||
private TAG: string = "EnrollingController"
|
||||
private ANIMATION_TIME: number = 2000
|
||||
private enrolling: boolean = false
|
||||
|
||||
@@ -62,8 +62,8 @@ class EnrollingController {
|
||||
}
|
||||
let setResult = await UserAuthModel.setSurfaceId(AppStorage.Get('xComponentSurfaceId'))
|
||||
Log.info(this.TAG, 'setSurfaceId result is ' + setResult)
|
||||
UserIDMModel.setOnAcquireCallback(this.onAcquire.bind(this))
|
||||
UserIDMModel.enrollFace().then(this.processResult.bind(this))
|
||||
UserIdmModel.setOnAcquireCallback(this.onAcquire.bind(this))
|
||||
UserIdmModel.enrollFace().then(this.processResult.bind(this))
|
||||
this.enrolling = true
|
||||
Log.info(this.TAG, 'startEnroll-')
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
import Log from '../utils/log'
|
||||
import UserAuthModel from '../model/userAuthModel'
|
||||
import UserIDMModel from '../model/userIDMModel'
|
||||
import UserIdmModel from '../model/userIdmModel'
|
||||
import router from '@system.router';
|
||||
|
||||
class EntryViewController {
|
||||
@@ -23,14 +23,14 @@ class EntryViewController {
|
||||
|
||||
constructor() {
|
||||
Log.info(this.TAG, "constructor+")
|
||||
UserIDMModel.updateFaceInfo()
|
||||
UserIdmModel.updateFaceInfo()
|
||||
Log.info(this.TAG, "constructor-")
|
||||
}
|
||||
|
||||
async doPINAuth() {
|
||||
try {
|
||||
Log.info(this.TAG, "doPINAuth+")
|
||||
let challenge = await UserIDMModel.getChallenge()
|
||||
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))
|
||||
@@ -38,14 +38,14 @@ class EntryViewController {
|
||||
Log.error(this.TAG, "authPin fail ")
|
||||
throw 1
|
||||
}
|
||||
UserIDMModel.setToken(token)
|
||||
UserIdmModel.setToken(token)
|
||||
Log.info(this.TAG, "set token ok")
|
||||
} catch(err) {
|
||||
Log.error(this.TAG, "exception " + JSON.stringify(err))
|
||||
Log.info(this.TAG, "doPINAuth -")
|
||||
throw 1
|
||||
}
|
||||
if (UserIDMModel.getFaceNum() == 0) {
|
||||
if (UserIdmModel.getFaceNum() == 0) {
|
||||
Log.info(this.TAG, "route to enrollIntro")
|
||||
router.replace({uri: 'pages/enrollIntro'})
|
||||
} else {
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
*/
|
||||
|
||||
import Log from '../utils/log'
|
||||
import UserIDMModel from '../model/userIDMModel'
|
||||
import UserIdmModel from '../model/userIdmModel'
|
||||
import CommonController from '../controller/commonController'
|
||||
|
||||
class FaceConfigController {
|
||||
private TAG: string = "FaceConfigController:"
|
||||
private TAG: string = "FaceConfigController"
|
||||
|
||||
constructor() {
|
||||
Log.info(this.TAG, "constructor+")
|
||||
@@ -27,7 +27,7 @@ class FaceConfigController {
|
||||
|
||||
deleteFace() {
|
||||
Log.info(this.TAG, "deleteFace+")
|
||||
UserIDMModel.deleteFace().then((result)=>{
|
||||
UserIdmModel.deleteFace().then((result)=>{
|
||||
Log.info(this.TAG, "deleteFace result: " + result)
|
||||
if (result == 0) {
|
||||
Log.info(this.TAG, "deleteFace routeBack+")
|
||||
|
||||
+10
-10
@@ -17,8 +17,8 @@ import Log from '../utils/log'
|
||||
import account_osAccount from '@ohos.account.osAccount';
|
||||
import CommonController from '../controller/commonController'
|
||||
|
||||
class UserIDMModel {
|
||||
readonly TAG: string = "UserIDMModel"
|
||||
class UserIdmModel {
|
||||
readonly TAG: string = "UserIdmModel"
|
||||
protected userIdentityManager: any
|
||||
protected challenge: Uint8Array
|
||||
protected token: Uint8Array
|
||||
@@ -44,12 +44,12 @@ class UserIDMModel {
|
||||
|
||||
setToken(token: Uint8Array) {
|
||||
let tokenStr = CommonController.uin8Array2JsonString(token);
|
||||
AppStorage.SetOrCreate<string>("UserIDM_Token", tokenStr)
|
||||
AppStorage.SetOrCreate<string>("UserIdm_Token", tokenStr)
|
||||
Log.info(this.TAG, "setToken ok " + JSON.stringify(token))
|
||||
}
|
||||
|
||||
getToken() : Uint8Array {
|
||||
let tokenStr = AppStorage.Get<string>("UserIDM_Token")
|
||||
let tokenStr = AppStorage.Get<string>("UserIdm_Token")
|
||||
let token = CommonController.jsonString2Uint8Array(tokenStr)
|
||||
Log.info(this.TAG, "getToken ok " + JSON.stringify(token))
|
||||
return token
|
||||
@@ -57,12 +57,12 @@ class UserIDMModel {
|
||||
|
||||
setCredentialId(credId: Uint8Array) {
|
||||
let credIdStr = CommonController.uin8Array2JsonString(credId);
|
||||
AppStorage.SetOrCreate<string>("UserIDM_CredId", credIdStr)
|
||||
AppStorage.SetOrCreate<string>("UserIdm_CredId", credIdStr)
|
||||
Log.info(this.TAG, "setCredentialId ok " + JSON.stringify(credId))
|
||||
}
|
||||
|
||||
getCredentialId() : Uint8Array {
|
||||
let credIdStr = AppStorage.Get<string>("UserIDM_CredId")
|
||||
let credIdStr = AppStorage.Get<string>("UserIdm_CredId")
|
||||
let credId = CommonController.jsonString2Uint8Array(credIdStr)
|
||||
Log.info(this.TAG, "getCredentialId ok " + JSON.stringify(credId))
|
||||
return credId
|
||||
@@ -71,7 +71,7 @@ class UserIDMModel {
|
||||
updateFaceInfo() {
|
||||
this.userIdentityManager.getAuthInfo(2).then((data) => {
|
||||
Log.info(this.TAG, 'getAuthInfo length ' + data.length)
|
||||
AppStorage.SetOrCreate<number>("UserIDM_FaceNum", data.length);
|
||||
AppStorage.SetOrCreate<number>("UserIdm_FaceNum", data.length);
|
||||
if (data.length > 0) {
|
||||
this.setCredentialId(data[0].credentialId);
|
||||
}
|
||||
@@ -79,7 +79,7 @@ class UserIDMModel {
|
||||
}
|
||||
|
||||
getFaceNum(): number {
|
||||
return AppStorage.Get<number>("UserIDM_FaceNum");
|
||||
return AppStorage.Get<number>("UserIdm_FaceNum");
|
||||
}
|
||||
|
||||
setOnAcquireCallback(onAcquireCallback: (result: number) => any) {
|
||||
@@ -135,5 +135,5 @@ class UserIDMModel {
|
||||
}
|
||||
}
|
||||
|
||||
let userIDMModel = new UserIDMModel();
|
||||
export default userIDMModel as UserIDMModel
|
||||
let userIdmModel = new UserIdmModel();
|
||||
export default userIdmModel as UserIdmModel
|
||||
@@ -40,7 +40,7 @@ import CommonController from '../controller/commonController'
|
||||
@Component
|
||||
export default struct EnrollDeclare {
|
||||
private pattern: string = "2D";
|
||||
private TAG: string = "EnrollDeclare:"
|
||||
private TAG: string = "EnrollDeclare"
|
||||
@StorageLink('CONTENT_TYPE_WIDTH') CONTENT_TYPE_WIDTH: number = 0
|
||||
|
||||
build() {
|
||||
|
||||
@@ -46,7 +46,7 @@ import Constants from '../config/constant'
|
||||
@Entry
|
||||
@Component
|
||||
struct EnrollIntro {
|
||||
@State TAG: string = "EnrollIntro:"
|
||||
@State TAG: string = "EnrollIntro"
|
||||
@StorageLink('enrollImageHeight') enrollImageHeight: number = 0
|
||||
@StorageLink('enrollImageWidth') enrollImageWidth: number = 0
|
||||
@StorageLink('CONTENT_TYPE_WIDTH') CONTENT_TYPE_WIDTH: number = 0
|
||||
@@ -66,7 +66,7 @@ struct EnrollIntro {
|
||||
top : "12vp",
|
||||
bottom: "24vp"
|
||||
})
|
||||
Image($r('app.media.startImage_2D'))
|
||||
Image(CommonController.getStartViewImage())
|
||||
.objectFit(ImageFit.Contain)
|
||||
.width(this.enrollImageWidth)
|
||||
.height(this.enrollImageHeight)
|
||||
|
||||
@@ -34,7 +34,7 @@ import EnrollingController from '../controller/enrollingController'
|
||||
@Entry
|
||||
@Component
|
||||
struct Enrolling {
|
||||
private TAG: string = "Enrolling:"
|
||||
private TAG: string = "Enrolling"
|
||||
private xComponentController = new XComponentController()
|
||||
@StorageLink('enrollStatus') enrollStatus: string = ""
|
||||
@StorageLink('stackVideoVisibility') stackVideoVisibility: Visibility = Visibility.Visible
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import window from '@ohos.window'
|
||||
|
||||
import BackComponent from '../component/backComponent'
|
||||
import Log from '../utils/log'
|
||||
import EntryViewController from '../controller/entryViewController'
|
||||
@@ -22,8 +24,12 @@ import Constants from '../config/constant'
|
||||
@Entry
|
||||
@Component
|
||||
struct Index {
|
||||
private TAG: string = "Index:"
|
||||
private TAG: string = "Index"
|
||||
private TYPE_STATUS_BAR_TEMP:number = 2108 // In current version, windows subscribe type id is wrong, temporary use these id
|
||||
private TYPE_NAVIGATION_BAR_TEMP:number = 2112
|
||||
@State resultString: string = ""
|
||||
@StorageLink('SYSTEM_STATUS_BAR_HEIGHT') SYSTEM_STATUS_BAR_HEIGHT: number = 0
|
||||
@StorageLink('SYSTEM_NAVIGATION_BAR_HEIGHT') SYSTEM_NAVIGATION_BAR_HEIGHT: number = 0
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
@@ -62,6 +68,22 @@ struct Index {
|
||||
.height("100%")
|
||||
.backgroundColor($r("sys.color.ohos_id_color_sub_background"))
|
||||
.onAreaChange((_, newArea) => {
|
||||
window.on('systemBarTintChange', (data) => {
|
||||
Log.info(this.TAG, 'receive system bar tint change: ' + JSON.stringify(data));
|
||||
for (let i = 0; i < data.regionTint.length; i++) {
|
||||
let regionData = data.regionTint[i]
|
||||
if (regionData.type == this.TYPE_STATUS_BAR_TEMP) {
|
||||
this.SYSTEM_STATUS_BAR_HEIGHT = px2vp(regionData.region.height)
|
||||
Log.info(this.TAG, "set status bar height " + regionData.region.height)
|
||||
continue
|
||||
}
|
||||
if (regionData.type == this.TYPE_NAVIGATION_BAR_TEMP) {
|
||||
this.SYSTEM_NAVIGATION_BAR_HEIGHT = px2vp(regionData.region.height)
|
||||
Log.info(this.TAG, "set navigation bar height " + this.SYSTEM_NAVIGATION_BAR_HEIGHT)
|
||||
continue
|
||||
}
|
||||
}
|
||||
});
|
||||
Log.info(this.TAG, "new display area :" + JSON.stringify(newArea))
|
||||
CommonController.setDisplaySize(Number(newArea.width), Number(newArea.height))
|
||||
Log.info(this.TAG, "total area w: " + newArea.width + " h: " + newArea.height)
|
||||
|
||||
@@ -42,7 +42,7 @@ import Constants from '../config/constant'
|
||||
@Entry
|
||||
@Component
|
||||
struct FaceConfig {
|
||||
@State TAG: string = "FaceConfig:"
|
||||
@State TAG: string = "FaceConfig"
|
||||
@State touched: boolean = false
|
||||
@StorageLink('CONTENT_TYPE_WIDTH') CONTENT_TYPE_WIDTH: number = 0
|
||||
@StorageLink('CARD_TYPE_WIDTH') CARD_TYPE_WIDTH: number = 0
|
||||
|
||||
@@ -13,19 +13,18 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import hilog from '@ohos.hilog'
|
||||
|
||||
const TAG = 'Settings_FaceAuth';
|
||||
const IAM_DOMAIN_ID_FACE = 0xD002442;
|
||||
|
||||
export default class Log {
|
||||
|
||||
static info(tag, log) {
|
||||
console.info(`Info:${TAG}:${tag} ${log}`);
|
||||
static info(tag, content) {
|
||||
hilog.info(IAM_DOMAIN_ID_FACE, TAG + ":" + tag, content,);
|
||||
}
|
||||
|
||||
static debug(tag, log) {
|
||||
console.debug(`Debug:${TAG}:${tag} ${log}`);
|
||||
}
|
||||
|
||||
static error(tag, log) {
|
||||
console.error(`Error:${TAG}:${tag} ${log}`);
|
||||
static error(tag, content) {
|
||||
hilog.error(IAM_DOMAIN_ID_FACE, TAG + ":" + tag, content,);
|
||||
}
|
||||
}
|
||||
@@ -21,7 +21,6 @@
|
||||
"description": "$string:description_enrollmentstartview",
|
||||
"mainElement": "com.ohos.settings.faceauth.enrollmentstartview",
|
||||
"deviceTypes": [
|
||||
"phone",
|
||||
"tablet"
|
||||
],
|
||||
"deliveryWithInstall": true,
|
||||
@@ -50,6 +49,8 @@
|
||||
"description": "$string:mainability_description",
|
||||
"icon": "$media:app_icon",
|
||||
"label": "$string:app_name",
|
||||
"startWindowIcon": "$media:transparent",
|
||||
"startWindowBackground": "$color:background",
|
||||
"visible": true,
|
||||
"skills": [
|
||||
{
|
||||
@@ -62,4 +63,4 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"color": [
|
||||
{
|
||||
"name": "background",
|
||||
"value": "#00000000"
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 13 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 275 B |
@@ -13,5 +13,8 @@
|
||||
"hypium": "^1.0.0",
|
||||
"@ohos/hvigor": "1.0.6",
|
||||
"@ohos/hvigor-ohos-plugin": "1.0.6"
|
||||
},
|
||||
"scripts": {
|
||||
"buildOhosHaps": "hvigor assembleHap"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user