Skip to content
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] 홈 화면 회전시 이전에 선택한 화면을 그대로 보여준다. (#534) #544

Merged
merged 11 commits into from
Oct 16, 2023

Conversation

SeongHoonC
Copy link
Member

@SeongHoonC SeongHoonC commented Oct 14, 2023

📌 관련 이슈

✨ PR 세부 내용

홈화면에서 회전에도 이전에 선택한 화면을 기억
티켓 리스트, 마이페이지 로그인하지 않았을 경우 이벤트 발생
마이페이지 ScrollView 적용 필요

@SeongHoonC SeongHoonC added AN 안드로이드에 관련된 작업 USER labels Oct 14, 2023
@SeongHoonC SeongHoonC self-assigned this Oct 14, 2023
@github-actions github-actions bot requested review from EmilyCh0 and re4rk October 14, 2023 09:13
Copy link
Collaborator

@re4rk re4rk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다! 코멘트 확인 부탁드려요!

Comment on lines +58 to +61
when (event) {
is SignInEvent.SignInSuccess -> handleSuccessEvent()
is SignInEvent.SignInFailure -> handleFailureEvent()
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

handleEvent로 분리 부탁드립니다!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저는 지금도 충분히 깔끔하다고 생각합니다ㅎㅎ uistate, event 둘다 있다면 모를까 지금은 분리하면 오히려 가독성이 떨어질 것 같아요!

vm.event.collect {
handleEvent(it)
private fun initBackPressed() {
val callback = object : OnBackPressedCallback(true) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

백버튼도 커스텀이 가능하군요

}
}

private fun selectItemWhenSignIn(homeItemType: HomeItemType) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

함수명이 조금 어색하게 느껴진다고 생각하는데 베르의 의견은 어떤가요??
selectItemOrSignIn와 같이 다른 함수들과 비슷하게 진행하는건 어떤가요??

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

좋아요!

Comment on lines 35 to 38
if (!authRepository.isSigned) {
_event.emit(HomeEvent.ShowSignIn)
} else {
_selectedItem.emit(homeItemType)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (!authRepository.isSigned) {
_event.emit(HomeEvent.ShowSignIn)
} else {
_selectedItem.emit(homeItemType)
if (authRepository.isSigned) {
_selectedItem.emit(homeItemType)
} else {
_event.emit(HomeEvent.ShowSignIn)

흐름상 !을 빼도 괜찮을 것같은데 어떻게 생각하시나요??

Copy link
Member

@EmilyCh0 EmilyCh0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다 👍 코멘트 확인해주세요!

Comment on lines +58 to +61
when (event) {
is SignInEvent.SignInSuccess -> handleSuccessEvent()
is SignInEvent.SignInFailure -> handleFailureEvent()
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저는 지금도 충분히 깔끔하다고 생각합니다ㅎㅎ uistate, event 둘다 있다면 모를까 지금은 분리하면 오히려 가독성이 떨어질 것 같아요!

@@ -38,85 +38,104 @@ class HomeViewModelTest {
}

@Test
fun `축제 목록을 요청했을 때 토큰이 있으면 축제 목록이 보인다`() = runTest {
fun `축제 목록을 요청했을 때 토큰이 있으면 축제 목록이 보이고 이벤트가 발생하지 않는다`() = runTest {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

축제 목록 요청시에는 사용자 인증 유무 확인이 필요 없는 거 아닌가요?_?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

필요없다는 것도 테스트로 확인하고 싶었어요!

assertThat(vm.selectedItem.value).isEqualTo(HomeItemType.FESTIVAL_LIST)

// and
expectNoEvents()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이벤트가 발생하지 않은 것도 확인할 수 있군요 👍

}
}

@Test
fun `마이페이지를 요청했을 때 토큰이 있으면 마이페이지 보기 이벤트가 발생한다`() = runTest {
fun `마이페이지를 요청했을 때 토큰이 있으면 마이페이지가 보이고 이벤트가 발생하지 않는다`() = runTest {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

테스트 이름과 내용이 일치하지 않아요..! 마이페이지 테스트인데 TICKET_LIST를 테스트하고 있습니다ㅋㅋ

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

앗 수정하겠습니다!

Copy link
Collaborator

@re4rk re4rk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다!

@SeongHoonC SeongHoonC merged commit cfea74c into dev Oct 16, 2023
1 check passed
@SeongHoonC SeongHoonC deleted the feat/#534 branch October 16, 2023 08:11
BGuga pushed a commit that referenced this pull request Oct 17, 2023
* refactor: show 이벤트 제거

* refactor: 홈 화면 회전시 축제리스트로 되돌아가는 문제 해결

* refactor: 필요없는 이벤트 제거

* feat: 로그인하지 않고 돌아가면 축제리스트 화면으로 돌아간다

* refactor: 홈화면 로그인화면 테스트 리팩터링

* refactor: 필요 없는 코드 제거

* refactor: 테스트 함수명 의미에 맞게 변경

* refactor: selectItemOrSignIn 함수명 변경

* refactor: 함수 순서 변경

* fix: 잘못된 테스트 코드 내용 수정

* refactor: laitInit 를 by lazy 로 변경
BGuga pushed a commit that referenced this pull request Oct 17, 2023
* refactor: show 이벤트 제거

* refactor: 홈 화면 회전시 축제리스트로 되돌아가는 문제 해결

* refactor: 필요없는 이벤트 제거

* feat: 로그인하지 않고 돌아가면 축제리스트 화면으로 돌아간다

* refactor: 홈화면 로그인화면 테스트 리팩터링

* refactor: 필요 없는 코드 제거

* refactor: 테스트 함수명 의미에 맞게 변경

* refactor: selectItemOrSignIn 함수명 변경

* refactor: 함수 순서 변경

* fix: 잘못된 테스트 코드 내용 수정

* refactor: laitInit 를 by lazy 로 변경
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
AN 안드로이드에 관련된 작업 USER
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

[AN] 홈 화면 회전시 이전에 선택한 화면을 그대로 보여준다.
3 participants