docs(home): 사업자 정보 검증을 기록한다
This commit is contained in:
@@ -399,7 +399,7 @@
|
|||||||
|
|
||||||
### Phase 8: 사업자 정보 접기/더보기 구현
|
### Phase 8: 사업자 정보 접기/더보기 구현
|
||||||
|
|
||||||
- [ ] **Task 8.1: 사업자 정보 UI 구현**
|
- [x] **Task 8.1: 사업자 정보 UI 구현**
|
||||||
- 수정: `app/src/main/res/layout/fragment_v2_main_home.xml`
|
- 수정: `app/src/main/res/layout/fragment_v2_main_home.xml`
|
||||||
- 수정: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/HomeMainFragment.kt`
|
- 수정: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/HomeMainFragment.kt`
|
||||||
- 구현 내용:
|
- 구현 내용:
|
||||||
@@ -535,3 +535,10 @@
|
|||||||
- 2026-06-05: 보안 재리뷰에서 유료 미구매 item으로 재바인딩할 때 기존 Coil 비동기 요청이 늦게 완료될 가능성이 차단 이슈로 지적됐다. `HomePopularCommunityAdapter.bindImage()`의 null/blank 경로에서 `imageView.dispose()`로 기존 Coil 요청을 취소한 뒤 drawable을 비우도록 보완했다. 이후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `./gradlew :app:testDebugUnitTest`를 실행했고 모두 BUILD SUCCESSFUL을 확인했다.
|
- 2026-06-05: 보안 재리뷰에서 유료 미구매 item으로 재바인딩할 때 기존 Coil 비동기 요청이 늦게 완료될 가능성이 차단 이슈로 지적됐다. `HomePopularCommunityAdapter.bindImage()`의 null/blank 경로에서 `imageView.dispose()`로 기존 Coil 요청을 취소한 뒤 drawable을 비우도록 보완했다. 이후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `./gradlew :app:testDebugUnitTest`를 실행했고 모두 BUILD SUCCESSFUL을 확인했다.
|
||||||
- 2026-06-05: Phase 7 인기 커뮤니티 UI를 실제 기기에서 확인할 수 있도록 `HomeMainFragment.phase6SampleContent()`의 `popularCommunityPosts`에 무료/유료 미구매/구매 완료 샘플 3건을 임시 주입했다. 샘플은 추천용 계약에 맞춰 keyword를 숨기고, 유료 미구매 샘플은 lock overlay와 가격 capsule을 확인할 수 있게 구성했다. `./gradlew :app:compileDebugKotlin`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:ktlintCheck`, `./gradlew :app:mergeDebugResources`는 모두 BUILD SUCCESSFUL을 확인했다. `./gradlew :app:installDebug`는 연결 기기가 없어 `No connected devices!`로 실패해 실기기 설치/육안 확인은 수행하지 못했다.
|
- 2026-06-05: Phase 7 인기 커뮤니티 UI를 실제 기기에서 확인할 수 있도록 `HomeMainFragment.phase6SampleContent()`의 `popularCommunityPosts`에 무료/유료 미구매/구매 완료 샘플 3건을 임시 주입했다. 샘플은 추천용 계약에 맞춰 keyword를 숨기고, 유료 미구매 샘플은 lock overlay와 가격 capsule을 확인할 수 있게 구성했다. `./gradlew :app:compileDebugKotlin`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:ktlintCheck`, `./gradlew :app:mergeDebugResources`는 모두 BUILD SUCCESSFUL을 확인했다. `./gradlew :app:installDebug`는 연결 기기가 없어 `No connected devices!`로 실패해 실기기 설치/육안 확인은 수행하지 못했다.
|
||||||
- 2026-06-05: 사용자 확인 중 커뮤니티 게시물 이미지가 잘리는 문제가 있어 `view_feed_community.xml`의 root `374dp`, 이미지 container `346dp x 236dp` 고정 크기를 제거했다. root와 이미지 container는 `match_parent`로 두고, `FeedCommunityView.onMeasure()`에서 실제 card content width 기준 Figma `346:236` 비율로 이미지 높이를 계산하도록 변경했다. Kotlin `clipToOutline`/`ViewOutlineProvider.setRoundRect(...)` 계약은 유지했다. `FeedViewTest`에 동적 이미지 폭/높이 회귀 테스트를 추가했으며, 최초 테스트는 이미지 URL 미바인딩으로 container가 `GONE`이라 실패했고 테스트 조건을 실제 표시 상태로 수정한 뒤 성공했다. 이후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.feed.FeedViewTest"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:ktlintCheck`가 모두 BUILD SUCCESSFUL임을 확인했다.
|
- 2026-06-05: 사용자 확인 중 커뮤니티 게시물 이미지가 잘리는 문제가 있어 `view_feed_community.xml`의 root `374dp`, 이미지 container `346dp x 236dp` 고정 크기를 제거했다. root와 이미지 container는 `match_parent`로 두고, `FeedCommunityView.onMeasure()`에서 실제 card content width 기준 Figma `346:236` 비율로 이미지 높이를 계산하도록 변경했다. Kotlin `clipToOutline`/`ViewOutlineProvider.setRoundRect(...)` 계약은 유지했다. `FeedViewTest`에 동적 이미지 폭/높이 회귀 테스트를 추가했으며, 최초 테스트는 이미지 URL 미바인딩으로 container가 `GONE`이라 실패했고 테스트 조건을 실제 표시 상태로 수정한 뒤 성공했다. 이후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.feed.FeedViewTest"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:ktlintCheck`가 모두 BUILD SUCCESSFUL임을 확인했다.
|
||||||
|
- 2026-06-05: Phase 8 사업자 정보 UI 구현으로 `fragment_v2_main_home.xml`에 기본 `maxLines=3`/`ellipsize=end`와 `tv_home_business_info_toggle`을 추가하고, `HomeBusinessInfoBinder` 및 `HomeMainFragment.setUpBusinessInfo()`에서 더보기/접기 토글과 `TextView.post { lineCount }` 기반 3줄 이하 toggle 숨김 처리를 연결했다. RED 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`를 먼저 실행해 `HomeBusinessInfoBinder`, `tv_home_business_info_toggle` 미존재 컴파일 실패를 확인했고, 구현 후 동일 targeted test와 `./gradlew :app:mergeDebugResources`가 BUILD SUCCESSFUL임을 확인했다.
|
||||||
|
- 2026-06-05: 사용자 확인에 따라 `home_recommendation_business_info`와 기존 `company_info` 중복을 제거했다. `fragment_v2_main_home.xml`은 공용 `@string/company_info`를 참조하도록 변경하고, 한국어/영어/일본어 `home_recommendation_business_info` 리소스는 삭제했다. 리뷰 게이트에서 지적된 접힘 상태 lineCount 측정 문제는 전체 줄 수 측정 시 일시적으로 `maxLines=Int.MAX_VALUE`/`ellipsize=null`로 측정한 뒤 다시 접힘 상태로 되돌리도록 보완했고, 4줄 이상일 때 toggle이 노출되는 회귀 테스트를 추가했다.
|
||||||
|
- 2026-06-05: `HomeBusinessInfoBinder`의 const naming warning을 해결하기 위해 `CollapsedMaxLines`를 `COLLAPSED_MAX_LINES`로 변경했다. 또한 긴 텍스트 줄 수 측정은 접힘 상태의 기존 layout을 읽지 않도록 `HomeMainFragment`에서 전체 줄 표시 상태를 적용한 뒤 다음 `post`에서 `lineCount`를 읽고 다시 접힘 상태로 되돌리도록 보완했다.
|
||||||
|
- 2026-06-05: 사용자 추가 요청에 따라 사업자 정보 `더보기/접기`를 별도 하단 버튼이 아니라 본문 말줄임표 우측에 붙는 inline text action으로 변경하는 후속 작업을 진행한다.
|
||||||
|
- 2026-06-05: 사업자 정보 `더보기/접기`를 하단 별도 버튼에서 본문 inline action으로 변경했다. `tv_home_business_info_toggle` View를 제거하고 `HomeBusinessInfoBinder`에서 접힘 상태는 `… 더보기`, 펼침 상태는 본문 뒤 `접기`를 clickable span으로 붙이도록 구현했다. `HomeMainFragmentLayoutTest`에 별도 toggle View 제거, inline 더보기 suffix, clickable span 확장/접기, 3줄 이하 action 미노출 테스트를 추가했다. 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `./gradlew :app:testDebugUnitTest`를 실행했고 모두 BUILD SUCCESSFUL을 확인했다.
|
||||||
|
- 2026-06-05: 사업자 정보 inline `더보기`가 말줄임표와 너무 붙어 보여 `… 더보기`에서 `… 더보기`로 간격을 한 칸 늘렸다. 관련 inline suffix 테스트 기대값도 함께 갱신한다.
|
||||||
|
- 2026-06-05: 펼침 상태의 `접기` action도 본문에 붙어 보이지 않도록 action 앞에 공백 2칸을 추가했다. 접힘 상태의 `더보기` 간격과 동일한 시각적 여백을 유지하도록 테스트 기대값을 갱신했다.
|
||||||
|
|||||||
Reference in New Issue
Block a user