fix: 领取任务后立即刷新列表 (#107)

This commit is contained in:
chengma
2026-08-10 17:11:59 +08:00
parent 8931162106
commit 39686d7b3b
8 changed files with 125 additions and 15 deletions
+6
View File
@@ -138,6 +138,7 @@ class TaskDispatcher:
purchase_reconcile_factory: Optional[PurchaseReconcileFactory] = None,
cancelled: Callable[[], bool] = lambda: False,
device_connection_checker: Optional[Callable[[str], None]] = None,
task_saved: Callable[[str], None] = lambda _task_id: None,
) -> None:
self._gateway = gateway
self._repository = repository
@@ -151,6 +152,7 @@ class TaskDispatcher:
self._purchase_mode = purchase_mode
self._reconcile_factory = purchase_reconcile_factory
self._cancelled = cancelled
self._task_saved = task_saved
self._device_connection_checker = (
device_connection_checker
or AndroidDeviceService().require_connected
@@ -251,10 +253,12 @@ class TaskDispatcher:
)
if remote is None:
return TaskDispatchOutcome("no_task", "暂无可领取的任务")
saved_now = False
try:
self._repository.add_claimed_task(
admin_task_to_new_claimed_task(remote)
)
saved_now = True
except DuplicateTaskError:
pass
except Exception as exc:
@@ -266,6 +270,8 @@ class TaskDispatcher:
raise RuntimeError(
f"任务 {remote.task_id} 已领取,但未能保存到本地"
)
if saved_now:
self._task_saved(remote.task_id)
if task.task_type is TaskType.COLLECT:
service = CollectTaskService(