📦Course Viewmodel
: Course Viewmodel 하나 만들어서 코스/코스 검색 각각 만들어서 사용

- 지도 현위치 기준 Bounds, 지도 기준 Bounds,
모드 Filtering 객체의 SEARCH_IN 기준으로 판단
필터링 Filtering 객체 사용
- 코스 코스 리스트(API 호출 결과), 필터링된 코스 리스트(로컬에서 필터링 후 저장)
| 코스 → 코스 검색 검색어, 카메라 Position 전달
| 코스 검색 → 코스 카메라 Position 전달
*필터링은 object 이용하여 각 RV에서 수정(싱글톤이므로 자동 동기화 됨)
코스 추천 홈
: CourseFragment 내부에 CourseMap/CourseList 프래그먼트
Samsung Flow 2022-08-22 16-06-55.mp4
-
CourseFragment
- 검색 액티비티로 이동
- 필터링
- VM의 bounds 관찰하면서 API 호출
-
CourseMapFragment
- 현위치 기준 Bounds → VM
- 지도 기준 Bounds → VM
- VM의 filteredList 관찰하면서 UI에 반영
-
CourseListFragment
- VM의 filteredList 관찰하면서 UI에 반영
API 호출
- Bounds 바뀔 때마다 getCourses // API 호출
- 정렬 기준 현위치 중심으로 바뀌면 // API 호출
코스 필터링
- getCourses 결과로 항상 update 한다
- 필터링 RV 바뀌면 updateFilteredList // 내부 로직
코스 검색
: CourseSearchActivity
- CourseSearchActivity
- 필터링
- 지도 (``)
- 리스트 (슬라이딩 패널)
API 호출