[Bug] Intent Caching and BottomSheet Stacking via Android Widgets & Deep Links
还没有人认领这个 Issue。
评估
调研方向
首先跟踪 Android Home Screen Widget 和 Quick Action/deep-link 进入 Flutter 的入口点,然后检查 DetailRouteController 以及 FAB 的原生 showModalBottomSheet 流程。复现这两种后台启动场景,并验证新 task 能够正确打开,以及保存由 intent 驱动的 sheet 后能够返回底层的 Home 屏幕,且不会出现黑色遮罩。
由索引模型根据 Issue 内容生成。
描述
Describe your issue
When the application is launched from the background via an Android Home Screen Widget or Quick Action intent, GetX state management encounters two severe routing and context synchronization bugs:
-
The Widget Controller Cache Loop: Tapping "Task 1" on a widget correctly loads the Detail Route and instantiates a
DetailRouteControllerfor Task 1. However, if the app is backgrounded and the user taps a widget for "Task 3", GetX recognizes thatDETAIL_ROUTEis already active in memory. Instead of routing the new UUID, GetX lazily reuses the cachedDetailRouteController, keeping "Task 1" permanently stuck on screen for all subsequent widget taps. -
The "Black Screen" Context Void: The Floating Action Button natively launched
showModalBottomSheet. If a user tapped a "Quick Action" or "Widget Add Task" intent while the app was backgrounded with a native sheet open, GetX was unable to detect the native sheet viaGet.isBottomSheetOpen. GetX stacked the new intent sheet on top. Upon saving, the system popped the GetX sheet, stranding the user inside an orphaned/black void natively.
Steps to reproduce
Widget Caching Loop:
- Tap Task 1 from an Android Widget.
- Press the Android Home button to background the app.
- Tap Task 3 from an Android Widget.
Result: The app incorrectly displays Task 1.
Black Screen Void:
- Tap the in-app
+FAB to open the Add Task modal. - Press the Android Home button to background the app.
- Long-press the App Icon and trigger the "Add Task" Quick Action intent.
- Fill out the task details and hit Save.
Result: The UI dismisses the active modal but reveals a broken/black overlay instead of the Home screen.
What was the expected result?
The app should cleanly unmount stale overlays (like the native FAB bottom sheet) and explicitly purge legacy controllers (DetailRouteController) from memory before injecting new routing intents from a warm start. The new task should load accurately, and closing a bottom sheet should safely return the user to the underlying UI without crashing into a black screen.
Put here any screenshots or videos (optional)
https://github.com/user-attachments/assets/5d021ebe-5f77-475e-b0d0-e6d84e01a383
How can we contact you (optional)
No response
Would you like to work on this issue?
Yes
By submitting this issue, I have confirmed that:
- I have starred the repo ⭐ and watched 👀 it on GitHub and followed the contribution guidelines.
- 主要语言
- Dart
- 星标
- 244
- 派生
- 180
- 平均合并
- 16 小时 19 分钟
- 30 天内合并 PR
- 4
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
CCExtractor/taskwarrior-flutter 的其他 Issue
-
Fix misaligned text "Select the directory" in settings tile可能重新可做 @alabeddev 于 201 天前认领,目前没有进行中的 PR。 未关闭bug
难度 2/5 1-3 小时 新手友好度 68/100
CCExtractor/taskwarrior-flutter#639 · 2 条评论 ·
-
bug
难度 1/5 1 小时以内 新手友好度 85/100
-
Drawer should close automatically when navigating to a new screen可能重新可做 关联的 PR 已关闭且未合并。 未关闭bug
难度 2/5 1-3 小时 新手友好度 68/100
-
Sensitive Credentials Stored in Plain Text Files Without Encryption可能重新可做 @sahu-virendra-1908 于 198 天前认领,目前没有进行中的 PR。 未关闭bug
难度 5/5 一周以上 新手友好度 45/100
CCExtractor/taskwarrior-flutter#645 · 1 条评论 ·
-
Data Inconsistency When Editing Task (Missing Transaction)可能重新可做 @aryanorastar 于 59 天前认领,目前没有进行中的 PR。 未关闭bug
难度 4/5 3-5 天 新手友好度 52/100
CCExtractor/taskwarrior-flutter#643 · 1 条评论 ·
查看 CCExtractor/taskwarrior-flutter 的全部 Issue
相似的 Issue
-
coverage 1.16.0: format_coverage fails on the `{}` that `dart test --coverage` writes for fully skipped suites可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 2/5 1-3 小时 新手友好度 62/100
维护者通常 1 天内回复
-
fyi-ecosystem platform-ios team-ios
难度 1/5 1 小时以内 新手友好度 70/100
flutter/flutter#194348 · 1 条评论 ·
维护者通常 1 天内回复
-
good first issue
难度 2/5 1-3 小时 新手友好度 66/100
维护者通常 1 天内回复
-
documentation good first issue
难度 1/5 1 小时以内 新手友好度 88/100
djazairdev/wilayas#22 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 80/100
rajput-hemant/calculator#199 ·