feat(scan): 기기 저장/표시 clinical flow 조건 제거 — 일반 모드에서도 활성
증상: Clinical mode 로 진입해서 pair 한 기기만 KnownDeviceStore 에 저장되고 DeviceScan 화면 상단의 '저장된 기기' 목록에 표시됨. 일반 모드로 앱을 쓸 때는 매번 fresh scan → 이름 확인 → 연결 반복해야 함. 수정: - BleManager onConnectionStateChange (STATE_CONNECTED) 안 KnownDeviceStore .add() 를 감싸던 `if (inClinicalFlow)` 조건 제거. 연결 성공한 모든 기기를 영속화. - DeviceScanView 의 초기 knownDevices 로드도 clinical 조건 제거. 저장된 기기가 있으면 진입 경로 무관하게 상단에 표시. 효과: - 일반 사용자도 한 번 연결한 기기를 다음 세션에 목록에서 바로 선택. - 재연결 대상 자동 감지 (lastConnectedAddress 흐름) 도 clinical 밖에서 정상 동작. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -980,15 +980,13 @@ class BleManager private constructor(private val context: Context) {
|
||||
cancelReconnectTimer()
|
||||
debugLogger.connected(connectedDeviceName.value, gatt.device.address)
|
||||
|
||||
// Clinical 흐름에서만 KnownDeviceStore 영속화. 일반 사용자는
|
||||
// 매 세션 fresh scan + pair — 저장 0개.
|
||||
if (com.medithings.vesiscan.services.ClinicalSessionStore.inClinicalFlow) {
|
||||
// 2026-07-10: clinical 흐름 조건 제거 — 어떤 진입 경로든 연결 성공 시
|
||||
// KnownDeviceStore 에 영속화. 재사용 편의 (재연결 대상 자동 감지 등).
|
||||
try {
|
||||
com.medithings.vesiscan.services.KnownDeviceStore.add(
|
||||
context, gatt.device.address, connectedDeviceName.value
|
||||
)
|
||||
} catch (_: Exception) {}
|
||||
}
|
||||
|
||||
// MTU 247 요청 (reb: 208B 패킷 드롭 방지)
|
||||
// onMtuChanged 콜백에서 discoverServices 호출
|
||||
|
||||
@@ -54,11 +54,8 @@ fun DeviceScanView(appState: AppState) {
|
||||
var connectingDeviceAddress by remember { mutableStateOf<String?>(null) }
|
||||
var permissionsGranted by remember { mutableStateOf(false) }
|
||||
|
||||
// Clinical 흐름에서만 다중 기기 저장/표시 — 일반 사용자는 fresh scan & pair.
|
||||
val isClinicalFlow = com.medithings.vesiscan.services.ClinicalSessionStore.inClinicalFlow
|
||||
var knownDevices by remember {
|
||||
mutableStateOf(if (isClinicalFlow) KnownDeviceStore.getAll(context) else emptyList())
|
||||
}
|
||||
// 2026-07-10: clinical 흐름 조건 제거 — 일반 사용자도 저장된 기기 목록 표시.
|
||||
var knownDevices by remember { mutableStateOf(KnownDeviceStore.getAll(context)) }
|
||||
var pendingDelete by remember { mutableStateOf<KnownDevice?>(null) }
|
||||
val knownAddresses = knownDevices.map { it.address }.toSet()
|
||||
val newDevices = bleManager.discoveredDevices
|
||||
|
||||
Reference in New Issue
Block a user