feat(greeter): support undecided state waiting for DDM decision - #1305
feat(greeter): support undecided state waiting for DDM decision#1305glyvut wants to merge 1 commit into
Conversation
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: glyvut The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Reviewer's GuideIntroduce an 'undecided' greeter state where the wallpaper/lockscreen surface is visible but the login UI is hidden until DDM decides to either autologin or show the full greeter, backed by a 5s fallback timer and updated lockscreen/greeter message handling. Sequence diagram for undecided greeter state and decision flowsequenceDiagram
actor User
participant DDM
participant Helper
participant GreeterProxy
participant LockScreen
participant QTimer
Helper->>GreeterProxy: setLockScreenImpl(impl)
Helper->>LockScreen: setVisible(true)
GreeterProxy->>QTimer: m_undecidedTimer->start()
Note over GreeterProxy,QTimer: m_undecided = true
alt DDM decides to show greeter
DDM->>GreeterProxy: readyRead() ShowGreeter
GreeterProxy->>Helper: Helper::instance()->showLockScreen(false)
Helper->>GreeterProxy: showLockScreen(false)
GreeterProxy->>LockScreen: lock()
GreeterProxy->>GreeterProxy: setLock(true)
GreeterProxy->>GreeterProxy: m_undecided = false
GreeterProxy->>GreeterProxy: undecidedChanged(false)
else DDM decides to auto login
DDM->>GreeterProxy: readyRead() UserActivateMessage
GreeterProxy->>GreeterProxy: m_undecided = false
GreeterProxy->>GreeterProxy: undecidedChanged(false)
GreeterProxy->>LockScreen: m_lockScreen->unlock()
GreeterProxy->>LockScreen: setVisible(false)
GreeterProxy->>GreeterProxy: setLock(false)
else DDM does not decide in time
QTimer->>GreeterProxy: timeout
GreeterProxy->>GreeterProxy: [m_undecided]
GreeterProxy->>LockScreen: lock()
GreeterProxy->>GreeterProxy: setLock(true)
GreeterProxy->>GreeterProxy: m_undecided = false
GreeterProxy->>GreeterProxy: undecidedChanged(false)
end
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
d14299e to
b6d0a70
Compare
PR 审查结果对 treeland #1305 + ddm #106 的联合审查中,treeland 部分的审查结论如下。整体方案连贯,无阻断性问题。 交互流程验证三条路径均自洽:
设计合理的部分
需要处理的问题
总结无阻断性问题,建议合入前处理以下可操作项:
|
CI 编译失败修复根因
修复方案更新两个 CI workflow,改为从 ddm PR #106 源码构建(包含
修复 PR已创建交叉 fork PR:glyvut#3 该 PR 基于当前 PR #1305 的 合入顺序ddm PR #106 必须先合入,这是 treeland PR #1305 的前置依赖。ddm PR #106 合入 master 后,本 PR 的 CI 修复可恢复为使用 |
Add an undecided state so the greeter shows the wallpaper but keeps the login UI hidden until DDM decides between autologin and showing the greeter, with a 5s fallback timer. 为greeter增加undecided待决状态:先显示壁纸但隐藏登录界面,等待 DDM决定自动登录还是显示登录界面,并设置5秒兜底定时器防止停留在 壁纸。同时处理ShowGreeter消息和用户激活时的界面切换逻辑。 PMS: BUG-294419 Log: 支持自动登录待决状态 Influence: 自动登录时不会闪现登录界面;DDM未决策时5秒后兜底显示登录界面。
|
TAG Bot New tag: 0.9.0 |
前置:合入linuxdeepin/ddm#106
Add an undecided state so the greeter shows the wallpaper but keeps the login UI hidden until DDM decides between autologin and showing the greeter, with a 5s fallback timer.
为greeter增加undecided待决状态:先显示壁纸但隐藏登录界面,等待
DDM决定自动登录还是显示登录界面,并设置5秒兜底定时器防止停留在
壁纸。同时处理ShowGreeter消息和用户激活时的界面切换逻辑。
Log: 支持自动登录待决状态
Influence: 自动登录时不会闪现登录界面;DDM未决策时5秒后兜底显示登录界面。
Summary by Sourcery
Support deferred greeter decisions so autologin can proceed without briefly showing the login interface while retaining a timed fallback to the greeter.
New Features:
Bug Fixes:
Enhancements: