fix: 任务执行前检查 Android 设备连接 (#84)
This commit is contained in:
@@ -14,6 +14,10 @@ from .admin_gateway import (
|
||||
ClientInfo,
|
||||
)
|
||||
from .collect_task_service import CollectServiceFactory, CollectTaskService
|
||||
from .android_device_service import (
|
||||
AndroidDeviceSearchError,
|
||||
AndroidDeviceService,
|
||||
)
|
||||
from .purchase_task_service import (
|
||||
PurchaseAdapterFactory,
|
||||
PurchaseTaskService,
|
||||
@@ -126,6 +130,7 @@ class TaskDispatcher:
|
||||
purchase_adapter_factory: Optional[PurchaseAdapterFactory] = None,
|
||||
purchase_reconcile_factory: Optional[PurchaseReconcileFactory] = None,
|
||||
cancelled: Callable[[], bool] = lambda: False,
|
||||
device_connection_checker: Optional[Callable[[str], None]] = None,
|
||||
) -> None:
|
||||
self._gateway = gateway
|
||||
self._repository = repository
|
||||
@@ -135,6 +140,10 @@ class TaskDispatcher:
|
||||
self._purchase_factory = purchase_adapter_factory
|
||||
self._reconcile_factory = purchase_reconcile_factory
|
||||
self._cancelled = cancelled
|
||||
self._device_connection_checker = (
|
||||
device_connection_checker
|
||||
or AndroidDeviceService().require_connected
|
||||
)
|
||||
|
||||
@property
|
||||
def purchase_ready(self) -> bool:
|
||||
@@ -169,7 +178,10 @@ class TaskDispatcher:
|
||||
if pending is not None:
|
||||
return self._submit_pending(pending)
|
||||
if not self._device_address:
|
||||
raise ValueError("请先在设置页选择并保存 Android 设备")
|
||||
raise AndroidDeviceSearchError(
|
||||
"请先在设置页选择并保存 Android 设备"
|
||||
)
|
||||
self._device_connection_checker(self._device_address)
|
||||
|
||||
reconcile_task = self._repository.next_purchase_reconcile_task()
|
||||
if reconcile_task is not None:
|
||||
|
||||
Reference in New Issue
Block a user