fix: 领取任务后立即刷新列表 (#107)
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user