Files
VesiscanClinicalAndroid/app/src/main/java/com/example/medilightv2android/services
dw.jang 280c5671b0 fix(dev): 슬라이더 변경이 앱 재시작 시 사라지던 문제 — SharedPreferences 영속화
증상: Dev settings 의 walking/posture 임계 슬라이더를 조정해도 다음 앱 실행
      시 default 로 리셋. 사용자: "save해도 변경이 안되는 것 같음".

원인: GreenZoneConstants 의 임계들은 @Volatile var (메모리 변수). 슬라이더가
      즉시 값을 GreenZoneConstants 에 쓰지만 SharedPreferences 등 영속
      저장소엔 안 들어감 → 앱 재시작 시 default 로 다시 초기화.

수정:
  1) PostureTuningPrefs.kt 신규
     - loadAll(context): SharedPreferences → GreenZoneConstants 로드
     - saveAll(context): 현재 GreenZoneConstants → SharedPreferences 저장
     - resetAll(context): defaults 로 복원
     - 11개 키 (pitch lying / acc min/max / poll ms / walking 7개)

  2) PiezoMonitoring LaunchedEffect(Unit) 에서 loadAll 호출
     - 앱 진입 시 저장된 사용자 튜닝 값 자동 로드

  3) 11개 slider 모두 onValueChange 마지막에 saveAll 호출
     - 슬라이더 변경 즉시 영속 저장 (별도 save 버튼 불필요)

  4) Reset Thresholds 버튼 추가 (Verification 섹션 위)
     - resetAll 호출 → defaults 로 복원 + prefs 저장
     - Toast 로 안내 ("close & reopen Settings to refresh sliders" —
       slider 의 remember state 는 reopen 해야 갱신됨)

테스트:
  1. Dev settings → Start Wmean = 25 변경 → 앱 종료
  2. 앱 재실행 → Dev settings 다시 열기 → Start Wmean = 25 유지 확인 ✓
  3. 분류기도 25 값으로 동작

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-24 14:55:16 +09:00
..