Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 영화 티켓 예매 미션 [해시] 1, 2단계 영화 티켓 예매 제출합니다. (#12) * docs: 기능 목록 작성 * feat: 영화 예매하는 기능 구현 * test(Minute): Minute 클래스에 대한 테스트 코드 생성 * feat(Reservation): 예매 생성 시 제약사항 구현 * docs: 기능 구현 목록 수정 - Movie의 띄어쓰기 수정 * feat(Reservation, Money): Reservation의 총 예매 금액 계산 구현 * refactor(Minute): Minute 클래스를 value class로 변경 * feat(MovieRepository): 영화 목 저장소 구현 * feat(MovieListActivity): 리스트뷰에 영화 목록 띄우는 기능 구현 * docs(MovieListActivity): 기능 목록 업데이트 * refactor: Activity 파일을 view 패키지로 옮김 * docs: 기능 목록 구현 상태 갱신 * refactor: layout 이름 변경 - activity_main -> activity_movie_list * feat(activity_reservation): 예약 액티비티의 레이아웃 구현 * feat(MovieListActivity): 영화 목록 화면에서 영화 예매 화면으로 이동 기능 구현 * feat(ReservationActivity): 예약 액티비티에서 받은 영화 데이터를 보여 주는 기능 구현 * fix(ReservationActivity): format 타입에 맞는 값으로 수정 * feat(ReservationCompletedActivity): 예약 완료 화면 레이아웃 구현 * feat(ReservationActivity): 영화 예매 화면에서 예매 완료 화면으로 이동 기능 구현 * docs(README): 기능 목록 업데이트 * style(MovieMockRepository): 목 데이터 오타 수정 * feat(ReservationCompletedActivity): 예매 완료 액티비티에서 받은 예매 데이터를 보여 주는 기능 구현 * refactor(strings): 포맷 문자열들의 아이디명을 변경 * feat(movie_item.xml): 영화 포스터 이미지 설명 추가 * docs: 기능 목록 구현 상태 갱신 * docs: 기능 목록 업데이트 * docs(README): 2단계 기능 목록 작성 * feat(Reservation, Movie): 상영 기간을 사용하도록 도메인 변경 * feat(activity_reservation.xml): 레이아웃에 스피너 추가 * feat(ReservationActivity): 영화 상영 시간 선택 기능 구현 * fix(Reservation, ReservationCompletedActivity): 예매한 상영 날짜, 시간 보여주도록 수정 * docs(README): 기능 목록 업데이트 * feat: 할인 정책 및 할인 조건 구현, 예매 시 할인 정책 적용 * feat(ReservationActivity): 화면 회전 시 상태 데이터 저장 및 복구 구현 * fix: 영화의 상영일의 포맷 변경 - yyyy-MM-dd -> yyyy.MM.dd * fix: LocalDate 타입을 시간 포멧을 지정하지 않도록 코드를 수정 * fix(ReservationActivity): 주말인 경우 time spinner 설정 및 회전 시 선택 된 시간 유지 * refactor(ReservationActivity): time spinner의 초기값을 0으로 수정 * fix(activity_reservation_completed.xml): 스크롤뷰로 수정 * refactor: 불필요한 도메인 클래스 제거 및 디미터 법칙 준수하도록 변경 * refactor(movie_item.xml): movie_item 뷰 배치 수정 * refactor(activity_reservation.xml): RelativeLayout -> ConstraintLayout으로 변경 * refactor(ReservationActivity): ViewBinding 사용하도록 수정 * refactor(ReservationCompletedActivity): ViewBinding 사용하도록 수정 * refactor(MovieListAdapter, MovieItemViewHolder): ViewHolder를 사용해 뷰 객체 캐싱 * refactor(Movie, ReservationUiModel): Parcelable 사용 및 예약 ui 모델 사용하도록 변경 * refactor(ReservationActivity): getParcelableExtra 코드 별도 메서드로 분리 * refactor(ReservationCompletedActivity): getParcelableExtra 코드 별도 메서드로 분리 * refactor(MovieListAdapter): 어댑터 context 제거 및 클릭 이벤트 외부에서 전달하도록 수정 * refactor(Movie): 상영기간에 해당하는 날짜 구하는 반복문 수정 * refactor(ReservationActivity): 메서드 분리 * refactor(ParcelableExtension): parcelable, serializable 버전 처리 코드 별도 extension으로 분리 * test(ReservationTest): 구체적인 테스트명으로 변경 * rename(DateTimeFormatter): DateTimeFormatter로 이름 변경 * refactor(Movie): 뷰에서 사용하는 MovieUiModel 분리 * refactor(ParcelableExtension): 메서드명 수정 --------- Co-authored-by: ki960213 <[email protected]> [해시] 3, 4 단계 영화 티켓 예매 제출합니다. (#34) * refactor(ParcelableExtension): Suppress 어노테이션으로 warning 제거 * fix(MovieUiModel): 연,월이 다를 때 기간이 잘못 계산되는 문제 해결 * refactor: domain 모듈 분리 * docs(README): 기능 목록 업데이트 * docs(README): 좌석 관련 기능 목록 업데이트 * feat(SeatType): 좌석 타입 구현 * feat(Seat): 좌석 기능 구현 * refactor(DiscountPolicy, DiscountCondition): Reservation이 아닌 구체적인 값을 전달해 사용하도록 변경 * refactor(DiscountPolicy): 할인 비율, 할인 금액 각 DiscountPolicy가 갖도록 수정 * feat(ReservationAgency): 예매 가능한지 판단한다 * feat(ReservationAgency): 할인 정책 적용 금액 구하는 기능 및 예매하기 구현 * feat(ReservationActivity): SeatSelectionActivity로 이동 및 ReservationOptions 넘기도록 변경 * refactor(Reservation): 금액 관련 속성 제거 및 좌석을 받도록 수정 * refactor(ReservationUiModel): 좌석 정보 추가 * feat(SeatSelectionActivity): 좌석 선택 화면 구현 * fix(Seat): 좌석 행, 열 수정 * feat(SeatSelectionActivity): 예매 인원에 해당하는 좌석을 선택하고 금액 표시하는 기능 구현 * refactor: ktlintCheck * feat(SeatSelectionActivity): 예매 확인 다이얼로그 및 ReservationCompletedActivity로 이동 구현 * refactor(SeatSelectionActivity): 문자열 추출 * feat(ReservationCompletedActivity): 예매한 좌석 표시 * refactor: 파일 패키지 이동 * feat: 앱바 뒤로가기 구현 * test(SeatSelectionActivityTest): 좌석 선택 UI 테스트 * feat(MovieMockRepository): mock 데이터 추가 * refactor(MovieListActivity): listview를 recyclerview로 변경 * refactor: mapper 별도 파일로 분리 * feat(MovieListActivity): 영화 목록에 광고 추가 구현 * refactor(MovieListAdapter): bind 코드 ViewHolder로 이동 * refactor(MovieListAdapter): 클릭 이벤트 콜백 전달 및 호출 방식 수정 * test(ReservationActivityTest): ReservationActivity UI 테스트 * feat: 광고 배너 웹페이지 연결 * test(ReservationAgencyTest): 좌석 row column 수정 * feat(SeatSelectionActivity): 좌석 동적으로 생성하도록 변경 * refactor(SeatUiModel): 좌석 UI 모델 추가 * refactor: 패키지 변경 * refactor: ktlintFormat * refactor(MovieAdViewHolder, MovieItemViewHolder): 뷰홀더에서 하위 뷰 제거 * refactor(MovieListActivity): 광고 게시 간격 상수 분리 * refactor(MovieListAdapter, MovieListViewType): ViewType을 enum class로 관리 * refactor(SeatSelectionActivityTest): 테스트 함수명 수정 * refactor(ReservationActivityTest): 테스트 함수명 수정 * refactor(ReservationActivity): SeatSelectionActivity로 이동하는 코드 메서드 분리 * refactor(ReservationActivity, SeatSelectionActivity): 액티비티 진입에 필요한 Intent 생성 코드 이동 * refactor(ReservationCompletedActivity): 액티비티 진입에 필요한 Intent 생성 코드 이동 * refactor(ReservationActivity): 액티비티 진입에 필요한 Intent 생성 코드 이동 * test(SeatSelectionActivityTest, ReservationActivityTest): newIntent 메서드 사용해서 인텐트 생성하도록 수정 * feat(MovieListFragment): 영화 목록 화면 fragment로 변경 * feat(MovieMainActivity): BottomNavigationView 구현 * feat(ReservationListFragment): 예매 내역 레이아웃 구현 * feat(ReservationListFragment): RecyclerView 구현 * feat(ReservationListFragment): 클릭 시 예매 내역 상세 화면으로 이동 구현 * feat(ReservationListFragment): Data 저장 구현 * refactor(MovieListAdapter): 클릭 이벤트 콜백 하나로 합치기 * feat(AlarmReceiver): 예매 후 상영 전 시간 푸시 알림 구현 * feat(SettingFragment, AlarmController): 푸시 알림 수신 설정 구현 * refactor(AlarmController): 알림 받을 시간 수정 * refactor(AlarmController, AlarmReceiver): 코드 정리 및 메서드 분리 * test(MovieMainActivityTest): 설정 프래그먼트 테스트 * refactor(AndroidManifest): 필요없는 권한 삭제 * refactor(layout): xml formatting * test(SettingFragmentTest): 설정 프래그먼트 테스트 * test(MovieMainActivityTest): Fragment 선택 테스트 * refactor(reservation_item.xml): isFocusable, isClickable 설정 삭제 * refactor(SettingFragment): property formatting * refactor(SettingFragment): if문 depth 수정 * refactor(Adapter, ViewHolder): click listener 파라미터 고차함수 -> OnItemClick으로 변경 및 수정 * refactor(MovieListFragment): click listener 분리 * refactor(ReservationListFragment): 변수 분리 가독성 수정 * refactor(ReservationCompletedActivity): 권한 유도 코드 이동 * refactor(AlarmController): context private 수정 * refactor(AlarmReceiver, AlarmController): ALARM_REQUEST_CODE 상수 이동 * refactor(ReservationCompletedActivity): pendingIntent를 리턴하는 함수 생성 * refactor(SeatSelectionActivity): repositoryMock에 직접 접근이 아닌 interface 타입 동작으로 수정 * refactor(SettingFragment): defaultSharedPreferences로 변경 * refactor(Fragments): 레이아웃 id 생성자 사용 * refactor(MovieMainActivity): Fragment 재활용 * refactor(ReservationCompletedActivity): 권한 요청 코드 이동 --------- Co-authored-by: 박재성 <[email protected]> Co-authored-by: EmilyCh0 <[email protected]>
- Loading branch information