diff --git a/services/ipc/inc/user_auth_service.h b/services/ipc/inc/user_auth_service.h index af5cdc39f1ef33400b849c2d6f3d23b9c8d340b3..655d270485ad135efb013ff896b7c1fb26d19638 100644 --- a/services/ipc/inc/user_auth_service.h +++ b/services/ipc/inc/user_auth_service.h @@ -134,7 +134,7 @@ private: uint64_t &contextId); int32_t StartAuthWidget(AuthParamInner &authParam, WidgetParamInner &widgetParam, ContextFactory::AuthWidgetContextPara ¶, std::shared_ptr &contextCallback, - uint64_t &contextId); + const sptr &modalCallback, uint64_t &contextId); void InitAuthParam(const IpcAuthParamInner &ipcAuthParam, AuthParamInner &authParam); void InitRemoteAuthParam(const IpcRemoteAuthParam &ipcRemoteAuthParam, std::optional &remoteAuthParam); diff --git a/services/ipc/src/user_auth_service.cpp b/services/ipc/src/user_auth_service.cpp index 727d4ab3d520d5f31bb2a52c5488ac478409d88e..063861318eec29caa18a107d058798ac4461fd17 100644 --- a/services/ipc/src/user_auth_service.cpp +++ b/services/ipc/src/user_auth_service.cpp @@ -1216,7 +1216,7 @@ void UserAuthService::ProcessPinExpired(int32_t ret, const AuthParamInner &authP int32_t UserAuthService::StartAuthWidget(AuthParamInner &authParam, WidgetParamInner &widgetParam, ContextFactory::AuthWidgetContextPara ¶, std::shared_ptr &contextCallback, - uint64_t &contextId) + const sptr &modalCallback, uint64_t &contextId) { IAM_LOGI("start"); Attributes extraInfo; @@ -1230,6 +1230,9 @@ int32_t UserAuthService::StartAuthWidget(AuthParamInner &authParam, WidgetParamI } ProcessPinExpired(checkRet, authParam, validType, para); ProcessWidgetSessionExclusive(); + if (modalCallback != nullptr && widgetParam.hasContext) { + WidgetClient::Instance().SetModalCallback(modalCallback); + } contextId = StartWidgetContext(contextCallback, authParam, widgetParam, validType, para); if (contextId == BAD_CONTEXT_ID) { @@ -1278,11 +1281,7 @@ int32_t UserAuthService::AuthWidget(int32_t apiVersion, const IpcAuthParamInner return SUCCESS; } - if (modalCallback != nullptr && widgetParam.hasContext) { - WidgetClient::Instance().SetModalCallback(modalCallback); - } - - return StartAuthWidget(authParam, widgetParam, para, contextCallback, contextId); + return StartAuthWidget(authParam, widgetParam, para, contextCallback, modalCallback, contextId); } void UserAuthService::ProcessWidgetSessionExclusive()