-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[AN/USER] feat: 학교 선택 화면 구현(#374) #461
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
선택 화면 고생많으셨어요!
궁금한 점 리뷰 남겼습니다!
data class SchoolResponse( | ||
val domain: String, | ||
val id: Int, | ||
val name: String | ||
) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
반영했습니다! 저도 분명 전에 이 문제를 겪었었는데 왜 여기서는 문제없이 돌아가는지 모르겠네요..! 그래도 순서 맞추는 것이 좋을 것 같아 수정했습니다.
private fun handleSuccess(uiState: SelectSchoolUiState.Success) { | ||
val adapter = | ||
ArrayAdapter(this, R.layout.item_select_school, uiState.schools.map { it.name }) | ||
binding.actvSelectSchool.setAdapter(adapter) | ||
binding.actvSelectSchool.setOnItemClickListener { _, _, position, _ -> | ||
val selectedSchool = uiState.schools.firstOrNull { | ||
it.name == adapter.getItem(position) | ||
} | ||
selectedSchool?.let { vm.selectSchool(it.id) } | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
학교를 클릭할 때 마다 ViewModel 의 함수를 호출하는 것이 아닌 다음 화면으로 넘어가려고 할 때 인자에 ID 값을 넘기는 방식은 별로인가요?
해당 방법으로 처리할 수 없는 문제가 있나요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
가능은 한데 uiState에 있는 schoolSelected 값이 버튼의 enabled 값에 바인딩 되어 있어서 화면 회전 시 버튼 활성화 상태가 초기화 됩니다! 회전 대응을 하지 않거나 회전 시 다시 선택 여부를 찾아서 버튼을 설정해 줄 수 있을 것 같긴한데 뷰의 상태를 uiState가 들고 있도록 하는 것이 더 자연스럽지 않을까합니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
버튼의 활성화, 비활성화를 위해서는 그게 최선일 수 있겠네요. 이해했습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
private fun handleSuccess(uiState: SelectSchoolUiState.Success) { | ||
val adapter = | ||
ArrayAdapter(this, R.layout.item_select_school, uiState.schools.map { it.name }) | ||
binding.actvSelectSchool.setAdapter(adapter) | ||
binding.actvSelectSchool.setOnItemClickListener { _, _, position, _ -> | ||
val selectedSchool = uiState.schools.firstOrNull { | ||
it.name == adapter.getItem(position) | ||
} | ||
selectedSchool?.let { vm.selectSchool(it.id) } | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
버튼의 활성화, 비활성화를 위해서는 그게 최선일 수 있겠네요. 이해했습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다!
LGTM!
* feat: 학교 선택 화면 구현 * feat: 학교 조회 api 연결 * feat: 학교 선택 화면 이동 * refactor: 뷰모델 init 대신 액티비티에서 호출하도록 수정 * test: 학교 선택 화면 테스트 작성 * refactor: SchoolUiState 제거 * feat: 로딩, 에러 화면 처리 * refactor: 불필요한 프로퍼티 제거 * feat: 학교 선택 상단 제목 추가 * test: analyticsHelper relaxed true 설정 * refactor: 파라미터 순서 변경 * fix: 화면 회전 시 schoolSelected 값 유지되도록 수정
* feat: 학교 선택 화면 구현 * feat: 학교 조회 api 연결 * feat: 학교 선택 화면 이동 * refactor: 뷰모델 init 대신 액티비티에서 호출하도록 수정 * test: 학교 선택 화면 테스트 작성 * refactor: SchoolUiState 제거 * feat: 로딩, 에러 화면 처리 * refactor: 불필요한 프로퍼티 제거 * feat: 학교 선택 상단 제목 추가 * test: analyticsHelper relaxed true 설정 * refactor: 파라미터 순서 변경 * fix: 화면 회전 시 schoolSelected 값 유지되도록 수정
📌 관련 이슈
✨ PR 세부 내용