From f4ec5451c61b0d000be167440ac37c3adb2f0a70 Mon Sep 17 00:00:00 2001 From: hodu <92203597+Junyoung-WON@users.noreply.github.com> Date: Mon, 9 Sep 2024 19:31:43 +0900 Subject: [PATCH] deploy: v1.0.1 (#357) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor: PR 템플릿 파일명 및 경로 수정 * refactor: pr 템플릿 경로 수정 Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: devhoya97 Co-authored-by: YoonJuHo * docs: 서비스 소개글 작성 (#127) * docs: PR 템플릿 오타 수정 (#154) - 오타 수정 및 개행 조정 - Issue Number 태그 형식 추가 * deploy: 스타카토 v1.0.0 #312 (#313) * init: 프로젝트 세팅 * refactor: PR 템플릿 파일명 및 경로 수정 * refactor: pr 템플릿 경로 수정 Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: devhoya97 Co-authored-by: YoonJuHo * build: develop-be 브랜치의 CI 설정 #6 (#7) * build: 초기 ci 템플릿 생성 Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: devhoya97 Co-authored-by: YoonJuHo * build: ci 초기 트리거 설정 Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: devhoya97 Co-authored-by: YoonJuHo * fix: 권한 수정 설정 Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: devhoya97 Co-authored-by: YoonJuHo * fix: working directory 설정 Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: devhoya97 Co-authored-by: YoonJuHo * fix: 권한 재설정 Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: devhoya97 Co-authored-by: YoonJuHo --------- Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: devhoya97 Co-authored-by: YoonJuHo * feat: Entity 구성 #2 (#17) * chore: 데이터 베이스 설정 * feat: Base Entity 구성 * feat: Pin Entity 구성 * feat: Travel Entity 구성 * feat: Member Entity 구성 * feat: Mate Entity 구성 * feat: Visit Entity 구성 * feat: Visit Image Entity 구성 * feat: Visit Log Entity 구성 * refactor: Table 애노테이션 삭제 * refactor: Soft Delete 적용 * feat: ControllerAdvice 생성 #29 (#34) * feat: Visit domain skeleton 구현 #31 (#37) Co-authored-by: linirini <2001yerin@naver.com> * feat: Travel Domain Skeleton Code 작성 #32 (#36) * feat: travel skeleton code 작성 * feat: travel 생성, 수정 dto 작성 및 예외 핸들링 * feat: Mate 도메인 빌더 추가 * style: 코드 컨벤션 준수를 위한 공백 제거 * build: Docker Compose Setting #27 (#40) * chore: gitignore 파일 추가 * chore: mysql 디펜던시 추가 * chore: Profile 분리 * feat: Docker 파일 설정 * feat: 여행 상세 생성 API 구현 #18 (#43) * build: RestAssured 의존성 추가 * test: 여행 상세 생성 인수 테스트 작성 * feat: 임시 MemberIdArgumentResolver 구현 * feat: Lombok 추가 * feat: Database 초기화 구현 * feat: 여행 상세 성공 서비스 구현 * fix: resolveArgument 반환 타입 오류 수정 * feat: 여행 상세 생성 성공 컨트롤러 구현 * feat: 여행 상세 생성 시 필수값 누락 검증 구현 * test: 글자 수 제한 검증 인수 테스트 추가 * refactor: 생성자에 builder 지정 * feat: 시작 날짜와 끝 날짜 도메인 검증 구현 * feat: 시작 날짜와 끝 날짜 예외 처리 테스트 및 구현 * style: 코드 컨벤션 적용 * refactor: parameter명 변경 * feat: transactional 적용 * style: paremeter 형식 통일 * style: parameter 형식 통일 * refactor: display name 오류 수정 * refactor: 불필요한 상수 제거 * refactor: paramterized test로 리팩터링 * style: 개행 제거 * refactor: 인자 변경 * refactor: 공통 예외 클래스명 변경 * feat: 범위 예외 핸들러 추가 * refactor: 서비스, 통합 테스트 보일러 플레이트 코드 제거 * refactor: builder 사용 시 필수 값 누락 제약 추가 * refactor: 도메인으로 변환하는 메서드를 dto에 추가 * build: CD yml 파일 구성 #28 (#53) * feat: CI/CD 설정 * feat: CI/CD 검증용 트리거 설정 * fix: CI/CD workflow 수정 * fix: CI/CD workflow 재수정 * fix: CI/CD workflow 절대 경로 수정 * chore: DDL 생성 전략 변경 * chore: dev 환경 DDL 생성 전략 변경 * refactor: 검증용 트리거 제거 * fix: 도커 이미지 기반 컨테이너 생성으로 변경 * refactor: 중간 테이블 엔티티 수정 #56 (#57) * refactor: 중간 테이블명 TravelMember로 변경 * refactor: 중간 테이블 OneToMany 필드 추가 * refactor: Member OneToMany 제거 * refactor: OneToMany List 초기화 * refactor: 연관관계 편의 메서드 사용 * chore: ddl 전략 임시 변경 * chore: ddl 전략 변경 * feat: 특정 방문 기록 삭제 API 구현 #26 (#42) * feat: 특정 방문 기록 삭제 API 구현 * feat: 양수가 아닌 id로 특정 방문 기록 삭제를 시도할 때 예외 처리 기능 구현 * feat: 방문 기록 삭제 시 방문 로그도 함께 삭제되는 기능 구현 * refactor: 커스텀 예외를 제거하는 방향으로 변경 * fix: 예외를 못 잡던 문제 해결 * refactor: 메서드명 적절하게 변경 * build: Docker Compose Setting #27 (#40) * chore: gitignore 파일 추가 * chore: mysql 디펜던시 추가 * chore: Profile 분리 * feat: Docker 파일 설정 * feat: 여행 상세 생성 API 구현 #18 (#43) * build: RestAssured 의존성 추가 * test: 여행 상세 생성 인수 테스트 작성 * feat: 임시 MemberIdArgumentResolver 구현 * feat: Lombok 추가 * feat: Database 초기화 구현 * feat: 여행 상세 성공 서비스 구현 * fix: resolveArgument 반환 타입 오류 수정 * feat: 여행 상세 생성 성공 컨트롤러 구현 * feat: 여행 상세 생성 시 필수값 누락 검증 구현 * test: 글자 수 제한 검증 인수 테스트 추가 * refactor: 생성자에 builder 지정 * feat: 시작 날짜와 끝 날짜 도메인 검증 구현 * feat: 시작 날짜와 끝 날짜 예외 처리 테스트 및 구현 * style: 코드 컨벤션 적용 * refactor: parameter명 변경 * feat: transactional 적용 * style: paremeter 형식 통일 * style: parameter 형식 통일 * refactor: display name 오류 수정 * refactor: 불필요한 상수 제거 * refactor: paramterized test로 리팩터링 * style: 개행 제거 * refactor: 인자 변경 * refactor: 공통 예외 클래스명 변경 * feat: 범위 예외 핸들러 추가 * refactor: 서비스, 통합 테스트 보일러 플레이트 코드 제거 * refactor: builder 사용 시 필수 값 누락 제약 추가 * refactor: 도메인으로 변환하는 메서드를 dto에 추가 * build: CD yml 파일 구성 #28 (#53) * feat: CI/CD 설정 * feat: CI/CD 검증용 트리거 설정 * fix: CI/CD workflow 수정 * fix: CI/CD workflow 재수정 * fix: CI/CD workflow 절대 경로 수정 * chore: DDL 생성 전략 변경 * chore: dev 환경 DDL 생성 전략 변경 * refactor: 검증용 트리거 제거 * fix: 도커 이미지 기반 컨테이너 생성으로 변경 * fix: rebase 과정에서 파일이 꼬인 문제 해결 * test: HttpHeaders.AUTHORIZATION 사용 * refactor: 중간 테이블 엔티티 수정 #56 (#57) * refactor: 중간 테이블명 TravelMember로 변경 * refactor: 중간 테이블 OneToMany 필드 추가 * refactor: Member OneToMany 제거 * refactor: OneToMany List 초기화 * refactor: 연관관계 편의 메서드 사용 * chore: ddl 전략 임시 변경 * chore: ddl 전략 변경 * feat: Pin, Visit, VisitLog 생성자에 builder 추가 * feat: Pin repository 추가 * refactor: visit이 삭제되기 전에 visit에 의존하는 visitLog들이 먼저 삭제되도록 순서 변경 * test: 방문 기록 삭제에 대한 서비스 슬라이스 테스트 추가 * test: 방문 기록이 갖는 모든 방문 로그 삭제 메서드 테스트 * fix: Modifying을 사용할 때 영속성컨텍스트와 관련하여 발생하던 문제 해결 * refactor: visitLog의 content를 필수값으로 변경 * test: 컨벤션에 맞게 Controller 테스트 클래스 변경 * fix: ConstraintViolationException의 예외 메시지를 정해둔 형식에 맞게 변경 --------- Co-authored-by: YoonJuHo Co-authored-by: linirini <101927543+linirini@users.noreply.github.com> * refactor: 여행 상세 생성 서비스 반환 타입 변경 (#63) * feat: 여행 상세 목록 조회 API 구현 #19 (#60) * test: 여행 상세 목록 조회 통합 테스트 작성 * feat: 여행 상세 목록 조회 DTO 구현 * feat: 모든 여행 상세 목록 조회 서비스 구현 * refactor: 미사용 반환값 제거 * feat: 년도 조건에 따른 여행 상세 조회 서비스 구현 * test: import 수정 * test: 년도와 사용자 식별자로 여행 목록 조회하는 JPQL 테스트 추가 * style: 코드 컨벤션 적용 * test: 여행 상세 목록 조회 컨트롤러 구현 * test: disabled 제거 및 테스트 오류 수정 * refactor: 불필요한 변수 분리 제거 * refactor: Optional로 분기 처리 * test: DisplayName 수정 * refactor: DTO 이름 변경 * feat: 방문 기록 생성 API 구현 #21 (#64) * feat: 방문 기록 생성 기능 구현 * feat: getter 및 builder 추가 * feat: VisitService에 Transactional 적용 * test: 방문 기록 생성 테스트 * fix: 오타 수정 * style: 코드 컨벤션 적용 * fix: deleteById에 Transactional annotation 추가 * refactor: builder 파라미터 NonNull 설정 추가 * refactor: 데이터 개수 감소 * refactor: 예외 메시지 구체화 및 상태 코드 변경 * feat: 특정 여행 상세 수정 API 구현 #22 (#62) * build: Docker Compose Setting #27 (#40) * chore: gitignore 파일 추가 * chore: mysql 디펜던시 추가 * chore: Profile 분리 * feat: Docker 파일 설정 * feat: 여행 상세 생성 API 구현 #18 (#43) * build: RestAssured 의존성 추가 * test: 여행 상세 생성 인수 테스트 작성 * feat: 임시 MemberIdArgumentResolver 구현 * feat: Lombok 추가 * feat: Database 초기화 구현 * feat: 여행 상세 성공 서비스 구현 * fix: resolveArgument 반환 타입 오류 수정 * feat: 여행 상세 생성 성공 컨트롤러 구현 * feat: 여행 상세 생성 시 필수값 누락 검증 구현 * test: 글자 수 제한 검증 인수 테스트 추가 * refactor: 생성자에 builder 지정 * feat: 시작 날짜와 끝 날짜 도메인 검증 구현 * feat: 시작 날짜와 끝 날짜 예외 처리 테스트 및 구현 * style: 코드 컨벤션 적용 * refactor: parameter명 변경 * feat: transactional 적용 * style: paremeter 형식 통일 * style: parameter 형식 통일 * refactor: display name 오류 수정 * refactor: 불필요한 상수 제거 * refactor: paramterized test로 리팩터링 * style: 개행 제거 * refactor: 인자 변경 * refactor: 공통 예외 클래스명 변경 * feat: 범위 예외 핸들러 추가 * refactor: 서비스, 통합 테스트 보일러 플레이트 코드 제거 * refactor: builder 사용 시 필수 값 누락 제약 추가 * refactor: 도메인으로 변환하는 메서드를 dto에 추가 * build: CD yml 파일 구성 #28 (#53) * feat: CI/CD 설정 * feat: CI/CD 검증용 트리거 설정 * fix: CI/CD workflow 수정 * fix: CI/CD workflow 재수정 * fix: CI/CD workflow 절대 경로 수정 * chore: DDL 생성 전략 변경 * chore: dev 환경 DDL 생성 전략 변경 * refactor: 검증용 트리거 제거 * fix: 도커 이미지 기반 컨테이너 생성으로 변경 * refactor: 중간 테이블 엔티티 수정 #56 (#57) * refactor: 중간 테이블명 TravelMember로 변경 * refactor: 중간 테이블 OneToMany 필드 추가 * refactor: Member OneToMany 제거 * refactor: OneToMany List 초기화 * refactor: 연관관계 편의 메서드 사용 * chore: ddl 전략 임시 변경 * chore: ddl 전략 변경 * feat: 비어있는 요청 에러 핸들링 추가 * feat: 특정 여행 상세 수정 서비스 구현 * feat: 특정 여행 상세 수정 컨트롤러 구현 * feat: 비어있는 요청 에러 핸들링 추가 * feat: 특정 여행 상세 수정 서비스 구현 * feat: 특정 여행 상세 수정 컨트롤러 구현 * refactor: DirtiesContext 삭제 * refactor: Transactional 읽기 전용 옵션 구성 * feat: 방문 기록 날짜 검증 로직 추가 * refactor: 메서드 체이닝 적용 * refactor: 수정 작업 테스트 환경 동일하게 유지 --------- Co-authored-by: linirini <101927543+linirini@users.noreply.github.com> Co-authored-by: devhoya97 <146502065+devhoya97@users.noreply.github.com> * fix: 논리적 삭제 데이터는 조회에서 제외 #66 (#68) * test: 쿼리 메서드 사용 * fix: sqlDelete문에 테이블명 변경사항 반영 * fix: 삭제된 데이터 제외하고 조회하도록 조건 추가 * fix: 삭제된 데이터 제외하고 조회하도록 조건 추가 * fix: 특정 방문 기록 삭제 API 호출 시 관련된 VisitImage를 모두 삭제하도록 수정 #65 (#67) * feat: visitId에 맞는 visitImage들을 모두 삭제하는 기능 구현 * fix: visit을 삭제해도 visit에 포함된 모든 visitImage들이 삭제되지 않던 문제 해결 * test: 엔티티 생성시 가독성을 위한 개행 삭제 * refactor: JPQL에서 VisitLog를 vl로 축약 * fix: 충돌해결 * test: 경계값에 포함되지 않는 변수 제거 * feat: 특정 여행 상세 조회 API 구현 #20 (#73) * test: 특정 여행 상세 조회 통합 테스트 작성 * feat: 특정 여행 상세 조회 DTO 구현 * fix: 삭제되지 않은 데이터만 찾도록 쿼리 메서드 수정 * feat: 특정 여행 상세 조회 서비스 구현 * feat: 특정 여행 상세 조회 컨트롤러 구현 * test: 존재하지 않는 특정 여행 상세 조회 테스트 * feat: null 필드 응답에 미포함 구현 * style: 코드 컨벤션 적용 * fix: 응답 형식 오류 수정 * feat: 특정 여행 상세 삭제 API 구현 #24 (#72) * style: 코드 컨벤션 적용 * feat: 특정 여행 상세 삭제 서비스 구현 * feat: 특정 여행 상세 삭제 컨트롤러 구현 * refactor: 검증 메서드 분리 * refactor: Visit 논리적 삭제 전파 순서 수정 * feat: 특정 방문 기록 조회 API 구현 #25 (#76) * feat: 특정 방문 기록 조회 API 기능 구현 * fix: Repository 조회시 논리적 삭제가 되지 않은 엔티티들만 가져오도록 변경 * test: System.out 메서드 제거 * refactor: 메서드명 통일 및 CRUD 순서로 배치 * refactor: 사용하지 않는 DTO 제거 * test: 서비스 메서드명 변경에 따른 테스트 메서드명 변경 * fix: 특정 방문 기록이 몇 번째 방문인지 계산할 때, 더 늦게 방문한 기록까지 세던 문제 해결 * test: 몇 번째 방문인지 계산할 때, 이전의 방문만 셀 수 있는지 테스트 * feat: Pin 연관관계 추가 #80 (#83) * feat: Pin에 Member 연관관계 추가 * refactor: private 보조 메서드 순서 변경 * feat: logging 추가 #86 (#89) * feat: 간단한 Error Logging 추가 * refactor: Logging Level 변경 * feat: VisitLog, VisitImage 양방향 관계 설정 및 논리적 삭제 제거 #87 (#88) * feat: visitLog, visitImage 논리적 삭제 제거 * feat: visitLog, visitImage 양방향 설정 및 양방향 관계 설정에 따른 여행, 방문기록 삭제 로직 변경 * fix: 여행 상세 수정 날짜 필터링 오류와 썸네일 저장 오류 수정 #90 (#91) * fix: 여행 상세 수정 날짜 필터링 오류 수정 * fix: 여행 상세 생성 시 썸네일을 저장하지 않는 오류 수정 * refactor: dto 필드 수정 (#95) * feat: 여행 상세 목록 조회 시 최신순 정렬 #96 (#100) * feat: 여행 상세 목록 최신순으로 조회 * refactor: JPQL 메서드명 변경 * feat: 특정 여행 상세 조회 API에서 방문 기록 오래된 순 정렬 #101 (#102) * refactor: 반환값 제거 및 미사용 Param 제거 * feat: 특정 여행 상세 조회 시 방문 기록 오래된 순 조회 구현 * fix: Travel 삭제시 발생하는 오류 수정 #103 (#105) * fix: 여행에 포함된 방문 기록의 존재 여부를 검사할 때 논리적으로 삭제되지 않은 방문 기록만 고려하도록 수정 * fix: 여행을 삭제하면 연관된 TravelMember에 논리적 삭제가 전파되도록 수정 * refactor: JPQL에서 쿼리메서드로 변경 * refactor: @SQLRestriction으로 soft-delete하도록 변경 #106 (#107) * refactor: @SQLRestriction으로 soft-delete하도록 변경 * fix: 정렬 조건 누락 추가 * test: displayName 변경 * docs: swagger 컨벤션 설정 및 적용 (#116) * build: 중복 의존성 정의 제거 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * build: OpenApi 의존성 추가 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * chore: 전역적인 media type 설정 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * chore: open api skeleton code 작성 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * fix: constraint redefine 불가로 인한 오류 수정 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * style: 의미없는 개행 제거 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * docs: 누락된 설명 추가 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls --------- Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * feat: Entity 수정 (#119) * feat: 엔티티 구조 변경 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * style: 불필요한 개행 제거 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls --------- Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * build: 사용하지 않는 도커 이미지 삭제 workflow 구성 #84 (#120) * build: CD 작업 시 기존 도커 이미지 삭제 * build: CD 작업 시 기존 도커 이미지 삭제 순서 변경 * build: CD 트리거 수정 * refactor: 엔티티 수정 #125 (#126) * refactor: base entity 필드명 수정 * refactor: visitLog에 base Entity 추가 및 논리적 삭제 구현 * feat: 로그인 API 구현 #123 (#128) * build: jwt 의존성 추가 * chore: jwt 관련 환경 설정 추가 * test: 회원 생성 및 토큰 발급 성공 테스트 & 닉네임 중복 테스트 추가 * feat: 토큰 발급 구현 * feat: 로그인 서비스 구현 * feat: 로그인 컨트롤러 구현 * feat: 닉네임 VO 분리 및 예외 처리 구현 * refactor: getter 재정의 제거 * test: 닉네임 형식 예외 처리에 따른 테스트 수정 * feat: 필수값 누락 예외 처리 구현 * style: 코드 컨벤션 적용 * refactor: 누락된 dto 패키지 추가 * refactor: 애너테이션명 변경 * feat: 토큰 파싱해서 member 찾도록 resolver 구현 * fix: @MemberId -> @LoginMember로 변경되며 long에서 member로 타입 변경에 따른 테스트 실패 수정 * style: 코드 컨벤션 적용 * feat: 401 예외 핸들러 구현 * docs: swagger 명세 추가 * feat: 인가 관련 예외 & 핸들러 추가 * test: authorization 헤더 로직 구현에 따른 테스트 수정 * chore: CI run 임시 수정 * refactor: 필드 접근 제어자 수정 * refactor: 변수 분리 * test: 테스트명 수정 * refactor: handler 메서드명 변경 * docs: 예외 설명 추가 * refactor: 상수 재활용 * docs: schema description 수정 * refactor: 불필요한 개행 제거 * docs: 예외 발생 상황 설명 수정 * test: 토큰 생성 검증 추가 * chore: CI run 이전 상태로 수정 * docs: 응답 명세 작성 * feat: transactional 적용 * chore: CI run을 self hosted로 임시 변경 * fix: CD 실패로 인한 workflow 수정 (#135) * build: jwt 의존성 추가 * chore: jwt 관련 환경 설정 추가 * test: 회원 생성 및 토큰 발급 성공 테스트 & 닉네임 중복 테스트 추가 * feat: 토큰 발급 구현 * feat: 로그인 서비스 구현 * feat: 로그인 컨트롤러 구현 * feat: 닉네임 VO 분리 및 예외 처리 구현 * refactor: getter 재정의 제거 * test: 닉네임 형식 예외 처리에 따른 테스트 수정 * feat: 필수값 누락 예외 처리 구현 * style: 코드 컨벤션 적용 * refactor: 누락된 dto 패키지 추가 * refactor: 애너테이션명 변경 * feat: 토큰 파싱해서 member 찾도록 resolver 구현 * fix: @MemberId -> @LoginMember로 변경되며 long에서 member로 타입 변경에 따른 테스트 실패 수정 * style: 코드 컨벤션 적용 * feat: 401 예외 핸들러 구현 * docs: swagger 명세 추가 * feat: 인가 관련 예외 & 핸들러 추가 * test: authorization 헤더 로직 구현에 따른 테스트 수정 * chore: CI run 임시 수정 * refactor: 필드 접근 제어자 수정 * refactor: 변수 분리 * test: 테스트명 수정 * refactor: handler 메서드명 변경 * docs: 예외 설명 추가 * refactor: 상수 재활용 * docs: schema description 수정 * refactor: 불필요한 개행 제거 * docs: 예외 발생 상황 설명 수정 * test: 토큰 생성 검증 추가 * chore: CI run 이전 상태로 수정 * docs: 응답 명세 작성 * feat: transactional 적용 * chore: CI run을 self hosted로 임시 변경 * chore: CI run을 self hosted로 권한 부여 * chore: CI/CD workflow 트리거 임시 설정 * chore: CI/CD runs on 재설정 * chore: CI/CD workflow 권한 재설정 * chore: CI/CD workflow 권한 재설정 * chore: CI/CD workflow 임시용 트리거 제거 * fix: TravelResponses 필드 wrapping 오류 수정 (#145) * refactor: 방문기록 조회/수정 도메인 변경으로 인한 수정 #121 (#131) * feat: 특정 방문 기록 조회 API 문서화 * test: Test Fixture 생성 * refactor: 특정 방문 기록 조회 서비스 수정 * test: 특정 방문 기록 조회 컨트롤러 단위 테스트 추가 * refactor: API 명세에 맞게 변수명 변경 * feat: 일급컬렉션 구성 및 연관관계 편의 메서드 위치 변경 * feat: 특정 방문 기록 수정 서비스 구현 * feat: 특정 방문 기록 수정 컨트롤러 구현 * fix: ci 환경 변경 * feat: Multipart 문서화 및 검증 로직 추가 * refactor: 검증하고자 하는 부분을 명시적으로 표현 * refactor: 상수 접근제어자 변경 * refactor: NoArgsConstructor 접근 제어자 변경 * refactor: 생성자 Builder로 표현 * refactor: 부정으로만 사용되는 메서드 명 변경 * refactor: 메서드 명 변경 * refactor: 테스트 검증 방법 변경 * fix: 수정 요청 값 필수 * feat: 메시지 검증 로직 추가 * refactor: 불필요한 Content 애노테이션 제거 * refactor: API 명세 요청 변수 명 변경으로 인한 필드 명 수정 * refactor: 메서드 분리 * fix: AuthService Mocking * refactor: 명세에 맞게 닉네임 필드 명 변경 * refactor: 방문 기록 생성/삭제 도메인 변경으로 인한 수정 #122 (#129) * refactor: api명세에 맞게 필드명 변경 * test: TDD를 위한 컨트롤러 테스트코드 작성 * refactor: 방문 상세 생성 컨트롤러 api명세에 맞게 리팩토링 * refactor: 코드 컨벤션에 맞게 필드와 어노테이션을 다른 줄로 구분 * fix: 여행 식별자가 양수인지 검증하는 코드 추가 * test: 방문 기록을 생성할 수 없는 케이스 테스트 * feat: 사진이 5장을 초과하면 예외처리 기능 구현 * refactor: API 명세의 이름과 변수명 통일 * test: 방문 기록 생성 테스트 추가 * test: 메서드 명을 명확하게 변경 * fix: visitImagesUrl이 null일 때 NPE가 발생하는 문제 수정 * test: 양수가 아닌 식별자로 방문 기록 삭제시 예외 발생 테스트 * refactor: 코드 컨벤션에 맞게 컨트롤러 코드 수정 * test: Visit을 삭제하면 VisitImage도 삭제되는지 테스트 * refactor: 방문 기록 생성시 경계값을 테스트하면서 필요없어지는 메서드 제거 * refactor: 방문 기록 삭제 시 visitId는 null일 수 없으므로 long 타입으로 변경 * test: 방문 기록과 관련된 통합테스트 제거 * test: invalidVisitRequestProvider의 위치를 맨 위로 이동 * fix: 여행 기간에 포함되지 않는 방문 기록은 생성하지 못하도록 수정 * refactor: 가독성을 위한 예외 메시지 수정 * refactor: 불필요한 개행 제거 * refactor: 컨벤션에 맞게 메서드 위치 변경 * test: 가독성을 위한 개행 추가 * refactor: 검증 메서드명을 더 명확하게 수정 * feat: 방문 기록 생성에 Swagger 적용 * fix: visitImageFile이 필수 값으로 설정되어 있던 버그 수정 * refactor: 패키지 위치 적절하게 변경 * feat: 방문 기록 생성 DTO에 Swagger 적용 * feat: 방문 기록 삭제 Swagger 적용 * test: 방문 기록 생성시 경계값 성공 테스트 추가 * refactor: dto에 Schema 설명 추가 * refactor: 방문 사진이 없는 경우 null이 아닌 빈 리스트로 오므로 null 체크 제거 * test: mockMvc 검증에서 content 활용 * test: 가독성을 위한 변경 * refactor: 추후 ExceptionHandler에서 처리할 상황 제거 * refactor: RequestPart value와 dto 변수명을 명세에 맞게 변경 * refactor: null 값을 다룰 가능성이 없는 필드에 Long이 아닌 long을 사용 * test: DisplayName을 더 명확하게 수정 * refactor: 코드 컨벤션에 맞게 개행 제거 * test: 상수 활용 * refacotr: VisitControllerDocs에 @Parameter 추가 * refacotr: 컨트롤러 메서드 순서를 CRUD순으로 정렬 * refactor: 방문기록 생성 시 이미지가 없어도 빈 리스트가 오므로 required=false 제거 * test: 자동정렬로 인한 의도치 않은 개행 제거 * feat: 여행 상세 생성 API 수정 #141 (#147) * refactor: where 검증절 이동 * feat: 여행 상세 생성 서비스에서 multipart 처리 위한 기반 코드 구현 * feat: 여행 상세 생성 컨트롤러에서 multipartFile 받도록 구현 * docs: 여행 상세 생성 명세서 작성 * docs: 여행 상세 생성 명세서 상 key 오류 수정 * docs: 여행 상세 생성 명세서 상 설명 오타 수정 * refactor: cascadeType 변경 및 부모 엔티티가 관리하도록 수정 * test: 모호한 displayName 수정 * refactor: persist 전파 위해 순서 변경 * feat: 여행 상세 목록 조회, 특정 여행 상세 조회, 특정 여행 상세 삭제 API 수정 #148 (#149) * docs: 여행 상세 목록 조회 API 문서화 * docs: 특정 여행 상세 조회 API 문서화 * docs: 공통 예외 문서화 * docs: 특정 여행 상세 삭제 API 문서화 * refactor: 응답 변수 분리 * feat: 특정 여행 상세 조회 시 권한 예외 처리 구현 * feat: 특정 여행 상세 삭제 시 권한 예외 처리 구현 * refactor: 메서드 순서 조정 (CRUD 순서) * fix: dto 필드 오류 수정 * test: 여행 상세 목록 조회 테스트 작성 * test: 특정 여행 상세 조회 테스트 작성 * test: 특정 여행 상세 삭제 컨트롤러 테스트 작성 * test: 여행 상세 목록 조회 JPQL 테스트 수정 * docs: example 제거 * fix: 동일성 비교 * test: 가독성있게 pathVariable 분리 * refactor: 방문기록 썸네일 메서드 분리 * fix: 삭제하려는 여행 상세 없을 시 예외 발생하지 않도록 수정 * refactor: member entity 외 논리적 삭제 제거 #132 (#156) * refactor: member 외 soft delete 제거 * chore: ddl 교체 위한 환경 임시 변경 * fix: 닉네임 형식 수정 #157 (#158) * fix: 닉네임 형식 수정 * chore: ddl 변경 위한 환경 임시변경 * feat: AWS S3 SDK 구현 (#137) * build: aws sdk 의존성 추가 * chore: application-secrets 반영하도록 변경 * chore: multipart 최대파일크기와 최대요청크기를 10MB로 확장 * feat: S3Client 설정 커스텀 * feat: S3Exception 에러 핸들러 추가 * feat: s3Client를 사용하는 CloudStorageClient 생성 * feat: 이미지를 S3에 올리고 URL을 받아오는 비즈니스 로직 작성 * feat: file upload API 구현 * chore: pull_request에도 CD가 적용되도록 임시 변경 * chore: secret 변수들을 env로 관리하도록 변경 * chore: dev 서버도 멀티파트 용량 확장 * chore: application.yml 파일에 cloud 관련 재설정 * chore: cd 과정에서 환경 변수 설정하기 * fix: env 파일 인식하도록 수정 * fix: CI/CD에서 env를 읽을 수 있도록 수정 * chore: pull_request 시 CD 돌아가지 않도록 수정 * chore: pull_request 시 CD 돌아가도록 임시 수정 * fix: dev에 빠진 security 설정 추가 * chore: dev에도 cloud 관련 설정 추가 * chore: yml 파일 롤백 * chore: ci/cd workflow 롤백 * chore: cloud 관련 설정 추가 * chore: 이미지 용량 제한 늘리는 설정 추가 * chore: yml에 실제 값 대입 * chore: pull_request에도 CD가 적용되도록 임시 수정 * fix: s3Client build를 CLoudStorageClient에서 수행 * chore: cloud 관련 설정 값 대입 * refactor: s3Client build를 S3ClientConfig에서 수행 * refactor: s3Client build를 CloudStorageClient에서 수행 * fix: 파일 경로 오류 수정 * fix: 파일 경로 오류 수정 * fix: 파일 경로 오류 수정 * fix: 파일 경로 오류 수정 * fix: 파일 경로 오류 수정 * fix: 파일 경로가 버킷을 포함하지 않도록 수정 * feat: file 이름이 겹치는 경우, UUID를 뒤에 붙이는 기능 구현 * chore: push에만 cd가 적용되도록 다시 변경 * refactor: 에러 메시지 변경 * refactor: MultipartFile 여러 개 받을 수 있도록 수정 * feat: S3 객체 삭제하는 API 구현 * chore: pull_request에도 cd가 적용되도록 다시 변경 * chore: push에만 cd가 적용되도록 다시 변경 * style: ci/cd workflow endline 롤백 * feat: 방문 기록 관련 인가 구현 #140 (#161) * feature: 특정 방문기록 조회시 인가 처리 * feature: 특정 방문기록 수정, 삭제시 인가 처리 * style: 미사용 import 제거 * feat: 방문 기록 생성 시 여행 상세의 주인인지 인가 추가 * refactor: 불필요한 개행 제거 * test: 테스트 실패 지점을 하나로 수정 * chore: 서버 DDL 생성 전략 변경 * feat: 여행 상세 수정 API 수정 #142 (#159) * refactor: 썸네일이 없는 경우 기존 썸네일 유지 * feat: 여행 수정 서비스 multipart와 인가 기능 추가 * feat: 여행 수정 컨트롤러 multipart와 인가 기능 추가 * fix: 여행 썸네일 추출 임시 로직 구성 * refactor: 400 에러 메세지 응답 API 문서에 추가 * docs: id 예시 값 추가 * chore: 개발 서버 DDL 생성 전략 변경 * refactor: 이미지 수정 요청 분기 처리 위치 변경 및 테스트 작성 * feat: 이미지가 필요한 API에 S3 적용 #166 (#168) * test: S3 테스트를 위해 fake 객체 생성 * feat: 여행 상세 생성 시 S3에 썸네일 저장 * feat: 여행 상세 수정 시 S3에 썸네일 대치 * feat: 방문 기록 생성 시 S3에 이미지 저장 * feat: 방문 기록 수정 시 S3에 이미지 대치 * chore: pull request에도 CD가 돌아가도록 임시 설정 * chore: pull request에도 CD가 돌아가도록 임시 설정한 것 원상복구 * refactor: Objects.isNull 활용 및 메서드 위치 변경 * feat: 로깅 프레임워크 적용 #134 (#171) * feat: 로거 환경 설정 * feat: 로거 형식 정의 * feat: 요청/응답 로깅 구현 * feat: 예외에 대한 로거 형식 적용 * feat: token 유무 식별 로그 추가 * refactor: thread 식별명 추가 * refactor: 예외 발생 구체 클래스/메서드 로깅 * chore: CD 트리거 수정 * chore: CD 트리거 복원 * chore: 임시 예외 케이스 생성 및 로그 테스트 * chore: 임시 예외 케이스 수정 및 로그 테스트 * chore: 임시 예외 케이스 재수정 및 로그 테스트 * chore: 임시 예외 케이스 삭제 * chore: CD 트리거 복원 * fix: Logging 데이터 변경 * chore: CD 트리거 복원 * fix: Logging 데이터 오류 수정 * chore: CD 트리거 복원 * feat: 로깅 White List 추가 * feat: 방문 기록 목록 조회시 시간 순으로도 정렬되는 기능 구현 (#175) * feat: 방문 기록의 방문 날짜 저장 시, 시간까지 저장하도록 변경 * fix: request dto에서 LocalDateTime에 대한 패턴이 시간까지 포함하도록 변경 * refactor: 여행에 포함된 날짜인지 비교시 LocalDateTime을 넘겨주도록 변경 * refactor: 사진 url 관련 dto 필드명 끝에 url 추가 * refactor: 기대한대로 작동하지 않는 ExceptionHandler 메서드 주석 처리 * refactor: 파일 이름 및 형식 오류 수정 #176 (#177) * refactor: 파일 이름을 UUID로만 구성하도록 수정 * refactor: content-type을 multipart/formed-data로 고정 * feat: swagger https 적용하기 #184 (#185) * feat: swagger가 https 접근 가능하도록 하는 기능 구현 * chore: pull_request에도 CD가 적용되도록 임시 변경 * style: push에만 CD가 적용되도록 롤백 * feat: 빈/공백 문자열 예외 처리 #186 (#187) * fix: 여행 제목은 공백 문자열 불가, 1자 이상 30자 이하로 설정할 수 있도록 예외 처리 * fix: 방문 기록의 이름은 공백 문자열 불가, 1자 이상 30자 이하로 설정할 수 있도록 예외 처리 * fix: 닉네임의 이름은 공백 문자열 불가, 1자 이상 20자 이하로 설정할 수 있도록 예외 처리 * test: displayName 변경 * fix: Swagger 인증 헤더 형식 변경 #188 (#189) * fix: Swagger 인증 헤더 수정 * refactor: 로깅 정보 수정 * chore: stage/dev 서버 분리 #192 (#197) * fix: 포트 수정 * refactor: 설정 파일 profile 별로 분리 * fix: timezone 설정 * refactor: ci-cd 파일명 변경 * refactor: ci-cd 분리 * test: 경계값 테스트로 수정 * test: 경계값 테스트로 수정 및 발생하는 오류 수정 * chore: back-end 개발용 CD 트리거 변경 * fix: 불필요한 파일 삭제 * refactor: stage용 환경 파일 분리 * refactor: DockerFile 분리 * refactor: 태그 설정 * refactor: 태그 설정 * fix: 태그 설정 * fix: 태그 설정 * fix: 태그 설정 * fix: 태그 설정 * fix: 태그 설정 * fix: 태그 설정 * fix: 태그 설정 * fix: 태그 설정 수정 * refactor: CI runs-on 변경 * refactor: dev용 CICD trigger 변경 * refactor: dev용 CICD runs on 변경 * refactor: dev용 CICD trigger 변경 * refactor: runner 재설치로 인해 임시로 변경했던 dev용 CICD runs-on & trigger 복구 * refactor: hub push 시 로그인 재수행 * fix: 명령어 오류 수정 * feat: 단체 계정으로 dockerhub 변경 * refactor: 정상 작동 확인 후 트리거 복구 * fix: image push 시 권한 오류 수정 (#200) * feat:admin용 계정 로직 추가 (#201) * fix: add stage logging (#204) * feat: 이미지 확장자와 content-type 설정 #196 (#202) * feat: content-type을 확장자로 분석하는 기능 구현 * chore: PR CD 임시 적용 * chore: PR CD 해제 * refactor: dev, stage, local 환경의 swagger url 설정 (#208) * refactor: 이미지 용량 제한 확장 (한 이미지: 20MB, 한 요청: 100MB) (#206) * fix: 이미지 전송 안되는 에러 수정 #209 (#210) * chore: PR CD 임시 적용 * fix: 파일 형식에 .추가 및 디폴트 형식 변경 * temp: 확인용 에러 * temp: 롤백 * refactor: 디폴트 mime type 변경 * temp: 일단 image의 내부 메서드 사용 * fix: file-extension 지정 롤백 * fix: content-type 지정 * temp: 에러 체크를 위해 메시지 임시 변경 * temp: 에러 메시지 롤백 * feat: content-type 확장자로부터 추출 * chore: PR CD 해제 * refactor: API명세 변경에 따른 URI, DTO 변수명 변경 #211 (#212) * refactor: URI, DTO 변수명 변경 * refactor: DTO 클래스명을 API명세에 맞게 변경 * refactor: imageFile 변수명 변경 * test: pathVariable명을 클래스명을 고려하여 변경 * refactor: 엔티티, 메서드명 API 명세에 맞게 변경 * refactor: 여행을 추억으로, 방문을 순간으로 네이밍 변경 * feat: 추억 목록 조회 API 수정 #215 (#216) * feat: startAt, endAt 필드 nullable하게 변경 * feat: memory의 createdAt 기준 최신순 정렬로 변경 * style: code convention 적용 * style: 응답 형식 변경 (mates 제거 및 기간 미필수 응답 필드로 변경) * feat: 올바르지 않은 년도 형식 예외 처리 * refactor: 추억 상세 -> 추억 * test: 메세지 오류 수정 * test: 저장 순서 오류 수정 * refactor: fixture 패키지 이동 * refactor: fixture 분리 * test: 경계값 검증으로 수정 * feat: 사용자 로깅, Nginx 로깅, DB 로깅 #190 (#224) * feat: MDC 적용 * refactor: 중복 예외 제거 * feat: 사용자 식별 로깅 추가 * refactor: 예외 메세지 형식 json으로 변경 * feat: 추억 삭제 API 수정 #221 (#222) * feat: 변경사항 docs 반영 * feat: 순간이 존재하는 경우 추억을 삭제할 수 없었던 예외 제거 * style: code convention 적용 * feat: 추억 삭제 시 속한 순간도 함께 삭제되도록 서비스 구현 * refactor: 불필요한 개행 제거 * feat: 추억 조회 API 수정 #227 (#228) * feat: 기간 필수 여부 변경에 따른 어노테이션 추가 * docs: 도메인명 변경에 따른 명세서 수정 * build: stage 서버 CICD 임시 비활성화 #234 (#235) * chore: stage 비활성화 적용 전 dev에서 시범 적용 * chore: dev 서버 cicd 비활성화 해제 * chore: dev 서버 cicd 트리거 복구 * chore: stage 서버 cicd 임시 비활성화 * feat: 댓글 생성, 조회 API 구현 #214 (#225) * refactor: 댓글과 관련된 클래스를 별도의 패키지로 분리 * test: tdd를 위한 댓글 생성 서비스 테스트 추가 * feat: 댓글 생성 서비스 메서드 구현 * test: 댓글 생성 관련 컨트롤러 테스트 코드 작성 * feat: 댓글 생성 기능 구현 * feat: 댓글 조회 서비스 메서드를 위한 tdd 틀 작성 * feat: 댓글 조회 서비스 메서드 구현 * test: 댓글 컨트롤러 테스트 클래스 패키지 위치 변경 * refactor: 댓글 읽기 메서드명을 더 명확하게 변경 * test: 댓글 읽기 테스트 코드 추가 * feat: 댓글 읽기 컨트롤러 메서드 구현 * feat: 댓글 생성, 조회 API에 swagger 적용 및 순간 기록을 순간으로 변경 * fix: Swagger 적용으로 인한 문제 해결 * test: 순간 기록이라는 말을 순간으로 변경 * refactor: 댓글의 글자수로 인한 예외 메시지에 '1자 이상'이라는 말을 제거 * fix: 댓글 생성 메서드에 Transactional 적용 * chore: stage 서버 CI/CD 활성화 * feat: 감정 선택 API 구현 #230 (#236) * feat: 기분 유형 생성 * feat: Moment 비즈니스 로직에 기분 표현 적용 * feat: 기분 표현 컨트롤러 구현 * feat: default 기분 생성 * style: 코드 컨벤션 적용 * refactor: 예외 메세지 변경 * feat: 순간 생성 API 구현 #226 (#229) * refactor: 기한이 없는 memory 구현 * test: 기한없는 Memory에 Moment 생성 테스트 * feat: Moment 생성 서비스 구현 * feat: Moment 생성 컨트롤러 구현 * refactor: builder 선택 필드 제외 * style: 잘못된 네이밍 수정 * refactor: MomentImages 생성 책임 Moment로 위임 * feat: 하나의 사진 업로드 API 생성 #256 (#258) * feat: api 이름 captures로 변경 * feat: RequestBody imageFiles로 이름 변경 * refactor: 변수명 iamge -> file로 통합 * refactor: requestparam -> requestpart로 변경 * feat: 다섯 장을 넘기지 않도록 예외 추가 * feat: 빈 배열을 받는 경우 로직을 수행하지 않도록 변경 * style: CamelCase 적용 * refactor: 에러 메시지 수정 * feat: 특정 content-type을 처리하도록 명시 * feat: validated 어노테이션 추가해서 유효성 검사 수행 * test: 사진 개수에 따른 성공/실패 테스트 수행 * test: 빈 멀티파일 리스트가 들어올 시, 빈 url 리스트가 들어오는 테스트 수행 * refactor: byte 처리에서 나는 오류를 StaccatoException으로 처리 * chore: dev 서버 PR CD 임시 적용 * refactor: API명 captures -> images로 변경 * chore: dev 서버 PR CD 해제 * fix: test에도 변경된 api명 적용 * feat: 파일을 한 장만 업로드하도록 변경 * feat: dto를 반환하는 새로운 메서드 생성 * test: 테스트 Disabled * refactor: CloudStorage -> Image로 이름 단순화 * feat: S3 객체 삭제 로직 삭제 * refactor: 미사용 import 삭제 * refactor: 전체 경로를 yml에서 지정 * refactor: getFileExtension 메서드 리팩터링 * feat: ImageUrlResponse 생성 * refactor: file을 전부 image로 변경 * refactor: S3Client를 S3ObjectClient로 변경 * refactor: S3Exception 로깅에 EXCEPTION_LOGGING_FORM 적용 * feat: 로그인한 사용자만 images API를 사용가능하게 함 * refactor: ImageExtension을 사용하는 Service 폴더로 이동 * feat: yml에서 설정한 파일 용량 제한 예외를 잡는 MultipartExceptionHandler 구현 * refactor: 충돌방지 이름변경 * refactor: @Size 사라지면서 Validated 삭제 * test: 컨트롤러 단위 테스트 수행 * refactor: 미사용 import문 삭제 * style: /images API swagger 적용 * refactor: file -> image * refactor: uploadImages -> uploadImage * refactor: 미사용 import문 삭제 * chore: PR CD를 수동으로 실행 가능하게 설정 * refactor: 기존 테스트 삭제 * fix: 반영되지 않은 수정사항 관련 테스트 disabled * chore: dev 서버 PR CD 임시 해제 * fix: 이미지 저장 폴더 재지정 * refactor: 테스트 메서드 네이밍 수정 * refactor: 폴더명 수정 * refactor: 닫는 괄호 추가 * refactor: S3ObjectClient를 infrastructure 패키지로 이동 * refactor: 컨벤션에 맞추어 줄바꿈 * refactor: infra 패키지를 image 패키지 내부로 이동 * feat: 추억 생성 API 수정 #238 (#260) * feat: multipartFile 제거 및 contentType을 application/json으로 변경 * refactor: term(startAt, endAt) 객체 분리 * feat: startAt, endAt 중 누락 예외 처리 * fix: 기간이 없을 경우 순간 날짜 포함 여부 예외 처리 오류 수정 * test: 기간 포함 날짜 검증 테스트 추가 * refactor: 가독성 있게 로직 수정 * docs: 요청 형식 설명 수정 * feat: 댓글 수정 API 구현 #245 (#254) * test: Fixture를 활용하도록 기존 테스트 변경 * feat: 댓글을 생성하는 기능 해피케이스 구현 * feat: 댓글을 찾을 수 없는 경우 예외 발생 테스트 * feat: 본인이 달지 않은 댓글에 대해 수정을 시도하면 예외 발생 기능 구현 * test: 조회 권한이 없는 순간에 달린 댓글들 조회를 시도했을 때 예외 발생 테스트 추가 * feat: 댓글 수정 컨트롤러 메서드 구현 * test: 양수가 아닌 댓글 식별자로 댓글 수정 시 예외 발생 테스트 * feat: 댓글 내용을 입력하지 않거나 빈 문자열로 입력 후 댓글 수정 시 예외처리 * refactor: 댓글 생성 시 최소 글자수 조건이 NotBlank에 의해 필요 없으므로 삭제 * refactor: 순서가 불필요하므로 GroupSequence 설정 제거 * feat: updateDTO에 Swagger 적용 * test: 실수로 빠뜨린 when & then 적용 * feat: 댓글 삭제 API 구현 #255 (#257) * test: Fixture를 활용하도록 기존 테스트 변경 * feat: 댓글을 생성하는 기능 해피케이스 구현 * feat: 댓글을 찾을 수 없는 경우 예외 발생 테스트 * feat: 본인이 달지 않은 댓글에 대해 수정을 시도하면 예외 발생 기능 구현 * test: 조회 권한이 없는 순간에 달린 댓글들 조회를 시도했을 때 예외 발생 테스트 추가 * feat: 댓글 수정 컨트롤러 메서드 구현 * test: 양수가 아닌 댓글 식별자로 댓글 수정 시 예외 발생 테스트 * feat: 댓글 내용을 입력하지 않거나 빈 문자열로 입력 후 댓글 수정 시 예외처리 * refactor: 댓글 생성 시 최소 글자수 조건이 NotBlank에 의해 필요 없으므로 삭제 * refactor: 순서가 불필요하므로 GroupSequence 설정 제거 * feat: updateDTO에 Swagger 적용 * feat: 댓글 삭제 API 해피케이스 구현 * feat: 본인이 쓴 댓글이 아닌데 삭제를 시도하면 예외 처리 기능 구현 * feat: 댓글 삭제 컨트롤러 메서드 구현 * test: 댓글 식별자가 양수가 아닐 경우 댓글 삭제 실패 테스트 * feat: 댓글 삭제 API에 Swagger 적용 * feat: 추억 수정 API 수정 #261 (#262) * feat: 이미지 컨트롤러 분리로 변경된 사항 반영 * refactor: 미사용 메서드 제거 * test: 인증 관련 테스트 추가 * docs: 명세서 누락 및 오류 수정 * test: aaa 주석 수정 * chore: dev 서버 push 트리거 제거 * feat: 순간 수정 API 구현 #244 (#248) * refactor: Moment 수정 서비스 로직 수정 * refactor: Moment 수정 컨트롤러 로직 수정 * refactor: 레거시 코드 변경 및 예외 메세지 변경 * docs: 누락 DTO 명세 추가 * docs: 명세 수정 * feat: 순간 삭제 API 구현 #243 (#250) * style: 네이밍 컨벤션 적용 * docs: 명세 수정 * feat: 순간 조회/목록 조회 API 구현 #251 (#253) * feat: 순간 조회/목록 조회 서비스 로직 구현 * feat: 순간 조회/목록 조회 컨트롤러 로직 구현 * test: 메서드 쿼리 검증 테스트 추가 * refactor: 클래스 명 수정 * test: 불필요한 테스트 데이터 삭제 * feat: image upload 예외 처리 추가 #268 (#269) * feat: MissingServletRequestPartException 에러 핸들링 * chore: dev 서버 PR CD 임시 해제 * chore: dev 서버 push cd 삭제 * refactor: 같은 메시지 주는 예외 동일한 exceptionHandler로 묶기 * refactor: 예외 핸들러를 다시 분리 * refactor: 에러 메시지 적절하게 변경 * feat: 서버 별로 이미지 저장 경로 설정 (#272) * refactor: S3 로직 리팩터링 #274 (#275) * refactor: 미사용 메서드 삭제 * refactor: 미사용 import 삭제 * refactor: 명세 변경에 따른 swagger 메시지 변경 * refactor: 요청 크기 제한 100->20으로 변경 * refactor: 메서드 순서 변경 * refactor: 개행 삭제 * chore: 운영 서버 구축 #264 (#270) * chore: prod 서버 환경설정 * feat: prod 환경 로깅 설정 * chore: prod 환경 테스트를 위한 CD 트리거 변경 * fix: env 파일 경로 수정 * chore: 로그 파일 저장 위치 지정 * chore: 로그 폴더 생성 명령 삭제 * chore: 로그 생성 위치 변경 * chore: 도커 이미지 재실행 코드 추가 * chore: 도커 이미지 재실행 코드 수정 * chore: 로그 콘솔 출력 * chore: 로그 저장 위치 수정 * feat: 운영 환경에서 어드민 로직 비활성화 * refactor: main에 push시에만 prod cd trigger 실행하도록 workflow 변경 --------- Co-authored-by: yoonjuho * fix: 닉네임 앞뒤 공백 제거 #277 (#278) * fix: 닉네임 앞뒤 공백 제거 * fix: 닉네임 요청 형식에서 앞뒤 공백 제거 NPE 해결 * fix: 순간 조회 응답 형식 수정 (#276) * fix: 순간 조회 응답 형식 수정 * fix: 순간 목록 응답 인자 명 수정 * feat: 추억 이름 중복 불가 예외 처리 #280 (#282) * feat: 추억 제목 중복 검사 구현 * docs: 예외 발생 케이스 문서화 * test: 픽스처 활용 * feat: 추억 수정 시 이미 존재하는 타 추억 이름으로 변경 불가능 예외 처리 * test: 주석 오타 수정 * fix: 순간 날짜 반환 형식 변경 #283 (#286) * fix: 순간 날짜 응답 형식 수정 * refactor: 메서드 분리 로직 삭제 * fix: 날짜 ms 제거 * feat: 현재 날짜를 포함하고 있는 추억 목록 조회 구현 #281 (#285) * feat: 특정 날짜를 포함하는 모든 추억 조회 기능 구현 * feat: 특정 날짜를 포함하는 모든 추억 조회 기능 구현 * test: 메시지 변경으로 인한 테스트코드 수정 * feat: 날짜로 추억 목록 조회 컨트롤러 분리 * style: 미사용 import 제거 * feat: 날짜를 포함하는 모든 추억을 조회시 기간이 없는 추억도 함께 조회 * refactor: 순간 수정 이미지 순서 적용 #287 (#288) * refactor: 순간 수정 이미지 순서 적용 * test: 순간 수정 이미지 순서 검증 테스트 추가 * refactor: 순간 수정 이미지 순서 중복 로직 삭제 * refactor: 사용되지 않는 메서드 삭제 * fix: 순간 조회 응답 필드 추가 #292 (#293) * fix: 순간 응답 필드에 추억 관련 필드 추가 * test: 픽스쳐 사용 * refactor: 예외 메시지 수정 #294 (#298) * refactor: 예외 메시지의 순간을 스타카토로 변경 Co-authored-by: devhoya97 * refactor: 예외 메시지 수정 Co-authored-by: devhoya97 * refactor: 순간 -> 스타카토 Co-authored-by: devhoya97 * docs: 문서 수정 Co-authored-by: devhoya97 --------- Co-authored-by: devhoya97 * chore: 운영 서버에서 명세서 비활성화 #302 (#303) * feat : 스타카토 제목, 추억 제목에 trim 적용 #305 (#307) * refactor: 예외 메시지의 순간을 스타카토로 변경 Co-authored-by: devhoya97 * refactor: 예외 메시지 수정 Co-authored-by: devhoya97 * refactor: 순간 -> 스타카토 Co-authored-by: devhoya97 * refactor: 추억 생성 시 title에 trim 적용 * refactor: 스타카토 생성 시 placeName에 trim 적용 * fix: dto에서 size 검증 시 min 조건 제거 --------- Co-authored-by: linirini <2001yerin@naver.com> * chore: ci에 jacoco 추가 (#309) * chore: ci에 jacoco 추가 * chore: ci에 jacoco 위한 권한 변경 * chore: ci에 jacoco 위한 권한 변경 * chore: test report 경로 오류 수정 * build: jacoco 빌드 설정 * build: jacoco 대상에서 builder 제외 * build: jacoco 제한 제거 * build: jacocoCoverageVerification 제거 * chore: 단위 테스트 결과 가져오기 적용 * build: CI/CD 트리거 수정 --------- Co-authored-by: devhoya97 Co-authored-by: somin Co-authored-by: BurningFalls Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: linirini <101927543+linirini@users.noreply.github.com> Co-authored-by: devhoya97 <146502065+devhoya97@users.noreply.github.com> * build: CI 적용 브랜치 추가 * hotfix: QA #322 (#323) * init: 프로젝트 세팅 * refactor: PR 템플릿 파일명 및 경로 수정 * refactor: pr 템플릿 경로 수정 Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: devhoya97 Co-authored-by: YoonJuHo * build: develop-be 브랜치의 CI 설정 #6 (#7) * build: 초기 ci 템플릿 생성 Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: devhoya97 Co-authored-by: YoonJuHo * build: ci 초기 트리거 설정 Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: devhoya97 Co-authored-by: YoonJuHo * fix: 권한 수정 설정 Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: devhoya97 Co-authored-by: YoonJuHo * fix: working directory 설정 Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: devhoya97 Co-authored-by: YoonJuHo * fix: 권한 재설정 Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: devhoya97 Co-authored-by: YoonJuHo --------- Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: devhoya97 Co-authored-by: YoonJuHo * feat: Entity 구성 #2 (#17) * chore: 데이터 베이스 설정 * feat: Base Entity 구성 * feat: Pin Entity 구성 * feat: Travel Entity 구성 * feat: Member Entity 구성 * feat: Mate Entity 구성 * feat: Visit Entity 구성 * feat: Visit Image Entity 구성 * feat: Visit Log Entity 구성 * refactor: Table 애노테이션 삭제 * refactor: Soft Delete 적용 * feat: ControllerAdvice 생성 #29 (#34) * feat: Visit domain skeleton 구현 #31 (#37) Co-authored-by: linirini <2001yerin@naver.com> * feat: Travel Domain Skeleton Code 작성 #32 (#36) * feat: travel skeleton code 작성 * feat: travel 생성, 수정 dto 작성 및 예외 핸들링 * feat: Mate 도메인 빌더 추가 * style: 코드 컨벤션 준수를 위한 공백 제거 * build: Docker Compose Setting #27 (#40) * chore: gitignore 파일 추가 * chore: mysql 디펜던시 추가 * chore: Profile 분리 * feat: Docker 파일 설정 * feat: 여행 상세 생성 API 구현 #18 (#43) * build: RestAssured 의존성 추가 * test: 여행 상세 생성 인수 테스트 작성 * feat: 임시 MemberIdArgumentResolver 구현 * feat: Lombok 추가 * feat: Database 초기화 구현 * feat: 여행 상세 성공 서비스 구현 * fix: resolveArgument 반환 타입 오류 수정 * feat: 여행 상세 생성 성공 컨트롤러 구현 * feat: 여행 상세 생성 시 필수값 누락 검증 구현 * test: 글자 수 제한 검증 인수 테스트 추가 * refactor: 생성자에 builder 지정 * feat: 시작 날짜와 끝 날짜 도메인 검증 구현 * feat: 시작 날짜와 끝 날짜 예외 처리 테스트 및 구현 * style: 코드 컨벤션 적용 * refactor: parameter명 변경 * feat: transactional 적용 * style: paremeter 형식 통일 * style: parameter 형식 통일 * refactor: display name 오류 수정 * refactor: 불필요한 상수 제거 * refactor: paramterized test로 리팩터링 * style: 개행 제거 * refactor: 인자 변경 * refactor: 공통 예외 클래스명 변경 * feat: 범위 예외 핸들러 추가 * refactor: 서비스, 통합 테스트 보일러 플레이트 코드 제거 * refactor: builder 사용 시 필수 값 누락 제약 추가 * refactor: 도메인으로 변환하는 메서드를 dto에 추가 * build: CD yml 파일 구성 #28 (#53) * feat: CI/CD 설정 * feat: CI/CD 검증용 트리거 설정 * fix: CI/CD workflow 수정 * fix: CI/CD workflow 재수정 * fix: CI/CD workflow 절대 경로 수정 * chore: DDL 생성 전략 변경 * chore: dev 환경 DDL 생성 전략 변경 * refactor: 검증용 트리거 제거 * fix: 도커 이미지 기반 컨테이너 생성으로 변경 * refactor: 중간 테이블 엔티티 수정 #56 (#57) * refactor: 중간 테이블명 TravelMember로 변경 * refactor: 중간 테이블 OneToMany 필드 추가 * refactor: Member OneToMany 제거 * refactor: OneToMany List 초기화 * refactor: 연관관계 편의 메서드 사용 * chore: ddl 전략 임시 변경 * chore: ddl 전략 변경 * feat: 특정 방문 기록 삭제 API 구현 #26 (#42) * feat: 특정 방문 기록 삭제 API 구현 * feat: 양수가 아닌 id로 특정 방문 기록 삭제를 시도할 때 예외 처리 기능 구현 * feat: 방문 기록 삭제 시 방문 로그도 함께 삭제되는 기능 구현 * refactor: 커스텀 예외를 제거하는 방향으로 변경 * fix: 예외를 못 잡던 문제 해결 * refactor: 메서드명 적절하게 변경 * build: Docker Compose Setting #27 (#40) * chore: gitignore 파일 추가 * chore: mysql 디펜던시 추가 * chore: Profile 분리 * feat: Docker 파일 설정 * feat: 여행 상세 생성 API 구현 #18 (#43) * build: RestAssured 의존성 추가 * test: 여행 상세 생성 인수 테스트 작성 * feat: 임시 MemberIdArgumentResolver 구현 * feat: Lombok 추가 * feat: Database 초기화 구현 * feat: 여행 상세 성공 서비스 구현 * fix: resolveArgument 반환 타입 오류 수정 * feat: 여행 상세 생성 성공 컨트롤러 구현 * feat: 여행 상세 생성 시 필수값 누락 검증 구현 * test: 글자 수 제한 검증 인수 테스트 추가 * refactor: 생성자에 builder 지정 * feat: 시작 날짜와 끝 날짜 도메인 검증 구현 * feat: 시작 날짜와 끝 날짜 예외 처리 테스트 및 구현 * style: 코드 컨벤션 적용 * refactor: parameter명 변경 * feat: transactional 적용 * style: paremeter 형식 통일 * style: parameter 형식 통일 * refactor: display name 오류 수정 * refactor: 불필요한 상수 제거 * refactor: paramterized test로 리팩터링 * style: 개행 제거 * refactor: 인자 변경 * refactor: 공통 예외 클래스명 변경 * feat: 범위 예외 핸들러 추가 * refactor: 서비스, 통합 테스트 보일러 플레이트 코드 제거 * refactor: builder 사용 시 필수 값 누락 제약 추가 * refactor: 도메인으로 변환하는 메서드를 dto에 추가 * build: CD yml 파일 구성 #28 (#53) * feat: CI/CD 설정 * feat: CI/CD 검증용 트리거 설정 * fix: CI/CD workflow 수정 * fix: CI/CD workflow 재수정 * fix: CI/CD workflow 절대 경로 수정 * chore: DDL 생성 전략 변경 * chore: dev 환경 DDL 생성 전략 변경 * refactor: 검증용 트리거 제거 * fix: 도커 이미지 기반 컨테이너 생성으로 변경 * fix: rebase 과정에서 파일이 꼬인 문제 해결 * test: HttpHeaders.AUTHORIZATION 사용 * refactor: 중간 테이블 엔티티 수정 #56 (#57) * refactor: 중간 테이블명 TravelMember로 변경 * refactor: 중간 테이블 OneToMany 필드 추가 * refactor: Member OneToMany 제거 * refactor: OneToMany List 초기화 * refactor: 연관관계 편의 메서드 사용 * chore: ddl 전략 임시 변경 * chore: ddl 전략 변경 * feat: Pin, Visit, VisitLog 생성자에 builder 추가 * feat: Pin repository 추가 * refactor: visit이 삭제되기 전에 visit에 의존하는 visitLog들이 먼저 삭제되도록 순서 변경 * test: 방문 기록 삭제에 대한 서비스 슬라이스 테스트 추가 * test: 방문 기록이 갖는 모든 방문 로그 삭제 메서드 테스트 * fix: Modifying을 사용할 때 영속성컨텍스트와 관련하여 발생하던 문제 해결 * refactor: visitLog의 content를 필수값으로 변경 * test: 컨벤션에 맞게 Controller 테스트 클래스 변경 * fix: ConstraintViolationException의 예외 메시지를 정해둔 형식에 맞게 변경 --------- Co-authored-by: YoonJuHo Co-authored-by: linirini <101927543+linirini@users.noreply.github.com> * refactor: 여행 상세 생성 서비스 반환 타입 변경 (#63) * feat: 여행 상세 목록 조회 API 구현 #19 (#60) * test: 여행 상세 목록 조회 통합 테스트 작성 * feat: 여행 상세 목록 조회 DTO 구현 * feat: 모든 여행 상세 목록 조회 서비스 구현 * refactor: 미사용 반환값 제거 * feat: 년도 조건에 따른 여행 상세 조회 서비스 구현 * test: import 수정 * test: 년도와 사용자 식별자로 여행 목록 조회하는 JPQL 테스트 추가 * style: 코드 컨벤션 적용 * test: 여행 상세 목록 조회 컨트롤러 구현 * test: disabled 제거 및 테스트 오류 수정 * refactor: 불필요한 변수 분리 제거 * refactor: Optional로 분기 처리 * test: DisplayName 수정 * refactor: DTO 이름 변경 * feat: 방문 기록 생성 API 구현 #21 (#64) * feat: 방문 기록 생성 기능 구현 * feat: getter 및 builder 추가 * feat: VisitService에 Transactional 적용 * test: 방문 기록 생성 테스트 * fix: 오타 수정 * style: 코드 컨벤션 적용 * fix: deleteById에 Transactional annotation 추가 * refactor: builder 파라미터 NonNull 설정 추가 * refactor: 데이터 개수 감소 * refactor: 예외 메시지 구체화 및 상태 코드 변경 * feat: 특정 여행 상세 수정 API 구현 #22 (#62) * build: Docker Compose Setting #27 (#40) * chore: gitignore 파일 추가 * chore: mysql 디펜던시 추가 * chore: Profile 분리 * feat: Docker 파일 설정 * feat: 여행 상세 생성 API 구현 #18 (#43) * build: RestAssured 의존성 추가 * test: 여행 상세 생성 인수 테스트 작성 * feat: 임시 MemberIdArgumentResolver 구현 * feat: Lombok 추가 * feat: Database 초기화 구현 * feat: 여행 상세 성공 서비스 구현 * fix: resolveArgument 반환 타입 오류 수정 * feat: 여행 상세 생성 성공 컨트롤러 구현 * feat: 여행 상세 생성 시 필수값 누락 검증 구현 * test: 글자 수 제한 검증 인수 테스트 추가 * refactor: 생성자에 builder 지정 * feat: 시작 날짜와 끝 날짜 도메인 검증 구현 * feat: 시작 날짜와 끝 날짜 예외 처리 테스트 및 구현 * style: 코드 컨벤션 적용 * refactor: parameter명 변경 * feat: transactional 적용 * style: paremeter 형식 통일 * style: parameter 형식 통일 * refactor: display name 오류 수정 * refactor: 불필요한 상수 제거 * refactor: paramterized test로 리팩터링 * style: 개행 제거 * refactor: 인자 변경 * refactor: 공통 예외 클래스명 변경 * feat: 범위 예외 핸들러 추가 * refactor: 서비스, 통합 테스트 보일러 플레이트 코드 제거 * refactor: builder 사용 시 필수 값 누락 제약 추가 * refactor: 도메인으로 변환하는 메서드를 dto에 추가 * build: CD yml 파일 구성 #28 (#53) * feat: CI/CD 설정 * feat: CI/CD 검증용 트리거 설정 * fix: CI/CD workflow 수정 * fix: CI/CD workflow 재수정 * fix: CI/CD workflow 절대 경로 수정 * chore: DDL 생성 전략 변경 * chore: dev 환경 DDL 생성 전략 변경 * refactor: 검증용 트리거 제거 * fix: 도커 이미지 기반 컨테이너 생성으로 변경 * refactor: 중간 테이블 엔티티 수정 #56 (#57) * refactor: 중간 테이블명 TravelMember로 변경 * refactor: 중간 테이블 OneToMany 필드 추가 * refactor: Member OneToMany 제거 * refactor: OneToMany List 초기화 * refactor: 연관관계 편의 메서드 사용 * chore: ddl 전략 임시 변경 * chore: ddl 전략 변경 * feat: 비어있는 요청 에러 핸들링 추가 * feat: 특정 여행 상세 수정 서비스 구현 * feat: 특정 여행 상세 수정 컨트롤러 구현 * feat: 비어있는 요청 에러 핸들링 추가 * feat: 특정 여행 상세 수정 서비스 구현 * feat: 특정 여행 상세 수정 컨트롤러 구현 * refactor: DirtiesContext 삭제 * refactor: Transactional 읽기 전용 옵션 구성 * feat: 방문 기록 날짜 검증 로직 추가 * refactor: 메서드 체이닝 적용 * refactor: 수정 작업 테스트 환경 동일하게 유지 --------- Co-authored-by: linirini <101927543+linirini@users.noreply.github.com> Co-authored-by: devhoya97 <146502065+devhoya97@users.noreply.github.com> * fix: 논리적 삭제 데이터는 조회에서 제외 #66 (#68) * test: 쿼리 메서드 사용 * fix: sqlDelete문에 테이블명 변경사항 반영 * fix: 삭제된 데이터 제외하고 조회하도록 조건 추가 * fix: 삭제된 데이터 제외하고 조회하도록 조건 추가 * fix: 특정 방문 기록 삭제 API 호출 시 관련된 VisitImage를 모두 삭제하도록 수정 #65 (#67) * feat: visitId에 맞는 visitImage들을 모두 삭제하는 기능 구현 * fix: visit을 삭제해도 visit에 포함된 모든 visitImage들이 삭제되지 않던 문제 해결 * test: 엔티티 생성시 가독성을 위한 개행 삭제 * refactor: JPQL에서 VisitLog를 vl로 축약 * fix: 충돌해결 * test: 경계값에 포함되지 않는 변수 제거 * feat: 특정 여행 상세 조회 API 구현 #20 (#73) * test: 특정 여행 상세 조회 통합 테스트 작성 * feat: 특정 여행 상세 조회 DTO 구현 * fix: 삭제되지 않은 데이터만 찾도록 쿼리 메서드 수정 * feat: 특정 여행 상세 조회 서비스 구현 * feat: 특정 여행 상세 조회 컨트롤러 구현 * test: 존재하지 않는 특정 여행 상세 조회 테스트 * feat: null 필드 응답에 미포함 구현 * style: 코드 컨벤션 적용 * fix: 응답 형식 오류 수정 * feat: 특정 여행 상세 삭제 API 구현 #24 (#72) * style: 코드 컨벤션 적용 * feat: 특정 여행 상세 삭제 서비스 구현 * feat: 특정 여행 상세 삭제 컨트롤러 구현 * refactor: 검증 메서드 분리 * refactor: Visit 논리적 삭제 전파 순서 수정 * feat: 특정 방문 기록 조회 API 구현 #25 (#76) * feat: 특정 방문 기록 조회 API 기능 구현 * fix: Repository 조회시 논리적 삭제가 되지 않은 엔티티들만 가져오도록 변경 * test: System.out 메서드 제거 * refactor: 메서드명 통일 및 CRUD 순서로 배치 * refactor: 사용하지 않는 DTO 제거 * test: 서비스 메서드명 변경에 따른 테스트 메서드명 변경 * fix: 특정 방문 기록이 몇 번째 방문인지 계산할 때, 더 늦게 방문한 기록까지 세던 문제 해결 * test: 몇 번째 방문인지 계산할 때, 이전의 방문만 셀 수 있는지 테스트 * feat: Pin 연관관계 추가 #80 (#83) * feat: Pin에 Member 연관관계 추가 * refactor: private 보조 메서드 순서 변경 * feat: logging 추가 #86 (#89) * feat: 간단한 Error Logging 추가 * refactor: Logging Level 변경 * feat: VisitLog, VisitImage 양방향 관계 설정 및 논리적 삭제 제거 #87 (#88) * feat: visitLog, visitImage 논리적 삭제 제거 * feat: visitLog, visitImage 양방향 설정 및 양방향 관계 설정에 따른 여행, 방문기록 삭제 로직 변경 * fix: 여행 상세 수정 날짜 필터링 오류와 썸네일 저장 오류 수정 #90 (#91) * fix: 여행 상세 수정 날짜 필터링 오류 수정 * fix: 여행 상세 생성 시 썸네일을 저장하지 않는 오류 수정 * refactor: dto 필드 수정 (#95) * feat: 여행 상세 목록 조회 시 최신순 정렬 #96 (#100) * feat: 여행 상세 목록 최신순으로 조회 * refactor: JPQL 메서드명 변경 * feat: 특정 여행 상세 조회 API에서 방문 기록 오래된 순 정렬 #101 (#102) * refactor: 반환값 제거 및 미사용 Param 제거 * feat: 특정 여행 상세 조회 시 방문 기록 오래된 순 조회 구현 * fix: Travel 삭제시 발생하는 오류 수정 #103 (#105) * fix: 여행에 포함된 방문 기록의 존재 여부를 검사할 때 논리적으로 삭제되지 않은 방문 기록만 고려하도록 수정 * fix: 여행을 삭제하면 연관된 TravelMember에 논리적 삭제가 전파되도록 수정 * refactor: JPQL에서 쿼리메서드로 변경 * refactor: @SQLRestriction으로 soft-delete하도록 변경 #106 (#107) * refactor: @SQLRestriction으로 soft-delete하도록 변경 * fix: 정렬 조건 누락 추가 * test: displayName 변경 * docs: swagger 컨벤션 설정 및 적용 (#116) * build: 중복 의존성 정의 제거 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * build: OpenApi 의존성 추가 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * chore: 전역적인 media type 설정 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * chore: open api skeleton code 작성 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * fix: constraint redefine 불가로 인한 오류 수정 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * style: 의미없는 개행 제거 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * docs: 누락된 설명 추가 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls --------- Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * feat: Entity 수정 (#119) * feat: 엔티티 구조 변경 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * style: 불필요한 개행 제거 Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls --------- Co-authored-by: YoonJuHo Co-authored-by: devhoya97 Co-authored-by: BurningFalls * build: 사용하지 않는 도커 이미지 삭제 workflow 구성 #84 (#120) * build: CD 작업 시 기존 도커 이미지 삭제 * build: CD 작업 시 기존 도커 이미지 삭제 순서 변경 * build: CD 트리거 수정 * refactor: 엔티티 수정 #125 (#126) * refactor: base entity 필드명 수정 * refactor: visitLog에 base Entity 추가 및 논리적 삭제 구현 * feat: 로그인 API 구현 #123 (#128) * build: jwt 의존성 추가 * chore: jwt 관련 환경 설정 추가 * test: 회원 생성 및 토큰 발급 성공 테스트 & 닉네임 중복 테스트 추가 * feat: 토큰 발급 구현 * feat: 로그인 서비스 구현 * feat: 로그인 컨트롤러 구현 * feat: 닉네임 VO 분리 및 예외 처리 구현 * refactor: getter 재정의 제거 * test: 닉네임 형식 예외 처리에 따른 테스트 수정 * feat: 필수값 누락 예외 처리 구현 * style: 코드 컨벤션 적용 * refactor: 누락된 dto 패키지 추가 * refactor: 애너테이션명 변경 * feat: 토큰 파싱해서 member 찾도록 resolver 구현 * fix: @MemberId -> @LoginMember로 변경되며 long에서 member로 타입 변경에 따른 테스트 실패 수정 * style: 코드 컨벤션 적용 * feat: 401 예외 핸들러 구현 * docs: swagger 명세 추가 * feat: 인가 관련 예외 & 핸들러 추가 * test: authorization 헤더 로직 구현에 따른 테스트 수정 * chore: CI run 임시 수정 * refactor: 필드 접근 제어자 수정 * refactor: 변수 분리 * test: 테스트명 수정 * refactor: handler 메서드명 변경 * docs: 예외 설명 추가 * refactor: 상수 재활용 * docs: schema description 수정 * refactor: 불필요한 개행 제거 * docs: 예외 발생 상황 설명 수정 * test: 토큰 생성 검증 추가 * chore: CI run 이전 상태로 수정 * docs: 응답 명세 작성 * feat: transactional 적용 * chore: CI run을 self hosted로 임시 변경 * fix: CD 실패로 인한 workflow 수정 (#135) * build: jwt 의존성 추가 * chore: jwt 관련 환경 설정 추가 * test: 회원 생성 및 토큰 발급 성공 테스트 & 닉네임 중복 테스트 추가 * feat: 토큰 발급 구현 * feat: 로그인 서비스 구현 * feat: 로그인 컨트롤러 구현 * feat: 닉네임 VO 분리 및 예외 처리 구현 * refactor: getter 재정의 제거 * test: 닉네임 형식 예외 처리에 따른 테스트 수정 * feat: 필수값 누락 예외 처리 구현 * style: 코드 컨벤션 적용 * refactor: 누락된 dto 패키지 추가 * refactor: 애너테이션명 변경 * feat: 토큰 파싱해서 member 찾도록 resolver 구현 * fix: @MemberId -> @LoginMember로 변경되며 long에서 member로 타입 변경에 따른 테스트 실패 수정 * style: 코드 컨벤션 적용 * feat: 401 예외 핸들러 구현 * docs: swagger 명세 추가 * feat: 인가 관련 예외 & 핸들러 추가 * test: authorization 헤더 로직 구현에 따른 테스트 수정 * chore: CI run 임시 수정 * refactor: 필드 접근 제어자 수정 * refactor: 변수 분리 * test: 테스트명 수정 * refactor: handler 메서드명 변경 * docs: 예외 설명 추가 * refactor: 상수 재활용 * docs: schema description 수정 * refactor: 불필요한 개행 제거 * docs: 예외 발생 상황 설명 수정 * test: 토큰 생성 검증 추가 * chore: CI run 이전 상태로 수정 * docs: 응답 명세 작성 * feat: transactional 적용 * chore: CI run을 self hosted로 임시 변경 * chore: CI run을 self hosted로 권한 부여 * chore: CI/CD workflow 트리거 임시 설정 * chore: CI/CD runs on 재설정 * chore: CI/CD workflow 권한 재설정 * chore: CI/CD workflow 권한 재설정 * chore: CI/CD workflow 임시용 트리거 제거 * fix: TravelResponses 필드 wrapping 오류 수정 (#145) * refactor: 방문기록 조회/수정 도메인 변경으로 인한 수정 #121 (#131) * feat: 특정 방문 기록 조회 API 문서화 * test: Test Fixture 생성 * refactor: 특정 방문 기록 조회 서비스 수정 * test: 특정 방문 기록 조회 컨트롤러 단위 테스트 추가 * refactor: API 명세에 맞게 변수명 변경 * feat: 일급컬렉션 구성 및 연관관계 편의 메서드 위치 변경 * feat: 특정 방문 기록 수정 서비스 구현 * feat: 특정 방문 기록 수정 컨트롤러 구현 * fix: ci 환경 변경 * feat: Multipart 문서화 및 검증 로직 추가 * refactor: 검증하고자 하는 부분을 명시적으로 표현 * refactor: 상수 접근제어자 변경 * refactor: NoArgsConstructor 접근 제어자 변경 * refactor: 생성자 Builder로 표현 * refactor: 부정으로만 사용되는 메서드 명 변경 * refactor: 메서드 명 변경 * refactor: 테스트 검증 방법 변경 * fix: 수정 요청 값 필수 * feat: 메시지 검증 로직 추가 * refactor: 불필요한 Content 애노테이션 제거 * refactor: API 명세 요청 변수 명 변경으로 인한 필드 명 수정 * refactor: 메서드 분리 * fix: AuthService Mocking * refactor: 명세에 맞게 닉네임 필드 명 변경 * refactor: 방문 기록 생성/삭제 도메인 변경으로 인한 수정 #122 (#129) * refactor: api명세에 맞게 필드명 변경 * test: TDD를 위한 컨트롤러 테스트코드 작성 * refactor: 방문 상세 생성 컨트롤러 api명세에 맞게 리팩토링 * refactor: 코드 컨벤션에 맞게 필드와 어노테이션을 다른 줄로 구분 * fix: 여행 식별자가 양수인지 검증하는 코드 추가 * test: 방문 기록을 생성할 수 없는 케이스 테스트 * feat: 사진이 5장을 초과하면 예외처리 기능 구현 * refactor: API 명세의 이름과 변수명 통일 * test: 방문 기록 생성 테스트 추가 * test: 메서드 명을 명확하게 변경 * fix: visitImagesUrl이 null일 때 NPE가 발생하는 문제 수정 * test: 양수가 아닌 식별자로 방문 기록 삭제시 예외 발생 테스트 * refactor: 코드 컨벤션에 맞게 컨트롤러 코드 수정 * test: Visit을 삭제하면 VisitImage도 삭제되는지 테스트 * refactor: 방문 기록 생성시 경계값을 테스트하면서 필요없어지는 메서드 제거 * refactor: 방문 기록 삭제 시 visitId는 null일 수 없으므로 long 타입으로 변경 * test: 방문 기록과 관련된 통합테스트 제거 * test: invalidVisitRequestProvider의 위치를 맨 위로 이동 * fix: 여행 기간에 포함되지 않는 방문 기록은 생성하지 못하도록 수정 * refactor: 가독성을 위한 예외 메시지 수정 * refactor: 불필요한 개행 제거 * refactor: 컨벤션에 맞게 메서드 위치 변경 * test: 가독성을 위한 개행 추가 * refactor: 검증 메서드명을 더 명확하게 수정 * feat: 방문 기록 생성에 Swagger 적용 * fix: visitImageFile이 필수 값으로 설정되어 있던 버그 수정 * refactor: 패키지 위치 적절하게 변경 * feat: 방문 기록 생성 DTO에 Swagger 적용 * feat: 방문 기록 삭제 Swagger 적용 * test: 방문 기록 생성시 경계값 성공 테스트 추가 * refactor: dto에 Schema 설명 추가 * refactor: 방문 사진이 없는 경우 null이 아닌 빈 리스트로 오므로 null 체크 제거 * test: mockMvc 검증에서 content 활용 * test: 가독성을 위한 변경 * refactor: 추후 ExceptionHandler에서 처리할 상황 제거 * refactor: RequestPart value와 dto 변수명을 명세에 맞게 변경 * refactor: null 값을 다룰 가능성이 없는 필드에 Long이 아닌 long을 사용 * test: DisplayName을 더 명확하게 수정 * refactor: 코드 컨벤션에 맞게 개행 제거 * test: 상수 활용 * refacotr: VisitControllerDocs에 @Parameter 추가 * refacotr: 컨트롤러 메서드 순서를 CRUD순으로 정렬 * refactor: 방문기록 생성 시 이미지가 없어도 빈 리스트가 오므로 required=false 제거 * test: 자동정렬로 인한 의도치 않은 개행 제거 * feat: 여행 상세 생성 API 수정 #141 (#147) * refactor: where 검증절 이동 * feat: 여행 상세 생성 서비스에서 multipart 처리 위한 기반 코드 구현 * feat: 여행 상세 생성 컨트롤러에서 multipartFile 받도록 구현 * docs: 여행 상세 생성 명세서 작성 * docs: 여행 상세 생성 명세서 상 key 오류 수정 * docs: 여행 상세 생성 명세서 상 설명 오타 수정 * refactor: cascadeType 변경 및 부모 엔티티가 관리하도록 수정 * test: 모호한 displayName 수정 * refactor: persist 전파 위해 순서 변경 * feat: 여행 상세 목록 조회, 특정 여행 상세 조회, 특정 여행 상세 삭제 API 수정 #148 (#149) * docs: 여행 상세 목록 조회 API 문서화 * docs: 특정 여행 상세 조회 API 문서화 * docs: 공통 예외 문서화 * docs: 특정 여행 상세 삭제 API 문서화 * refactor: 응답 변수 분리 * feat: 특정 여행 상세 조회 시 권한 예외 처리 구현 * feat: 특정 여행 상세 삭제 시 권한 예외 처리 구현 * refactor: 메서드 순서 조정 (CRUD 순서) * fix: dto 필드 오류 수정 * test: 여행 상세 목록 조회 테스트 작성 * test: 특정 여행 상세 조회 테스트 작성 * test: 특정 여행 상세 삭제 컨트롤러 테스트 작성 * test: 여행 상세 목록 조회 JPQL 테스트 수정 * docs: example 제거 * fix: 동일성 비교 * test: 가독성있게 pathVariable 분리 * refactor: 방문기록 썸네일 메서드 분리 * fix: 삭제하려는 여행 상세 없을 시 예외 발생하지 않도록 수정 * refactor: member entity 외 논리적 삭제 제거 #132 (#156) * refactor: member 외 soft delete 제거 * chore: ddl 교체 위한 환경 임시 변경 * fix: 닉네임 형식 수정 #157 (#158) * fix: 닉네임 형식 수정 * chore: ddl 변경 위한 환경 임시변경 * feat: AWS S3 SDK 구현 (#137) * build: aws sdk 의존성 추가 * chore: application-secrets 반영하도록 변경 * chore: multipart 최대파일크기와 최대요청크기를 10MB로 확장 * feat: S3Client 설정 커스텀 * feat: S3Exception 에러 핸들러 추가 * feat: s3Client를 사용하는 CloudStorageClient 생성 * feat: 이미지를 S3에 올리고 URL을 받아오는 비즈니스 로직 작성 * feat: file upload API 구현 * chore: pull_request에도 CD가 적용되도록 임시 변경 * chore: secret 변수들을 env로 관리하도록 변경 * chore: dev 서버도 멀티파트 용량 확장 * chore: application.yml 파일에 cloud 관련 재설정 * chore: cd 과정에서 환경 변수 설정하기 * fix: env 파일 인식하도록 수정 * fix: CI/CD에서 env를 읽을 수 있도록 수정 * chore: pull_request 시 CD 돌아가지 않도록 수정 * chore: pull_request 시 CD 돌아가도록 임시 수정 * fix: dev에 빠진 security 설정 추가 * chore: dev에도 cloud 관련 설정 추가 * chore: yml 파일 롤백 * chore: ci/cd workflow 롤백 * chore: cloud 관련 설정 추가 * chore: 이미지 용량 제한 늘리는 설정 추가 * chore: yml에 실제 값 대입 * chore: pull_request에도 CD가 적용되도록 임시 수정 * fix: s3Client build를 CLoudStorageClient에서 수행 * chore: cloud 관련 설정 값 대입 * refactor: s3Client build를 S3ClientConfig에서 수행 * refactor: s3Client build를 CloudStorageClient에서 수행 * fix: 파일 경로 오류 수정 * fix: 파일 경로 오류 수정 * fix: 파일 경로 오류 수정 * fix: 파일 경로 오류 수정 * fix: 파일 경로 오류 수정 * fix: 파일 경로가 버킷을 포함하지 않도록 수정 * feat: file 이름이 겹치는 경우, UUID를 뒤에 붙이는 기능 구현 * chore: push에만 cd가 적용되도록 다시 변경 * refactor: 에러 메시지 변경 * refactor: MultipartFile 여러 개 받을 수 있도록 수정 * feat: S3 객체 삭제하는 API 구현 * chore: pull_request에도 cd가 적용되도록 다시 변경 * chore: push에만 cd가 적용되도록 다시 변경 * style: ci/cd workflow endline 롤백 * feat: 방문 기록 관련 인가 구현 #140 (#161) * feature: 특정 방문기록 조회시 인가 처리 * feature: 특정 방문기록 수정, 삭제시 인가 처리 * style: 미사용 import 제거 * feat: 방문 기록 생성 시 여행 상세의 주인인지 인가 추가 * refactor: 불필요한 개행 제거 * test: 테스트 실패 지점을 하나로 수정 * chore: 서버 DDL 생성 전략 변경 * feat: 여행 상세 수정 API 수정 #142 (#159) * refactor: 썸네일이 없는 경우 기존 썸네일 유지 * feat: 여행 수정 서비스 multipart와 인가 기능 추가 * feat: 여행 수정 컨트롤러 multipart와 인가 기능 추가 * fix: 여행 썸네일 추출 임시 로직 구성 * refactor: 400 에러 메세지 응답 API 문서에 추가 * docs: id 예시 값 추가 * chore: 개발 서버 DDL 생성 전략 변경 * refactor: 이미지 수정 요청 분기 처리 위치 변경 및 테스트 작성 * feat: 이미지가 필요한 API에 S3 적용 #166 (#168) * test: S3 테스트를 위해 fake 객체 생성 * feat: 여행 상세 생성 시 S3에 썸네일 저장 * feat: 여행 상세 수정 시 S3에 썸네일 대치 * feat: 방문 기록 생성 시 S3에 이미지 저장 * feat: 방문 기록 수정 시 S3에 이미지 대치 * chore: pull request에도 CD가 돌아가도록 임시 설정 * chore: pull request에도 CD가 돌아가도록 임시 설정한 것 원상복구 * refactor: Objects.isNull 활용 및 메서드 위치 변경 * feat: 로깅 프레임워크 적용 #134 (#171) * feat: 로거 환경 설정 * feat: 로거 형식 정의 * feat: 요청/응답 로깅 구현 * feat: 예외에 대한 로거 형식 적용 * feat: token 유무 식별 로그 추가 * refactor: thread 식별명 추가 * refactor: 예외 발생 구체 클래스/메서드 로깅 * chore: CD 트리거 수정 * chore: CD 트리거 복원 * chore: 임시 예외 케이스 생성 및 로그 테스트 * chore: 임시 예외 케이스 수정 및 로그 테스트 * chore: 임시 예외 케이스 재수정 및 로그 테스트 * chore: 임시 예외 케이스 삭제 * chore: CD 트리거 복원 * fix: Logging 데이터 변경 * chore: CD 트리거 복원 * fix: Logging 데이터 오류 수정 * chore: CD 트리거 복원 * feat: 로깅 White List 추가 * feat: 방문 기록 목록 조회시 시간 순으로도 정렬되는 기능 구현 (#175) * feat: 방문 기록의 방문 날짜 저장 시, 시간까지 저장하도록 변경 * fix: request dto에서 LocalDateTime에 대한 패턴이 시간까지 포함하도록 변경 * refactor: 여행에 포함된 날짜인지 비교시 LocalDateTime을 넘겨주도록 변경 * refactor: 사진 url 관련 dto 필드명 끝에 url 추가 * refactor: 기대한대로 작동하지 않는 ExceptionHandler 메서드 주석 처리 * refactor: 파일 이름 및 형식 오류 수정 #176 (#177) * refactor: 파일 이름을 UUID로만 구성하도록 수정 * refactor: content-type을 multipart/formed-data로 고정 * feat: swagger https 적용하기 #184 (#185) * feat: swagger가 https 접근 가능하도록 하는 기능 구현 * chore: pull_request에도 CD가 적용되도록 임시 변경 * style: push에만 CD가 적용되도록 롤백 * feat: 빈/공백 문자열 예외 처리 #186 (#187) * fix: 여행 제목은 공백 문자열 불가, 1자 이상 30자 이하로 설정할 수 있도록 예외 처리 * fix: 방문 기록의 이름은 공백 문자열 불가, 1자 이상 30자 이하로 설정할 수 있도록 예외 처리 * fix: 닉네임의 이름은 공백 문자열 불가, 1자 이상 20자 이하로 설정할 수 있도록 예외 처리 * test: displayName 변경 * fix: Swagger 인증 헤더 형식 변경 #188 (#189) * fix: Swagger 인증 헤더 수정 * refactor: 로깅 정보 수정 * chore: stage/dev 서버 분리 #192 (#197) * fix: 포트 수정 * refactor: 설정 파일 profile 별로 분리 * fix: timezone 설정 * refactor: ci-cd 파일명 변경 * refactor: ci-cd 분리 * test: 경계값 테스트로 수정 * test: 경계값 테스트로 수정 및 발생하는 오류 수정 * chore: back-end 개발용 CD 트리거 변경 * fix: 불필요한 파일 삭제 * refactor: stage용 환경 파일 분리 * refactor: DockerFile 분리 * refactor: 태그 설정 * refactor: 태그 설정 * fix: 태그 설정 * fix: 태그 설정 * fix: 태그 설정 * fix: 태그 설정 * fix: 태그 설정 * fix: 태그 설정 * fix: 태그 설정 * fix: 태그 설정 수정 * refactor: CI runs-on 변경 * refactor: dev용 CICD trigger 변경 * refactor: dev용 CICD runs on 변경 * refactor: dev용 CICD trigger 변경 * refactor: runner 재설치로 인해 임시로 변경했던 dev용 CICD runs-on & trigger 복구 * refactor: hub push 시 로그인 재수행 * fix: 명령어 오류 수정 * feat: 단체 계정으로 dockerhub 변경 * refactor: 정상 작동 확인 후 트리거 복구 * fix: image push 시 권한 오류 수정 (#200) * feat:admin용 계정 로직 추가 (#201) * fix: add stage logging (#204) * feat: 이미지 확장자와 content-type 설정 #196 (#202) * feat: content-type을 확장자로 분석하는 기능 구현 * chore: PR CD 임시 적용 * chore: PR CD 해제 * refactor: dev, stage, local 환경의 swagger url 설정 (#208) * refactor: 이미지 용량 제한 확장 (한 이미지: 20MB, 한 요청: 100MB) (#206) * fix: 이미지 전송 안되는 에러 수정 #209 (#210) * chore: PR CD 임시 적용 * fix: 파일 형식에 .추가 및 디폴트 형식 변경 * temp: 확인용 에러 * temp: 롤백 * refactor: 디폴트 mime type 변경 * temp: 일단 image의 내부 메서드 사용 * fix: file-extension 지정 롤백 * fix: content-type 지정 * temp: 에러 체크를 위해 메시지 임시 변경 * temp: 에러 메시지 롤백 * feat: content-type 확장자로부터 추출 * chore: PR CD 해제 * refactor: API명세 변경에 따른 URI, DTO 변수명 변경 #211 (#212) * refactor: URI, DTO 변수명 변경 * refactor: DTO 클래스명을 API명세에 맞게 변경 * refactor: imageFile 변수명 변경 * test: pathVariable명을 클래스명을 고려하여 변경 * refactor: 엔티티, 메서드명 API 명세에 맞게 변경 * refactor: 여행을 추억으로, 방문을 순간으로 네이밍 변경 * feat: 추억 목록 조회 API 수정 #215 (#216) * feat: startAt, endAt 필드 nullable하게 변경 * feat: memory의 createdAt 기준 최신순 정렬로 변경 * style: code convention 적용 * style: 응답 형식 변경 (mates 제거 및 기간 미필수 응답 필드로 변경) * feat: 올바르지 않은 년도 형식 예외 처리 * refactor: 추억 상세 -> 추억 * test: 메세지 오류 수정 * test: 저장 순서 오류 수정 * refactor: fixture 패키지 이동 * refactor: fixture 분리 * test: 경계값 검증으로 수정 * feat: 사용자 로깅, Nginx 로깅, DB 로깅 #190 (#224) * feat: MDC 적용 * refactor: 중복 예외 제거 * feat: 사용자 식별 로깅 추가 * refactor: 예외 메세지 형식 json으로 변경 * feat: 추억 삭제 API 수정 #221 (#222) * feat: 변경사항 docs 반영 * feat: 순간이 존재하는 경우 추억을 삭제할 수 없었던 예외 제거 * style: code convention 적용 * feat: 추억 삭제 시 속한 순간도 함께 삭제되도록 서비스 구현 * refactor: 불필요한 개행 제거 * feat: 추억 조회 API 수정 #227 (#228) * feat: 기간 필수 여부 변경에 따른 어노테이션 추가 * docs: 도메인명 변경에 따른 명세서 수정 * build: stage 서버 CICD 임시 비활성화 #234 (#235) * chore: stage 비활성화 적용 전 dev에서 시범 적용 * chore: dev 서버 cicd 비활성화 해제 * chore: dev 서버 cicd 트리거 복구 * chore: stage 서버 cicd 임시 비활성화 * feat: 댓글 생성, 조회 API 구현 #214 (#225) * refactor: 댓글과 관련된 클래스를 별도의 패키지로 분리 * test: tdd를 위한 댓글 생성 서비스 테스트 추가 * feat: 댓글 생성 서비스 메서드 구현 * test: 댓글 생성 관련 컨트롤러 테스트 코드 작성 * feat: 댓글 생성 기능 구현 * feat: 댓글 조회 서비스 메서드를 위한 tdd 틀 작성 * feat: 댓글 조회 서비스 메서드 구현 * test: 댓글 컨트롤러 테스트 클래스 패키지 위치 변경 * refactor: 댓글 읽기 메서드명을 더 명확하게 변경 * test: 댓글 읽기 테스트 코드 추가 * feat: 댓글 읽기 컨트롤러 메서드 구현 * feat: 댓글 생성, 조회 API에 swagger 적용 및 순간 기록을 순간으로 변경 * fix: Swagger 적용으로 인한 문제 해결 * test: 순간 기록이라는 말을 순간으로 변경 * refactor: 댓글의 글자수로 인한 예외 메시지에 '1자 이상'이라는 말을 제거 * fix: 댓글 생성 메서드에 Transactional 적용 * chore: stage 서버 CI/CD 활성화 * feat: 감정 선택 API 구현 #230 (#236) * feat: 기분 유형 생성 * feat: Moment 비즈니스 로직에 기분 표현 적용 * feat: 기분 표현 컨트롤러 구현 * feat: default 기분 생성 * style: 코드 컨벤션 적용 * refactor: 예외 메세지 변경 * feat: 순간 생성 API 구현 #226 (#229) * refactor: 기한이 없는 memory 구현 * test: 기한없는 Memory에 Moment 생성 테스트 * feat: Moment 생성 서비스 구현 * feat: Moment 생성 컨트롤러 구현 * refactor: builder 선택 필드 제외 * style: 잘못된 네이밍 수정 * refactor: MomentImages 생성 책임 Moment로 위임 * feat: 하나의 사진 업로드 API 생성 #256 (#258) * feat: api 이름 captures로 변경 * feat: RequestBody imageFiles로 이름 변경 * refactor: 변수명 iamge -> file로 통합 * refactor: requestparam -> requestpart로 변경 * feat: 다섯 장을 넘기지 않도록 예외 추가 * feat: 빈 배열을 받는 경우 로직을 수행하지 않도록 변경 * style: CamelCase 적용 * refactor: 에러 메시지 수정 * feat: 특정 content-type을 처리하도록 명시 * feat: validated 어노테이션 추가해서 유효성 검사 수행 * test: 사진 개수에 따른 성공/실패 테스트 수행 * test: 빈 멀티파일 리스트가 들어올 시, 빈 url 리스트가 들어오는 테스트 수행 * refactor: byte 처리에서 나는 오류를 StaccatoException으로 처리 * chore: dev 서버 PR CD 임시 적용 * refactor: API명 captures -> images로 변경 * chore: dev 서버 PR CD 해제 * fix: test에도 변경된 api명 적용 * feat: 파일을 한 장만 업로드하도록 변경 * feat: dto를 반환하는 새로운 메서드 생성 * test: 테스트 Disabled * refactor: CloudStorage -> Image로 이름 단순화 * feat: S3 객체 삭제 로직 삭제 * refactor: 미사용 import 삭제 * refactor: 전체 경로를 yml에서 지정 * refactor: getFileExtension 메서드 리팩터링 * feat: ImageUrlResponse 생성 * refactor: file을 전부 image로 변경 * refactor: S3Client를 S3ObjectClient로 변경 * refactor: S3Exception 로깅에 EXCEPTION_LOGGING_FORM 적용 * feat: 로그인한 사용자만 images API를 사용가능하게 함 * refactor: ImageExtension을 사용하는 Service 폴더로 이동 * feat: yml에서 설정한 파일 용량 제한 예외를 잡는 MultipartExceptionHandler 구현 * refactor: 충돌방지 이름변경 * refactor: @Size 사라지면서 Validated 삭제 * test: 컨트롤러 단위 테스트 수행 * refactor: 미사용 import문 삭제 * style: /images API swagger 적용 * refactor: file -> image * refactor: uploadImages -> uploadImage * refactor: 미사용 import문 삭제 * chore: PR CD를 수동으로 실행 가능하게 설정 * refactor: 기존 테스트 삭제 * fix: 반영되지 않은 수정사항 관련 테스트 disabled * chore: dev 서버 PR CD 임시 해제 * fix: 이미지 저장 폴더 재지정 * refactor: 테스트 메서드 네이밍 수정 * refactor: 폴더명 수정 * refactor: 닫는 괄호 추가 * refactor: S3ObjectClient를 infrastructure 패키지로 이동 * refactor: 컨벤션에 맞추어 줄바꿈 * refactor: infra 패키지를 image 패키지 내부로 이동 * feat: 추억 생성 API 수정 #238 (#260) * feat: multipartFile 제거 및 contentType을 application/json으로 변경 * refactor: term(startAt, endAt) 객체 분리 * feat: startAt, endAt 중 누락 예외 처리 * fix: 기간이 없을 경우 순간 날짜 포함 여부 예외 처리 오류 수정 * test: 기간 포함 날짜 검증 테스트 추가 * refactor: 가독성 있게 로직 수정 * docs: 요청 형식 설명 수정 * feat: 댓글 수정 API 구현 #245 (#254) * test: Fixture를 활용하도록 기존 테스트 변경 * feat: 댓글을 생성하는 기능 해피케이스 구현 * feat: 댓글을 찾을 수 없는 경우 예외 발생 테스트 * feat: 본인이 달지 않은 댓글에 대해 수정을 시도하면 예외 발생 기능 구현 * test: 조회 권한이 없는 순간에 달린 댓글들 조회를 시도했을 때 예외 발생 테스트 추가 * feat: 댓글 수정 컨트롤러 메서드 구현 * test: 양수가 아닌 댓글 식별자로 댓글 수정 시 예외 발생 테스트 * feat: 댓글 내용을 입력하지 않거나 빈 문자열로 입력 후 댓글 수정 시 예외처리 * refactor: 댓글 생성 시 최소 글자수 조건이 NotBlank에 의해 필요 없으므로 삭제 * refactor: 순서가 불필요하므로 GroupSequence 설정 제거 * feat: updateDTO에 Swagger 적용 * test: 실수로 빠뜨린 when & then 적용 * feat: 댓글 삭제 API 구현 #255 (#257) * test: Fixture를 활용하도록 기존 테스트 변경 * feat: 댓글을 생성하는 기능 해피케이스 구현 * feat: 댓글을 찾을 수 없는 경우 예외 발생 테스트 * feat: 본인이 달지 않은 댓글에 대해 수정을 시도하면 예외 발생 기능 구현 * test: 조회 권한이 없는 순간에 달린 댓글들 조회를 시도했을 때 예외 발생 테스트 추가 * feat: 댓글 수정 컨트롤러 메서드 구현 * test: 양수가 아닌 댓글 식별자로 댓글 수정 시 예외 발생 테스트 * feat: 댓글 내용을 입력하지 않거나 빈 문자열로 입력 후 댓글 수정 시 예외처리 * refactor: 댓글 생성 시 최소 글자수 조건이 NotBlank에 의해 필요 없으므로 삭제 * refactor: 순서가 불필요하므로 GroupSequence 설정 제거 * feat: updateDTO에 Swagger 적용 * feat: 댓글 삭제 API 해피케이스 구현 * feat: 본인이 쓴 댓글이 아닌데 삭제를 시도하면 예외 처리 기능 구현 * feat: 댓글 삭제 컨트롤러 메서드 구현 * test: 댓글 식별자가 양수가 아닐 경우 댓글 삭제 실패 테스트 * feat: 댓글 삭제 API에 Swagger 적용 * feat: 추억 수정 API 수정 #261 (#262) * feat: 이미지 컨트롤러 분리로 변경된 사항 반영 * refactor: 미사용 메서드 제거 * test: 인증 관련 테스트 추가 * docs: 명세서 누락 및 오류 수정 * test: aaa 주석 수정 * chore: dev 서버 push 트리거 제거 * feat: 순간 수정 API 구현 #244 (#248) * refactor: Moment 수정 서비스 로직 수정 * refactor: Moment 수정 컨트롤러 로직 수정 * refactor: 레거시 코드 변경 및 예외 메세지 변경 * docs: 누락 DTO 명세 추가 * docs: 명세 수정 * feat: 순간 삭제 API 구현 #243 (#250) * style: 네이밍 컨벤션 적용 * docs: 명세 수정 * feat: 순간 조회/목록 조회 API 구현 #251 (#253) * feat: 순간 조회/목록 조회 서비스 로직 구현 * feat: 순간 조회/목록 조회 컨트롤러 로직 구현 * test: 메서드 쿼리 검증 테스트 추가 * refactor: 클래스 명 수정 * test: 불필요한 테스트 데이터 삭제 * feat: image upload 예외 처리 추가 #268 (#269) * feat: MissingServletRequestPartException 에러 핸들링 * chore: dev 서버 PR CD 임시 해제 * chore: dev 서버 push cd 삭제 * refactor: 같은 메시지 주는 예외 동일한 exceptionHandler로 묶기 * refactor: 예외 핸들러를 다시 분리 * refactor: 에러 메시지 적절하게 변경 * feat: 서버 별로 이미지 저장 경로 설정 (#272) * refactor: S3 로직 리팩터링 #274 (#275) * refactor: 미사용 메서드 삭제 * refactor: 미사용 import 삭제 * refactor: 명세 변경에 따른 swagger 메시지 변경 * refactor: 요청 크기 제한 100->20으로 변경 * refactor: 메서드 순서 변경 * refactor: 개행 삭제 * chore: 운영 서버 구축 #264 (#270) * chore: prod 서버 환경설정 * feat: prod 환경 로깅 설정 * chore: prod 환경 테스트를 위한 CD 트리거 변경 * fix: env 파일 경로 수정 * chore: 로그 파일 저장 위치 지정 * chore: 로그 폴더 생성 명령 삭제 * chore: 로그 생성 위치 변경 * chore: 도커 이미지 재실행 코드 추가 * chore: 도커 이미지 재실행 코드 수정 * chore: 로그 콘솔 출력 * chore: 로그 저장 위치 수정 * feat: 운영 환경에서 어드민 로직 비활성화 * refactor: main에 push시에만 prod cd trigger 실행하도록 workflow 변경 --------- Co-authored-by: yoonjuho * fix: 닉네임 앞뒤 공백 제거 #277 (#278) * fix: 닉네임 앞뒤 공백 제거 * fix: 닉네임 요청 형식에서 앞뒤 공백 제거 NPE 해결 * fix: 순간 조회 응답 형식 수정 (#276) * fix: 순간 조회 응답 형식 수정 * fix: 순간 목록 응답 인자 명 수정 * feat: 추억 이름 중복 불가 예외 처리 #280 (#282) * feat: 추억 제목 중복 검사 구현 * docs: 예외 발생 케이스 문서화 * test: 픽스처 활용 * feat: 추억 수정 시 이미 존재하는 타 추억 이름으로 변경 불가능 예외 처리 * test: 주석 오타 수정 * fix: 순간 날짜 반환 형식 변경 #283 (#286) * fix: 순간 날짜 응답 형식 수정 * refactor: 메서드 분리 로직 삭제 * fix: 날짜 ms 제거 * feat: 현재 날짜를 포함하고 있는 추억 목록 조회 구현 #281 (#285) * feat: 특정 날짜를 포함하는 모든 추억 조회 기능 구현 * feat: 특정 날짜를 포함하는 모든 추억 조회 기능 구현 * test: 메시지 변경으로 인한 테스트코드 수정 * feat: 날짜로 추억 목록 조회 컨트롤러 분리 * style: 미사용 import 제거 * feat: 날짜를 포함하는 모든 추억을 조회시 기간이 없는 추억도 함께 조회 * refactor: 순간 수정 이미지 순서 적용 #287 (#288) * refactor: 순간 수정 이미지 순서 적용 * test: 순간 수정 이미지 순서 검증 테스트 추가 * refactor: 순간 수정 이미지 순서 중복 로직 삭제 * refactor: 사용되지 않는 메서드 삭제 * fix: 순간 조회 응답 필드 추가 #292 (#293) * fix: 순간 응답 필드에 추억 관련 필드 추가 * test: 픽스쳐 사용 * refactor: 예외 메시지 수정 #294 (#298) * refactor: 예외 메시지의 순간을 스타카토로 변경 Co-authored-by: devhoya97 * refactor: 예외 메시지 수정 Co-authored-by: devhoya97 * refactor: 순간 -> 스타카토 Co-authored-by: devhoya97 * docs: 문서 수정 Co-authored-by: devhoya97 --------- Co-authored-by: devhoya97 * chore: 운영 서버에서 명세서 비활성화 #302 (#303) * feat : 스타카토 제목, 추억 제목에 trim 적용 #305 (#307) * refactor: 예외 메시지의 순간을 스타카토로 변경 Co-authored-by: devhoya97 * refactor: 예외 메시지 수정 Co-authored-by: devhoya97 * refactor: 순간 -> 스타카토 Co-authored-by: devhoya97 * refactor: 추억 생성 시 title에 trim 적용 * refactor: 스타카토 생성 시 placeName에 trim 적용 * fix: dto에서 size 검증 시 min 조건 제거 --------- Co-authored-by: linirini <2001yerin@naver.com> * chore: ci에 jacoco 추가 (#309) * chore: ci에 jacoco 추가 * chore: ci에 jacoco 위한 권한 변경 * chore: ci에 jacoco 위한 권한 변경 * chore: test report 경로 오류 수정 * build: jacoco 빌드 설정 * build: jacoco 대상에서 builder 제외 * build: jacoco 제한 제거 * build: jacocoCoverageVerification 제거 * chore: 단위 테스트 결과 가져오기 적용 * build: CI/CD 트리거 수정 * chore: QA 위한 트리거 수정 * chore: 배포 트리거 세팅 * docs: pr 템플릿 수정 --------- Co-authored-by: devhoya97 Co-authored-by: somin Co-authored-by: BurningFalls Co-authored-by: YoonJuHo Co-authored-by: devhoya97 <146502065+devhoya97@users.noreply.github.com> * deploy: 스타카토 v1.0.0 #310 (#311) * build: 프로젝트 생성 및 의존성 추가 * chore: 사용자 기능 및 권한 추가 * chore: gitignore 재설정 * chore: gitigonre .idea/ 추가 * build: develop-an 브랜치의 CI 설정 #3 (#10) * build: android-ci.yml 파일 생성 * chore: 오타 및 개행 수정 * chore: working-directory 수정 * build: ktLint 적용 및 format * ui: 디자인 시스템 구현 #11 (#44) * ui: color 정의 * ui: shape, selector 추가 * ui: icon 추가 * ui: font family 추가 - pretendard regular, medium, semibold, bold 추가 * ui: typography 정의 * ui: strings 정의 * ui: bottom sheet drag handle drawable 추가 * ui: styles 정의 * ui: detail toolbar 구현 - 상세 화면에서 사용 * ui: dialog, bottom sheet 구현 - 여행 및 방문 기록 삭제 dialog - 사진 등록 bottom sheet * ui: 사진 첨부 layout 구현 * feat: 삭제 다이얼로그, 사진 첨부 바텀 시트 fragment 추가 * ui: 세로모드로 고정 * build: data binding 의존성 추가 * style: strings resource 순서 정렬 * style: formatting * ui: plus icon 추가 * feat: jetpack navigation 및 바텀시트 프래그먼트 추가 #12 (#15) * build: androidx.navigation 및 dataBinding 의존성 추가 * feat: Binding 화면 클래스 및 bottomSheetNavigation 추가 * feat: TimelineFragment 임시 화면 추가 * feat: TravelFragment 임시 화면 추가 * feat: TravelCreationFragment 임시 화면 추가 * feat: VisitFragment 임시 화면 추가 * feat: VisitCreationFragment 임시 화면 추가 * feat: (여행, 방문 기록) 수정 화면 추가 * feat: (여행, 방문 기록) 생성 화면 이동 구현 * feat: BottomSheetController 설정 및 Navigation 이동 구현 * feat: 뒤로가기 버튼 클릭 시 BottomSheet, Toast 작동 구현 * feat: 여행, 방문 기록 생성을 위한 액티비티 추가 및 이동 구현 * feat: 여행, 방문 기록 수정을 위한 액티비티 추가 및 이동 구현 * build: 중복된 dataBinding 제거 * feat: 공통 이미지 로딩 BindingAdapter 설정 #33 (#41) * build: dataBinding 사용 설정 * feat: 이미지 로딩 바인딩 어댑터 설정 - Glide, Coil 바인딩 어댑터를 각각 작성 - placeholder 설정 * style: ktlint check - import 순서 조정 * fix: attribute 개수에 맞추어 BindingAdapter의 value 재설정 * style: 마지막 줄 개행 추가 * feat: placeHolder를 필수 속성으로 변경 및 coil 이미지 로딩 코드 수정 - placeHolder를 ImageView의 필수 속성으로 지정 - Coil BindingAdapter에서 url이 null인 경우에도 이미지를 로드하는 동작이 수행되도록 수정 * ui: 상단바 색상 변경 * build: develop-an의 CI 설정 수정 #38 (#39) - Git Action에 Secret으로 저장된 LOCAL_PROPERTIES_API_KEY를 변수로 가져온다. - 가져온 변수를 echo를 활용하여 local.properties에 설정한다. * build: develop-an 브랜치의 CI 파일 문법 오류 수정 #45 (#46) * fix: android-ci.yml 파일의 명령어 수정 LOCAL_PROPERTIES_API_KEY에 접근하는 명령어 수정 * fix: android-ci.yml 파일의 명령어 수정 #47 (#48) LOCAL_PROPERTIES_API_KEY에 접근하는 명령어 수정 * fix: 파이프라인 제거하여 명령어 수정 * fix: develop-an 브랜치의 CI 파일 명령어 재수정 #47 (#49) * fix: android-ci.yml 파일의 명령어 수정 LOCAL_PROPERTIES_API_KEY에 접근하는 명령어 수정 * fix: 파이프라인 제거하여 명령어 수정 --------- Co-authored-by: Somin Lee <46596035+s6m1n@users.noreply.github.com> * fix: 문자열 임을 명시하고 환경변수 설정 위치 조정 * fix: local.properties 생성 시점 수정 * feat: 데이터 패키지 설정 #13 (#35) * build: 서버 base url의 local.properties 사용 설정 및 BuildConfig 설정 * feat: Retrofit Client 작성 * fix: Merge Conflict 해결 - build.gradle.kts(project, app)의 ktlint 의존성 충돌 해결 - 버전 카탈로그 플러그인 충돌 해결 * feat: DTO 클래스 작성 * style: ktlint check - 불필요한 import 제거 - 개행 조정 - 콤마 추가 * feat: SerialName 어노테이션의 값을 camelCase로 수정 * refactor: DTO 클래스의 이름 수정 - API 요청으로 직접 보내거나 들어오는 JSON의 경우 DTO 클래스명 뒤에 Request/Response 를 붙이도록 설정 - JSON 안에 속성 값으로 들어가는 JSON은 DTO 클래스명 뒤에 Dto를 붙이도록 설정 * feat: 누락된 Dto 클래스 추가 TimelineResponse.kt - 타임라인 조회 시 여행 상세 목록을 불러올 때 사용되는 DTO 클래스 - TimelineTravelDto 리스트를 갖는다 * style: ktlint check * fix: const 키워드 제거 --------- Co-authored-by: hxeyexn * feat: 둥근 모서리의 이미지를 로드하는 BindingAdapters 추가 #58 (#59) * feat: 둥근 모서리로 이미지를 로딩하는 Glide 바인딩 어댑터 작성 - 세 속성이 모두 필요하다. - glideRoundedCornerImageUrl: 출력하고자 하는 이미지 url - glidePlaceHolder: placeHolder의 url - glideRoundingRadius: 모서리의 둥근 정도를 Int로 설정 * feat: 둥근 모서리로 이미지를 로딩하는 Coil 바인딩 어댑터 작성 - 세 속성이 모두 필요하다. - coilRoundedCornerImageUrl: 출력하고자 하는 이미지 url - coilPlaceHolder: placeHolder의 url - coilRoundingRadius: 모서리의 둥근 정도를 Float으로 설정 * fix: centerCrop 설정을 BindingAdapter 에 위임 - xml 속성으로 centerCrop을 주게 되면 Round Corner가 제대로 적용되지 않는 현상 발생 - Glide의 api로 제공되는 centerCrop() 메서드를 활용 * ui: 타임라인 프래그먼트(BottomSheet) 구현 #55 (#71) * ui: 타임라인 View xml 파일 작성 - 타임라인에 나타날 여행 상세 아이템 xml 작성 - 썸네일 사진 유무에 따라 뷰를 구분 - 타임라인이 나타날 fragment xml 작성 * feat: 타임라인 여행 상세 아이템 UI 모델 생성 * ui: 썸네일이 없는 여행상세 아이템의 margin 조정 * ui: Timeline RecyclerView의 layoutManager 설정 * ui: xml에서의 UiModel 데이터 바인딩 설정 * feat: ViewHolder 작성 - 썸네일 사진 유무에 따라 다른 ViewHolder로 구분 - 공통된 속성을 정의한 TimelineViewHolder 추상클래스 생성 * feat: TimelineRepository Interface 생성 * feat: 임시 TimelineRepository 구현체 생성 * feat: TimelineViewModel 및 Factory 생성 * feat: TimelineViewType 작성 * feat: TimelineAdapter 작성 * feat: TimelineFragment에 ViewModel과 Adapter 구현 * feat: 이미지 로딩 PlaceHolder drawable 추가 및 적용 * feat: 임시 데이터 연결 * ui: Timeline fragment 의 세부 설정 조정 * ui: Timeline의 Item xml 변경 - 뷰 타입을 3개로 분할: 첫 번째 아이템, 중간 아이템, 마지막 아이템 - 이에 따라 xml 파일 추가 및 view 수정 * feat: ViewType 변경에 따른 Adapter 및 ViewHolder 수정 * refactor: 불필요한 View 및 ViewHolder 제거 * feat: 여행 click 에 대한 event handler 생성 및 설정 * refactor: drawable 이름을 네이밍 컨벤션에 맞게 수정 * ui: RecyclerView의 마진 속성을 패딩 속성으로 변경 * feat: 바텀 시트 디자인 변경 및 툴바와의 상호작용 구현 * ui: 타임라인 글귀 추가 * style: ktlint check * ui: 둥근 모서리의 이미지로 변경 * ui: 방문 기록, 방문 기록 생성, 방문 기록 수정 화면 구현 #52 (#74) * ui: typography.body textSize 1sp 씩 증가 * feat: DeleteDialogFragment에 Handler 추가 * feat: 툴바의 수정, 삭제 버튼 제어를 위한 ToolbarHandler 추가 * feat: 방문 상세 화면을 위한 VisitDetailUiModel 추가 * ui: PlaceHolder를 위한 xml 파일 추가 * feat: 방문 기록 상세 화면을 위한 VisitAdapter 및 VisitViewHolder 구현 * feat: 임시 VisitViewModel와 VisitViewModelFactory 추가 * feat: VisitFragment 화면 구현 * feat: 방문 기록에 해당하는 여행 선택을 위한 TravelSelectionFragment 구현 * feat: 방문 기록에 해당하는 날짜 선택을 위한 VisitedAtSelectionFragment 구현 * feat: 방문 기록 생성을 위한 VisitCreationActivity 구현 * feat: 방문 기록 수정을 위한 VisitUpdateActivity 구현 * refactor: DialogHandler를 DeleteDialogFragment의 생성자에서 받도록 수정 * refactor: initVisitUpdateDoneButton 중복 로직 제거 * refactor: VisitViewHolderType 메서드 명 변경 of -> from * refactor: tv_place_name_title을 xml id convention에 맞게 수정 * ui: 여행 화면 구현 #51 (#75) * ui: 함께 간 사람들 item 구현 * ui: 방문 기록 item 구현 * ui: 여행 상세 화면 구현 * ui: 여행 생성 화면 구현 * ui: 여행 수정 화면 구현 * ui: placeholder에 사용할 drawable 추가 * ui: 여행 삭제 완료 string 추가 * feat: 둥근 모서리 이미지 BindingAdapter 구현 * feat: 함께 간 사람들 adapter 구현 * ui: 여행 상세 화면 NestedScrollView로 변경 - 이전: ScrollView - 이후: NestedScrollView * feat: 방문 기록 adapter 구현 * feat: 여행 상세 view 연결 * feat: 함께 간 사람들, 방문 기록 adapter 연결 * feat: 삭제 다이얼로그 handler 구현 * feat: 여행 상세 화면 toolbar handler 구현 - 뒤로가기 - 여행 수정 화면으로 이동 - 삭제 다이얼로그 show * feat: 여행 -> 방문 기록 화면 이동 구현 * ui: DatePickerStyle 추가 - DatePickerStyle, CustomMaterialCalendarStyle 추가 - staccato_blue 투명도 30 추가 * feat: 여행 저장 버튼, 여행 기간 BindingAdapter 추가 * feat: 여행 생성 view 연결 * feat: 여행 수정 view 연결 * style: formatting - Exceeded max line length 해결 - 임시 이미지 URL 변경 * refactor: 기간 선택 로직 메서드 분리 * feat: 타임라인의 API 적용 및 MainActivity의 Toolbar 제거 #81 (#93) * refactor: UI Model의 패키지 경로 변경 * refactor: API 명세 변경에 따른 TimelineTravelDto 수정 * refactor: repository 메서드 수정 - 서버 요청을 비동기적으로 처리하기 위해 suspend 키워드 삽입 - 기존의 임시 데이터 요청 코드를 위해 load 메서드 분리 * feat: Timeline의 API Service 작성 * feat: DataSource 인터페이스 작성 * feat: TimelineDataSource 구현체 생성 * refactor: 년도에 대한 default parameter 설정 * refactor: DataSource의 요청 메서드 네이밍 수정 * feat: http 통신이 가능하도록 Cleartext Traffic 허용 설정 * feat: Authorization Header를 삽입하기 위한 Interceptor 생성 * feat: Client에 HeaderInterceptor 추가 * refactor: errorBody의 message 속성 이름 변경 * feat: 도메인 모델 작성 * feat: Response(dto)에서 도메인 모델로 변환하는 확장함수 구현 * feat: 도메인 모델에서 UI 모델로 변환하는 확장함수 구현 * feat: Repository 수정 및 ViewModel 데이터 연결 * ui: MainActivity의 상단 툴바 제거 * refactor: ViewType에 viewType 속성 추가 및 when에서의 enum 활용 * refactor: Timeline의 공통 ViewHolder를 sealed class로 변경 * style: ktlint check 수행 * fix: Response 데이터의 nullable 속성에 맞추어 DTO 수정 및 누락된 DTO 추가 * fix: 데이터가 비어있는 경우(초기)에만 새로운 여행상세 목록을 받도록 수정 * refactor: lazy 로 지연 초기화 및 timelineService가 하나의 인스턴스로 관리되도록 수정 * fix: Travel의 description에 nullable 속성 추가 API 명세서 잘 좀 보자 제발 * refactor: create 메서드를 private으로 변경 Client 클래스에서 Service를 create 하여 제공 및 캐싱하기 때문에, 불필요한 인스턴스를 생성하지 않도록 create를 public으로 두지 않는 것이 좋다. * refactor: LocalDateConverters의 패키지 경로 수정 * refactor: 파일의 이름 수정 * style: ktlint check * refactor: 에러 메시지 상수화 * feat: 특정 여행 상세 조회 api 연결 #82 (#97) * feat: 특정 여행 상세 조회 api service 구현 * feat: 썸네일, 소개 타입 변경 및 기본 인자 설정 - 변경 data class : TravelResponse, TravelUiModel - 이전: String - 이후: String? * refactor: MatesUiModel 네이밍 변경 MatesUiModel이 공통적으로 사용될 예정이므로 MemberUiModel로 변경 - 이전: MatesUiModel - 이후: MemberUiModel * refactor: VisitUiModel 네이밍 변경 - 여행 상세 방문 기록에 사용되는 UiModel 이름을 명시적으로 변경 - 이전: VisitUiModel - 이후: TravelVisitUiModel * feat: 특정 여행 상세 조회에 사용할 domain model 추가 * feat: Api 응답 핸들링 로직 구현 * feat: 특정 여행 상세 조회 data source 구현 * feat: 특정 여행 상세 조회 repository 구현 * feat: 특정 여행 상세 조회 api 연결 * feat: 특정 여행 상세 조회 로직 매개변수 추가 - 타임라인에서 선택된 여행 id를 매개변수로 받도록 변경 * refactor: ApiResponseHandler 이름 오타 수정 * refactor: 에러 메세지 상수화 * feat: 특정 여행 상세 조회 시그니처 변경 - HeaderInterceptor 적용으로 authorization 매개변수 제거 * style: formatting * feat: 방문 기록, 방문 기록 생성, 방문 기록 수정 화면 API 연결 #79 (#99) * feat: VisitApiService 인터페이스 및 관련 data class 추가 * feat: VisitRepository, RemoteVisitDataSource 및 관련 class 추가 * feat: 각 Visit 화면들의 ViewModelFactory 구현 * feat: 각 Visit 화면들의 UiModel 클래스 및 Mapper 추가 * feat: 여행 선택 및 방문 날짜 선택을 위한 BottomSheetDialogFragment 수정 * feat: VisitFragment API 연결 * feat: VisitCreationActivity API 연결 * feat: VisitUpdateActivity API 연결 준비 * refactor: visitApiService를 StaccatoClient object로 이동 * refactor: TravelVisit 클래스의 visitImage 변수 nullable하게 수정 * refactor: VisitApiService의 중복된 @Header 제거 * refactor: 방문 생성 성공 시 created id를 가져오도록 리팩터링 * chore: 변수명 visitImage로 수정 및 ktLint 적용 * refactor: 여행 수정 완료 동작 구현 및 VisitUpdateActivity 함수 분리 * feat: 여행 생성 api 연결 #98 (#104) * feat: 여행 생성 api service 구현 * feat: 여행 생성 data source 구현 * feat: 방문 기록 썸네일 타입 변경 및 기본 인자 설정 - 변경 data class :  TravelVisitDto, TravelVisit, TravelVisitUiModel - 이전: String - 이후: String? * build: converter scalars 의존성 추가 * feat: 여행 생성 ApiService 반환값 및 DataSource 시그니처 변경 - 여행 생성 ApiService 반환값 변경 - DataSource 시그니처 변경 - TravelCreation DomainModel 구현 - TravelCreation Dto 변환 Mapper 구현 * feat: Client에 ScalarsConvert 추가 - Header 값을 읽어오기 위해 ScalarsConvert 추가 * feat: 여행 생성 repository 구현 * feat: 여행 생성 api 연결 * feat: TravelViewModel 생성자 변경 - 이전: travelId를 TravelViewModel 생성자로 넣어줌 - 이후: travelId를 loadTravel()의 매개변수로 넣어줌 * ui: map 화면 변경 * refactor: 컨벤션 통일 및 패키지 정리 #112 (#118) * refactor: bind 네임스페이스 적용 * refactor: BindingAdapters 메서드명 변경 * refactor: 컨벤션 맞게 xml 파일 이름 변경 * refactor: data 패키지 구조 정리 * refactor: RemoteVisitDataSource 컨벤션 따라 네이밍 변경 * refactor: 네트워킹 관련 메서드 이름 변경 - api service, data source, repository * refactor: presentation 패키지 구조 정리 * refactor: message utils 생성 및 적용 Co-authored-by: s6m1n Co-authored-by: Junyoung-WON * build: develop-an의 CI 테스트 자동화 추가 및 데모 APK 추출 #78 (#92) * build: test 자동화 Job 추가 * build: local.properties 생성 시점 변경 * build: 디버그 APK를 빌드하여 업로드하는 workflow 작성 * fix: test Job과 APK build Job에 local.properties 생성 동작 추가 * build: read 전용 권한 제거 * build: Firebase Analytics, Crashlytics 설정 #136 (#143) * build: Firebase Analytics, Crashlytics 의존성 추가 * chore: google-service.json ignore * feat: 특정 여행 상세 수정 api 연결 #109 (#146) * feat: 여행 수정 api service 구현 * feat: 여행 수정 data source 구현 * feat: 여행 수정 repository 구현 * feat: 여행 수정 화면 현재 데이터 로딩 기능 구현 * refactor: 컨벤션 따라 여행 api service의 수정 메서드명 변경 - 이전: updateTravel - 이후: putTravel * feat: 특정 여행 상세 수정 api 연결 * refactor: memberImage 타입 변경 및 기본 인자 설정 * refactor: MembersDto 삭제 * refactor: TravelCreationUiModel.kt 삭제 * refactor: TravelCreation 이름 변경 - 이전: TravelCreation - 이후: NewTravel * refactor: api 명세서 변경에 따른 도메인 모델 수정 및 여행 코드 리팩터링 #151 (#152) * refactor: nickName 변수명 변경 - 이전: nickName - 이후: nickname * ui: 여행 수정 화면 이미지 속성 수정 - glide -> coil 이용 - scaleType : fitXY -> centerCrop * style: import 정렬 * feat: 여행 상세 -> 방문 상세로 이동 시 여행 id 전달 * feat: 방문기록 조회 dto 수정 - 방문기록 조회 도메인 변경으로 인해 방문 기록이 조회되지 않음 - 따라서 api 명세서와 일치하도록 dto 수정하여 오류 해결 * refactor: 여행 생성을 위한 viewModel 메서드 분리 * refactor: 여행 조회를 위한 viewModel 메서드 분리 * feat: 여행 수정 handler 구현 * refactor: 여행 default id 변경 - 이전: -1L - 이후: 0L * refactor: TravelHandler 구현 위치 변경 - 이전: TravelViewModel - 이후: TravelFragment * style: 컨벤션에 맞게 TravelFragment의 메서드 순서 수정 * refactor: TravelFragment의 travelId 초기화 방식 변경 * feat: 여행 생성 및 수정 error toast 구현 * feat: 방문 생성 화면, 방문 수정 화면에서 갤러리 사진 불러오기 구현 #150 (#155) * feat: PhotoAttachFragment에 PhotoAttachHandler 연결 * feat: PhotoAttachFragment 앨범 접근 권한 관련 로직 구현 - API level 33 이상 : READ_MEDIA_IMAGES - API level 33 이하 : READ_EXTERNAL_STORAGE - ActivityResultLauncher를 이용한 권한 요청 - 권한 거부 시, 설정으로 이동하는 스낵바 띄우기 * feat: PhotoAttachFragment 앨범에서 불러온 이미지의 URI 추출하기 * feat: 불러온 이미지의 URI를 호스트 Activity로 전달 - OnUrisSelectedListener 인터페이스 추가 * feat: Uri를 File로 변환하는 메서드 파일 추가 * refactor: pr 리뷰 반영 * refactor: pr 리뷰 반영2 * build: develop-an의 android-ci 수정 #115 (#160) - local.properties: 파일 생성 후 secrets로부터 base_url 설정 - google-services.json: firebase android 구성파일 설정을 위해 secrets로부터 생성 * fix: android-ci 환경변수 생성 위치 조정 (#164) * build: local.properties 와 google-services.json 설정 - local.properties: 파일 생성 후 secrets로부터 base_url 설정 - google-services.json: firebase android 구성파일 설정을 위해 secrets로부터 생성 * fix: 환경 변수 설정 위치 변경 * build: bash 쉘에 맞는 명령어 활용 #115 (#165) * build: local.properties 와 google-services.json 설정 - local.properties: 파일 생성 후 secrets로부터 base_url 설정 - google-services.json: firebase android 구성파일 설정을 위해 secrets로부터 생성 * fix: 환경 변수 설정 위치 변경 * fix: bash 쉘에 적합한 명령어 형식으로 변경 * feat: 특정 여행 상세 삭제 api 연결 #153 (#167) * feat: 특정 여행 삭제 api service 구현 * feat: 특정 여행 삭제 data source 구현 * feat: 특정 여행 삭제 repository 구현 * feat: 특정 여행 삭제 기능 api 연결 * feat: error handling 방식 수정 - 서버에서 들어오는 error body의 status와 message를 활용하는 방식으로 변경 * refactor: DialogHandler를 독립적으로 관리 * refactor: api path 상수 활용 * refactor: BuildConfig에 token 정의 * refactor: DEFAULT_VALUE 상수 제거 * feat: 여행 생성 기능 api 수정 #169 (#178) * feat: onUrisSelected 매개변수 가변인자로 변경 * feat: 여행 생성 화면 갤러리 이미지 로딩 기능 구현 * refactor: 이미지 선택 리스너 초기화 메서드명 오타 수정 * refactor: 스낵바 액션 설정 코드 간소화 * feat: TravelRequest 의 여행 썸네일 필드 제거 * refactor: 여행 썸네일 이미지 변수명 수정 * feat: 이미지 전송 기능 구현 * refactor: image url 변수명 변경 - 변수 끝에 url이 오도록 * feat: 여행 생성 progressBar 구현 * ui: 사진 첨부 아이콘 가시성 설정 * feat: 여행 상세 수정 기능 api 변경 및 여행 리팩터링 #180 (#181) * feat: 여행 수정 화면 갤러리 이미지 로딩 기능 구현 * feat: URL 및 URI 기반 이미지 로딩 BindingAdapter 구현 * feat: 이미지 전송 기능 구현 * feat: 여행 수정 progressBar 구현 * fix: 삭제 불가능한 여행 삭제 시도 관련 에러 토스트 문제 해결 삭제 불가능한 여행을 삭제하려고 시도 -> 방문 조회 -> 뒤로 가기 버튼 클릭 -> 삭제 불가능 에러 토스트가 다시 뜨는 문제가 발생해 이를 해결 * refactor: TravelCreationViewModel의 imageUrl 변수 제거 * ui: 여행 상세 내 방문 기록 이미지 scaleType 속성 설정 * ui: 여행 생성 썸네일 이미지 scaleType 속성 설정 * fix: 여행 소개 미입력 시 여행이 생성 되지 않는 오류 해결 * refactor: 타임라인 화면 리팩터링 #162 (#179) * ui: 타임라인 RecyclerView의 크기 조정 및 여백 수정 * feat: Activity와 Fragment 간 데이터를 공유하는 공유 ViewModel 생성 * feat: 공유 ViewModel을 이용하여 타임라인 업데이트 여부를 공유 * refactor: RecyclerView.Adapter에서 ListAdapter로 변환 * refactor: 처음 타임라인을 불러오는 동작을 ViewModel 초기화 시에 수행 * fix: ListAdapter 수정 - 불필요한 travels 프로퍼티와 getItemCounts 메서드 제거 - currentList를 사용하는 것으로 변경 * refactor: 에러 핸들링 방식 수정 및 ViewModel 수정 - TimelineDefaultRepository로 네이밍 변경 - ApiResponseHandler와 ResponseResult를 이용하여 에러 핸들링 처리 - TimelineViewModel 에러 메시지 LiveData 사용 - 그 외 repository, dataSource 프로퍼티 이름 수정하여 통일 * refactor: MutableLiveData의 값 업데이트를 setValue로 변경 및 메서드 분리 * style: ktlint 적용 * feat: 3차 스프린트에서 수정된 방문 기록 상세 API 연결 #163 (#183) * feat: 방문 상세 생성 API 연결 * feat: 방문 상세 수정, 삭제 API 연결 * feat: 방문 기록 생성/수정 시 양방향 데이터 바인딩 적용 * feat: 방문 기록 생성 화면 사진 다중 선택 구현 * feat: 방문 기록 생성 이미지 업로드 구현 * feat: 방문 기록 생성 및 수정 시 로딩과 토스트 추가 * feat: 닉네임을 활용한 로그인 기능 구현 #124 (#172) * ui: 로그인 화면 구성 - 로그인 화면에서 사용되는 텍스트를 strings에 추가 - 로그인 버튼 스타일에 대한 style 생성 - xml 임시로 작성 * ui: 앱 로고 삽입 및 margin 조정 - 임시 로고 이미지 저장 - 로고 크기 및 마진 조정 * feat: 로그인 API Service 작성 및 Retrofit 객체 생성 * feat: 로그인 DataSource 작성 * feat: 로그인 Repository 생성 * feat: 사용자 정보를 저장하는 SharedPreferences Manager 생성 - 토큰 값 불러오기 및 저장 - 추후 사용자 닉네임, 사용자 프로필 이미지 등의 정보 저장 가능 * feat: Application 생성 및 사용자 정보 Preferences Manager 캐싱 * ui: Splash Screen 화면 구성을 위한 테마 생성 * feat: Preferences 로부터 사용자 토큰 값을 가져와 헤더에 추가하도록 변경 * refactor: Repository 네이밍 통일 * refactor: DataSource 기본 인자 추가 * feat: LoginViewModel 및 Handler 작성 * feat: LoginViewModel 을 생성하는 ViewModel Factory 작성 * feat: LoginActivity 작성 및 양방향 데이터 바인딩 적용 * feat: StaccatoApplication과 LoginActivity 설정 및 LoginActivity를 시작 화면으로 변경 * style: 불필요한 namespace 제거 및 lint 확인 * refactor: LoginViewModel과 Factory를 viewmodel 패키지로 분리 * refactor: TimelineViewModel과 Factory를 viewmodel 패키지로 분리 * style: ktlint 적용 * fix: 불필요한 ConverterFactory 제거 - 더 이상 사용하지 않는 text/plain 변환용 ScalarsConverterFactory 제거 * feat: 닉네임 로그인 요청 및 응답에 대한 DTO 작성 * refactor: 로그인 요청, 응답 시 DTO 활용 * fix: 토큰 값을 불러오고 및 저장하는 동작의 비동기 처리 및 화면 전환 개선 * refactor: 토큰 값을 캐싱하여 저장하는 TokenManager 생성 및 적용 - 매번 runBlocking을 통해 Preference에 저장된 토큰 값을 불러오는 것은 네트워크 성능을 저하시킨다. - 따라서, token 값을 캐싱하여 저장하는 TokenManager를 활용한다. - 첫 네트워크 요청 시에만 토큰을 불러오는 작업을 동기적으로 처리하기 위해 Main Thread가 Blocking 된다. - TokenManager가 Preference로부터 가져온 토큰을 캐싱하여 저장한다. - 이후 요청부터는 캐시된 토큰을 가져오므로 Main Thread가 Blocking 되지 않는다. * style: ktlint 적용 * feat: Night 모드 비활성화 * refactor: 여행 기간 날짜 형식 변환을 BindingAdapter에서 수행 - TimelineTravelUiModel 프로퍼티 수정 - UiModel의 여행기간 날짜를 LocalDate로 갖도록 통일 - 추후 날짜 관련 UI가 변경되었을 때 확장성 고려 - BindingAdapters에 날짜 형식 변환해주는 메서드 작성 * chore: 주석 처리된 Log 코드 삭제 * style: xml View의 ID 네이밍 컨벤션 적용 * ui: 앱 심볼 로고 추가 및 스플래시 스크린에 적용 * feat: 방문 상세 생성 API 연결 * ui: 배경 색을 흰 색으로 지정 * feat: 키보드 활성화 상태에서 화면 터치 시 키보드를 내리는 기능 추가 * style: ktlint 적용 * feat: 방문 상세 수정, 삭제 API 연결 * feat: 방문 기록 생성/수정 시 양방향 데이터 바인딩 적용 * fix: merge 과정에서 발생한 id값 네이밍 충돌 해결 * build: 앱 version code와 version name 수정 * feat: 방문 기록 생성 화면 사진 다중 선택 구현 * feat: 방문 기록 생성 이미지 업로드 구현 * feat: 스플래시 스크린 시간 조정 및 데모 시연용 토큰 활성화 * fix: 동일한 사진이 여러 장 업로드되는 버그 수정 * feat: 기존 로그인 기능으로 롤백 --------- Co-authored-by: somin * fix: 테스트 배포를 위한 버그 수정 #198 (#219) * style: formatting * fix: 무한 로딩 오류 수정 * fix: 여행 생성 오류 수정 * add: 앱 아이콘 변경 * ui: timeline empty view 추가 * feat: timeline empty view 가시성 설정 * ui: 여행 내 방문 기록 empty view 추가 및 가시성 설정 * ui: 방문 기록 내 로그 미지원 기능 view 추가 * feat: 사진 첨부 카메라 미지원 기능 알림 추가 * ui: 필수값 표기 style 정의 * ui: 여행 생성 및 수정 필수값 표기 추가 * ui: 방문 기록 생성 및 수정 필수값 표기 추가 * feat: 생성, 수정, 로그인 시 다중 요청 전송을 막기 위한 화면 터치 제한 * feat: 장소 생성의 사진 첨부 리사이클러뷰 구현 - 사진 추가 & 삭제 구현 - GridLayout으로 변경 - 사진 중복 없이 최대 5장으로 제한 - 새로 추가된 사진이 기존 사진 뒤에 더해지도록 구현 * chore: 방문 생성 화면 rv_photo_attach로 xml id 수정 * ui: app icon 및 splash icon 변경 * refactor: xml ID 네이밍 컨벤션 적용 --------- Co-authored-by: somin Co-authored-by: Junyoung-WON * refactor: 도메인명 변경에 따라 travel을 memory로 수정 #217 (#231) * refactor: 패키지명 travel -> memory로 수정 * refactor: dto의 TravelMapper 를 MemoryMapper 로 네이밍 변경 * refactor: 여행(현 추억) 생성 response dto 네이밍 변경 - TravelCreationResponse -> MemoryCreationResponse * refactor: 여행(현 추억) request dto 네이밍 변경 - TravelRequest -> MemoryRequest * refactor: 여행(현 추억) 조회 response dto 네이밍 변경 - TravelResponse -> MemoryResponse * refactor: 여행(현 추억) 수정 request dto 네이밍 변경 - TravelUpdateRequest -> MemoryUpdateRequest * refactor: 여행(현 추억) 내 방문 dto 네이밍 변경 - TravelVisitDto -> MemoryVisitDto * refactor: 타임라인 여행(현 추억) item의 dto 네이밍 변경 - TimelineTravelDto -> TimelineMemoryDto * refactor: 여행(현 추억) ApiService 네이밍 변경 - TravelApiService -> MemoryApiService * refactor: 여행(현 추억) DataSource 네이밍 변경 - TravelDataSource -> MemoryDataSource - TravelRemoteDataSource -> MemoryRemoteDataSource * refactor: 여행(현 추억) Repository 네이밍 변경 - TravelRepository -> MemoryRepository - TravelDefaultRepository -> MemoryDefaultRepository * style: TimelineMapper import 재정렬 * refactor: NewTravel 도메인명을 NewMemory로 변경 * refactor: Travel 도메인명을 Memory로 변경 * refactor: TravelVisit 도메인명을 MemoryVisit으로 변경 * refactor: presentation의 TravelMapper 명 변경 - TravelMapper -> MemoryMapper * refactor: 여행(현 추억) ui 모델명 변경 - TravelUiModel -> MemoryUiModel - TravelVisitUiModel -> MemoryVisitUiModel * refactor: 여행(현 추억) view model 명 변경 - TravelViewModel -> MemoryViewModel - TravelViewModelFactory -> MemoryViewModelFactory * refactor: MemoryApiService의 Path 변경 - travel을 memory로 변경 - travels을 memories로 변경 * refactor: Memory 관련 dto 변수명 변경 - travel을 memory로 변경 * refactor: Timeline Dto의 Memory 관련 변수명 변경 - travel을 memory로 변경 - travels를 memories로 변경 * refactor: Memory 관련 도메인 모델의 변수명 변경 - travel을 memory로 변경 * refactor: Memory 관련 ui 모델의 변수명 변경 - travel을 memory로 변경 * refactor: data layer의 Memory 관련 함수 및 변수명 변경 - travel을 memory로 변경 * refactor: 방문 생성 request dto의 travelId 변수명 변경 - travelId -> memoryId * refactor: 여행(현 추억) 조회 view model 및 fragment의 네이밍 변경 - travel -> memory * refactor: fragment_travel 의 리소스 네이밍 변경 - travel -> memory - strings.xml의 리소스명 변경 * refactor: TravelCreationActivity 네이밍 변경 - TravelCreationActivity -> MemoryCreationActivity * refactor: 여행(현 추억) 생성의 ViewModel 관련 네이밍 변경 - TravelCreationViewModel -> MemoryCreationViewModel - TravelCreationViewModelFactory -> MemoryCreationViewModelFactory - 관련 함수 및 변수명 변경 - travel -> memory * refactor: 여행(현 추억) 생성, 수정에 관한 xml 리소스 명 변경 - travel -> memory - strings.xml 의 관련 리소스 수정 * refactor: 여행(현 추억) 수정 Activity, Handler 의 네이밍 변경 - travel -> memory * refactor: 여행(현 추억) 수정 ViewModel 의 네이밍 변경 - 관련 함수 및 변수 명 변경 - travel -> memory - Factory 클래스명 변경 * refactor: 여행(현 추억) 생성, 수정에서의 파일 변환 메서드명 변경 - travel -> memory - 자식 파일 명 상수화 * refactor: Timeline 의 UI 모델 및 Travel ID Key 의 리네이밍 - travel -> memory 로 일괄 변경 * refactor: presentation/timeline 내 travel 도메인명 변경 - travel -> memory - TimelineMapper 내 domain model -> ui model 변환 메서드명 변경 * refactor: dto/MemoryMapper 내 domain 변환 메서드명 변경 - dto/MemoryMapper 내 domain model을 dto로 변환하는 메서드명 변경 - travel -> memory * refactor: dummyTravel 을 dummyMemory 로 변경 * refactor: MainActivity 내 travel을 memory로 변경 * refactor: activity_main 내 travel을 memory로 변경 * refactor: TimeLineApiService 내 GET 메서드 path 수정 - travels -> memories * refactor: MemoryFragment 내 travel 을 memory 로 변경 - MemoryFragment, fragment_memory 내 travel 을 memory 로 변경 * refactor: MemoryViewModel 내 error message 변수명 변경 - TRAVEL_ERROR_MESSAGE -> MEMORY_ERROR_MESSAGE * refactor: navigation graph 내 travel을 memory로 변경 * refactor: VisitUpdateActivity 내 extra 키 값 수정 - TRAVEL_ID_KEY -> MEMORY_ID_KEY - TRAVEL_TITLE_KEY -> MEMORY_TITLE_KEY * refactor: VisitFragment 내 travel을 memory로 변경 * refactor: VisitUpdateActivity 내 travel을 memory로 변경 * refactor: VisitUpdateViewModel 내 travel을 memory로 변경 * refactor: VisitTravelUiModel을 VisitMemoryUiModel로 변경 * refactor: 방문 수정 xml의 travel을 memory로 변경 * refactor: 여행(현 추억) 선택 xml 내 travel을 memory로 변경 * refactor: 여행 선택 바텀 시트 내 travel을 memory로 변경 - TravelSelectionFragment -> MemorySelectionFragment 로 수정 - TravelSelectionHandler -> MemorySelectionHandler 로 수정 - TravelSelectionFragment 내 메서드명 수정 - TravelSelectionHandler 내 매개변수명 수정 * refactor: VisitRepository와 구현체의 메서드 내 매개변수명 통일 * refactor: VisitsViewHolder 내 travel을 memory로 변경 * refactor: VisitCreationActivity 내 travel을 memory로 변경 * refactor: VisitCreationViewModel 내 travel을 memory로 변경 * refactor: 방문 생성 xml 내 travel을 memory로 변경 * refactor: BindingAdapters 내 travel을 memory로 변경 * refactor: strings 내 travel을 memory로 변경 - strings 내 '여행'을 '추억'으로 수정 Co-authored-by: Junyoung-WON Co-authored-by: s6m1n * refactor: visit, visit log 도메인명 수정 #218 (#237) * refactor: VisitApiService 내 visit을 moment 로 변경 - 파일명 수정 - path 수정 - 메서드명 수정 - 매개변수명 수정 * refactor: data/visit 패키지명을 moment로 변경 * refactor: data/dto/visit 패키지명을 moment로 변경 * refactor: VisitCreationRequest 네이밍 변경 - 이전: VisitCreationRequest - 이후: MomentCreationRequest * style: StaccatoClient import 재정렬 * refactor: VisitCreationResponse 네이밍 변경 - 이전: VisitCreationResponse - 이후: MomentCreationResponse - 필드명 변경 : visitId -> momentId * refactor: VisitResponse 네이밍 변경 - 이전: VisitResponse - 이후: MomentResponse - VisitResponse 필드 내 visit을 moment로 변경 - VisitResponse 필드 내 visitLogs SerialName을 comments로 변경 * refactor: VisitUpdateRequest 네이밍 변경 - 이전: VisitUpdateRequest - 이후: MomentUpdateRequest - VisitUpdateRequest 필드 내 visit을 moment로 변경 * refactor: VisitLogDto 내 SerialName 변경 - visitLogId를 commentId로 변경 * refactor: MemoryResponse 내 visits SerialName 변경 - visits를 moments로 변경 * refactor: VisitCreationViewModel 내 FORM_DATA_NAME 변경 - 이전: visitImageFiles - 이후: momentImageFiles * refactor: MemoryVisitDto 내 visit를 moment로 변경 - MemoryVisitDto -> MemoryMomentDto로 변경 - visitId -> momentId로 변경 - visitImageUrl -> momentImageUrl로 변경 * refactor: VisitRemoteDataSource 내 visit을 moment로 변경 - VisitRemoteDataSource -> MomentRemoteDataSource로 변경 - 메서드명 변경 - 매개변수명 변경 * refactor: MomentRepository 및 구현체 내 visit을 moment로 변경 - VisitRepository -> MomentRepository로 변경 - VisitDefaultRepository -> MomentDefaultRepository로 변경 - 메서드명 변경 - 매개변수명 변경 * refactor: Visit 도메인 모델명 및 변수명 변경 - Visit -> Moment로 변경 - visitLogs -> comments로 변경 * refactor: Memory 도에인 모델의 visits을 moments로 변경 * refactor: MemoryVisit 도메인 모델 내 visit을 moment로 변경 * refactor: MemoryResponse의 visits 필드명을 moments로 변경 * refactor: dto/mapper/VisitMapper를 MomentMapper로 변경 * refactor: presentation/visit 패키지명을 moment로 변경 * refactor: VisitViewHolderType 네이밍 변경 - VisitViewHolderType -> MomentViewHolderType - enum 상수명 변경 - VISIT_DEFAULT -> MOMENT_DEFAULT - MY_VISIT_LOG -> MY_COMMENTS * refactor: VisitViewHolder 네이밍 변경 - VisitViewHolder -> MomentViewHolder - VisitDefaultViewHolder -> MomentDefaultViewHolder - MyVisitLogViewHolder -> MyCommentViewHolder * refactor: VisitAdapter 내 visit을 moment로 변경 - VisitAdapter -> MomentAdapter 로 변경 - visit -> moment 로 변경 * refactor: MomentAdapter 내 visit log를 comments로 변경 * refactor: VisitDetailUiModel 내 visit을 moment로 변경 - VisitDetailUiModel -> MomentDetailUiModel - VisitDefaultUiModel -> MomentDefaultUiModel - visitImageUrls -> momentImageUrls * refactor: VisitLogUiModel을 CommentsUiModel로 변경 * refactor: VISIT_ID_KEY extra key id 네이밍 변경 - VISIT_ID_KEY -> MOMENT_ID_KEY * refactor: VisitFragment 내 visit을 moment로 변경 * refactor: VisitViewModel 내 visit을 moment로 변경 - VisitViewModel -> MomentViewModel로 변경 - VisitViewModelFactory -> MomentViewModelFactory로 변경 * refactor: VisitMemoryUiModel 네이밍 변경 - VisitMemoryUiModel -> MomentMemoryUiModel로 변경 * refactor: presentation/visitcreation 패키지명 momentcreation으로 변경 * refactor: VisitCreationActivity 내 visit을 moment로 변경 - VisitCreationActivity -> MomentCreationActivity로 변경 * refactor: VisitCreationHandler 네이밍 변경 - VisitCreationHandler -> MomentCreationHandler로 변경 * refactor: VisitCreationViewModel 내 visit을 moment로 변경 - VisitCreationViewModel -> MomentCreationViewModel로 변경 - 메서드 및 변수명 변경 * refactor: 여행 -> 추억, 방문 기록 -> 스타카토로 도메인명 변경 * feat: s3 api 연결 #239 (#241) * feat: ImageResponse, ImageApiService 구현 * feat: ImageRepository 및 구현체 구현 Co-authored-by: s6m1n * fix: 추억 기능 버그 수정 #246 (#252) * fix: 일부 EditText 개행 불가 처리 및 키보드 숨김 처리 #247 (#249) * ui: 닉네임과 추억 생성, 수정 제목 입력 시 줄바꿈 제한 * fix: 키보드 활성화 상태에서 빈 화면 터치로 키보드 숨김 처리 - 메서드 명 변경: setHideKeyboardAction -> setHidingKeyboardAction * style: 클래스 내 override 메서드의 순서 변경 - 팀 코드 컨벤션에 맞게 순서 재정렬 - override 메서드를 상단에 둔다. * style: ktlint 적용 * fix: root뷰 터치 시 클릭 이벤트가 발생하지 않는 오류 수정 - 원인 분석: ConstraintLayout 내부 Toolbar 및 ScrollView, 그리고 그 자식 View들이 클릭 이벤트를 가로채기 때문에, 바인딩 된 최상단 root 뷰인 ConstraintLayout의 클릭 이벤트가 동작하지 않는다. - 해결 방법: 여러 클릭 이벤트를 가로채는 dispatchTouchEvent 메서드를 오버라이드하여, 터치된 부분이 현재 포커스가 되지 않은 View(키보드 바깥 화면) 범위라면, 키보드를 숨기는 동작을 추가하였다. * refactor: 키보드 숨김 동작을 handler 바인딩으로 적용 - LoginHandler 에 화면 터치에 대한 동작을 추가, 화면 터치 시 키보드를 숨김 처리하는 동작을 바인딩으로 설정 - InputMethodManager 인스턴스를 지연초기화하여 저장 * refactor: InputMethodManager 인스턴스를 lazy로 지연 초기화 * fix: 닉네임, 제목 입력 칸의 키보드 액션 버튼 변경 - 키보드의 액션 타입을 Search에서 Done으로 변경 * style: ktlint 적용 * refactor: 타임라인 리팩터링 #232 (#263) * refactor: TimelineViewModelFactory의 생성자 파라미터 추가 - 내부 프로퍼티에 속해있던 TimelineRepository를 생성자 프로퍼티로 변경 * fix: 추억 목록 아이템이 하나일 때의 View 수정 - 아이템 개수가 하나일 때는 타임라인의 선이 나타나지 않도록 변경 * chore: 코루틴 예외 처리 로그에context 출력 * refactor: 메서드 분리 및 순서 재정렬 - 코드 컨벤션: override 메서드는 상단에 위치한다 * refactor: TimelineViewModel 생성 팩토리 메서드 활용 * style: ktlint 적용 * ui: 화면 전환에 사용될 twin animation 효과 생성 * ui: animation 효과 활용하여 화면 전환 애니메이션 적용 * ui: Main 화면의 배경 색을 하얀색(#FFFFFF)으로 지정 * style: ktlint 적용 * feat: 기분 선택 기능 구현 및 스타카토 조회 화면 구조 변경 #191 (#289) * feat: 기분 수정 요청을 보내는 Request Dto 작성 * feat: MomentApiService 에 기분 수정 요청에 대한 API 작성 * feat: 기분 수정 요청에 대한 DataSource 메서드 작성 * feat: 기분 도메인 모델 생성 * feat: 기분 도메인을 기분 수정 Request로 변환하는 메서드 작성 * ui: 기분 아이콘 이미지 리소스 추가 * ui: 기분 아이콘의 테두리를 selector로 생성 - 선택/미선택에 따라 다른 ui를 나타낸다 * ui: 기분 아이콘에 사용할 style 지정 * fix: API 변경에 따라 DTO 및 Mapper 변경 - 순간(현 스타카토)의 visitedAt의 타입을 LocalDate에서 LocalDateTime으로 변경 * fix: 순간 DTO에 기분 필드 추가 - 순간 Dto에 기분(Feeling) 필드를 추가함에 따라 Mapper 및 도메인 수정 * feat: 기분 선택 api에 필요한 repository 메서드 작성 * feat: 기분 uiModel 생성 * feat: 댓글에 대한 UI 모델 생성 * feat: 순간(현 스타카토) 상세 정보에 대한 UI 모델 생성 * feat: 기분 ImageView 의 선택 상태 바인딩 어댑터 작성 * feat: 댓글 화면 구성 및 Adapter, Fragment 작성 * feat: 순간(현 스타카토)의 Ui Model Mapper 변경 MomentDetailUiModel.CommentsUiModel -> CommentUiModel MomentDetailUiModel.MomentDefaultUiModel -> MomentDetailUiModel Feeling을 Ui Model로 변환하는 Mapper 추가 * feat: 기분 선택 View 구성 및 Fragment, ViewModel, Adapter, Handler 작성 * feat: 순간 상세에 대한 View 구성 및 Fragment, ViewModel 작성 * fix: 기분 선택 클릭 리스너와 바인딩 어댑터 설정 및 View 수정 * fix: 누락된 ViewModel 데이터 바인딩 설정 * feat: 순간 조회 화면 재구성 * refactor: 네비게이션 action 및 id 네이밍 수정 visit -> moment로 수정 * refactor: 방문 -> 순간 으로 키워드 변경 * refactor: 불필요한 클래스 및 xml 파일 제거 * style: ktlint 적용 * feat: 추억 API 변경사항 반영 및 리팩터링 #259 (#265) * ui: 추억 생성 화면 사진 로드 시 coil 라이브러리 사용 * ui: 삭제 버튼 아이콘 추가 * ui: 추억 생성 화면 사진 삭제 버튼 추가 * feat: 추억 생성 view model의 imageUri 설정 매개변수 타입 변경 * feat: 추억 생성 화면 사진 삭제 구현 * feat: 추억 수정 화면 사진 첨부 icon 가시성 설정 * ui: 추억 수정 화면 사진 삭제 버튼 추가 * feat: 추억 수정 화면 사진 삭제 버튼 가시성 설정 * feat: 추억 수정 view model의 imageUri 설정 매개변수 타입 변경 * feat: 추억 수정 화면 사진 삭제 구현 * fix: 추억 생성 화면의 사진 첨부란 연속 클릭 시 앱 종료 되는 버그 수정 * fix: 추억 수정 화면의 사진 첨부란 연속 클릭 시 앱 종료 되는 버그 수정 * feat: MemoryRequest dto에 썸네일 사진 url 필드 추가 * feat: 추억 생성 메서드의 시그니처 변경 - MemoryApiService 내 추억 생성 메서드의 시그니처 변경 - 위 변경에 따른 DataSource, Repository, ViewModel의 추억 생성 관련 메서드 시그니처 변경 * feat: 추억 생성 view model 주 생성자로 ImageRepository 주입 * feat: 추억 생성 화면의 썸네일 사진 저장 기능 구현 * feat: 서버에서 저장된 사진을 불러오는 기능 추가 (추억 생성 화면) - 추억 생성 화면에서 서버에 저장된 사진을 로드하는 기능 구현 - UI에 불러온 사진을 표시하는 로직 수정 * feat: 추억 생성 시 썸네일 사진 url 추가 * refactor: MemoryRequest의 추억 썸네일 사진 기본 인자 값 null로 설정 * feat: 추억 수정 메서드의 시그니처 변경 * feat: 추억 수정 view model 주 생성자로 ImageRepository 주입 * feat: 추억 수정 화면의 썸네일 사진 저장 기능 구현 * feat: 서버에서 저장된 사진을 불러오는 기능 추가 (추억 수정 화면) - 추억 수정 화면에서 서버에 저장된 사진을 로드하는 기능 구현 - UI에 불러온 사진을 표시하는 로직 수정 * feat: 추억 수정 시 썸네일 사진 url 추가 * refactor: 불필요한 MemoryUpdateRequest 제거 * ui: empty view 캐릭터 이미지 추가 * ui: 추억 설명글 유무에 따른 가시성 설정 * ui: 함께 한 사람들 가시성 gone 으로 설정 - 4차 스프린트 범위에서 제외됨 * feat: 이미지 선택 옵션 추가 (단일 선택 및 다중 선택 지원) * ui: TextInputLayout, TextInputEditText Style 정의 * ui: 추억 생성 화면 입력란 TextInputLayout으로 변경 - counter 속성 사용을 위해 TextInputLayout으로 변경함 * ui: 추억 수정 화면 입력란 TextInputLayout으로 변경 - counter 속성 사용을 위해 TextInputLayout으로 변경함 * ui: 추억 조회 화면 썸네일 사진 유무에 따른 가시성 설정 * ui: empty view 캐릭터 이미지 크기 변경 * ui: 앱 이름 Staccato_AN -> Staccato 로 수정 * refactor: 추억 생성 및 수정 화면 메서드 순서 정리 * ui: 제목용 TextInputEditTextStyle 정의 및 적용 * ui: 추억 생성 및 수정 화면 썸네일 coilPlaceHolder 변경 - 이전: shape_place_holder_rectangle - 이후: shape_all_gray1_8dp * refactor: 삭제 다이얼로그 show 메서드 호출 방식 변경 - apply를 사용하지 않는 방식으로 변경 * ui: 코멘트 미지원 안내 view 추가 * feat: 스타카토 생성, 수정 화면 사진 및 완료 버튼 개선 #242 (#291) * feat: (스타카토 생성 화면) 사진 드래그로 순서 변경 기능 구현 * refactor: data 패키지에 S3 이미지 API 분리 적용 * refactor: AttachedPhotoUiModel 및 프로그래스바 추가 * feat: recyclerView에서 지워진 사진의 job cancel 처리 * refactor: editText를 TextInputLayout로 수정 * feat: (스타카토 수정 화면) 사진 드래그로 순서 변경 / 로딩 구현 * refactor: 프로퍼티 네임 변경 및 visitedAt LocalDateTime으로 수정 * style: ktlint 적용 * build: 구글 맵 API 사용에 따른 CI 수정 #296 (#297) * build: 구글 맵 api key를 저장하는 파일을 설정하는 명령어 작성 * refactor: defaults 에 설정된 shell 설정에 따라 추가적인 shell 설정 삭제 * feat: Google Map 연결, 스타카토 목록 조회 API 연결 #54 (#295) * build: google map 의존성 추가 * build: 구글맵 관련 properties ignore 추가 * build: 구글맵 api key 설정 * feat: Google Map 연결 * feat: MainActivity Handler 구현 * ui: 추억 및 스타카토 생성 메뉴 추가 * ui: popup menu style 정의 * feat: 추억 생성 및 수정 menu 연결 - handler 연결 - 메서드 분리 * feat: 위치 권한 요청 구현 - ACCESS_FINE_LOCATION 권한 요청 - ACCESS_COARSE_LOCATION 권한 요청 * feat: 현 위치 표시 * style: MainActivity formatting * feat: locationPermissions 타입 변경 - 이전: List - 이후: Array * feat: MomentLocationDto, MomentLocationResponse 추가 * feat: 스타카토 목록 조회 api service 구현 * feat: 스타카토 목록 조회 data source 구현 * feat: MomentLocation 도메인 모델 구현 * feat: MomentLocationDto를 도메인 모델로 변환하는 mapper 구현 * feat: 스타카토 목록 조회 repository 구현 * feat: 스타카토 목록 조회 view model 구현 * feat: 스타카토 목록을 marker로 표시 * refactor: home 패키지명을 maps로 변경 * feat: 마커 클릭 시 스타카토 상세로 이동 기능 구현 * feat: 스타카토 조회 추억 id, 제목 필드 추가 * feat: 마지막 위치 위경도 찾기 * refactor: 안드로이드 1차 QA 반영 #299 (#301) * refactor: 안드로이드 1차 QA 반영 * refactor: 안드로이드 1차 QA 반영2 * refactor: 안드로이드 1차 QA 반영3 * refactor: 삭제 메시지 변경 * fix: 스타카토 조회 화면 스택 관리 및 ui 수정 #304 (#306) * feat: 지도 화면에서 스타카토 조회 화면으로 이동 시 스택 관리 * feat: 타임라인 화면에서 추억이 존재하지 않을 때 추억 생성 버튼 추가 * ui: 스타카토 조회 화면 툴바 위치 고정 * build: Android CD 적용 #300 (#308) * build: CD 워크플로우 yml 파일 작성 * build: keystore 접근을 위한 build.gradle.kts 파일 설정 * build: 기존 apk 추출 ci 파일 수정 - demo 버전의 apk를 추출 및 배포하는 목적에 맞게 파일 명 수정 - apk 빌드 후 테스트를 수행하는 job 추가 - firebase 앱 배포에 아티팩트 업로드하는 job 추가 * fix: ci 파일에도 keystore 생성 job 추가 * fix: 키스토어 환경변수를 base64로 디코딩하는 명령어 수정 * fix: 키스토어 환경변수를 base64로 디코딩하는 명령어 재수정 * fix: 키스토어 환경변수를 base64로 디코딩하는 명령어 재수정 * fix: ci 파일에 키스토어 관련 설정 적용 * fix: 키스토어 관련 명령어 일부 수정 * fix: build.gradle.kts 불필요한 괄호 제거 * fix: keystore.properties 로 부터 프로퍼티를 가져오는 형식 변경 * fix: upload-artifact step에서 빌드 파일의 upload 경로 수정 (#316) upload-artifact 는 defaults 설정의 working-directory 경로가 적용되지 않음 * fix: android cd 재수정 (2차) #317 (#319) * fix: upload-artifact 빌드 파일의 upload 경로 3차 수정 * fix: 배포 시 빌드 파일의 경로 수정 * fix: 빌드 파일의 upload 경로 수정 및 파일이 없는 경우 에러 처리 * fix: 빌드 파일의 upload 경로 4차 수정 * fix: 빌드 파일의 upload 경로 5차 수정 * fix: 빌드 파일의 upload 경로 6차 수정 - 디렉터리 경로 생성 후 upload 실행 * fix: 빌드 파일의 upload 경로 7차 수정 github의 workspace 환경변수(절대경로) 활용 * fix: clean test 제거 및 디버그용 파일 경로 탐색 명령어 추가 * fix: 디버그용 파일 경로 검색 명령어 수정 * fix: 디버그용 파일 경로 검색 명령어 삭제 * fix: 디버그용 파일 검색 명령어 삭제 및 업로드 파일 경로명 수정 * feat: 스타카토 생성 시 현 위치의 주소를 가져오는 기능 구현 #314 (#324) * feat: MainActivity에서 주소를 가져오는 로직 삭제 * feat: 스타카토 생성 시 현 위치의 주소를 가져오는 로직 구현 * refactor: 메서드 순서 정렬 * refactor: 스타카토 조회 화면 ViewPager2 적용 및 UI 아이콘 개선 #318 (#320) * refactor: 아이콘 추가 및 UI 개선 * feat: 스타카토 상세 사진 Viewpager 적용 * feat: 스타카토 상세 사진 Viewpager에 dot indicator 추가 * style: ktLint Format * feat: 메인 지도 화면에서 스타카토 생성하는 플로우 구현 #321 (#327) * feat: 날짜로 추억 목록 불러오는 getMemories API 추가 * feat: 메인에서 스타카토 생성 시 추억 목록 선택 가능 * feat: 스타카토 생성 시 역지오코딩과 추억 선택 연동 * build: debug와 release로 buildTypes 분리 (#329) - appName, appId, baseUrl 분리 - release에 난독화 적용 * build: debug 와 release 배포 분기에 따른 CD 수정 - CD에 대한 트리거 재설정 : main 브랜치에 대한 push 및 pr * fix: 스타카토 생성, 삭제 후 지도 화면의 마커가 갱신되지 않는 오류 해결 #326 (#330) * refactor: 지도 화면 onResume에서 스타카토 목록 load * refactor: 스타카토 목록 로드 메서드명 변경 - 이전: loadMoments - 이후: loadStaccatos * feat: 공유 view model에 스타카토 목록 업데이트 상태 추가 * fix: 스타카토 생성, 삭제 후 지도 화면의 마커가 갱신되지 않는 오류 해결 * feat: 지도 로드 시 현위치로 이동하도록 구현 * build: ci 및 cd 파일 수정 ci - 불필요한 gradle 빌드 및 테스트 제거 cd - 타겟 브랜치 develop 제거 * feat: 댓글 조회, 생성, 삭제 기능 구현 #290 (#331) * feat: 기분 수정 요청을 보내는 Request Dto 작성 * feat: MomentApiService 에 기분 수정 요청에 대한 API 작성 * feat: 기분 수정 요청에 대한 DataSource 메서드 작성 * feat: 기분 도메인 모델 생성 * feat: 기분 도메인을 기분 수정 Request로 변환하는 메서드 작성 * ui: 기분 아이콘 이미지 리소스 추가 * ui: 기분 아이콘의 테두리를 selector로 생성 - 선택/미선택에 따라 다른 ui를 나타낸다 * ui: 기분 아이콘에 사용할 style 지정 * fix: API 변경에 따라 DTO 및 Mapper 변경 - 순간(현 스타카토)의 visitedAt의 타입을 LocalDate에서 LocalDateTime으로 변경 * fix: 순간 DTO에 기분 필드 추가 - 순간 Dto에 기분(Feeling) 필드를 추가함에 따라 Mapper 및 도메인 수정 * feat: 기분 선택 api에 필요한 repository 메서드 작성 * feat: 기분 uiModel 생성 * feat: 댓글에 대한 UI 모델 생성 * feat: 순간(현 스타카토) 상세 정보에 대한 UI 모델 생성 * feat: 기분 ImageView 의 선택 상태 바인딩 어댑터 작성 * feat: 댓글 화면 구성 및 Adapter, Fragment 작성 * feat: 순간(현 스타카토)의 Ui Model Mapper 변경 MomentDetailUiModel.CommentsUiModel -> CommentUiModel MomentDetailUiModel.MomentDefaultUiModel -> MomentDetailUiModel Feeling을 Ui Model로 변환하는 Mapper 추가 * feat: 기분 선택 View 구성 및 Fragment, ViewModel, Adapter, Handler 작성 * feat: 순간 상세에 대한 View 구성 및 Fragment, ViewModel 작성 * fix: 기분 선택 클릭 리스너와 바인딩 어댑터 설정 및 View 수정 * fix: 누락된 ViewModel 데이터 바인딩 설정 * feat: 순간 조회 화면 재구성 * refactor: 네비게이션 action 및 id 네이밍 수정 visit -> moment로 수정 * refactor: 방문 -> 순간 으로 키워드 변경 * refactor: 불필요한 클래스 및 xml 파일 제거 * ui: xml 컨벤션에 맞추어진 타 사용자의 댓글 ui 구성 * feat: 댓글 API의 DTO 작성 * feat: 댓글 API Service 작성 * feat: 댓글 CRUD DataSource 작성 * refactor: CommentApiService 각 메서드의 반환 값을 Response로 변경 * feat: CommentApiService 를 create * feat: CommentDataSource 구현체 생성 * refactor: 댓글 Dto 클래스 네이밍 변경 - VisitLogDto -> CommentDto * refactor: CommentDto 의 ID 프로퍼티 네이밍 변경 - visitLogId -> commentId * refactor: VisitLog 도메인 모델 클래스의 네이밍 변경 - VisitLog -> Comment * refactor: Comment 도메인 모델의 ID 프로퍼티 네이밍 변경 - visitLogId -> commentId * feat: 새로운 댓글 도메인 모델 생성 * feat: CommentRepository 작성 * feat: Domain 모델과 DTO 모델을 변환해주는 Mapper 작성 - CommentDto를 Comment로 변환하는 메서드를 CommentMapper.kt로 이동 * feat: CommentRepository의 기본 구현체 작성 * feat: 댓글 ViewModel, Factory 작성 및 Comment 불러오기 구현 * ui: ViewModel 데이터바인딩 및 빈 댓글 문구에 대한 strings 설정 * feat: CommentsViewModel 활용 및 옵저빙 * feat: 댓글 조회, 생성, 삭제 기능 구현 * chore: ktlint 적용 * feat: 추억 생성 및 수정 이미지 로딩 중 표시 및 저장 버튼 비활성화 #332 (#334) * feat: 추억 생성 이미지 로딩 중 표시 * feat: 추억 수정 이미지 로딩 중 표시 * feat: 추억 생성 및 수정 이미지 로딩 중 저장 버튼 비활성화 * style: formatting --------- Co-authored-by: Somin Lee <46596035+s6m1n@users.noreply.github.com> Co-authored-by: hodu <92203597+Junyoung-WON@users.noreply.github.com> Co-authored-by: Junyoung-WON Co-authored-by: s6m1n * fix: 특정 기기에서 location이 null 되는 오류 수정 * deploy: 스타카토 v1.0.0 #333 (#336) * build: 프로젝트 생성 및 의존성 추가 * chore: 사용자 기능 및 권한 추가 * chore: gitignore 재설정 * chore: gitigonre .idea/ 추가 * build: develop-an 브랜치의 CI 설정 #3 (#10) * build: android-ci.yml 파일 생성 * chore: 오타 및 개행 수정 * chore: working-directory 수정 * build: ktLint 적용 및 format * ui: 디자인 시스템 구현 #11 (#44) * ui: color 정의 * ui: shape, selector 추가 * ui: icon 추가 * ui: font family 추가 - pretendard regular, medium, semibold, bold 추가 * ui: typography 정의 * ui: strings 정의 * ui: bottom sheet drag handle drawable 추가 * ui: styles 정의 * ui: detail toolbar 구현 - 상세 화면에서 사용 * ui: dialog, bottom sheet 구현 - 여행 및 방문 기록 삭제 dialog - 사진 등록 bottom sheet * ui: 사진 첨부 layout 구현 * feat: 삭제 다이얼로그, 사진 첨부 바텀 시트 fragment 추가 * ui: 세로모드로 고정 * build: data binding 의존성 추가 * style: strings resource 순서 정렬 * style: formatting * ui: plus icon 추가 * feat: jetpack navigation 및 바텀시트 프래그먼트 추가 #12 (#15) * build: androidx.navigation 및 dataBinding 의존성 추가 * feat: Binding 화면 클래스 및 bottomSheetNavigation 추가 * feat: TimelineFragment 임시 화면 추가 * feat: TravelFragment 임시 화면 추가 * feat: TravelCreationFragment 임시 화면 추가 * feat: VisitFragment 임시 화면 추가 * feat: VisitCreationFragment 임시 화면 추가 * feat: (여행, 방문 기록) 수정 화면 추가 * feat: (여행, 방문 기록) 생성 화면 이동 구현 * feat: BottomSheetController 설정 및 Navigation 이동 구현 * feat: 뒤로가기 버튼 클릭 시 BottomSheet, Toast 작동 구현 * feat: 여행, 방문 기록 생성을 위한 액티비티 추가 및 이동 구현 * feat: 여행, 방문 기록 수정을 위한 액티비티 추가 및 이동 구현 * build: 중복된 dataBinding 제거 * feat: 공통 이미지 로딩 BindingAdapter 설정 #33 (#41) * build: dataBinding 사용 설정 * feat: 이미지 로딩 바인딩 어댑터 설정 - Glide, Coil 바인딩 어댑터를 각각 작성 - placeholder 설정 * style: ktlint check - import 순서 조정 * fix: attribute 개수에 맞추어 BindingAdapter의 value 재설정 * style: 마지막 줄 개행 추가 * feat: placeHolder를 필수 속성으로 변경 및 coil 이미지 로딩 코드 수정 - placeHolder를 ImageView의 필수 속성으로 지정 - Coil BindingAdapter에서 url이 null인 경우에도 이미지를 로드하는 동작이 수행되도록 수정 * ui: 상단바 색상 변경 * build: develop-an의 CI 설정 수정 #38 (#39) - Git Action에 Secret으로 저장된 LOCAL_PROPERTIES_API_KEY를 변수로 가져온다. - 가져온 변수를 echo를 활용하여 local.properties에 설정한다. * build: develop-an 브랜치의 CI 파일 문법 오류 수정 #45 (#46) * fix: android-ci.yml 파일의 명령어 수정 LOCAL_PROPERTIES_API_KEY에 접근하는 명령어 수정 * fix: android-ci.yml 파일의 명령어 수정 #47 (#48) LOCAL_PROPERTIES_API_KEY에 접근하는 명령어 수정 * fix: 파이프라인 제거하여 명령어 수정 * fix: develop-an 브랜치의 CI 파일 명령어 재수정 #47 (#49) * fix: android-ci.yml 파일의 명령어 수정 LOCAL_PROPERTIES_API_KEY에 접근하는 명령어 수정 * fix: 파이프라인 제거하여 명령어 수정 --------- Co-authored-by: Somin Lee <46596035+s6m1n@users.noreply.github.com> * fix: 문자열 임을 명시하고 환경변수 설정 위치 조정 * fix: local.properties 생성 시점 수정 * feat: 데이터 패키지 설정 #13 (#35) * build: 서버 base url의 local.properties 사용 설정 및 BuildConfig 설정 * feat: Retrofit Client 작성 * fix: Merge Conflict 해결 - build.gradle.kts(project, app)의 ktlint 의존성 충돌 해결 - 버전 카탈로그 플러그인 충돌 해결 * feat: DTO 클래스 작성 * style: ktlint check - 불필요한 import 제거 - 개행 조정 - 콤마 추가 * feat: SerialName 어노테이션의 값을 camelCase로 수정 * refactor: DTO 클래스의 이름 수정 - API 요청으로 직접 보내거나 들어오는 JSON의 경우 DTO 클래스명 뒤에 Request/Response 를 붙이도록 설정 - JSON 안에 속성 값으로 들어가는 JSON은 DTO 클래스명 뒤에 Dto를 붙이도록 설정 * feat: 누락된 Dto 클래스 추가 TimelineResponse.kt - 타임라인 조회 시 여행 상세 목록을 불러올 때 사용되는 DTO 클래스 - TimelineTravelDto 리스트를 갖는다 * style: ktlint check * fix: const 키워드 제거 --------- Co-authored-by: hxeyexn * feat: 둥근 모서리의 이미지를 로드하는 BindingAdapters 추가 #58 (#59) * feat: 둥근 모서리로 이미지를 로딩하는 Glide 바인딩 어댑터 작성 - 세 속성이 모두 필요하다. - glideRoundedCornerImageUrl: 출력하고자 하는 이미지 url - glidePlaceHolder: placeHolder의 url - glideRoundingRadius: 모서리의 둥근 정도를 Int로 설정 * feat: 둥근 모서리로 이미지를 로딩하는 Coil 바인딩 어댑터 작성 - 세 속성이 모두 필요하다. - coilRoundedCornerImageUrl: 출력하고자 하는 이미지 url - coilPlaceHolder: placeHolder의 url - coilRoundingRadius: 모서리의 둥근 정도를 Float으로 설정 * fix: centerCrop 설정을 BindingAdapter 에 위임 - xml 속성으로 centerCrop을 주게 되면 Round Corner가 제대로 적용되지 않는 현상 발생 - Glide의 api로 제공되는 centerCrop() 메서드를 활용 * ui: 타임라인 프래그먼트(BottomSheet) 구현 #55 (#71) * ui: 타임라인 View xml 파일 작성 - 타임라인에 나타날 여행 상세 아이템 xml 작성 - 썸네일 사진 유무에 따라 뷰를 구분 - 타임라인이 나타날 fragment xml 작성 * feat: 타임라인 여행 상세 아이템 UI 모델 생성 * ui: 썸네일이 없는 여행상세 아이템의 margin 조정 * ui: Timeline RecyclerView의 layoutManager 설정 * ui: xml에서의 UiModel 데이터 바인딩 설정 * feat: ViewHolder 작성 - 썸네일 사진 유무에 따라 다른 ViewHolder로 구분 - 공통된 속성을 정의한 TimelineViewHolder 추상클래스 생성 * feat: TimelineRepository Interface 생성 * feat: 임시 TimelineRepository 구현체 생성 * feat: TimelineViewModel 및 Factory 생성 * feat: TimelineViewType 작성 * feat: TimelineAdapter 작성 * feat: TimelineFragment에 ViewModel과 Adapter 구현 * feat: 이미지 로딩 PlaceHolder drawable 추가 및 적용 * feat: 임시 데이터 연결 * ui: Timeline fragment 의 세부 설정 조정 * ui: Timeline의 Item xml 변경 - 뷰 타입을 3개로 분할: 첫 번째 아이템, 중간 아이템, 마지막 아이템 - 이에 따라 xml 파일 추가 및 view 수정 * feat: ViewType 변경에 따른 Adapter 및 ViewHolder 수정 * refactor: 불필요한 View 및 ViewHolder 제거 * feat: 여행 click 에 대한 event handler 생성 및 설정 * refactor: drawable 이름을 네이밍 컨벤션에 맞게 수정 * ui: RecyclerView의 마진 속성을 패딩 속성으로 변경 * feat: 바텀 시트 디자인 변경 및 툴바와의 상호작용 구현 * ui: 타임라인 글귀 추가 * style: ktlint check * ui: 둥근 모서리의 이미지로 변경 * ui: 방문 기록, 방문 기록 생성, 방문 기록 수정 화면 구현 #52 (#74) * ui: typography.body textSize 1sp 씩 증가 * feat: DeleteDialogFragment에 Handler 추가 * feat: 툴바의 수정, 삭제 버튼 제어를 위한 ToolbarHandler 추가 * feat: 방문 상세 화면을 위한 VisitDetailUiModel 추가 * ui: PlaceHolder를 위한 xml 파일 추가 * feat: 방문 기록 상세 화면을 위한 VisitAdapter 및 VisitViewHolder 구현 * feat: 임시 VisitViewModel와 VisitViewModelFactory 추가 * feat: VisitFragment 화면 구현 * feat: 방문 기록에 해당하는 여행 선택을 위한 TravelSelectionFragment 구현 * feat: 방문 기록에 해당하는 날짜 선택을 위한 VisitedAtSelectionFragment 구현 * feat: 방문 기록 생성을 위한 VisitCreationActivity 구현 * feat: 방문 기록 수정을 위한 VisitUpdateActivity 구현 * refactor: DialogHandler를 DeleteDialogFragment의 생성자에서 받도록 수정 * refactor: initVisitUpdateDoneButton 중복 로직 제거 * refactor: VisitViewHolderType 메서드 명 변경 of -> from * refactor: tv_place_name_title을 xml id convention에 맞게 수정 * ui: 여행 화면 구현 #51 (#75) * ui: 함께 간 사람들 item 구현 * ui: 방문 기록 item 구현 * ui: 여행 상세 화면 구현 * ui: 여행 생성 화면 구현 * ui: 여행 수정 화면 구현 * ui: placeholder에 사용할 drawable 추가 * ui: 여행 삭제 완료 string 추가 * feat: 둥근 모서리 이미지 BindingAdapter 구현 * feat: 함께 간 사람들 adapter 구현 * ui: 여행 상세 화면 NestedScrollView로 변경 - 이전: ScrollView - 이후: NestedScrollView * feat: 방문 기록 adapter 구현 * feat: 여행 상세 view 연결 * feat: 함께 간 사람들, 방문 기록 adapter 연결 * feat: 삭제 다이얼로그 handler 구현 * feat: 여행 상세 화면 toolbar handler 구현 - 뒤로가기 - 여행 수정 화면으로 이동 - 삭제 다이얼로그 show * feat: 여행 -> 방문 기록 화면 이동 구현 * ui: DatePickerStyle 추가 - DatePickerStyle, CustomMaterialCalendarStyle 추가 - staccato_blue 투명도 30 추가 * feat: 여행 저장 버튼, 여행 기간 BindingAdapter 추가 * feat: 여행 생성 view 연결 * feat: 여행 수정 view 연결 * style: formatting - Exceeded max line length 해결 - 임시 이미지 URL 변경 * refactor: 기간 선택 로직 메서드 분리 * feat: 타임라인의 API 적용 및 MainActivity의 Toolbar 제거 #81 (#93) * refactor: UI Model의 패키지 경로 변경 * refactor: API 명세 변경에 따른 TimelineTravelDto 수정 * refactor: repository 메서드 수정 - 서버 요청을 비동기적으로 처리하기 위해 suspend 키워드 삽입 - 기존의 임시 데이터 요청 코드를 위해 load 메서드 분리 * feat: Timeline의 API Service 작성 * feat: DataSource 인터페이스 작성 * feat: TimelineDataSource 구현체 생성 * refactor: 년도에 대한 default parameter 설정 * refactor: DataSource의 요청 메서드 네이밍 수정 * feat: http 통신이 가능하도록 Cleartext Traffic 허용 설정 * feat: Authorization Header를 삽입하기 위한 Interceptor 생성 * feat: Client에 HeaderInterceptor 추가 * refactor: errorBody의 message 속성 이름 변경 * feat: 도메인 모델 작성 * feat: Response(dto)에서 도메인 모델로 변환하는 확장함수 구현 * feat: 도메인 모델에서 UI 모델로 변환하는 확장함수 구현 * feat: Repository 수정 및 ViewModel 데이터 연결 * ui: MainActivity의 상단 툴바 제거 * refactor: ViewType에 viewType 속성 추가 및 when에서의 enum 활용 * refactor: Timeline의 공통 ViewHolder를 sealed class로 변경 * style: ktlint check 수행 * fix: Response 데이터의 nullable 속성에 맞추어 DTO 수정 및 누락된 DTO 추가 * fix: 데이터가 비어있는 경우(초기)에만 새로운 여행상세 목록을 받도록 수정 * refactor: lazy 로 지연 초기화 및 timelineService가 하나의 인스턴스로 관리되도록 수정 * fix: Travel의 description에 nullable 속성 추가 API 명세서 잘 좀 보자 제발 * refactor: create 메서드를 private으로 변경 Client 클래스에서 Service를 create 하여 제공 및 캐싱하기 때문에, 불필요한 인스턴스를 생성하지 않도록 create를 public으로 두지 않는 것이 좋다. * refactor: LocalDateConverters의 패키지 경로 수정 * refactor: 파일의 이름 수정 * style: ktlint check * refactor: 에러 메시지 상수화 * feat: 특정 여행 상세 조회 api 연결 #82 (#97) * feat: 특정 여행 상세 조회 api service 구현 * feat: 썸네일, 소개 타입 변경 및 기본 인자 설정 - 변경 data class : TravelResponse, TravelUiModel - 이전: String - 이후: String? * refactor: MatesUiModel 네이밍 변경 MatesUiModel이 공통적으로 사용될 예정이므로 MemberUiModel로 변경 - 이전: MatesUiModel - 이후: MemberUiModel * refactor: VisitUiModel 네이밍 변경 - 여행 상세 방문 기록에 사용되는 UiModel 이름을 명시적으로 변경 - 이전: VisitUiModel - 이후: TravelVisitUiModel * feat: 특정 여행 상세 조회에 사용할 domain model 추가 * feat: Api 응답 핸들링 로직 구현 * feat: 특정 여행 상세 조회 data source 구현 * feat: 특정 여행 상세 조회 repository 구현 * feat: 특정 여행 상세 조회 api 연결 * feat: 특정 여행 상세 조회 로직 매개변수 추가 - 타임라인에서 선택된 여행 id를 매개변수로 받도록 변경 * refactor: ApiResponseHandler 이름 오타 수정 * refactor: 에러 메세지 상수화 * feat: 특정 여행 상세 조회 시그니처 변경 - HeaderInterceptor 적용으로 authorization 매개변수 제거 * style: formatting * feat: 방문 기록, 방문 기록 생성, 방문 기록 수정 화면 API 연결 #79 (#99) * feat: VisitApiService 인터페이스 및 관련 data class 추가 * feat: VisitRepository, RemoteVisitDataSource 및 관련 class 추가 * feat: 각 Visit 화면들의 ViewModelFactory 구현 * feat: 각 Visit 화면들의 UiModel 클래스 및 Mapper 추가 * feat: 여행 선택 및 방문 날짜 선택을 위한 BottomSheetDialogFragment 수정 * feat: VisitFragment API 연결 * feat: VisitCreationActivity API 연결 * feat: VisitUpdateActivity API 연결 준비 * refactor: visitApiService를 StaccatoClient object로 이동 * refactor: TravelVisit 클래스의 visitImage 변수 nullable하게 수정 * refactor: VisitApiService의 중복된 @Header 제거 * refactor: 방문 생성 성공 시 created id를 가져오도록 리팩터링 * chore: 변수명 visitImage로 수정 및 ktLint 적용 * refactor: 여행 수정 완료 동작 구현 및 VisitUpdateActivity 함수 분리 * feat: 여행 생성 api 연결 #98 (#104) * feat: 여행 생성 api service 구현 * feat: 여행 생성 data source 구현 * feat: 방문 기록 썸네일 타입 변경 및 기본 인자 설정 - 변경 data class :  TravelVisitDto, TravelVisit, TravelVisitUiModel - 이전: String - 이후: String? * build: converter scalars 의존성 추가 * feat: 여행 생성 ApiService 반환값 및 DataSource 시그니처 변경 - 여행 생성 ApiService 반환값 변경 - DataSource 시그니처 변경 - TravelCreation DomainModel 구현 - TravelCreation Dto 변환 Mapper 구현 * feat: Client에 ScalarsConvert 추가 - Header 값을 읽어오기 위해 ScalarsConvert 추가 * feat: 여행 생성 repository 구현 * feat: 여행 생성 api 연결 * feat: TravelViewModel 생성자 변경 - 이전: travelId를 TravelViewModel 생성자로 넣어줌 - 이후: travelId를 loadTravel()의 매개변수로 넣어줌 * ui: map 화면 변경 * refactor: 컨벤션 통일 및 패키지 정리 #112 (#118) * refactor: bind 네임스페이스 적용 * refactor: BindingAdapters 메서드명 변경 * refactor: 컨벤션 맞게 xml 파일 이름 변경 * refactor: data 패키지 구조 정리 * refactor: RemoteVisitDataSource 컨벤션 따라 네이밍 변경 * refactor: 네트워킹 관련 메서드 이름 변경 - api service, data source, repository * refactor: presentation 패키지 구조 정리 * refactor: message utils 생성 및 적용 Co-authored-by: s6m1n Co-authored-by: Junyoung-WON * build: develop-an의 CI 테스트 자동화 추가 및 데모 APK 추출 #78 (#92) * build: test 자동화 Job 추가 * build: local.properties 생성 시점 변경 * build: 디버그 APK를 빌드하여 업로드하는 workflow 작성 * fix: test Job과 APK build Job에 local.properties 생성 동작 추가 * build: read 전용 권한 제거 * build: Firebase Analytics, Crashlytics 설정 #136 (#143) * build: Firebase Analytics, Crashlytics 의존성 추가 * chore: google-service.json ignore * feat: 특정 여행 상세 수정 api 연결 #109 (#146) * feat: 여행 수정 api service 구현 * feat: 여행 수정 data source 구현 * feat: 여행 수정 repository 구현 * feat: 여행 수정 화면 현재 데이터 로딩 기능 구현 * refactor: 컨벤션 따라 여행 api service의 수정 메서드명 변경 - 이전: updateTravel - 이후: putTravel * feat: 특정 여행 상세 수정 api 연결 * refactor: memberImage 타입 변경 및 기본 인자 설정 * refactor: MembersDto 삭제 * refactor: TravelCreationUiModel.kt 삭제 * refactor: TravelCreation 이름 변경 - 이전: TravelCreation - 이후: NewTravel * refactor: api 명세서 변경에 따른 도메인 모델 수정 및 여행 코드 리팩터링 #151 (#152) * refactor: nickName 변수명 변경 - 이전: nickName - 이후: nickname * ui: 여행 수정 화면 이미지 속성 수정 - glide -> coil 이용 - scaleType : fitXY -> centerCrop * style: import 정렬 * feat: 여행 상세 -> 방문 상세로 이동 시 여행 id 전달 * feat: 방문기록 조회 dto 수정 - 방문기록 조회 도메인 변경으로 인해 방문 기록이 조회되지 않음 - 따라서 api 명세서와 일치하도록 dto 수정하여 오류 해결 * refactor: 여행 생성을 위한 viewModel 메서드 분리 * refactor: 여행 조회를 위한 viewModel 메서드 분리 * feat: 여행 수정 handler 구현 * refactor: 여행 default id 변경 - 이전: -1L - 이후: 0L * refactor: TravelHandler 구현 위치 변경 - 이전: TravelViewModel - 이후: TravelFragment * style: 컨벤션에 맞게 TravelFragment의 메서드 순서 수정 * refactor: TravelFragment의 travelId 초기화 방식 변경 * feat: 여행 생성 및 수정 error toast 구현 * feat: 방문 생성 화면, 방문 수정 화면에서 갤러리 사진 불러오기 구현 #150 (#155) * feat: PhotoAttachFragment에 PhotoAttachHandler 연결 * feat: PhotoAttachFragment 앨범 접근 권한 관련 로직 구현 - API level 33 이상 : READ_MEDIA_IMAGES - API level 33 이하 : READ_EXTERNAL_STORAGE - ActivityResultLauncher를 이용한 권한 요청 - 권한 거부 시, 설정으로 이동하는 스낵바 띄우기 * feat: PhotoAttachFragment 앨범에서 불러온 이미지의 URI 추출하기 * feat: 불러온 이미지의 URI를 호스트 Activity로 전달 - OnUrisSelectedListener 인터페이스 추가 * feat: Uri를 File로 변환하는 메서드 파일 추가 * refactor: pr 리뷰 반영 * refactor: pr 리뷰 반영2 * build: develop-an의 android-ci 수정 #115 (#160) - local.properties: 파일 생성 후 secrets로부터 base_url 설정 - google-services.json: firebase android 구성파일 설정을 위해 secrets로부터 생성 * fix: android-ci 환경변수 생성 위치 조정 (#164) * build: local.properties 와 google-services.json 설정 - local.properties: 파일 생성 후 secrets로부터 base_url 설정 - google-services.json: firebase android 구성파일 설정을 위해 secrets로부터 생성 * fix: 환경 변수 설정 위치 변경 * build: bash 쉘에 맞는 명령어 활용 #115 (#165) * build: local.properties 와 google-services.json 설정 - local.properties: 파일 생성 후 secrets로부터 base_url 설정 - google-services.json: firebase android 구성파일 설정을 위해 secrets로부터 생성 * fix: 환경 변수 설정 위치 변경 * fix: bash 쉘에 적합한 명령어 형식으로 변경 * feat: 특정 여행 상세 삭제 api 연결 #153 (#167) * feat: 특정 여행 삭제 api service 구현 * feat: 특정 여행 삭제 data source 구현 * feat: 특정 여행 삭제 repository 구현 * feat: 특정 여행 삭제 기능 api 연결 * feat: error handling 방식 수정 - 서버에서 들어오는 error body의 status와 message를 활용하는 방식으로 변경 * refactor: DialogHandler를 독립적으로 관리 * refactor: api path 상수 활용 * refactor: BuildConfig에 token 정의 * refactor: DEFAULT_VALUE 상수 제거 * feat: 여행 생성 기능 api 수정 #169 (#178) * feat: onUrisSelected 매개변수 가변인자로 변경 * feat: 여행 생성 화면 갤러리 이미지 로딩 기능 구현 * refactor: 이미지 선택 리스너 초기화 메서드명 오타 수정 * refactor: 스낵바 액션 설정 코드 간소화 * feat: TravelRequest 의 여행 썸네일 필드 제거 * refactor: 여행 썸네일 이미지 변수명 수정 * feat: 이미지 전송 기능 구현 * refactor: image url 변수명 변경 - 변수 끝에 url이 오도록 * feat: 여행 생성 progressBar 구현 * ui: 사진 첨부 아이콘 가시성 설정 * feat: 여행 상세 수정 기능 api 변경 및 여행 리팩터링 #180 (#181) * feat: 여행 수정 화면 갤러리 이미지 로딩 기능 구현 * feat: URL 및 URI 기반 이미지 로딩 BindingAdapter 구현 * feat: 이미지 전송 기능 구현 * feat: 여행 수정 progressBar 구현 * fix: 삭제 불가능한 여행 삭제 시도 관련 에러 토스트 문제 해결 삭제 불가능한 여행을 삭제하려고 시도 -> 방문 조회 -> 뒤로 가기 버튼 클릭 -> 삭제 불가능 에러 토스트가 다시 뜨는 문제가 발생해 이를 해결 * refactor: TravelCreationViewModel의 imageUrl 변수 제거 * ui: 여행 상세 내 방문 기록 이미지 scaleType 속성 설정 * ui: 여행 생성 썸네일 이미지 scaleType 속성 설정 * fix: 여행 소개 미입력 시 여행이 생성 되지 않는 오류 해결 * refactor: 타임라인 화면 리팩터링 #162 (#179) * ui: 타임라인 RecyclerView의 크기 조정 및 여백 수정 * feat: Activity와 Fragment 간 데이터를 공유하는 공유 ViewModel 생성 * feat: 공유 ViewModel을 이용하여 타임라인 업데이트 여부를 공유 * refactor: RecyclerView.Adapter에서 ListAdapter로 변환 * refactor: 처음 타임라인을 불러오는 동작을 ViewModel 초기화 시에 수행 * fix: ListAdapter 수정 - 불필요한 travels 프로퍼티와 getItemCounts 메서드 제거 - currentList를 사용하는 것으로 변경 * refactor: 에러 핸들링 방식 수정 및 ViewModel 수정 - TimelineDefaultRepository로 네이밍 변경 - ApiResponseHandler와 ResponseResult를 이용하여 에러 핸들링 처리 - TimelineViewModel 에러 메시지 LiveData 사용 - 그 외 repository, dataSource 프로퍼티 이름 수정하여 통일 * refactor: MutableLiveData의 값 업데이트를 setValue로 변경 및 메서드 분리 * style: ktlint 적용 * feat: 3차 스프린트에서 수정된 방문 기록 상세 API 연결 #163 (#183) * feat: 방문 상세 생성 API 연결 * feat: 방문 상세 수정, 삭제 API 연결 * feat: 방문 기록 생성/수정 시 양방향 데이터 바인딩 적용 * feat: 방문 기록 생성 화면 사진 다중 선택 구현 * feat: 방문 기록 생성 이미지 업로드 구현 * feat: 방문 기록 생성 및 수정 시 로딩과 토스트 추가 * feat: 닉네임을 활용한 로그인 기능 구현 #124 (#172) * ui: 로그인 화면 구성 - 로그인 화면에서 사용되는 텍스트를 strings에 추가 - 로그인 버튼 스타일에 대한 style 생성 - xml 임시로 작성 * ui: 앱 로고 삽입 및 margin 조정 - 임시 로고 이미지 저장 - 로고 크기 및 마진 조정 * feat: 로그인 API Service 작성 및 Retrofit 객체 생성 * feat: 로그인 DataSource 작성 * feat: 로그인 Repository 생성 * feat: 사용자 정보를 저장하는 SharedPreferences Manager 생성 - 토큰 값 불러오기 및 저장 - 추후 사용자 닉네임, 사용자 프로필 이미지 등의 정보 저장 가능 * feat: Application 생성 및 사용자 정보 Preferences Manager 캐싱 * ui: Splash Screen 화면 구성을 위한 테마 생성 * feat: Preferences 로부터 사용자 토큰 값을 가져와 헤더에 추가하도록 변경 * refactor: Repository 네이밍 통일 * refactor: DataSource 기본 인자 추가 * feat: LoginViewModel 및 Handler 작성 * feat: LoginViewModel 을 생성하는 ViewModel Factory 작성 * feat: LoginActivity 작성 및 양방향 데이터 바인딩 적용 * feat: StaccatoApplication과 LoginActivity 설정 및 LoginActivity를 시작 화면으로 변경 * style: 불필요한 namespace 제거 및 lint 확인 * refactor: LoginViewModel과 Factory를 viewmodel 패키지로 분리 * refactor: TimelineViewModel과 Factory를 viewmodel 패키지로 분리 * style: ktlint 적용 * fix: 불필요한 ConverterFactory 제거 - 더 이상 사용하지 않는 text/plain 변환용 ScalarsConverterFactory 제거 * feat: 닉네임 로그인 요청 및 응답에 대한 DTO 작성 * refactor: 로그인 요청, 응답 시 DTO 활용 * fix: 토큰 값을 불러오고 및 저장하는 동작의 비동기 처리 및 화면 전환 개선 * refactor: 토큰 값을 캐싱하여 저장하는 TokenManager 생성 및 적용 - 매번 runBlocking을 통해 Preference에 저장된 토큰 값을 불러오는 것은 네트워크 성능을 저하시킨다. - 따라서, token 값을 캐싱하여 저장하는 TokenManager를 활용한다. - 첫 네트워크 요청 시에만 토큰을 불러오는 작업을 동기적으로 처리하기 위해 Main Thread가 Blocking 된다. - TokenManager가 Preference로부터 가져온 토큰을 캐싱하여 저장한다. - 이후 요청부터는 캐시된 토큰을 가져오므로 Main Thread가 Blocking 되지 않는다. * style: ktlint 적용 * feat: Night 모드 비활성화 * refactor: 여행 기간 날짜 형식 변환을 BindingAdapter에서 수행 - TimelineTravelUiModel 프로퍼티 수정 - UiModel의 여행기간 날짜를 LocalDate로 갖도록 통일 - 추후 날짜 관련 UI가 변경되었을 때 확장성 고려 - BindingAdapters에 날짜 형식 변환해주는 메서드 작성 * chore: 주석 처리된 Log 코드 삭제 * style: xml View의 ID 네이밍 컨벤션 적용 * ui: 앱 심볼 로고 추가 및 스플래시 스크린에 적용 * feat: 방문 상세 생성 API 연결 * ui: 배경 색을 흰 색으로 지정 * feat: 키보드 활성화 상태에서 화면 터치 시 키보드를 내리는 기능 추가 * style: ktlint 적용 * feat: 방문 상세 수정, 삭제 API 연결 * feat: 방문 기록 생성/수정 시 양방향 데이터 바인딩 적용 * fix: merge 과정에서 발생한 id값 네이밍 충돌 해결 * build: 앱 version code와 version name 수정 * feat: 방문 기록 생성 화면 사진 다중 선택 구현 * feat: 방문 기록 생성 이미지 업로드 구현 * feat: 스플래시 스크린 시간 조정 및 데모 시연용 토큰 활성화 * fix: 동일한 사진이 여러 장 업로드되는 버그 수정 * feat: 기존 로그인 기능으로 롤백 --------- Co-authored-by: somin * fix: 테스트 배포를 위한 버그 수정 #198 (#219) * style: formatting * fix: 무한 로딩 오류 수정 * fix: 여행 생성 오류 수정 * add: 앱 아이콘 변경 * ui: timeline empty view 추가 * feat: timeline empty view 가시성 설정 * ui: 여행 내 방문 기록 empty view 추가 및 가시성 설정 * ui: 방문 기록 내 로그 미지원 기능 view 추가 * feat: 사진 첨부 카메라 미지원 기능 알림 추가 * ui: 필수값 표기 style 정의 * ui: 여행 생성 및 수정 필수값 표기 추가 * ui: 방문 기록 생성 및 수정 필수값 표기 추가 * feat: 생성, 수정, 로그인 시 다중 요청 전송을 막기 위한 화면 터치 제한 * feat: 장소 생성의 사진 첨부 리사이클러뷰 구현 - 사진 추가 & 삭제 구현 - GridLayout으로 변경 - 사진 중복 없이 최대 5장으로 제한 - 새로 추가된 사진이 기존 사진 뒤에 더해지도록 구현 * chore: 방문 생성 화면 rv_photo_attach로 xml id 수정 * ui: app icon 및 splash icon 변경 * refactor: xml ID 네이밍 컨벤션 적용 --------- Co-authored-by: somin Co-authored-by: Junyoung-WON * refactor: 도메인명 변경에 따라 travel을 memory로 수정 #217 (#231) * refactor: 패키지명 travel -> memory로 수정 * refactor: dto의 TravelMapper 를 MemoryMapper 로 네이밍 변경 * refactor: 여행(현 추억) 생성 response dto 네이밍 변경 - TravelCreationResponse -> MemoryCreationResponse * refactor: 여행(현 추억) request dto 네이밍 변경 - TravelRequest -> MemoryRequest * refactor: 여행(현 추억) 조회 response dto 네이밍 변경 - TravelResponse -> MemoryResponse * refactor: 여행(현 추억) 수정 request dto 네이밍 변경 - TravelUpdateRequest -> MemoryUpdateRequest * refactor: 여행(현 추억) 내 방문 dto 네이밍 변경 - TravelVisitDto -> MemoryVisitDto * refactor: 타임라인 여행(현 추억) item의 dto 네이밍 변경 - TimelineTravelDto -> TimelineMemoryDto * refactor: 여행(현 추억) ApiService 네이밍 변경 - TravelApiService -> MemoryApiService * refactor: 여행(현 추억) DataSource 네이밍 변경 - TravelDataSource -> MemoryDataSource - TravelRemoteDataSource -> MemoryRemoteDataSource * refactor: 여행(현 추억) Repository 네이밍 변경 - TravelRepository -> MemoryRepository - TravelDefaultRepository -> MemoryDefaultRepository * style: TimelineMapper import 재정렬 * refactor: NewTravel 도메인명을 NewMemory로 변경 * refactor: Travel 도메인명을 Memory로 변경 * refactor: TravelVisit 도메인명을 MemoryVisit으로 변경 * refactor: presentation의 TravelMapper 명 변경 - TravelMapper -> MemoryMapper * refactor: 여행(현 추억) ui 모델명 변경 - TravelUiModel -> MemoryUiModel - TravelVisitUiModel -> MemoryVisitUiModel * refactor: 여행(현 추억) view model 명 변경 - TravelViewModel -> MemoryViewModel - TravelViewModelFactory -> MemoryViewModelFactory * refactor: MemoryApiService의 Path 변경 - travel을 memory로 변경 - travels을 memories로 변경 * refactor: Memory 관련 dto 변수명 변경 - travel을 memory로 변경 * refactor: Timeline Dto의 Memory 관련 변수명 변경 - travel을 memory로 변경 - travels를 memories로 변경 * refactor: Memory 관련 도메인 모델의 변수명 변경 - travel을 memory로 변경 * refactor: Memory 관련 ui 모델의 변수명 변경 - travel을 memory로 변경 * refactor: data layer의 Memory 관련 함수 및 변수명 변경 - travel을 memory로 변경 * refactor: 방문 생성 request dto의 travelId 변수명 변경 - travelId -> memoryId * refactor: 여행(현 추억) 조회 view model 및 fragment의 네이밍 변경 - travel -> memory * refactor: fragment_travel 의 리소스 네이밍 변경 - travel -> memory - strings.xml의 리소스명 변경 * refactor: TravelCreationActivity 네이밍 변경 - TravelCreationActivity -> MemoryCreationActivity * refactor: 여행(현 추억) 생성의 ViewModel 관련 네이밍 변경 - TravelCreationViewModel -> MemoryCreationViewModel - TravelCreationViewModelFactory -> MemoryCreationViewModelFactory - 관련 함수 및 변수명 변경 - travel -> memory * refactor: 여행(현 추억) 생성, 수정에 관한 xml 리소스 명 변경 - travel -> memory - strings.xml 의 관련 리소스 수정 * refactor: 여행(현 추억) 수정 Activity, Handler 의 네이밍 변경 - travel -> memory * refactor: 여행(현 추억) 수정 ViewModel 의 네이밍 변경 - 관련 함수 및 변수 명 변경 - travel -> memory - Factory 클래스명 변경 * refactor: 여행(현 추억) 생성, 수정에서의 파일 변환 메서드명 변경 - travel -> memory - 자식 파일 명 상수화 * refactor: Timeline 의 UI 모델 및 Travel ID Key 의 리네이밍 - travel -> memory 로 일괄 변경 * refactor: presentation/timeline 내 travel 도메인명 변경 - travel -> memory - TimelineMapper 내 domain model -> ui model 변환 메서드명 변경 * refactor: dto/MemoryMapper 내 domain 변환 메서드명 변경 - dto/MemoryMapper 내 domain model을 dto로 변환하는 메서드명 변경 - travel -> memory * refactor: dummyTravel 을 dummyMemory 로 변경 * refactor: MainActivity 내 travel을 memory로 변경 * refactor: activity_main 내 travel을 memory로 변경 * refactor: TimeLineApiService 내 GET 메서드 path 수정 - travels -> memories * refactor: MemoryFragment 내 travel 을 memory 로 변경 - MemoryFragment, fragment_memory 내 travel 을 memory 로 변경 * refactor: MemoryViewModel 내 error message 변수명 변경 - TRAVEL_ERROR_MESSAGE -> MEMORY_ERROR_MESSAGE * refactor: navigation graph 내 travel을 memory로 변경 * refactor: VisitUpdateActivity 내 extra 키 값 수정 - TRAVEL_ID_KEY -> MEMORY_ID_KEY - TRAVEL_TITLE_KEY -> MEMORY_TITLE_KEY * refactor: VisitFragment 내 travel을 memory로 변경 * refactor: VisitUpdateActivity 내 travel을 memory로 변경 * refactor: VisitUpdateViewModel 내 travel을 memory로 변경 * refactor: VisitTravelUiModel을 VisitMemoryUiModel로 변경 * refactor: 방문 수정 xml의 travel을 memory로 변경 * refactor: 여행(현 추억) 선택 xml 내 travel을 memory로 변경 * refactor: 여행 선택 바텀 시트 내 travel을 memory로 변경 - TravelSelectionFragment -> MemorySelectionFragment 로 수정 - TravelSelectionHandler -> MemorySelectionHandler 로 수정 - TravelSelectionFragment 내 메서드명 수정 - TravelSelectionHandler 내 매개변수명 수정 * refactor: VisitRepository와 구현체의 메서드 내 매개변수명 통일 * refactor: VisitsViewHolder 내 travel을 memory로 변경 * refactor: VisitCreationActivity 내 travel을 memory로 변경 * refactor: VisitCreationViewModel 내 travel을 memory로 변경 * refactor: 방문 생성 xml 내 travel을 memory로 변경 * refactor: BindingAdapters 내 travel을 memory로 변경 * refactor: strings 내 travel을 memory로 변경 - strings 내 '여행'을 '추억'으로 수정 Co-authored-by: Junyoung-WON Co-authored-by: s6m1n * refactor: visit, visit log 도메인명 수정 #218 (#237) * refactor: VisitApiService 내 visit을 moment 로 변경 - 파일명 수정 - path 수정 - 메서드명 수정 - 매개변수명 수정 * refactor: data/visit 패키지명을 moment로 변경 * refactor: data/dto/visit 패키지명을 moment로 변경 * refactor: VisitCreationRequest 네이밍 변경 - 이전: VisitCreationRequest - 이후: MomentCreationRequest * style: StaccatoClient import 재정렬 * refactor: VisitCreationResponse 네이밍 변경 - 이전: VisitCreationResponse - 이후: MomentCreationResponse - 필드명 변경 : visitId -> momentId * refactor: VisitResponse 네이밍 변경 - 이전: VisitResponse - 이후: MomentResponse - VisitResponse 필드 내 visit을 moment로 변경 - VisitResponse 필드 내 visitLogs SerialName을 comments로 변경 * refactor: VisitUpdateRequest 네이밍 변경 - 이전: VisitUpdateRequest - 이후: MomentUpdateRequest - VisitUpdateRequest 필드 내 visit을 moment로 변경 * refactor: VisitLogDto 내 SerialName 변경 - visitLogId를 commentId로 변경 * refactor: MemoryResponse 내 visits SerialName 변경 - visits를 moments로 변경 * refactor: VisitCreationViewModel 내 FORM_DATA_NAME 변경 - 이전: visitImageFiles - 이후: momentImageFiles * refactor: MemoryVisitDto 내 visit를 moment로 변경 - MemoryVisitDto -> MemoryMomentDto로 변경 - visitId -> momentId로 변경 - visitImageUrl -> momentImageUrl로 변경 * refactor: VisitRemoteDataSource 내 visit을 moment로 변경 - VisitRemoteDataSource -> MomentRemoteDataSource로 변경 - 메서드명 변경 - 매개변수명 변경 * refactor: MomentRepository 및 구현체 내 visit을 moment로 변경 - VisitRepository -> MomentRepository로 변경 - VisitDefaultRepository -> MomentDefaultRepository로 변경 - 메서드명 변경 - 매개변수명 변경 * refactor: Visit 도메인 모델명 및 변수명 변경 - Visit -> Moment로 변경 - visitLogs -> comments로 변경 * refactor: Memory 도에인 모델의 visits을 moments로 변경 * refactor: MemoryVisit 도메인 모델 내 visit을 moment로 변경 * refactor: MemoryResponse의 visits 필드명을 moments로 변경 * refactor: dto/mapper/VisitMapper를 MomentMapper로 변경 * refactor: presentation/visit 패키지명을 moment로 변경 * refactor: VisitViewHolderType 네이밍 변경 - VisitViewHolderType -> MomentViewHolderType - enum 상수명 변경 - VISIT_DEFAULT -> MOMENT_DEFAULT - MY_VISIT_LOG -> MY_COMMENTS * refactor: VisitViewHolder 네이밍 변경 - VisitViewHolder -> MomentViewHolder - VisitDefaultViewHolder -> MomentDefaultViewHolder - MyVisitLogViewHolder -> MyCommentViewHolder * refactor: VisitAdapter 내 visit을 moment로 변경 - VisitAdapter -> MomentAdapter 로 변경 - visit -> moment 로 변경 * refactor: MomentAdapter 내 visit log를 comments로 변경 * refactor: VisitDetailUiModel 내 visit을 moment로 변경 - VisitDetailUiModel -> MomentDetailUiModel - VisitDefaultUiModel -> MomentDefaultUiModel - visitImageUrls -> momentImageUrls * refactor: VisitLogUiModel을 CommentsUiModel로 변경 * refactor: VISIT_ID_KEY extra key id 네이밍 변경 - VISIT_ID_KEY -> MOMENT_ID_KEY * refactor: VisitFragment 내 visit을 moment로 변경 * refactor: VisitViewModel 내 visit을 moment로 변경 - VisitViewModel -> MomentViewModel로 변경 - VisitViewModelFactory -> MomentViewModelFactory로 변경 * refactor: VisitMemoryUiModel 네이밍 변경 - VisitMemoryUiModel -> MomentMemoryUiModel로 변경 * refactor: presentation/visitcreation 패키지명 momentcreation으로 변경 * refactor: VisitCreationActivity 내 visit을 moment로 변경 - VisitCreationActivity -> MomentCreationActivity로 변경 * refactor: VisitCreationHandler 네이밍 변경 - VisitCreationHandler -> MomentCreationHandler로 변경 * refactor: VisitCreationViewModel 내 visit을 moment로 변경 - VisitCreationViewModel -> MomentCreationViewModel로 변경 - 메서드 및 변수명 변경 * refactor: 여행 -> 추억, 방문 기록 -> 스타카토로 도메인명 변경 * feat: s3 api 연결 #239 (#241) * feat: ImageResponse, ImageApiService 구현 * feat: ImageRepository 및 구현체 구현 Co-authored-by: s6m1n * fix: 추억 기능 버그 수정 #246 (#252) * fix: 일부 EditText 개행 불가 처리 및 키보드 숨김 처리 #247 (#249) * ui: 닉네임과 추억 생성, 수정 제목 입력 시 줄바꿈 제한 * fix: 키보드 활성화 상태에서 빈 화면 터치로 키보드 숨김 처리 - 메서드 명 변경: setHideKeyboardAction -> setHidingKeyboardAction * style: 클래스 내 override 메서드의 순서 변경 - 팀 코드 컨벤션에 맞게 순서 재정렬 - override 메서드를 상단에 둔다. * style: ktlint 적용 * fix: root뷰 터치 시 클릭 이벤트가 발생하지 않는 오류 수정 - 원인 분석: ConstraintLayout 내부 Toolbar 및 ScrollView, 그리고 그 자식 View들이 클릭 이벤트를 가로채기 때문에, 바인딩 된 최상단 root 뷰인 ConstraintLayout의 클릭 이벤트가 동작하지 않는다. - 해결 방법: 여러 클릭 이벤트를 가로채는 dispatchTouchEvent 메서드를 오버라이드하여, 터치된 부분이 현재 포커스가 되지 않은 View(키보드 바깥 화면) 범위라면, 키보드를 숨기는 동작을 추가하였다. * refactor: 키보드 숨김 동작을 handler 바인딩으로 적용 - LoginHandler 에 화면 터치에 대한 동작을 추가, 화면 터치 시 키보드를 숨김 처리하는 동작을 바인딩으로 설정 - InputMethodManager 인스턴스를 지연초기화하여 저장 * refactor: InputMethodManager 인스턴스를 lazy로 지연 초기화 * fix: 닉네임, 제목 입력 칸의 키보드 액션 버튼 변경 - 키보드의 액션 타입을 Search에서 Done으로 변경 * style: ktlint 적용 * refactor: 타임라인 리팩터링 #232 (#263) * refactor: TimelineViewModelFactory의 생성자 파라미터 추가 - 내부 프로퍼티에 속해있던 TimelineRepository를 생성자 프로퍼티로 변경 * fix: 추억 목록 아이템이 하나일 때의 View 수정 - 아이템 개수가 하나일 때는 타임라인의 선이 나타나지 않도록 변경 * chore: 코루틴 예외 처리 로그에context 출력 * refactor: 메서드 분리 및 순서 재정렬 - 코드 컨벤션: override 메서드는 상단에 위치한다 * refactor: TimelineViewModel 생성 팩토리 메서드 활용 * style: ktlint 적용 * ui: 화면 전환에 사용될 twin animation 효과 생성 * ui: animation 효과 활용하여 화면 전환 애니메이션 적용 * ui: Main 화면의 배경 색을 하얀색(#FFFFFF)으로 지정 * style: ktlint 적용 * feat: 기분 선택 기능 구현 및 스타카토 조회 화면 구조 변경 #191 (#289) * feat: 기분 수정 요청을 보내는 Request Dto 작성 * feat: MomentApiService 에 기분 수정 요청에 대한 API 작성 * feat: 기분 수정 요청에 대한 DataSource 메서드 작성 * feat: 기분 도메인 모델 생성 * feat: 기분 도메인을 기분 수정 Request로 변환하는 메서드 작성 * ui: 기분 아이콘 이미지 리소스 추가 * ui: 기분 아이콘의 테두리를 selector로 생성 - 선택/미선택에 따라 다른 ui를 나타낸다 * ui: 기분 아이콘에 사용할 style 지정 * fix: API 변경에 따라 DTO 및 Mapper 변경 - 순간(현 스타카토)의 visitedAt의 타입을 LocalDate에서 LocalDateTime으로 변경 * fix: 순간 DTO에 기분 필드 추가 - 순간 Dto에 기분(Feeling) 필드를 추가함에 따라 Mapper 및 도메인 수정 * feat: 기분 선택 api에 필요한 repository 메서드 작성 * feat: 기분 uiModel 생성 * feat: 댓글에 대한 UI 모델 생성 * feat: 순간(현 스타카토) 상세 정보에 대한 UI 모델 생성 * feat: 기분 ImageView 의 선택 상태 바인딩 어댑터 작성 * feat: 댓글 화면 구성 및 Adapter, Fragment 작성 * feat: 순간(현 스타카토)의 Ui Model Mapper 변경 MomentDetailUiModel.CommentsUiModel -> CommentUiModel MomentDetailUiModel.MomentDefaultUiModel -> MomentDetailUiModel Feeling을 Ui Model로 변환하는 Mapper 추가 * feat: 기분 선택 View 구성 및 Fragment, ViewModel, Adapter, Handler 작성 * feat: 순간 상세에 대한 View 구성 및 Fragment, ViewModel 작성 * fix: 기분 선택 클릭 리스너와 바인딩 어댑터 설정 및 View 수정 * fix: 누락된 ViewModel 데이터 바인딩 설정 * feat: 순간 조회 화면 재구성 * refactor: 네비게이션 action 및 id 네이밍 수정 visit -> moment로 수정 * refactor: 방문 -> 순간 으로 키워드 변경 * refactor: 불필요한 클래스 및 xml 파일 제거 * style: ktlint 적용 * feat: 추억 API 변경사항 반영 및 리팩터링 #259 (#265) * ui: 추억 생성 화면 사진 로드 시 coil 라이브러리 사용 * ui: 삭제 버튼 아이콘 추가 * ui: 추억 생성 화면 사진 삭제 버튼 추가 * feat: 추억 생성 view model의 imageUri 설정 매개변수 타입 변경 * feat: 추억 생성 화면 사진 삭제 구현 * feat: 추억 수정 화면 사진 첨부 icon 가시성 설정 * ui: 추억 수정 화면 사진 삭제 버튼 추가 * feat: 추억 수정 화면 사진 삭제 버튼 가시성 설정 * feat: 추억 수정 view model의 imageUri 설정 매개변수 타입 변경 * feat: 추억 수정 화면 사진 삭제 구현 * fix: 추억 생성 화면의 사진 첨부란 연속 클릭 시 앱 종료 되는 버그 수정 * fix: 추억 수정 화면의 사진 첨부란 연속 클릭 시 앱 종료 되는 버그 수정 * feat: MemoryRequest dto에 썸네일 사진 url 필드 추가 * feat: 추억 생성 메서드의 시그니처 변경 - MemoryApiService 내 추억 생성 메서드의 시그니처 변경 - 위 변경에 따른 DataSource, Repository, ViewModel의 추억 생성 관련 메서드 시그니처 변경 * feat: 추억 생성 view model 주 생성자로 ImageRepository 주입 * feat: 추억 생성 화면의 썸네일 사진 저장 기능 구현 * feat: 서버에서 저장된 사진을 불러오는 기능 추가 (추억 생성 화면) - 추억 생성 화면에서 서버에 저장된 사진을 로드하는 기능 구현 - UI에 불러온 사진을 표시하는 로직 수정 * feat: 추억 생성 시 썸네일 사진 url 추가 * refactor: MemoryRequest의 추억 썸네일 사진 기본 인자 값 null로 설정 * feat: 추억 수정 메서드의 시그니처 변경 * feat: 추억 수정 view model 주 생성자로 ImageRepository 주입 * feat: 추억 수정 화면의 썸네일 사진 저장 기능 구현 * feat: 서버에서 저장된 사진을 불러오는 기능 추가 (추억 수정 화면) - 추억 수정 화면에서 서버에 저장된 사진을 로드하는 기능 구현 - UI에 불러온 사진을 표시하는 로직 수정 * feat: 추억 수정 시 썸네일 사진 url 추가 * refactor: 불필요한 MemoryUpdateRequest 제거 * ui: empty view 캐릭터 이미지 추가 * ui: 추억 설명글 유무에 따른 가시성 설정 * ui: 함께 한 사람들 가시성 gone 으로 설정 - 4차 스프린트 범위에서 제외됨 * feat: 이미지 선택 옵션 추가 (단일 선택 및 다중 선택 지원) * ui: TextInputLayout, TextInputEditText Style 정의 * ui: 추억 생성 화면 입력란 TextInputLayout으로 변경 - counter 속성 사용을 위해 TextInputLayout으로 변경함 * ui: 추억 수정 화면 입력란 TextInputLayout으로 변경 - counter 속성 사용을 위해 TextInputLayout으로 변경함 * ui: 추억 조회 화면 썸네일 사진 유무에 따른 가시성 설정 * ui: empty view 캐릭터 이미지 크기 변경 * ui: 앱 이름 Staccato_AN -> Staccato 로 수정 * refactor: 추억 생성 및 수정 화면 메서드 순서 정리 * ui: 제목용 TextInputEditTextStyle 정의 및 적용 * ui: 추억 생성 및 수정 화면 썸네일 coilPlaceHolder 변경 - 이전: shape_place_holder_rectangle - 이후: shape_all_gray1_8dp * refactor: 삭제 다이얼로그 show 메서드 호출 방식 변경 - apply를 사용하지 않는 방식으로 변경 * ui: 코멘트 미지원 안내 view 추가 * feat: 스타카토 생성, 수정 화면 사진 및 완료 버튼 개선 #242 (#291) * feat: (스타카토 생성 화면) 사진 드래그로 순서 변경 기능 구현 * refactor: data 패키지에 S3 이미지 API 분리 적용 * refactor: AttachedPhotoUiModel 및 프로그래스바 추가 * feat: recyclerView에서 지워진 사진의 job cancel 처리 * refactor: editText를 TextInputLayout로 수정 * feat: (스타카토 수정 화면) 사진 드래그로 순서 변경 / 로딩 구현 * refactor: 프로퍼티 네임 변경 및 visitedAt LocalDateTime으로 수정 * style: ktlint 적용 * build: 구글 맵 API 사용에 따른 CI 수정 #296 (#297) * build: 구글 맵 api key를 저장하는 파일을 설정하는 명령어 작성 * refactor: defaults 에 설정된 shell 설정에 따라 추가적인 shell 설정 삭제 * feat: Google Map 연결, 스타카토 목록 조회 API 연결 #54 (#295) * build: google map 의존성 추가 * build: 구글맵 관련 properties ignore 추가 * build: 구글맵 api key 설정 * feat: Google Map 연결 * feat: MainActivity Handler 구현 * ui: 추억 및 스타카토 생성 메뉴 추가 * ui: popup menu style 정의 * feat: 추억 생성 및 수정 menu 연결 - handler 연결 - 메서드 분리 * feat: 위치 권한 요청 구현 - ACCESS_FINE_LOCATION 권한 요청 - ACCESS_COARSE_LOCATION 권한 요청 * feat: 현 위치 표시 * style: MainActivity formatting * feat: locationPermissions 타입 변경 - 이전: List - 이후: Array * feat: MomentLocationDto, MomentLocationResponse 추가 * feat: 스타카토 목록 조회 api service 구현 * feat: 스타카토 목록 조회 data source 구현 * feat: MomentLocation 도메인 모델 구현 * feat: MomentLocationDto를 도메인 모델로 변환하는 mapper 구현 * feat: 스타카토 목록 조회 repository 구현 * feat: 스타카토 목록 조회 view model 구현 * feat: 스타카토 목록을 marker로 표시 * refactor: home 패키지명을 maps로 변경 * feat: 마커 클릭 시 스타카토 상세로 이동 기능 구현 * feat: 스타카토 조회 추억 id, 제목 필드 추가 * feat: 마지막 위치 위경도 찾기 * refactor: 안드로이드 1차 QA 반영 #299 (#301) * refactor: 안드로이드 1차 QA 반영 * refactor: 안드로이드 1차 QA 반영2 * refactor: 안드로이드 1차 QA 반영3 * refactor: 삭제 메시지 변경 * fix: 스타카토 조회 화면 스택 관리 및 ui 수정 #304 (#306) * feat: 지도 화면에서 스타카토 조회 화면으로 이동 시 스택 관리 * feat: 타임라인 화면에서 추억이 존재하지 않을 때 추억 생성 버튼 추가 * ui: 스타카토 조회 화면 툴바 위치 고정 * build: Android CD 적용 #300 (#308) * build: CD 워크플로우 yml 파일 작성 * build: keystore 접근을 위한 build.gradle.kts 파일 설정 * build: 기존 apk 추출 ci 파일 수정 - demo 버전의 apk를 추출 및 배포하는 목적에 맞게 파일 명 수정 - apk 빌드 후 테스트를 수행하는 job 추가 - firebase 앱 배포에 아티팩트 업로드하는 job 추가 * fix: ci 파일에도 keystore 생성 job 추가 * fix: 키스토어 환경변수를 base64로 디코딩하는 명령어 수정 * fix: 키스토어 환경변수를 base64로 디코딩하는 명령어 재수정 * fix: 키스토어 환경변수를 base64로 디코딩하는 명령어 재수정 * fix: ci 파일에 키스토어 관련 설정 적용 * fix: 키스토어 관련 명령어 일부 수정 * fix: build.gradle.kts 불필요한 괄호 제거 * fix: keystore.properties 로 부터 프로퍼티를 가져오는 형식 변경 * fix: upload-artifact step에서 빌드 파일의 upload 경로 수정 (#316) upload-artifact 는 defaults 설정의 working-directory 경로가 적용되지 않음 * fix: android cd 재수정 (2차) #317 (#319) * fix: upload-artifact 빌드 파일의 upload 경로 3차 수정 * fix: 배포 시 빌드 파일의 경로 수정 * fix: 빌드 파일의 upload 경로 수정 및 파일이 없는 경우 에러 처리 * fix: 빌드 파일의 upload 경로 4차 수정 * fix: 빌드 파일의 upload 경로 5차 수정 * fix: 빌드 파일의 upload 경로 6차 수정 - 디렉터리 경로 생성 후 upload 실행 * fix: 빌드 파일의 upload 경로 7차 수정 github의 workspace 환경변수(절대경로) 활용 * fix: clean test 제거 및 디버그용 파일 경로 탐색 명령어 추가 * fix: 디버그용 파일 경로 검색 명령어 수정 * fix: 디버그용 파일 경로 검색 명령어 삭제 * fix: 디버그용 파일 검색 명령어 삭제 및 업로드 파일 경로명 수정 * feat: 스타카토 생성 시 현 위치의 주소를 가져오는 기능 구현 #314 (#324) * feat: MainActivity에서 주소를 가져오는 로직 삭제 * feat: 스타카토 생성 시 현 위치의 주소를 가져오는 로직 구현 * refactor: 메서드 순서 정렬 * refactor: 스타카토 조회 화면 ViewPager2 적용 및 UI 아이콘 개선 #318 (#320) * refactor: 아이콘 추가 및 UI 개선 * feat: 스타카토 상세 사진 Viewpager 적용 * feat: 스타카토 상세 사진 Viewpager에 dot indicator 추가 * style: ktLint Format * feat: 메인 지도 화면에서 스타카토 생성하는 플로우 구현 #321 (#327) * feat: 날짜로 추억 목록 불러오는 getMemories API 추가 * feat: 메인에서 스타카토 생성 시 추억 목록 선택 가능 * feat: 스타카토 생성 시 역지오코딩과 추억 선택 연동 * build: debug와 release로 buildTypes 분리 (#329) - appName, appId, baseUrl 분리 - release에 난독화 적용 * build: debug 와 release 배포 분기에 따른 CD 수정 - CD에 대한 트리거 재설정 : main 브랜치에 대한 push 및 pr * fix: 스타카토 생성, 삭제 후 지도 화면의 마커가 갱신되지 않는 오류 해결 #326 (#330) * refactor: 지도 화면 onResume에서 스타카토 목록 load * refactor: 스타카토 목록 로드 메서드명 변경 - 이전: loadMoments - 이후: loadStaccatos * feat: 공유 view model에 스타카토 목록 업데이트 상태 추가 * fix: 스타카토 생성, 삭제 후 지도 화면의 마커가 갱신되지 않는 오류 해결 * feat: 지도 로드 시 현위치로 이동하도록 구현 * build: ci 및 cd 파일 수정 ci - 불필요한 gradle 빌드 및 테스트 제거 cd - 타겟 브랜치 develop 제거 * feat: 댓글 조회, 생성, 삭제 기능 구현 #290 (#331) * feat: 기분 수정 요청을 보내는 Request Dto 작성 * feat: MomentApiService 에 기분 수정 요청에 대한 API 작성 * feat: 기분 수정 요청에 대한 DataSource 메서드 작성 * feat: 기분 도메인 모델 생성 * feat: 기분 도메인을 기분 수정 Request로 변환하는 메서드 작성 * ui: 기분 아이콘 이미지 리소스 추가 * ui: 기분 아이콘의 테두리를 selector로 생성 - 선택/미선택에 따라 다른 ui를 나타낸다 * ui: 기분 아이콘에 사용할 style 지정 * fix: API 변경에 따라 DTO 및 Mapper 변경 - 순간(현 스타카토)의 visitedAt의 타입을 LocalDate에서 LocalDateTime으로 변경 * fix: 순간 DTO에 기분 필드 추가 - 순간 Dto에 기분(Feeling) 필드를 추가함에 따라 Mapper 및 도메인 수정 * feat: 기분 선택 api에 필요한 repository 메서드 작성 * feat: 기분 uiModel 생성 * feat: 댓글에 대한 UI 모델 생성 * feat: 순간(현 스타카토) 상세 정보에 대한 UI 모델 생성 * feat: 기분 ImageView 의 선택 상태 바인딩 어댑터 작성 * feat: 댓글 화면 구성 및 Adapter, Fragment 작성 * feat: 순간(현 스타카토)의 Ui Model Mapper 변경 MomentDetailUiModel.CommentsUiModel -> CommentUiModel MomentDetailUiModel.MomentDefaultUiModel -> MomentDetailUiModel Feeling을 Ui Model로 변환하는 Mapper 추가 * feat: 기분 선택 View 구성 및 Fragment, ViewModel, Adapter, Handler 작성 * feat: 순간 상세에 대한 View 구성 및 Fragment, ViewModel 작성 * fix: 기분 선택 클릭 리스너와 바인딩 어댑터 설정 및 View 수정 * fix: 누락된 ViewModel 데이터 바인딩 설정 * feat: 순간 조회 화면 재구성 * refactor: 네비게이션 action 및 id 네이밍 수정 visit -> moment로 수정 * refactor: 방문 -> 순간 으로 키워드 변경 * refactor: 불필요한 클래스 및 xml 파일 제거 * ui: xml 컨벤션에 맞추어진 타 사용자의 댓글 ui 구성 * feat: 댓글 API의 DTO 작성 * feat: 댓글 API Service 작성 * feat: 댓글 CRUD DataSource 작성 * refactor: CommentApiService 각 메서드의 반환 값을 Response로 변경 * feat: CommentApiService 를 create * feat: CommentDataSource 구현체 생성 * refactor: 댓글 Dto 클래스 네이밍 변경 - VisitLogDto -> CommentDto * refactor: CommentDto 의 ID 프로퍼티 네이밍 변경 - visitLogId -> commentId * refactor: VisitLog 도메인 모델 클래스의 네이밍 변경 - VisitLog -> Comment * refactor: Comment 도메인 모델의 ID 프로퍼티 네이밍 변경 - visitLogId -> commentId * feat: 새로운 댓글 도메인 모델 생성 * feat: CommentRepository 작성 * feat: Domain 모델과 DTO 모델을 변환해주는 Mapper 작성 - CommentDto를 Comment로 변환하는 메서드를 CommentMapper.kt로 이동 * feat: CommentRepository의 기본 구현체 작성 * feat: 댓글 ViewModel, Factory 작성 및 Comment 불러오기 구현 * ui: ViewModel 데이터바인딩 및 빈 댓글 문구에 대한 strings 설정 * feat: CommentsViewModel 활용 및 옵저빙 * feat: 댓글 조회, 생성, 삭제 기능 구현 * chore: ktlint 적용 * feat: 추억 생성 및 수정 이미지 로딩 중 표시 및 저장 버튼 비활성화 #332 (#334) * feat: 추억 생성 이미지 로딩 중 표시 * feat: 추억 수정 이미지 로딩 중 표시 * feat: 추억 생성 및 수정 이미지 로딩 중 저장 버튼 비활성화 * style: formatting * refactor: 댓글 화면 개선 및 리팩터링 #333 (#335) * fix: merge conflicts 해결 * fix: 글자 수 제한 500자로 수정 * style: ktlint 체크 * build: CD 수정 - 구글 플레이스토어 업로드 스텝 추가 --------- Co-authored-by: hxeyexn Co-authored-by: Somin Lee <46596035+s6m1n@users.noreply.github.com> Co-authored-by: Hyeyeon Gong <103019852+hxeyexn@users.noreply.github.com> Co-authored-by: s6m1n * docs: 서비스 소개 수정 * chore: main ci 트리거 수정 * fix: 구글 플레이 스토어 자동 배포 비활성화 * build: Android Config의 버전 코드 및 이름 변경 #338 (#339) * build: 프로젝트 생성 및 의존성 추가 * chore: 사용자 기능 및 권한 추가 * chore: gitignore 재설정 * chore: gitigonre .idea/ 추가 * build: develop-an 브랜치의 CI 설정 #3 (#10) * build: android-ci.yml 파일 생성 * chore: 오타 및 개행 수정 * chore: working-directory 수정 * build: ktLint 적용 및 format * ui: 디자인 시스템 구현 #11 (#44) * ui: color 정의 * ui: shape, selector 추가 * ui: icon 추가 * ui: font family 추가 - pretendard regular, medium, semibold, bold 추가 * ui: typography 정의 * ui: strings 정의 * ui: bottom sheet drag handle drawable 추가 * ui: styles 정의 * ui: detail toolbar 구현 - 상세 화면에서 사용 * ui: dialog, bottom sheet 구현 - 여행 및 방문 기록 삭제 dialog - 사진 등록 bottom sheet * ui: 사진 첨부 layout 구현 * feat: 삭제 다이얼로그, 사진 첨부 바텀 시트 fragment 추가 * ui: 세로모드로 고정 * build: data binding 의존성 추가 * style: strings resource 순서 정렬 * style: formatting * ui: plus icon 추가 * feat: jetpack navigation 및 바텀시트 프래그먼트 추가 #12 (#15) * build: androidx.navigation 및 dataBinding 의존성 추가 * feat: Binding 화면 클래스 및 bottomSheetNavigation 추가 * feat: TimelineFragment 임시 화면 추가 * feat: TravelFragment 임시 화면 추가 * feat: TravelCreationFragment 임시 화면 추가 * feat: VisitFragment 임시 화면 추가 * feat: VisitCreationFragment 임시 화면 추가 * feat: (여행, 방문 기록) 수정 화면 추가 * feat: (여행, 방문 기록) 생성 화면 이동 구현 * feat: BottomSheetController 설정 및 Navigation 이동 구현 * feat: 뒤로가기 버튼 클릭 시 BottomSheet, Toast 작동 구현 * feat: 여행, 방문 기록 생성을 위한 액티비티 추가 및 이동 구현 * feat: 여행, 방문 기록 수정을 위한 액티비티 추가 및 이동 구현 * build: 중복된 dataBinding 제거 * feat: 공통 이미지 로딩 BindingAdapter 설정 #33 (#41) * build: dataBinding 사용 설정 * feat: 이미지 로딩 바인딩 어댑터 설정 - Glide, Coil 바인딩 어댑터를 각각 작성 - placeholder 설정 * style: ktlint check - import 순서 조정 * fix: attribute 개수에 맞추어 BindingAdapter의 value 재설정 * style: 마지막 줄 개행 추가 * feat: placeHolder를 필수 속성으로 변경 및 coil 이미지 로딩 코드 수정 - placeHolder를 ImageView의 필수 속성으로 지정 - Coil BindingAdapter에서 url이 null인 경우에도 이미지를 로드하는 동작이 수행되도록 수정 * ui: 상단바 색상 변경 * build: develop-an의 CI 설정 수정 #38 (#39) - Git Action에 Secret으로 저장된 LOCAL_PROPERTIES_API_KEY를 변수로 가져온다. - 가져온 변수를 echo를 활용하여 local.properties에 설정한다. * build: develop-an 브랜치의 CI 파일 문법 오류 수정 #45 (#46) * fix: android-ci.yml 파일의 명령어 수정 LOCAL_PROPERTIES_API_KEY에 접근하는 명령어 수정 * fix: android-ci.yml 파일의 명령어 수정 #47 (#48) LOCAL_PROPERTIES_API_KEY에 접근하는 명령어 수정 * fix: 파이프라인 제거하여 명령어 수정 * fix: develop-an 브랜치의 CI 파일 명령어 재수정 #47 (#49) * fix: android-ci.yml 파일의 명령어 수정 LOCAL_PROPERTIES_API_KEY에 접근하는 명령어 수정 * fix: 파이프라인 제거하여 명령어 수정 --------- Co-authored-by: Somin Lee <46596035+s6m1n@users.noreply.github.com> * fix: 문자열 임을 명시하고 환경변수 설정 위치 조정 * fix: local.properties 생성 시점 수정 * feat: 데이터 패키지 설정 #13 (#35) * build: 서버 base url의 local.properties 사용 설정 및 BuildConfig 설정 * feat: Retrofit Client 작성 * fix: Merge Conflict 해결 - build.gradle.kts(project, app)의 ktlint 의존성 충돌 해결 - 버전 카탈로그 플러그인 충돌 해결 * feat: DTO 클래스 작성 * style: ktlint check - 불필요한 import 제거 - 개행 조정 - 콤마 추가 * feat: SerialName 어노테이션의 값을 camelCase로 수정 * refactor: DTO 클래스의 이름 수정 - API 요청으로 직접 보내거나 들어오는 JSON의 경우 DTO 클래스명 뒤에 Request/Response 를 붙이도록 설정 - JSON 안에 속성 값으로 들어가는 JSON은 DTO 클래스명 뒤에 Dto를 붙이도록 설정 * feat: 누락된 Dto 클래스 추가 TimelineResponse.kt - 타임라인 조회 시 여행 상세 목록을 불러올 때 사용되는 DTO 클래스 - TimelineTravelDto 리스트를 갖는다 * style: ktlint check * fix: const 키워드 제거 --------- Co-authored-by: hxeyexn * feat: 둥근 모서리의 이미지를 로드하는 BindingAdapters 추가 #58 (#59) * feat: 둥근 모서리로 이미지를 로딩하는 Glide 바인딩 어댑터 작성 - 세 속성이 모두 필요하다. - glideRoundedCornerImageUrl: 출력하고자 하는 이미지 url - glidePlaceHolder: placeHolder의 url - glideRoundingRadius: 모서리의 둥근 정도를 Int로 설정 * feat: 둥근 모서리로 이미지를 로딩하는 Coil 바인딩 어댑터 작성 - 세 속성이 모두 필요하다. - coilRoundedCornerImageUrl: 출력하고자 하는 이미지 url - coilPlaceHolder: placeHolder의 url - coilRoundingRadius: 모서리의 둥근 정도를 Float으로 설정 * fix: centerCrop 설정을 BindingAdapter 에 위임 - xml 속성으로 centerCrop을 주게 되면 Round Corner가 제대로 적용되지 않는 현상 발생 - Glide의 api로 제공되는 centerCrop() 메서드를 활용 * ui: 타임라인 프래그먼트(BottomSheet) 구현 #55 (#71) * ui: 타임라인 View xml 파일 작성 - 타임라인에 나타날 여행 상세 아이템 xml 작성 - 썸네일 사진 유무에 따라 뷰를 구분 - 타임라인이 나타날 fragment xml 작성 * feat: 타임라인 여행 상세 아이템 UI 모델 생성 * ui: 썸네일이 없는 여행상세 아이템의 margin 조정 * ui: Timeline RecyclerView의 layoutManager 설정 * ui: xml에서의 UiModel 데이터 바인딩 설정 * feat: ViewHolder 작성 - 썸네일 사진 유무에 따라 다른 ViewHolder로 구분 - 공통된 속성을 정의한 TimelineViewHolder 추상클래스 생성 * feat: TimelineRepository Interface 생성 * feat: 임시 TimelineRepository 구현체 생성 * feat: TimelineViewModel 및 Factory 생성 * feat: TimelineViewType 작성 * feat: TimelineAdapter 작성 * feat: TimelineFragment에 ViewModel과 Adapter 구현 * feat: 이미지 로딩 PlaceHolder drawable 추가 및 적용 * feat: 임시 데이터 연결 * ui: Timeline fragment 의 세부 설정 조정 * ui: Timeline의 Item xml 변경 - 뷰 타입을 3개로 분할: 첫 번째 아이템, 중간 아이템, 마지막 아이템 - 이에 따라 xml 파일 추가 및 view 수정 * feat: ViewType 변경에 따른 Adapter 및 ViewHolder 수정 * refactor: 불필요한 View 및 ViewHolder 제거 * feat: 여행 click 에 대한 event handler 생성 및 설정 * refactor: drawable 이름을 네이밍 컨벤션에 맞게 수정 * ui: RecyclerView의 마진 속성을 패딩 속성으로 변경 * feat: 바텀 시트 디자인 변경 및 툴바와의 상호작용 구현 * ui: 타임라인 글귀 추가 * style: ktlint check * ui: 둥근 모서리의 이미지로 변경 * ui: 방문 기록, 방문 기록 생성, 방문 기록 수정 화면 구현 #52 (#74) * ui: typography.body textSize 1sp 씩 증가 * feat: DeleteDialogFragment에 Handler 추가 * feat: 툴바의 수정, 삭제 버튼 제어를 위한 ToolbarHandler 추가 * feat: 방문 상세 화면을 위한 VisitDetailUiModel 추가 * ui: PlaceHolder를 위한 xml 파일 추가 * feat: 방문 기록 상세 화면을 위한 VisitAdapter 및 VisitViewHolder 구현 * feat: 임시 VisitViewModel와 VisitViewModelFactory 추가 * feat: VisitFragment 화면 구현 * feat: 방문 기록에 해당하는 여행 선택을 위한 TravelSelectionFragment 구현 * feat: 방문 기록에 해당하는 날짜 선택을 위한 VisitedAtSelectionFragment 구현 * feat: 방문 기록 생성을 위한 VisitCreationActivity 구현 * feat: 방문 기록 수정을 위한 VisitUpdateActivity 구현 * refactor: DialogHandler를 DeleteDialogFragment의 생성자에서 받도록 수정 * refactor: initVisitUpdateDoneButton 중복 로직 제거 * refactor: VisitViewHolderType 메서드 명 변경 of -> from * refactor: tv_place_name_title을 xml id convention에 맞게 수정 * ui: 여행 화면 구현 #51 (#75) * ui: 함께 간 사람들 item 구현 * ui: 방문 기록 item 구현 * ui: 여행 상세 화면 구현 * ui: 여행 생성 화면 구현 * ui: 여행 수정 화면 구현 * ui: placeholder에 사용할 drawable 추가 * ui: 여행 삭제 완료 string 추가 * feat: 둥근 모서리 이미지 BindingAdapter 구현 * feat: 함께 간 사람들 adapter 구현 * ui: 여행 상세 화면 NestedScrollView로 변경 - 이전: ScrollView - 이후: NestedScrollView * feat: 방문 기록 adapter 구현 * feat: 여행 상세 view 연결 * feat: 함께 간 사람들, 방문 기록 adapter 연결 * feat: 삭제 다이얼로그 handler 구현 * feat: 여행 상세 화면 toolbar handler 구현 - 뒤로가기 - 여행 수정 화면으로 이동 - 삭제 다이얼로그 show * feat: 여행 -> 방문 기록 화면 이동 구현 * ui: DatePickerStyle 추가 - DatePickerStyle, CustomMaterialCalendarStyle 추가 - staccato_blue 투명도 30 추가 * feat: 여행 저장 버튼, 여행 기간 BindingAdapter 추가 * feat: 여행 생성 view 연결 * feat: 여행 수정 view 연결 * style: formatting - Exceeded max line length 해결 - 임시 이미지 URL 변경 * refactor: 기간 선택 로직 메서드 분리 * feat: 타임라인의 API 적용 및 MainActivity의 Toolbar 제거 #81 (#93) * refactor: UI Model의 패키지 경로 변경 * refactor: API 명세 변경에 따른 TimelineTravelDto 수정 * refactor: repository 메서드 수정 - 서버 요청을 비동기적으로 처리하기 위해 suspend 키워드 삽입 - 기존의 임시 데이터 요청 코드를 위해 load 메서드 분리 * feat: Timeline의 API Service 작성 * feat: DataSource 인터페이스 작성 * feat: TimelineDataSource 구현체 생성 * refactor: 년도에 대한 default parameter 설정 * refactor: DataSource의 요청 메서드 네이밍 수정 * feat: http 통신이 가능하도록 Cleartext Traffic 허용 설정 * feat: Authorization Header를 삽입하기 위한 Interceptor 생성 * feat: Client에 HeaderInterceptor 추가 * refactor: errorBody의 message 속성 이름 변경 * feat: 도메인 모델 작성 * feat: Response(dto)에서 도메인 모델로 변환하는 확장함수 구현 * feat: 도메인 모델에서 UI 모델로 변환하는 확장함수 구현 * feat: Repository 수정 및 ViewModel 데이터 연결 * ui: MainActivity의 상단 툴바 제거 * refactor: ViewType에 viewType 속성 추가 및 when에서의 enum 활용 * refactor: Timeline의 공통 ViewHolder를 sealed class로 변경 * style: ktlint check 수행 * fix: Response 데이터의 nullable 속성에 맞추어 DTO 수정 및 누락된 DTO 추가 * fix: 데이터가 비어있는 경우(초기)에만 새로운 여행상세 목록을 받도록 수정 * refactor: lazy 로 지연 초기화 및 timelineService가 하나의 인스턴스로 관리되도록 수정 * fix: Travel의 description에 nullable 속성 추가 API 명세서 잘 좀 보자 제발 * refactor: create 메서드를 private으로 변경 Client 클래스에서 Service를 create 하여 제공 및 캐싱하기 때문에, 불필요한 인스턴스를 생성하지 않도록 create를 public으로 두지 않는 것이 좋다. * refactor: LocalDateConverters의 패키지 경로 수정 * refactor: 파일의 이름 수정 * style: ktlint check * refactor: 에러 메시지 상수화 * feat: 특정 여행 상세 조회 api 연결 #82 (#97) * feat: 특정 여행 상세 조회 api service 구현 * feat: 썸네일, 소개 타입 변경 및 기본 인자 설정 - 변경 data class : TravelResponse, TravelUiModel - 이전: String - 이후: String? * refactor: MatesUiModel 네이밍 변경 MatesUiModel이 공통적으로 사용될 예정이므로 MemberUiModel로 변경 - 이전: MatesUiModel - 이후: MemberUiModel * refactor: VisitUiModel 네이밍 변경 - 여행 상세 방문 기록에 사용되는 UiModel 이름을 명시적으로 변경 - 이전: VisitUiModel - 이후: TravelVisitUiModel * feat: 특정 여행 상세 조회에 사용할 domain model 추가 * feat: Api 응답 핸들링 로직 구현 * feat: 특정 여행 상세 조회 data source 구현 * feat: 특정 여행 상세 조회 repository 구현 * feat: 특정 여행 상세 조회 api 연결 * feat: 특정 여행 상세 조회 로직 매개변수 추가 - 타임라인에서 선택된 여행 id를 매개변수로 받도록 변경 * refactor: ApiResponseHandler 이름 오타 수정 * refactor: 에러 메세지 상수화 * feat: 특정 여행 상세 조회 시그니처 변경 - HeaderInterceptor 적용으로 authorization 매개변수 제거 * style: formatting * feat: 방문 기록, 방문 기록 생성, 방문 기록 수정 화면 API 연결 #79 (#99) * feat: VisitApiService 인터페이스 및 관련 data class 추가 * feat: VisitRepository, RemoteVisitDataSource 및 관련 class 추가 * feat: 각 Visit 화면들의 ViewModelFactory 구현 * feat: 각 Visit 화면들의 UiModel 클래스 및 Mapper 추가 * feat: 여행 선택 및 방문 날짜 선택을 위한 BottomSheetDialogFragment 수정 * feat: VisitFragment API 연결 * feat: VisitCreationActivity API 연결 * feat: VisitUpdateActivity API 연결 준비 * refactor: visitApiService를 StaccatoClient object로 이동 * refactor: TravelVisit 클래스의 visitImage 변수 nullable하게 수정 * refactor: VisitApiService의 중복된 @Header 제거 * refactor: 방문 생성 성공 시 created id를 가져오도록 리팩터링 * chore: 변수명 visitImage로 수정 및 ktLint 적용 * refactor: 여행 수정 완료 동작 구현 및 VisitUpdateActivity 함수 분리 * feat: 여행 생성 api 연결 #98 (#104) * feat: 여행 생성 api service 구현 * feat: 여행 생성 data source 구현 * feat: 방문 기록 썸네일 타입 변경 및 기본 인자 설정 - 변경 data class :  TravelVisitDto, TravelVisit, TravelVisitUiModel - 이전: String - 이후: String? * build: converter scalars 의존성 추가 * feat: 여행 생성 ApiService 반환값 및 DataSource 시그니처 변경 - 여행 생성 ApiService 반환값 변경 - DataSource 시그니처 변경 - TravelCreation DomainModel 구현 - TravelCreation Dto 변환 Mapper 구현 * feat: Client에 ScalarsConvert 추가 - Header 값을 읽어오기 위해 ScalarsConvert 추가 * feat: 여행 생성 repository 구현 * feat: 여행 생성 api 연결 * feat: TravelViewModel 생성자 변경 - 이전: travelId를 TravelViewModel 생성자로 넣어줌 - 이후: travelId를 loadTravel()의 매개변수로 넣어줌 * ui: map 화면 변경 * refactor: 컨벤션 통일 및 패키지 정리 #112 (#118) * refactor: bind 네임스페이스 적용 * refactor: BindingAdapters 메서드명 변경 * refactor: 컨벤션 맞게 xml 파일 이름 변경 * refactor: data 패키지 구조 정리 * refactor: RemoteVisitDataSource 컨벤션 따라 네이밍 변경 * refactor: 네트워킹 관련 메서드 이름 변경 - api service, data source, repository * refactor: presentation 패키지 구조 정리 * refactor: message utils 생성 및 적용 Co-authored-by: s6m1n Co-authored-by: Junyoung-WON * build: develop-an의 CI 테스트 자동화 추가 및 데모 APK 추출 #78 (#92) * build: test 자동화 Job 추가 * build: local.properties 생성 시점 변경 * build: 디버그 APK를 빌드하여 업로드하는 workflow 작성 * fix: test Job과 APK build Job에 local.properties 생성 동작 추가 * build: read 전용 권한 제거 * build: Firebase Analytics, Crashlytics 설정 #136 (#143) * build: Firebase Analytics, Crashlytics 의존성 추가 * chore: google-service.json ignore * feat: 특정 여행 상세 수정 api 연결 #109 (#146) * feat: 여행 수정 api service 구현 * feat: 여행 수정 data source 구현 * feat: 여행 수정 repository 구현 * feat: 여행 수정 화면 현재 데이터 로딩 기능 구현 * refactor: 컨벤션 따라 여행 api service의 수정 메서드명 변경 - 이전: updateTravel - 이후: putTravel * feat: 특정 여행 상세 수정 api 연결 * refactor: memberImage 타입 변경 및 기본 인자 설정 * refactor: MembersDto 삭제 * refactor: TravelCreationUiModel.kt 삭제 * refactor: TravelCreation 이름 변경 - 이전: TravelCreation - 이후: NewTravel * refactor: api 명세서 변경에 따른 도메인 모델 수정 및 여행 코드 리팩터링 #151 (#152) * refactor: nickName 변수명 변경 - 이전: nickName - 이후: nickname * ui: 여행 수정 화면 이미지 속성 수정 - glide -> coil 이용 - scaleType : fitXY -> centerCrop * style: import 정렬 * feat: 여행 상세 -> 방문 상세로 이동 시 여행 id 전달 * feat: 방문기록 조회 dto 수정 - 방문기록 조회 도메인 변경으로 인해 방문 기록이 조회되지 않음 - 따라서 api 명세서와 일치하도록 dto 수정하여 오류 해결 * refactor: 여행 생성을 위한 viewModel 메서드 분리 * refactor: 여행 조회를 위한 viewModel 메서드 분리 * feat: 여행 수정 handler 구현 * refactor: 여행 default id 변경 - 이전: -1L - 이후: 0L * refactor: TravelHandler 구현 위치 변경 - 이전: TravelViewModel - 이후: TravelFragment * style: 컨벤션에 맞게 TravelFragment의 메서드 순서 수정 * refactor: TravelFragment의 travelId 초기화 방식 변경 * feat: 여행 생성 및 수정 error toast 구현 * feat: 방문 생성 화면, 방문 수정 화면에서 갤러리 사진 불러오기 구현 #150 (#155) * feat: PhotoAttachFragment에 PhotoAttachHandler 연결 * feat: PhotoAttachFragment 앨범 접근 권한 관련 로직 구현 - API level 33 이상 : READ_MEDIA_IMAGES - API level 33 이하 : READ_EXTERNAL_STORAGE - ActivityResultLauncher를 이용한 권한 요청 - 권한 거부 시, 설정으로 이동하는 스낵바 띄우기 * feat: PhotoAttachFragment 앨범에서 불러온 이미지의 URI 추출하기 * feat: 불러온 이미지의 URI를 호스트 Activity로 전달 - OnUrisSelectedListener 인터페이스 추가 * feat: Uri를 File로 변환하는 메서드 파일 추가 * refactor: pr 리뷰 반영 * refactor: pr 리뷰 반영2 * build: develop-an의 android-ci 수정 #115 (#160) - local.properties: 파일 생성 후 secrets로부터 base_url 설정 - google-services.json: firebase android 구성파일 설정을 위해 secrets로부터 생성 * fix: android-ci 환경변수 생성 위치 조정 (#164) * build: local.properties 와 google-services.json 설정 - local.properties: 파일 생성 후 secrets로부터 base_url 설정 - google-services.json: firebase android 구성파일 설정을 위해 secrets로부터 생성 * fix: 환경 변수 설정 위치 변경 * build: bash 쉘에 맞는 명령어 활용 #115 (#165) * build: local.properties 와 google-services.json 설정 - local.properties: 파일 생성 후 secrets로부터 base_url 설정 - google-services.json: firebase android 구성파일 설정을 위해 secrets로부터 생성 * fix: 환경 변수 설정 위치 변경 * fix: bash 쉘에 적합한 명령어 형식으로 변경 * feat: 특정 여행 상세 삭제 api 연결 #153 (#167) * feat: 특정 여행 삭제 api service 구현 * feat: 특정 여행 삭제 data source 구현 * feat: 특정 여행 삭제 repository 구현 * feat: 특정 여행 삭제 기능 api 연결 * feat: error handling 방식 수정 - 서버에서 들어오는 error body의 status와 message를 활용하는 방식으로 변경 * refactor: DialogHandler를 독립적으로 관리 * refactor: api path 상수 활용 * refactor: BuildConfig에 token 정의 * refactor: DEFAULT_VALUE 상수 제거 * feat: 여행 생성 기능 api 수정 #169 (#178) * feat: onUrisSelected 매개변수 가변인자로 변경 * feat: 여행 생성 화면 갤러리 이미지 로딩 기능 구현 * refactor: 이미지 선택 리스너 초기화 메서드명 오타 수정 * refactor: 스낵바 액션 설정 코드 간소화 * feat: TravelRequest 의 여행 썸네일 필드 제거 * refactor: 여행 썸네일 이미지 변수명 수정 * feat: 이미지 전송 기능 구현 * refactor: image url 변수명 변경 - 변수 끝에 url이 오도록 * feat: 여행 생성 progressBar 구현 * ui: 사진 첨부 아이콘 가시성 설정 * feat: 여행 상세 수정 기능 api 변경 및 여행 리팩터링 #180 (#181) * feat: 여행 수정 화면 갤러리 이미지 로딩 기능 구현 * feat: URL 및 URI 기반 이미지 로딩 BindingAdapter 구현 * feat: 이미지 전송 기능 구현 * feat: 여행 수정 progressBar 구현 * fix: 삭제 불가능한 여행 삭제 시도 관련 에러 토스트 문제 해결 삭제 불가능한 여행을 삭제하려고 시도 -> 방문 조회 -> 뒤로 가기 버튼 클릭 -> 삭제 불가능 에러 토스트가 다시 뜨는 문제가 발생해 이를 해결 * refactor: TravelCreationViewModel의 imageUrl 변수 제거 * ui: 여행 상세 내 방문 기록 이미지 scaleType 속성 설정 * ui: 여행 생성 썸네일 이미지 scaleType 속성 설정 * fix: 여행 소개 미입력 시 여행이 생성 되지 않는 오류 해결 * refactor: 타임라인 화면 리팩터링 #162 (#179) * ui: 타임라인 RecyclerView의 크기 조정 및 여백 수정 * feat: Activity와 Fragment 간 데이터를 공유하는 공유 ViewModel 생성 * feat: 공유 ViewModel을 이용하여 타임라인 업데이트 여부를 공유 * refactor: RecyclerView.Adapter에서 ListAdapter로 변환 * refactor: 처음 타임라인을 불러오는 동작을 ViewModel 초기화 시에 수행 * fix: ListAdapter 수정 - 불필요한 travels 프로퍼티와 getItemCounts 메서드 제거 - currentList를 사용하는 것으로 변경 * refactor: 에러 핸들링 방식 수정 및 ViewModel 수정 - TimelineDefaultRepository로 네이밍 변경 - ApiResponseHandler와 ResponseResult를 이용하여 에러 핸들링 처리 - TimelineViewModel 에러 메시지 LiveData 사용 - 그 외 repository, dataSource 프로퍼티 이름 수정하여 통일 * refactor: MutableLiveData의 값 업데이트를 setValue로 변경 및 메서드 분리 * style: ktlint 적용 * feat: 3차 스프린트에서 수정된 방문 기록 상세 API 연결 #163 (#183) * feat: 방문 상세 생성 API 연결 * feat: 방문 상세 수정, 삭제 API 연결 * feat: 방문 기록 생성/수정 시 양방향 데이터 바인딩 적용 * feat: 방문 기록 생성 화면 사진 다중 선택 구현 * feat: 방문 기록 생성 이미지 업로드 구현 * feat: 방문 기록 생성 및 수정 시 로딩과 토스트 추가 * feat: 닉네임을 활용한 로그인 기능 구현 #124 (#172) * ui: 로그인 화면 구성 - 로그인 화면에서 사용되는 텍스트를 strings에 추가 - 로그인 버튼 스타일에 대한 style 생성 - xml 임시로 작성 * ui: 앱 로고 삽입 및 margin 조정 - 임시 로고 이미지 저장 - 로고 크기 및 마진 조정 * feat: 로그인 API Service 작성 및 Retrofit 객체 생성 * feat: 로그인 DataSource 작성 * feat: 로그인 Repository 생성 * feat: 사용자 정보를 저장하는 SharedPreferences Manager 생성 - 토큰 값 불러오기 및 저장 - 추후 사용자 닉네임, 사용자 프로필 이미지 등의 정보 저장 가능 * feat: Application 생성 및 사용자 정보 Preferences Manager 캐싱 * ui: Splash Screen 화면 구성을 위한 테마 생성 * feat: Preferences 로부터 사용자 토큰 값을 가져와 헤더에 추가하도록 변경 * refactor: Repository 네이밍 통일 * refactor: DataSource 기본 인자 추가 * feat: LoginViewModel 및 Handler 작성 * feat: LoginViewModel 을 생성하는 ViewModel Factory 작성 * feat: LoginActivity 작성 및 양방향 데이터 바인딩 적용 * feat: StaccatoApplication과 LoginActivity 설정 및 LoginActivity를 시작 화면으로 변경 * style: 불필요한 namespace 제거 및 lint 확인 * refactor: LoginViewModel과 Factory를 viewmodel 패키지로 분리 * refactor: TimelineViewModel과 Factory를 viewmodel 패키지로 분리 * style: ktlint 적용 * fix: 불필요한 ConverterFactory 제거 - 더 이상 사용하지 않는 text/plain 변환용 ScalarsConverterFactory 제거 * feat: 닉네임 로그인 요청 및 응답에 대한 DTO 작성 * refactor: 로그인 요청, 응답 시 DTO 활용 * fix: 토큰 값을 불러오고 및 저장하는 동작의 비동기 처리 및 화면 전환 개선 * refactor: 토큰 값을 캐싱하여 저장하는 TokenManager 생성 및 적용 - 매번 runBlocking을 통해 Preference에 저장된 토큰 값을 불러오는 것은 네트워크 성능을 저하시킨다. - 따라서, token 값을 캐싱하여 저장하는 TokenManager를 활용한다. - 첫 네트워크 요청 시에만 토큰을 불러오는 작업을 동기적으로 처리하기 위해 Main Thread가 Blocking 된다. - TokenManager가 Preference로부터 가져온 토큰을 캐싱하여 저장한다. - 이후 요청부터는 캐시된 토큰을 가져오므로 Main Thread가 Blocking 되지 않는다. * style: ktlint 적용 * feat: Night 모드 비활성화 * refactor: 여행 기간 날짜 형식 변환을 BindingAdapter에서 수행 - TimelineTravelUiModel 프로퍼티 수정 - UiModel의 여행기간 날짜를 LocalDate로 갖도록 통일 - 추후 날짜 관련 UI가 변경되었을 때 확장성 고려 - BindingAdapters에 날짜 형식 변환해주는 메서드 작성 * chore: 주석 처리된 Log 코드 삭제 * style: xml View의 ID 네이밍 컨벤션 적용 * ui: 앱 심볼 로고 추가 및 스플래시 스크린에 적용 * feat: 방문 상세 생성 API 연결 * ui: 배경 색을 흰 색으로 지정 * feat: 키보드 활성화 상태에서 화면 터치 시 키보드를 내리는 기능 추가 * style: ktlint 적용 * feat: 방문 상세 수정, 삭제 API 연결 * feat: 방문 기록 생성/수정 시 양방향 데이터 바인딩 적용 * fix: merge 과정에서 발생한 id값 네이밍 충돌 해결 * build: 앱 version code와 version name 수정 * feat: 방문 기록 생성 화면 사진 다중 선택 구현 * feat: 방문 기록 생성 이미지 업로드 구현 * feat: 스플래시 스크린 시간 조정 및 데모 시연용 토큰 활성화 * fix: 동일한 사진이 여러 장 업로드되는 버그 수정 * feat: 기존 로그인 기능으로 롤백 --------- Co-authored-by: somin * fix: 테스트 배포를 위한 버그 수정 #198 (#219) * style: formatting * fix: 무한 로딩 오류 수정 * fix: 여행 생성 오류 수정 * add: 앱 아이콘 변경 * ui: timeline empty view 추가 * feat: timeline empty view 가시성 설정 * ui: 여행 내 방문 기록 empty view 추가 및 가시성 설정 * ui: 방문 기록 내 로그 미지원 기능 view 추가 * feat: 사진 첨부 카메라 미지원 기능 알림 추가 * ui: 필수값 표기 style 정의 * ui: 여행 생성 및 수정 필수값 표기 추가 * ui: 방문 기록 생성 및 수정 필수값 표기 추가 * feat: 생성, 수정, 로그인 시 다중 요청 전송을 막기 위한 화면 터치 제한 * feat: 장소 생성의 사진 첨부 리사이클러뷰 구현 - 사진 추가 & 삭제 구현 - GridLayout으로 변경 - 사진 중복 없이 최대 5장으로 제한 - 새로 추가된 사진이 기존 사진 뒤에 더해지도록 구현 * chore: 방문 생성 화면 rv_photo_attach로 xml id 수정 * ui: app icon 및 splash icon 변경 * refactor: xml ID 네이밍 컨벤션 적용 --------- Co-authored-by: somin Co-authored-by: Junyoung-WON * refactor: 도메인명 변경에 따라 travel을 memory로 수정 #217 (#231) * refactor: 패키지명 travel -> memory로 수정 * refactor: dto의 TravelMapper 를 MemoryMapper 로 네이밍 변경 * refactor: 여행(현 추억) 생성 response dto 네이밍 변경 - TravelCreationResponse -> MemoryCreationResponse * refactor: 여행(현 추억) request dto 네이밍 변경 - TravelRequest -> MemoryRequest * refactor: 여행(현 추억) 조회 response dto 네이밍 변경 - TravelResponse -> MemoryResponse * refactor: 여행(현 추억) 수정 request dto 네이밍 변경 - TravelUpdateRequest -> MemoryUpdateRequest * refactor: 여행(현 추억) 내 방문 dto 네이밍 변경 - TravelVisitDto -> MemoryVisitDto * refactor: 타임라인 여행(현 추억) item의 dto 네이밍 변경 - TimelineTravelDto -> TimelineMemoryDto * refactor: 여행(현 추억) ApiService 네이밍 변경 - TravelApiService -> MemoryApiService * refactor: 여행(현 추억) DataSource 네이밍 변경 - TravelDataSource -> MemoryDataSource - TravelRemoteDataSource -> MemoryRemoteDataSource * refactor: 여행(현 추억) Repository 네이밍 변경 - TravelRepository -> MemoryRepository - TravelDefaultRepository -> MemoryDefaultRepository * style: TimelineMapper import 재정렬 * refactor: NewTravel 도메인명을 NewMemory로 변경 * refactor: Travel 도메인명을 Memory로 변경 * refactor: TravelVisit 도메인명을 MemoryVisit으로 변경 * refactor: presentation의 TravelMapper 명 변경 - TravelMapper -> MemoryMapper * refactor: 여행(현 추억) ui 모델명 변경 - TravelUiModel -> MemoryUiModel - TravelVisitUiModel -> MemoryVisitUiModel * refactor: 여행(현 추억) view model 명 변경 - TravelViewModel -> MemoryViewModel - TravelViewModelFactory -> MemoryViewModelFactory * refactor: MemoryApiService의 Path 변경 - travel을 memory로 변경 - travels을 memories로 변경 * refactor: Memory 관련 dto 변수명 변경 - travel을 memory로 변경 * refactor: Timeline Dto의 Memory 관련 변수명 변경 - travel을 memory로 변경 - travels를 memories로 변경 * refactor: Memory 관련 도메인 모델의 변수명 변경 - travel을 memory로 변경 * refactor: Memory 관련 ui 모델의 변수명 변경 - travel을 memory로 변경 * refactor: data layer의 Memory 관련 함수 및 변수명 변경 - travel을 memory로 변경 * refactor: 방문 생성 request dto의 travelId 변수명 변경 - travelId -> memoryId * refactor: 여행(현 추억) 조회 view model 및 fragment의 네이밍 변경 - travel -> memory * refactor: fragment_travel 의 리소스 네이밍 변경 - travel -> memory - strings.xml의 리소스명 변경 * refactor: TravelCreationActivity 네이밍 변경 - TravelCreationActivity -> MemoryCreationActivity * refactor: 여행(현 추억) 생성의 ViewModel 관련 네이밍 변경 - TravelCreationViewModel -> MemoryCreationViewModel - TravelCreationViewModelFactory -> MemoryCreationViewModelFactory - 관련 함수 및 변수명 변경 - travel -> memory * refactor: 여행(현 추억) 생성, 수정에 관한 xml 리소스 명 변경 - travel -> memory - strings.xml 의 관련 리소스 수정 * refactor: 여행(현 추억) 수정 Activity, Handler 의 네이밍 변경 - travel -> memory * refactor: 여행(현 추억) 수정 ViewModel 의 네이밍 변경 - 관련 함수 및 변수 명 변경 - travel -> memory - Factory 클래스명 변경 * refactor: 여행(현 추억) 생성, 수정에서의 파일 변환 메서드명 변경 - travel -> memory - 자식 파일 명 상수화 * refactor: Timeline 의 UI 모델 및 Travel ID Key 의 리네이밍 - travel -> memory 로 일괄 변경 * refactor: presentation/timeline 내 travel 도메인명 변경 - travel -> memory - TimelineMapper 내 domain model -> ui model 변환 메서드명 변경 * refactor: dto/MemoryMapper 내 domain 변환 메서드명 변경 - dto/MemoryMapper 내 domain model을 dto로 변환하는 메서드명 변경 - travel -> memory * refactor: dummyTravel 을 dummyMemory 로 변경 * refactor: MainActivity 내 travel을 memory로 변경 * refactor: activity_main 내 travel을 memory로 변경 * refactor: TimeLineApiService 내 GET 메서드 path 수정 - travels -> memories * refactor: MemoryFragment 내 travel 을 memory 로 변경 - MemoryFragment, fragment_memory 내 travel 을 memory 로 변경 * refactor: MemoryViewModel 내 error message 변수명 변경 - TRAVEL_ERROR_MESSAGE -> MEMORY_ERROR_MESSAGE * refactor: navigation graph 내 travel을 memory로 변경 * refactor: VisitUpdateActivity 내 extra 키 값 수정 - TRAVEL_ID_KEY -> MEMORY_ID_KEY - TRAVEL_TITLE_KEY -> MEMORY_TITLE_KEY * refactor: VisitFragment 내 travel을 memory로 변경 * refactor: VisitUpdateActivity 내 travel을 memory로 변경 * refactor: VisitUpdateViewModel 내 travel을 memory로 변경 * refactor: VisitTravelUiModel을 VisitMemoryUiModel로 변경 * refactor: 방문 수정 xml의 travel을 memory로 변경 * refactor: 여행(현 추억) 선택 xml 내 travel을 memory로 변경 * refactor: 여행 선택 바텀 시트 내 travel을 memory로 변경 - TravelSelectionFragment -> MemorySelectionFragment 로 수정 - TravelSelectionHandler -> MemorySelectionHandler 로 수정 - TravelSelectionFragment 내 메서드명 수정 - TravelSelectionHandler 내 매개변수명 수정 * refactor: VisitRepository와 구현체의 메서드 내 매개변수명 통일 * refactor: VisitsViewHolder 내 travel을 memory로 변경 * refactor: VisitCreationActivity 내 travel을 memory로 변경 * refactor: VisitCreationViewModel 내 travel을 memory로 변경 * refactor: 방문 생성 xml 내 travel을 memory로 변경 * refactor: BindingAdapters 내 travel을 memory로 변경 * refactor: strings 내 travel을 memory로 변경 - strings 내 '여행'을 '추억'으로 수정 Co-authored-by: Junyoung-WON Co-authored-by: s6m1n * refactor: visit, visit log 도메인명 수정 #218 (#237) * refactor: VisitApiService 내 visit을 moment 로 변경 - 파일명 수정 - path 수정 - 메서드명 수정 - 매개변수명 수정 * refactor: data/visit 패키지명을 moment로 변경 * refactor: data/dto/visit 패키지명을 moment로 변경 * refactor: VisitCreationRequest 네이밍 변경 - 이전: VisitCreationRequest - 이후: MomentCreationRequest * style: StaccatoClient import 재정렬 * refactor: VisitCreationResponse 네이밍 변경 - 이전: VisitCreationResponse - 이후: MomentCreationResponse - 필드명 변경 : visitId -> momentId * refactor: VisitResponse 네이밍 변경 - 이전: VisitResponse - 이후: MomentResponse - VisitResponse 필드 내 visit을 moment로 변경 - VisitResponse 필드 내 visitLogs SerialName을 comments로 변경 * refactor: VisitUpdateRequest 네이밍 변경 - 이전: VisitUpdateRequest - 이후: MomentUpdateRequest - VisitUpdateRequest 필드 내 visit을 moment로 변경 * refactor: VisitLogDto 내 SerialName 변경 - visitLogId를 commentId로 변경 * refactor: MemoryResponse 내 visits SerialName 변경 - visits를 moments로 변경 * refactor: VisitCreationViewModel 내 FORM_DATA_NAME 변경 - 이전: visitImageFiles - 이후: momentImageFiles * refactor: MemoryVisitDto 내 visit를 moment로 변경 - MemoryVisitDto -> MemoryMomentDto로 변경 - visitId -> momentId로 변경 - visitImageUrl -> momentImageUrl로 변경 * refactor: VisitRemoteDataSource 내 visit을 moment로 변경 - VisitRemoteDataSource -> MomentRemoteDataSource로 변경 - 메서드명 변경 - 매개변수명 변경 * refactor: MomentRepository 및 구현체 내 visit을 moment로 변경 - VisitRepository -> MomentRepository로 변경 - VisitDefaultRepository -> MomentDefaultRepository로 변경 - 메서드명 변경 - 매개변수명 변경 * refactor: Visit 도메인 모델명 및 변수명 변경 - Visit -> Moment로 변경 - visitLogs -> comments로 변경 * refactor: Memory 도에인 모델의 visits을 moments로 변경 * refactor: MemoryVisit 도메인 모델 내 visit을 moment로 변경 * refactor: MemoryResponse의 visits 필드명을 moments로 변경 * refactor: dto/mapper/VisitMapper를 MomentMapper로 변경 * refactor: presentation/visit 패키지명을 moment로 변경 * refactor: VisitViewHolderType 네이밍 변경 - VisitViewHolderType -> MomentViewHolderType - enum 상수명 변경 - VISIT_DEFAULT -> MOMENT_DEFAULT - MY_VISIT_LOG -> MY_COMMENTS * refactor: VisitViewHolder 네이밍 변경 - VisitViewHolder -> MomentViewHolder - VisitDefaultViewHolder -> MomentDefaultViewHolder - MyVisitLogViewHolder -> MyCommentViewHolder * refactor: VisitAdapter 내 visit을 moment로 변경 - VisitAdapter -> MomentAdapter 로 변경 - visit -> moment 로 변경 * refactor: MomentAdapter 내 visit log를 comments로 변경 * refactor: VisitDetailUiModel 내 visit을 moment로 변경 - VisitDetailUiModel -> MomentDetailUiModel - VisitDefaultUiModel -> MomentDefaultUiModel - visitImageUrls -> momentImageUrls * refactor: VisitLogUiModel을 CommentsUiModel로 변경 * refactor: VISIT_ID_KEY extra key id 네이밍 변경 - VISIT_ID_KEY -> MOMENT_ID_KEY * refactor: VisitFragment 내 visit을 moment로 변경 * refactor: VisitViewModel 내 visit을 moment로 변경 - VisitViewModel -> MomentViewModel로 변경 - VisitViewModelFactory -> MomentViewModelFactory로 변경 * refactor: VisitMemoryUiModel 네이밍 변경 - VisitMemoryUiModel -> MomentMemoryUiModel로 변경 * refactor: presentation/visitcreation 패키지명 momentcreation으로 변경 * refactor: VisitCreationActivity 내 visit을 moment로 변경 - VisitCreationActivity -> MomentCreationActivity로 변경 * refactor: VisitCreationHandler 네이밍 변경 - VisitCreationHandler -> MomentCreationHandler로 변경 * refactor: VisitCreationViewModel 내 visit을 moment로 변경 - VisitCreationViewModel -> MomentCreationViewModel로 변경 - 메서드 및 변수명 변경 * refactor: 여행 -> 추억, 방문 기록 -> 스타카토로 도메인명 변경 * feat: s3 api 연결 #239 (#241) * feat: ImageResponse, ImageApiService 구현 * feat: ImageRepository 및 구현체 구현 Co-authored-by: s6m1n * fix: 추억 기능 버그 수정 #246 (#252) * fix: 일부 EditText 개행 불가 처리 및 키보드 숨김 처리 #247 (#249) * ui: 닉네임과 추억 생성, 수정 제목 입력 시 줄바꿈 제한 * fix: 키보드 활성화 상태에서 빈 화면 터치로 키보드 숨김 처리 - 메서드 명 변경: setHideKeyboardAction -> setHidingKeyboardAction * style: 클래스 내 override 메서드의 순서 변경 - 팀 코드 컨벤션에 맞게 순서 재정렬 - override 메서드를 상단에 둔다. * style: ktlint 적용 * fix: root뷰 터치 시 클릭 이벤트가 발생하지 않는 오류 수정 - 원인 분석: ConstraintLayout 내부 Toolbar 및 ScrollView, 그리고 그 자식 View들이 클릭 이벤트를 가로채기 때문에, 바인딩 된 최상단 root 뷰인 ConstraintLayout의 클릭 이벤트가 동작하지 않는다. - 해결 방법: 여러 클릭 이벤트를 가로채는 dispatchTouchEvent 메서드를 오버라이드하여, 터치된 부분이 현재 포커스가 되지 않은 View(키보드 바깥 화면) 범위라면, 키보드를 숨기는 동작을 추가하였다. * refactor: 키보드 숨김 동작을 handler 바인딩으로 적용 - LoginHandler 에 화면 터치에 대한 동작을 추가, 화면 터치 시 키보드를 숨김 처리하는 동작을 바인딩으로 설정 - InputMethodManager 인스턴스를 지연초기화하여 저장 * refactor: InputMethodManager 인스턴스를 lazy로 지연 초기화 * fix: 닉네임, 제목 입력 칸의 키보드 액션 버튼 변경 - 키보드의 액션 타입을 Search에서 Done으로 변경 * style: ktlint 적용 * refactor: 타임라인 리팩터링 #232 (#263) * refactor: TimelineViewModelFactory의 생성자 파라미터 추가 - 내부 프로퍼티에 속해있던 TimelineRepository를 생성자 프로퍼티로 변경 * fix: 추억 목록 아이템이 하나일 때의 View 수정 - 아이템 개수가 하나일 때는 타임라인의 선이 나타나지 않도록 변경 * chore: 코루틴 예외 처리 로그에context 출력 * refactor: 메서드 분리 및 순서 재정렬 - 코드 컨벤션: override 메서드는 상단에 위치한다 * refactor: TimelineViewModel 생성 팩토리 메서드 활용 * style: ktlint 적용 * ui: 화면 전환에 사용될 twin animation 효과 생성 * ui: animation 효과 활용하여 화면 전환 애니메이션 적용 * ui: Main 화면의 배경 색을 하얀색(#FFFFFF)으로 지정 * style: ktlint 적용 * feat: 기분 선택 기능 구현 및 스타카토 조회 화면 구조 변경 #191 (#289) * feat: 기분 수정 요청을 보내는 Request Dto 작성 * feat: MomentApiService 에 기분 수정 요청에 대한 API 작성 * feat: 기분 수정 요청에 대한 DataSource 메서드 작성 * feat: 기분 도메인 모델 생성 * feat: 기분 도메인을 기분 수정 Request로 변환하는 메서드 작성 * ui: 기분 아이콘 이미지 리소스 추가 * ui: 기분 아이콘의 테두리를 selector로 생성 - 선택/미선택에 따라 다른 ui를 나타낸다 * ui: 기분 아이콘에 사용할 style 지정 * fix: API 변경에 따라 DTO 및 Mapper 변경 - 순간(현 스타카토)의 visitedAt의 타입을 LocalDate에서 LocalDateTime으로 변경 * fix: 순간 DTO에 기분 필드 추가 - 순간 Dto에 기분(Feeling) 필드를 추가함에 따라 Mapper 및 도메인 수정 * feat: 기분 선택 api에 필요한 repository 메서드 작성 * feat: 기분 uiModel 생성 * feat: 댓글에 대한 UI 모델 생성 * feat: 순간(현 스타카토) 상세 정보에 대한 UI 모델 생성 * feat: 기분 ImageView 의 선택 상태 바인딩 어댑터 작성 * feat: 댓글 화면 구성 및 Adapter, Fragment 작성 * feat: 순간(현 스타카토)의 Ui Model Mapper 변경 MomentDetailUiModel.CommentsUiModel -> CommentUiModel MomentDetailUiModel.MomentDefaultUiModel -> MomentDetailUiModel Feeling을 Ui Model로 변환하는 Mapper 추가 * feat: 기분 선택 View 구성 및 Fragment, ViewModel, Adapter, Handler 작성 * feat: 순간 상세에 대한 View 구성 및 Fragment, ViewModel 작성 * fix: 기분 선택 클릭 리스너와 바인딩 어댑터 설정 및 View 수정 * fix: 누락된 ViewModel 데이터 바인딩 설정 * feat: 순간 조회 화면 재구성 * refactor: 네비게이션 action 및 id 네이밍 수정 visit -> moment로 수정 * refactor: 방문 -> 순간 으로 키워드 변경 * refactor: 불필요한 클래스 및 xml 파일 제거 * style: ktlint 적용 * feat: 추억 API 변경사항 반영 및 리팩터링 #259 (#265) * ui: 추억 생성 화면 사진 로드 시 coil 라이브러리 사용 * ui: 삭제 버튼 아이콘 추가 * ui: 추억 생성 화면 사진 삭제 버튼 추가 * feat: 추억 생성 view model의 imageUri 설정 매개변수 타입 변경 * feat: 추억 생성 화면 사진 삭제 구현 * feat: 추억 수정 화면 사진 첨부 icon 가시성 설정 * ui: 추억 수정 화면 사진 삭제 버튼 추가 * feat: 추억 수정 화면 사진 삭제 버튼 가시성 설정 * feat: 추억 수정 view model의 imageUri 설정 매개변수 타입 변경 * feat: 추억 수정 화면 사진 삭제 구현 * fix: 추억 생성 화면의 사진 첨부란 연속 클릭 시 앱 종료 되는 버그 수정 * fix: 추억 수정 화면의 사진 첨부란 연속 클릭 시 앱 종료 되는 버그 수정 * feat: MemoryRequest dto에 썸네일 사진 url 필드 추가 * feat: 추억 생성 메서드의 시그니처 변경 - MemoryApiService 내 추억 생성 메서드의 시그니처 변경 - 위 변경에 따른 DataSource, Repository, ViewModel의 추억 생성 관련 메서드 시그니처 변경 * feat: 추억 생성 view model 주 생성자로 ImageRepository 주입 * feat: 추억 생성 화면의 썸네일 사진 저장 기능 구현 * feat: 서버에서 저장된 사진을 불러오는 기능 추가 (추억 생성 화면) - 추억 생성 화면에서 서버에 저장된 사진을 로드하는 기능 구현 - UI에 불러온 사진을 표시하는 로직 수정 * feat: 추억 생성 시 썸네일 사진 url 추가 * refactor: MemoryRequest의 추억 썸네일 사진 기본 인자 값 null로 설정 * feat: 추억 수정 메서드의 시그니처 변경 * feat: 추억 수정 view model 주 생성자로 ImageRepository 주입 * feat: 추억 수정 화면의 썸네일 사진 저장 기능 구현 * feat: 서버에서 저장된 사진을 불러오는 기능 추가 (추억 수정 화면) - 추억 수정 화면에서 서버에 저장된 사진을 로드하는 기능 구현 - UI에 불러온 사진을 표시하는 로직 수정 * feat: 추억 수정 시 썸네일 사진 url 추가 * refactor: 불필요한 MemoryUpdateRequest 제거 * ui: empty view 캐릭터 이미지 추가 * ui: 추억 설명글 유무에 따른 가시성 설정 * ui: 함께 한 사람들 가시성 gone 으로 설정 - 4차 스프린트 범위에서 제외됨 * feat: 이미지 선택 옵션 추가 (단일 선택 및 다중 선택 지원) * ui: TextInputLayout, TextInputEditText Style 정의 * ui: 추억 생성 화면 입력란 TextInputLayout으로 변경 - counter 속성 사용을 위해 TextInputLayout으로 변경함 * ui: 추억 수정 화면 입력란 TextInputLayout으로 변경 - counter 속성 사용을 위해 TextInputLayout으로 변경함 * ui: 추억 조회 화면 썸네일 사진 유무에 따른 가시성 설정 * ui: empty view 캐릭터 이미지 크기 변경 * ui: 앱 이름 Staccato_AN -> Staccato 로 수정 * refactor: 추억 생성 및 수정 화면 메서드 순서 정리 * ui: 제목용 TextInputEditTextStyle 정의 및 적용 * ui: 추억 생성 및 수정 화면 썸네일 coilPlaceHolder 변경 - 이전: shape_place_holder_rectangle - 이후: shape_all_gray1_8dp * refactor: 삭제 다이얼로그 show 메서드 호출 방식 변경 - apply를 사용하지 않는 방식으로 변경 * ui: 코멘트 미지원 안내 view 추가 * feat: 스타카토 생성, 수정 화면 사진 및 완료 버튼 개선 #242 (#291) * feat: (스타카토 생성 화면) 사진 드래그로 순서 변경 기능 구현 * refactor: data 패키지에 S3 이미지 API 분리 적용 * refactor: AttachedPhotoUiModel 및 프로그래스바 추가 * feat: recyclerView에서 지워진 사진의 job cancel 처리 * refactor: editText를 TextInputLayout로 수정 * feat: (스타카토 수정 화면) 사진 드래그로 순서 변경 / 로딩 구현 * refactor: 프로퍼티 네임 변경 및 visitedAt LocalDateTime으로 수정 * style: ktlint 적용 * build: 구글 맵 API 사용에 따른 CI 수정 #296 (#297) * build: 구글 맵 api key를 저장하는 파일을 설정하는 명령어 작성 * refactor: defaults 에 설정된 shell 설정에 따라 추가적인 shell 설정 삭제 * feat: Google Map 연결, 스타카토 목록 조회 API 연결 #54 (#295) * build: google map 의존성 추가 * build: 구글맵 관련 properties ignore 추가 * build: 구글맵 api key 설정 * feat: Google Map 연결 * feat: MainActivity Handler 구현 * ui: 추억 및 스타카토 생성 메뉴 추가 * ui: popup menu style 정의 * feat: 추억 생성 및 수정 menu 연결 - handler 연결 - 메서드 분리 * feat: 위치 권한 요청 구현 - ACCESS_FINE_LOCATION 권한 요청 - ACCESS_COARSE_LOCATION 권한 요청 * feat: 현 위치 표시 * style: MainActivity formatting * feat: locationPermissions 타입 변경 - 이전: List - 이후: Array * feat: MomentLocationDto, MomentLocationResponse 추가 * feat: 스타카토 목록 조회 api service 구현 * feat: 스타카토 목록 조회 data source 구현 * feat: MomentLocation 도메인 모델 구현 * feat: MomentLocationDto를 도메인 모델로 변환하는 mapper 구현 * feat: 스타카토 목록 조회 repository 구현 * feat: 스타카토 목록 조회 view model 구현 * feat: 스타카토 목록을 marker로 표시 * refactor: home 패키지명을 maps로 변경 * feat: 마커 클릭 시 스타카토 상세로 이동 기능 구현 * feat: 스타카토 조회 추억 id, 제목 필드 추가 * feat: 마지막 위치 위경도 찾기 * refactor: 안드로이드 1차 QA 반영 #299 (#301) * refactor: 안드로이드 1차 QA 반영 * refactor: 안드로이드 1차 QA 반영2 * refactor: 안드로이드 1차 QA 반영3 * refactor: 삭제 메시지 변경 * fix: 스타카토 조회 화면 스택 관리 및 ui 수정 #304 (#306) * feat: 지도 화면에서 스타카토 조회 화면으로 이동 시 스택 관리 * feat: 타임라인 화면에서 추억이 존재하지 않을 때 추억 생성 버튼 추가 * ui: 스타카토 조회 화면 툴바 위치 고정 * build: Android CD 적용 #300 (#308) * build: CD 워크플로우 yml 파일 작성 * build: keystore 접근을 위한 build.gradle.kts 파일 설정 * build: 기존 apk 추출 ci 파일 수정 - demo 버전의 apk를 추출 및 배포하는 목적에 맞게 파일 명 수정 - apk 빌드 후 테스트를 수행하는 job 추가 - firebase 앱 배포에 아티팩트 업로드하는 job 추가 * fix: ci 파일에도 keystore 생성 job 추가 * fix: 키스토어 환경변수를 base64로 디코딩하는 명령어 수정 * fix: 키스토어 환경변수를 base64로 디코딩하는 명령어 재수정 * fix: 키스토어 환경변수를 base64로 디코딩하는 명령어 재수정 * fix: ci 파일에 키스토어 관련 설정 적용 * fix: 키스토어 관련 명령어 일부 수정 * fix: build.gradle.kts 불필요한 괄호 제거 * fix: keystore.properties 로 부터 프로퍼티를 가져오는 형식 변경 * fix: upload-artifact step에서 빌드 파일의 upload 경로 수정 (#316) upload-artifact 는 defaults 설정의 working-directory 경로가 적용되지 않음 * fix: android cd 재수정 (2차) #317 (#319) * fix: upload-artifact 빌드 파일의 upload 경로 3차 수정 * fix: 배포 시 빌드 파일의 경로 수정 * fix: 빌드 파일의 upload 경로 수정 및 파일이 없는 경우 에러 처리 * fix: 빌드 파일의 upload 경로 4차 수정 * fix: 빌드 파일의 upload 경로 5차 수정 * fix: 빌드 파일의 upload 경로 6차 수정 - 디렉터리 경로 생성 후 upload 실행 * fix: 빌드 파일의 upload 경로 7차 수정 github의 workspace 환경변수(절대경로) 활용 * fix: clean test 제거 및 디버그용 파일 경로 탐색 명령어 추가 * fix: 디버그용 파일 경로 검색 명령어 수정 * fix: 디버그용 파일 경로 검색 명령어 삭제 * fix: 디버그용 파일 검색 명령어 삭제 및 업로드 파일 경로명 수정 * feat: 스타카토 생성 시 현 위치의 주소를 가져오는 기능 구현 #314 (#324) * feat: MainActivity에서 주소를 가져오는 로직 삭제 * feat: 스타카토 생성 시 현 위치의 주소를 가져오는 로직 구현 * refactor: 메서드 순서 정렬 * refactor: 스타카토 조회 화면 ViewPager2 적용 및 UI 아이콘 개선 #318 (#320) * refactor: 아이콘 추가 및 UI 개선 * feat: 스타카토 상세 사진 Viewpager 적용 * feat: 스타카토 상세 사진 Viewpager에 dot indicator 추가 * style: ktLint Format * feat: 메인 지도 화면에서 스타카토 생성하는 플로우 구현 #321 (#327) * feat: 날짜로 추억 목록 불러오는 getMemories API 추가 * feat: 메인에서 스타카토 생성 시 추억 목록 선택 가능 * feat: 스타카토 생성 시 역지오코딩과 추억 선택 연동 * build: debug와 release로 buildTypes 분리 (#329) - appName, appId, baseUrl 분리 - release에 난독화 적용 * build: debug 와 release 배포 분기에 따른 CD 수정 - CD에 대한 트리거 재설정 : main 브랜치에 대한 push 및 pr * fix: 스타카토 생성, 삭제 후 지도 화면의 마커가 갱신되지 않는 오류 해결 #326 (#330) * refactor: 지도 화면 onResume에서 스타카토 목록 load * refactor: 스타카토 목록 로드 메서드명 변경 - 이전: loadMoments - 이후: loadStaccatos * feat: 공유 view model에 스타카토 목록 업데이트 상태 추가 * fix: 스타카토 생성, 삭제 후 지도 화면의 마커가 갱신되지 않는 오류 해결 * feat: 지도 로드 시 현위치로 이동하도록 구현 * build: ci 및 cd 파일 수정 ci - 불필요한 gradle 빌드 및 테스트 제거 cd - 타겟 브랜치 develop 제거 * feat: 댓글 조회, 생성, 삭제 기능 구현 #290 (#331) * feat: 기분 수정 요청을 보내는 Request Dto 작성 * feat: MomentApiService 에 기분 수정 요청에 대한 API 작성 * feat: 기분 수정 요청에 대한 DataSource 메서드 작성 * feat: 기분 도메인 모델 생성 * feat: 기분 도메인을 기분 수정 Request로 변환하는 메서드 작성 * ui: 기분 아이콘 이미지 리소스 추가 * ui: 기분 아이콘의 테두리를 selector로 생성 - 선택/미선택에 따라 다른 ui를 나타낸다 * ui: 기분 아이콘에 사용할 style 지정 * fix: API 변경에 따라 DTO 및 Mapper 변경 - 순간(현 스타카토)의 visitedAt의 타입을 LocalDate에서 LocalDateTime으로 변경 * fix: 순간 DTO에 기분 필드 추가 - 순간 Dto에 기분(Feeling) 필드를 추가함에 따라 Mapper 및 도메인 수정 * feat: 기분 선택 api에 필요한 repository 메서드 작성 * feat: 기분 uiModel 생성 * feat: 댓글에 대한 UI 모델 생성 * feat: 순간(현 스타카토) 상세 정보에 대한 UI 모델 생성 * feat: 기분 ImageView 의 선택 상태 바인딩 어댑터 작성 * feat: 댓글 화면 구성 및 Adapter, Fragment 작성 * feat: 순간(현 스타카토)의 Ui Model Mapper 변경 MomentDetailUiModel.CommentsUiModel -> CommentUiModel MomentDetailUiModel.MomentDefaultUiModel -> MomentDetailUiModel Feeling을 Ui Model로 변환하는 Mapper 추가 * feat: 기분 선택 View 구성 및 Fragment, ViewModel, Adapter, Handler 작성 * feat: 순간 상세에 대한 View 구성 및 Fragment, ViewModel 작성 * fix: 기분 선택 클릭 리스너와 바인딩 어댑터 설정 및 View 수정 * fix: 누락된 ViewModel 데이터 바인딩 설정 * feat: 순간 조회 화면 재구성 * refactor: 네비게이션 action 및 id 네이밍 수정 visit -> moment로 수정 * refactor: 방문 -> 순간 으로 키워드 변경 * refactor: 불필요한 클래스 및 xml 파일 제거 * ui: xml 컨벤션에 맞추어진 타 사용자의 댓글 ui 구성 * feat: 댓글 API의 DTO 작성 * feat: 댓글 API Service 작성 * feat: 댓글 CRUD DataSource 작성 * refactor: CommentApiService 각 메서드의 반환 값을 Response로 변경 * feat: CommentApiService 를 create * feat: CommentDataSource 구현체 생성 * refactor: 댓글 Dto 클래스 네이밍 변경 - VisitLogDto -> CommentDto * refactor: CommentDto 의 ID 프로퍼티 네이밍 변경 - visitLogId -> commentId * refactor: VisitLog 도메인 모델 클래스의 네이밍 변경 - VisitLog -> Comment * refactor: Comment 도메인 모델의 ID 프로퍼티 네이밍 변경 - visitLogId -> commentId * feat: 새로운 댓글 도메인 모델 생성 * feat: CommentRepository 작성 * feat: Domain 모델과 DTO 모델을 변환해주는 Mapper 작성 - CommentDto를 Comment로 변환하는 메서드를 CommentMapper.kt로 이동 * feat: CommentRepository의 기본 구현체 작성 * feat: 댓글 ViewModel, Factory 작성 및 Comment 불러오기 구현 * ui: ViewModel 데이터바인딩 및 빈 댓글 문구에 대한 strings 설정 * feat: CommentsViewModel 활용 및 옵저빙 * feat: 댓글 조회, 생성, 삭제 기능 구현 * chore: ktlint 적용 * feat: 추억 생성 및 수정 이미지 로딩 중 표시 및 저장 버튼 비활성화 #332 (#334) * feat: 추억 생성 이미지 로딩 중 표시 * feat: 추억 수정 이미지 로딩 중 표시 * feat: 추억 생성 및 수정 이미지 로딩 중 저장 버튼 비활성화 * style: formatting * refactor: 댓글 화면 개선 및 리팩터링 #333 (#335) * fix: merge conflicts 해결 * fix: 글자 수 제한 500자로 수정 * style: ktlint 체크 * build: CD 수정 - 구글 플레이스토어 업로드 스텝 추가 * build: defaultConfig의 버전 코드와 이름 수정 versionCode : 2 -> 3 versionName : 1.1 -> 1.0.0 (배포 버전과 동일) --------- Co-authored-by: hxeyexn Co-authored-by: s6m1n * deploy: v1.0.1 (#356) * build: 프로젝트 생성 및 의존성 추가 * chore: 사용자 기능 및 권한 추가 * chore: gitignore 재설정 * chore: gitigonre .idea/ 추가 * build: develop-an 브랜치의 CI 설정 #3 (#10) * build: android-ci.yml 파일 생성 * chore: 오타 및 개행 수정 * chore: working-directory 수정 * build: ktLint 적용 및 format * ui: 디자인 시스템 구현 #11 (#44) * ui: color 정의 * ui: shape, selector 추가 * ui: icon 추가 * ui: font family 추가 - pretendard regular, medium, semibold, bold 추가 * ui: typography 정의 * ui: strings 정의 * ui: bottom sheet drag handle drawable 추가 * ui: styles 정의 * ui: detail toolbar 구현 - 상세 화면에서 사용 * ui: dialog, bottom sheet 구현 - 여행 및 방문 기록 삭제 dialog - 사진 등록 bottom sheet * ui: 사진 첨부 layout 구현 * feat: 삭제 다이얼로그, 사진 첨부 바텀 시트 fragment 추가 * ui: 세로모드로 고정 * build: data binding 의존성 추가 * style: strings resource 순서 정렬 * style: formatting * ui: plus icon 추가 * feat: jetpack navigation 및 바텀시트 프래그먼트 추가 #12 (#15) * build: androidx.navigation 및 dataBinding 의존성 추가 * feat: Binding 화면 클래스 및 bottomSheetNavigation 추가 * feat: TimelineFragment 임시 화면 추가 * feat: TravelFragment 임시 화면 추가 * feat: TravelCreationFragment 임시 화면 추가 * feat: VisitFragment 임시 화면 추가 * feat: VisitCreationFragment 임시 화면 추가 * feat: (여행, 방문 기록) 수정 화면 추가 * feat: (여행, 방문 기록) 생성 화면 이동 구현 * feat: BottomSheetController 설정 및 Navigation 이동 구현 * feat: 뒤로가기 버튼 클릭 시 BottomSheet, Toast 작동 구현 * feat: 여행, 방문 기록 생성을 위한 액티비티 추가 및 이동 구현 * feat: 여행, 방문 기록 수정을 위한 액티비티 추가 및 이동 구현 * build: 중복된 dataBinding 제거 * feat: 공통 이미지 로딩 BindingAdapter 설정 #33 (#41) * build: dataBinding 사용 설정 * feat: 이미지 로딩 바인딩 어댑터 설정 - Glide, Coil 바인딩 어댑터를 각각 작성 - placeholder 설정 * style: ktlint check - import 순서 조정 * fix: attribute 개수에 맞추어 BindingAdapter의 value 재설정 * style: 마지막 줄 개행 추가 * feat: placeHolder를 필수 속성으로 변경 및 coil 이미지 로딩 코드 수정 - placeHolder를 ImageView의 필수 속성으로 지정 - Coil BindingAdapter에서 url이 null인 경우에도 이미지를 로드하는 동작이 수행되도록 수정 * ui: 상단바 색상 변경 * build: develop-an의 CI 설정 수정 #38 (#39) - Git Action에 Secret으로 저장된 LOCAL_PROPERTIES_API_KEY를 변수로 가져온다. - 가져온 변수를 echo를 활용하여 local.properties에 설정한다. * build: develop-an 브랜치의 CI 파일 문법 오류 수정 #45 (#46) * fix: android-ci.yml 파일의 명령어 수정 LOCAL_PROPERTIES_API_KEY에 접근하는 명령어 수정 * fix: android-ci.yml 파일의 명령어 수정 #47 (#48) LOCAL_PROPERTIES_API_KEY에 접근하는 명령어 수정 * fix: 파이프라인 제거하여 명령어 수정 * fix: develop-an 브랜치의 CI 파일 명령어 재수정 #47 (#49) * fix: android-ci.yml 파일의 명령어 수정 LOCAL_PROPERTIES_API_KEY에 접근하는 명령어 수정 * fix: 파이프라인 제거하여 명령어 수정 --------- Co-authored-by: Somin Lee <46596035+s6m1n@users.noreply.github.com> * fix: 문자열 임을 명시하고 환경변수 설정 위치 조정 * fix: local.properties 생성 시점 수정 * feat: 데이터 패키지 설정 #13 (#35) * build: 서버 base url의 local.properties 사용 설정 및 BuildConfig 설정 * feat: Retrofit Client 작성 * fix: Merge Conflict 해결 - build.gradle.kts(project, app)의 ktlint 의존성 충돌 해결 - 버전 카탈로그 플러그인 충돌 해결 * feat: DTO 클래스 작성 * style: ktlint check - 불필요한 import 제거 - 개행 조정 - 콤마 추가 * feat: SerialName 어노테이션의 값을 camelCase로 수정 * refactor: DTO 클래스의 이름 수정 - API 요청으로 직접 보내거나 들어오는 JSON의 경우 DTO 클래스명 뒤에 Request/Response 를 붙이도록 설정 - JSON 안에 속성 값으로 들어가는 JSON은 DTO 클래스명 뒤에 Dto를 붙이도록 설정 * feat: 누락된 Dto 클래스 추가 TimelineResponse.kt - 타임라인 조회 시 여행 상세 목록을 불러올 때 사용되는 DTO 클래스 - TimelineTravelDto 리스트를 갖는다 * style: ktlint check * fix: const 키워드 제거 --------- Co-authored-by: hxeyexn * feat: 둥근 모서리의 이미지를 로드하는 BindingAdapters 추가 #58 (#59) * feat: 둥근 모서리로 이미지를 로딩하는 Glide 바인딩 어댑터 작성 - 세 속성이 모두 필요하다. - glideRoundedCornerImageUrl: 출력하고자 하는 이미지 url - glidePlaceHolder: placeHolder의 url - glideRoundingRadius: 모서리의 둥근 정도를 Int로 설정 * feat: 둥근 모서리로 이미지를 로딩하는 Coil 바인딩 어댑터 작성 - 세 속성이 모두 필요하다. - coilRoundedCornerImageUrl: 출력하고자 하는 이미지 url - coilPlaceHolder: placeHolder의 url - coilRoundingRadius: 모서리의 둥근 정도를 Float으로 설정 * fix: centerCrop 설정을 BindingAdapter 에 위임 - xml 속성으로 centerCrop을 주게 되면 Round Corner가 제대로 적용되지 않는 현상 발생 - Glide의 api로 제공되는 centerCrop() 메서드를 활용 * ui: 타임라인 프래그먼트(BottomSheet) 구현 #55 (#71) * ui: 타임라인 View xml 파일 작성 - 타임라인에 나타날 여행 상세 아이템 xml 작성 - 썸네일 사진 유무에 따라 뷰를 구분 - 타임라인이 나타날 fragment xml 작성 * feat: 타임라인 여행 상세 아이템 UI 모델 생성 * ui: 썸네일이 없는 여행상세 아이템의 margin 조정 * ui: Timeline RecyclerView의 layoutManager 설정 * ui: xml에서의 UiModel 데이터 바인딩 설정 * feat: ViewHolder 작성 - 썸네일 사진 유무에 따라 다른 ViewHolder로 구분 - 공통된 속성을 정의한 TimelineViewHolder 추상클래스 생성 * feat: TimelineRepository Interface 생성 * feat: 임시 TimelineRepository 구현체 생성 * feat: TimelineViewModel 및 Factory 생성 * feat: TimelineViewType 작성 * feat: TimelineAdapter 작성 * feat: TimelineFragment에 ViewModel과 Adapter 구현 * feat: 이미지 로딩 PlaceHolder drawable 추가 및 적용 * feat: 임시 데이터 연결 * ui: Timeline fragment 의 세부 설정 조정 * ui: Timeline의 Item xml 변경 - 뷰 타입을 3개로 분할: 첫 번째 아이템, 중간 아이템, 마지막 아이템 - 이에 따라 xml 파일 추가 및 view 수정 * feat: ViewType 변경에 따른 Adapter 및 ViewHolder 수정 * refactor: 불필요한 View 및 ViewHolder 제거 * feat: 여행 click 에 대한 event handler 생성 및 설정 * refactor: drawable 이름을 네이밍 컨벤션에 맞게 수정 * ui: RecyclerView의 마진 속성을 패딩 속성으로 변경 * feat: 바텀 시트 디자인 변경 및 툴바와의 상호작용 구현 * ui: 타임라인 글귀 추가 * style: ktlint check * ui: 둥근 모서리의 이미지로 변경 * ui: 방문 기록, 방문 기록 생성, 방문 기록 수정 화면 구현 #52 (#74) * ui: typography.body textSize 1sp 씩 증가 * feat: DeleteDialogFragment에 Handler 추가 * feat: 툴바의 수정, 삭제 버튼 제어를 위한 ToolbarHandler 추가 * feat: 방문 상세 화면을 위한 VisitDetailUiModel 추가 * ui: PlaceHolder를 위한 xml 파일 추가 * feat: 방문 기록 상세 화면을 위한 VisitAdapter 및 VisitViewHolder 구현 * feat: 임시 VisitViewModel와 VisitViewModelFactory 추가 * feat: VisitFragment 화면 구현 * feat: 방문 기록에 해당하는 여행 선택을 위한 TravelSelectionFragment 구현 * feat: 방문 기록에 해당하는 날짜 선택을 위한 VisitedAtSelectionFragment 구현 * feat: 방문 기록 생성을 위한 VisitCreationActivity 구현 * feat: 방문 기록 수정을 위한 VisitUpdateActivity 구현 * refactor: DialogHandler를 DeleteDialogFragment의 생성자에서 받도록 수정 * refactor: initVisitUpdateDoneButton 중복 로직 제거 * refactor: VisitViewHolderType 메서드 명 변경 of -> from * refactor: tv_place_name_title을 xml id convention에 맞게 수정 * ui: 여행 화면 구현 #51 (#75) * ui: 함께 간 사람들 item 구현 * ui: 방문 기록 item 구현 * ui: 여행 상세 화면 구현 * ui: 여행 생성 화면 구현 * ui: 여행 수정 화면 구현 * ui: placeholder에 사용할 drawable 추가 * ui: 여행 삭제 완료 string 추가 * feat: 둥근 모서리 이미지 BindingAdapter 구현 * feat: 함께 간 사람들 adapter 구현 * ui: 여행 상세 화면 NestedScrollView로 변경 - 이전: ScrollView - 이후: NestedScrollView * feat: 방문 기록 adapter 구현 * feat: 여행 상세 view 연결 * feat: 함께 간 사람들, 방문 기록 adapter 연결 * feat: 삭제 다이얼로그 handler 구현 * feat: 여행 상세 화면 toolbar handler 구현 - 뒤로가기 - 여행 수정 화면으로 이동 - 삭제 다이얼로그 show * feat: 여행 -> 방문 기록 화면 이동 구현 * ui: DatePickerStyle 추가 - DatePickerStyle, CustomMaterialCalendarStyle 추가 - staccato_blue 투명도 30 추가 * feat: 여행 저장 버튼, 여행 기간 BindingAdapter 추가 * feat: 여행 생성 view 연결 * feat: 여행 수정 view 연결 * style: formatting - Exceeded max line length 해결 - 임시 이미지 URL 변경 * refactor: 기간 선택 로직 메서드 분리 * feat: 타임라인의 API 적용 및 MainActivity의 Toolbar 제거 #81 (#93) * refactor: UI Model의 패키지 경로 변경 * refactor: API 명세 변경에 따른 TimelineTravelDto 수정 * refactor: repository 메서드 수정 - 서버 요청을 비동기적으로 처리하기 위해 suspend 키워드 삽입 - 기존의 임시 데이터 요청 코드를 위해 load 메서드 분리 * feat: Timeline의 API Service 작성 * feat: DataSource 인터페이스 작성 * feat: TimelineDataSource 구현체 생성 * refactor: 년도에 대한 default parameter 설정 * refactor: DataSource의 요청 메서드 네이밍 수정 * feat: http 통신이 가능하도록 Cleartext Traffic 허용 설정 * feat: Authorization Header를 삽입하기 위한 Interceptor 생성 * feat: Client에 HeaderInterceptor 추가 * refactor: errorBody의 message 속성 이름 변경 * feat: 도메인 모델 작성 * feat: Response(dto)에서 도메인 모델로 변환하는 확장함수 구현 * feat: 도메인 모델에서 UI 모델로 변환하는 확장함수 구현 * feat: Repository 수정 및 ViewModel 데이터 연결 * ui: MainActivity의 상단 툴바 제거 * refactor: ViewType에 viewType 속성 추가 및 when에서의 enum 활용 * refactor: Timeline의 공통 ViewHolder를 sealed class로 변경 * style: ktlint check 수행 * fix: Response 데이터의 nullable 속성에 맞추어 DTO 수정 및 누락된 DTO 추가 * fix: 데이터가 비어있는 경우(초기)에만 새로운 여행상세 목록을 받도록 수정 * refactor: lazy 로 지연 초기화 및 timelineService가 하나의 인스턴스로 관리되도록 수정 * fix: Travel의 description에 nullable 속성 추가 API 명세서 잘 좀 보자 제발 * refactor: create 메서드를 private으로 변경 Client 클래스에서 Service를 create 하여 제공 및 캐싱하기 때문에, 불필요한 인스턴스를 생성하지 않도록 create를 public으로 두지 않는 것이 좋다. * refactor: LocalDateConverters의 패키지 경로 수정 * refactor: 파일의 이름 수정 * style: ktlint check * refactor: 에러 메시지 상수화 * feat: 특정 여행 상세 조회 api 연결 #82 (#97) * feat: 특정 여행 상세 조회 api service 구현 * feat: 썸네일, 소개 타입 변경 및 기본 인자 설정 - 변경 data class : TravelResponse, TravelUiModel - 이전: String - 이후: String? * refactor: MatesUiModel 네이밍 변경 MatesUiModel이 공통적으로 사용될 예정이므로 MemberUiModel로 변경 - 이전: MatesUiModel - 이후: MemberUiModel * refactor: VisitUiModel 네이밍 변경 - 여행 상세 방문 기록에 사용되는 UiModel 이름을 명시적으로 변경 - 이전: VisitUiModel - 이후: TravelVisitUiModel * feat: 특정 여행 상세 조회에 사용할 domain model 추가 * feat: Api 응답 핸들링 로직 구현 * feat: 특정 여행 상세 조회 data source 구현 * feat: 특정 여행 상세 조회 repository 구현 * feat: 특정 여행 상세 조회 api 연결 * feat: 특정 여행 상세 조회 로직 매개변수 추가 - 타임라인에서 선택된 여행 id를 매개변수로 받도록 변경 * refactor: ApiResponseHandler 이름 오타 수정 * refactor: 에러 메세지 상수화 * feat: 특정 여행 상세 조회 시그니처 변경 - HeaderInterceptor 적용으로 authorization 매개변수 제거 * style: formatting * feat: 방문 기록, 방문 기록 생성, 방문 기록 수정 화면 API 연결 #79 (#99) * feat: VisitApiService 인터페이스 및 관련 data class 추가 * feat: VisitRepository, RemoteVisitDataSource 및 관련 class 추가 * feat: 각 Visit 화면들의 ViewModelFactory 구현 * feat: 각 Visit 화면들의 UiModel 클래스 및 Mapper 추가 * feat: 여행 선택 및 방문 날짜 선택을 위한 BottomSheetDialogFragment 수정 * feat: VisitFragment API 연결 * feat: VisitCreationActivity API 연결 * feat: VisitUpdateActivity API 연결 준비 * refactor: visitApiService를 StaccatoClient object로 이동 * refactor: TravelVisit 클래스의 visitImage 변수 nullable하게 수정 * refactor: VisitApiService의 중복된 @Header 제거 * refactor: 방문 생성 성공 시 created id를 가져오도록 리팩터링 * chore: 변수명 visitImage로 수정 및 ktLint 적용 * refactor: 여행 수정 완료 동작 구현 및 VisitUpdateActivity 함수 분리 * feat: 여행 생성 api 연결 #98 (#104) * feat: 여행 생성 api service 구현 * feat: 여행 생성 data source 구현 * feat: 방문 기록 썸네일 타입 변경 및 기본 인자 설정 - 변경 data class :  TravelVisitDto, TravelVisit, TravelVisitUiModel - 이전: String - 이후: String? * build: converter scalars 의존성 추가 * feat: 여행 생성 ApiService 반환값 및 DataSource 시그니처 변경 - 여행 생성 ApiService 반환값 변경 - DataSource 시그니처 변경 - TravelCreation DomainModel 구현 - TravelCreation Dto 변환 Mapper 구현 * feat: Client에 ScalarsConvert 추가 - Header 값을 읽어오기 위해 ScalarsConvert 추가 * feat: 여행 생성 repository 구현 * feat: 여행 생성 api 연결 * feat: TravelViewModel 생성자 변경 - 이전: travelId를 TravelViewModel 생성자로 넣어줌 - 이후: travelId를 loadTravel()의 매개변수로 넣어줌 * ui: map 화면 변경 * refactor: 컨벤션 통일 및 패키지 정리 #112 (#118) * refactor: bind 네임스페이스 적용 * refactor: BindingAdapters 메서드명 변경 * refactor: 컨벤션 맞게 xml 파일 이름 변경 * refactor: data 패키지 구조 정리 * refactor: RemoteVisitDataSource 컨벤션 따라 네이밍 변경 * refactor: 네트워킹 관련 메서드 이름 변경 - api service, data source, repository * refactor: presentation 패키지 구조 정리 * refactor: message utils 생성 및 적용 Co-authored-by: s6m1n Co-authored-by: Junyoung-WON * build: develop-an의 CI 테스트 자동화 추가 및 데모 APK 추출 #78 (#92) * build: test 자동화 Job 추가 * build: local.properties 생성 시점 변경 * build: 디버그 APK를 빌드하여 업로드하는 workflow 작성 * fix: test Job과 APK build Job에 local.properties 생성 동작 추가 * build: read 전용 권한 제거 * build: Firebase Analytics, Crashlytics 설정 #136 (#143) * build: Firebase Analytics, Crashlytics 의존성 추가 * chore: google-service.json ignore * feat: 특정 여행 상세 수정 api 연결 #109 (#146) * feat: 여행 수정 api service 구현 * feat: 여행 수정 data source 구현 * feat: 여행 수정 repository 구현 * feat: 여행 수정 화면 현재 데이터 로딩 기능 구현 * refactor: 컨벤션 따라 여행 api service의 수정 메서드명 변경 - 이전: updateTravel - 이후: putTravel * feat: 특정 여행 상세 수정 api 연결 * refactor: memberImage 타입 변경 및 기본 인자 설정 * refactor: MembersDto 삭제 * refactor: TravelCreationUiModel.kt 삭제 * refactor: TravelCreation 이름 변경 - 이전: TravelCreation - 이후: NewTravel * refactor: api 명세서 변경에 따른 도메인 모델 수정 및 여행 코드 리팩터링 #151 (#152) * refactor: nickName 변수명 변경 - 이전: nickName - 이후: nickname * ui: 여행 수정 화면 이미지 속성 수정 - glide -> coil 이용 - scaleType : fitXY -> centerCrop * style: import 정렬 * feat: 여행 상세 -> 방문 상세로 이동 시 여행 id 전달 * feat: 방문기록 조회 dto 수정 - 방문기록 조회 도메인 변경으로 인해 방문 기록이 조회되지 않음 - 따라서 api 명세서와 일치하도록 dto 수정하여 오류 해결 * refactor: 여행 생성을 위한 viewModel 메서드 분리 * refactor: 여행 조회를 위한 viewModel 메서드 분리 * feat: 여행 수정 handler 구현 * refactor: 여행 default id 변경 - 이전: -1L - 이후: 0L * refactor: TravelHandler 구현 위치 변경 - 이전: TravelViewModel - 이후: TravelFragment * style: 컨벤션에 맞게 TravelFragment의 메서드 순서 수정 * refactor: TravelFragment의 travelId 초기화 방식 변경 * feat: 여행 생성 및 수정 error toast 구현 * feat: 방문 생성 화면, 방문 수정 화면에서 갤러리 사진 불러오기 구현 #150 (#155) * feat: PhotoAttachFragment에 PhotoAttachHandler 연결 * feat: PhotoAttachFragment 앨범 접근 권한 관련 로직 구현 - API level 33 이상 : READ_MEDIA_IMAGES - API level 33 이하 : READ_EXTERNAL_STORAGE - ActivityResultLauncher를 이용한 권한 요청 - 권한 거부 시, 설정으로 이동하는 스낵바 띄우기 * feat: PhotoAttachFragment 앨범에서 불러온 이미지의 URI 추출하기 * feat: 불러온 이미지의 URI를 호스트 Activity로 전달 - OnUrisSelectedListener 인터페이스 추가 * feat: Uri를 File로 변환하는 메서드 파일 추가 * refactor: pr 리뷰 반영 * refactor: pr 리뷰 반영2 * build: develop-an의 android-ci 수정 #115 (#160) - local.properties: 파일 생성 후 secrets로부터 base_url 설정 - google-services.json: firebase android 구성파일 설정을 위해 secrets로부터 생성 * fix: android-ci 환경변수 생성 위치 조정 (#164) * build: local.properties 와 google-services.json 설정 - local.properties: 파일 생성 후 secrets로부터 base_url 설정 - google-services.json: firebase android 구성파일 설정을 위해 secrets로부터 생성 * fix: 환경 변수 설정 위치 변경 * build: bash 쉘에 맞는 명령어 활용 #115 (#165) * build: local.properties 와 google-services.json 설정 - local.properties: 파일 생성 후 secrets로부터 base_url 설정 - google-services.json: firebase android 구성파일 설정을 위해 secrets로부터 생성 * fix: 환경 변수 설정 위치 변경 * fix: bash 쉘에 적합한 명령어 형식으로 변경 * feat: 특정 여행 상세 삭제 api 연결 #153 (#167) * feat: 특정 여행 삭제 api service 구현 * feat: 특정 여행 삭제 data source 구현 * feat: 특정 여행 삭제 repository 구현 * feat: 특정 여행 삭제 기능 api 연결 * feat: error handling 방식 수정 - 서버에서 들어오는 error body의 status와 message를 활용하는 방식으로 변경 * refactor: DialogHandler를 독립적으로 관리 * refactor: api path 상수 활용 * refactor: BuildConfig에 token 정의 * refactor: DEFAULT_VALUE 상수 제거 * feat: 여행 생성 기능 api 수정 #169 (#178) * feat: onUrisSelected 매개변수 가변인자로 변경 * feat: 여행 생성 화면 갤러리 이미지 로딩 기능 구현 * refactor: 이미지 선택 리스너 초기화 메서드명 오타 수정 * refactor: 스낵바 액션 설정 코드 간소화 * feat: TravelRequest 의 여행 썸네일 필드 제거 * refactor: 여행 썸네일 이미지 변수명 수정 * feat: 이미지 전송 기능 구현 * refactor: image url 변수명 변경 - 변수 끝에 url이 오도록 * feat: 여행 생성 progressBar 구현 * ui: 사진 첨부 아이콘 가시성 설정 * feat: 여행 상세 수정 기능 api 변경 및 여행 리팩터링 #180 (#181) * feat: 여행 수정 화면 갤러리 이미지 로딩 기능 구현 * feat: URL 및 URI 기반 이미지 로딩 BindingAdapter 구현 * feat: 이미지 전송 기능 구현 * feat: 여행 수정 progressBar 구현 * fix: 삭제 불가능한 여행 삭제 시도 관련 에러 토스트 문제 해결 삭제 불가능한 여행을 삭제하려고 시도 -> 방문 조회 -> 뒤로 가기 버튼 클릭 -> 삭제 불가능 에러 토스트가 다시 뜨는 문제가 발생해 이를 해결 * refactor: TravelCreationViewModel의 imageUrl 변수 제거 * ui: 여행 상세 내 방문 기록 이미지 scaleType 속성 설정 * ui: 여행 생성 썸네일 이미지 scaleType 속성 설정 * fix: 여행 소개 미입력 시 여행이 생성 되지 않는 오류 해결 * refactor: 타임라인 화면 리팩터링 #162 (#179) * ui: 타임라인 RecyclerView의 크기 조정 및 여백 수정 * feat: Activity와 Fragment 간 데이터를 공유하는 공유 ViewModel 생성 * feat: 공유 ViewModel을 이용하여 타임라인 업데이트 여부를 공유 * refactor: RecyclerView.Adapter에서 ListAdapter로 변환 * refactor: 처음 타임라인을 불러오는 동작을 ViewModel 초기화 시에 수행 * fix: ListAdapter 수정 - 불필요한 travels 프로퍼티와 getItemCounts 메서드 제거 - currentList를 사용하는 것으로 변경 * refactor: 에러 핸들링 방식 수정 및 ViewModel 수정 - TimelineDefaultRepository로 네이밍 변경 - ApiResponseHandler와 ResponseResult를 이용하여 에러 핸들링 처리 - TimelineViewModel 에러 메시지 LiveData 사용 - 그 외 repository, dataSource 프로퍼티 이름 수정하여 통일 * refactor: MutableLiveData의 값 업데이트를 setValue로 변경 및 메서드 분리 * style: ktlint 적용 * feat: 3차 스프린트에서 수정된 방문 기록 상세 API 연결 #163 (#183) * feat: 방문 상세 생성 API 연결 * feat: 방문 상세 수정, 삭제 API 연결 * feat: 방문 기록 생성/수정 시 양방향 데이터 바인딩 적용 * feat: 방문 기록 생성 화면 사진 다중 선택 구현 * feat: 방문 기록 생성 이미지 업로드 구현 * feat: 방문 기록 생성 및 수정 시 로딩과 토스트 추가 * feat: 닉네임을 활용한 로그인 기능 구현 #124 (#172) * ui: 로그인 화면 구성 - 로그인 화면에서 사용되는 텍스트를 strings에 추가 - 로그인 버튼 스타일에 대한 style 생성 - xml 임시로 작성 * ui: 앱 로고 삽입 및 margin 조정 - 임시 로고 이미지 저장 - 로고 크기 및 마진 조정 * feat: 로그인 API Service 작성 및 Retrofit 객체 생성 * feat: 로그인 DataSource 작성 * feat: 로그인 Repository 생성 * feat: 사용자 정보를 저장하는 SharedPreferences Manager 생성 - 토큰 값 불러오기 및 저장 - 추후 사용자 닉네임, 사용자 프로필 이미지 등의 정보 저장 가능 * feat: Application 생성 및 사용자 정보 Preferences Manager 캐싱 * ui: Splash Screen 화면 구성을 위한 테마 생성 * feat: Preferences 로부터 사용자 토큰 값을 가져와 헤더에 추가하도록 변경 * refactor: Repository 네이밍 통일 * refactor: DataSource 기본 인자 추가 * feat: LoginViewModel 및 Handler 작성 * feat: LoginViewModel 을 생성하는 ViewModel Factory 작성 * feat: LoginActivity 작성 및 양방향 데이터 바인딩 적용 * feat: StaccatoApplication과 LoginActivity 설정 및 LoginActivity를 시작 화면으로 변경 * style: 불필요한 namespace 제거 및 lint 확인 * refactor: LoginViewModel과 Factory를 viewmodel 패키지로 분리 * refactor: TimelineViewModel과 Factory를 viewmodel 패키지로 분리 * style: ktlint 적용 * fix: 불필요한 ConverterFactory 제거 - 더 이상 사용하지 않는 text/plain 변환용 ScalarsConverterFactory 제거 * feat: 닉네임 로그인 요청 및 응답에 대한 DTO 작성 * refactor: 로그인 요청, 응답 시 DTO 활용 * fix: 토큰 값을 불러오고 및 저장하는 동작의 비동기 처리 및 화면 전환 개선 * refactor: 토큰 값을 캐싱하여 저장하는 TokenManager 생성 및 적용 - 매번 runBlocking을 통해 Preference에 저장된 토큰 값을 불러오는 것은 네트워크 성능을 저하시킨다. - 따라서, token 값을 캐싱하여 저장하는 TokenManager를 활용한다. - 첫 네트워크 요청 시에만 토큰을 불러오는 작업을 동기적으로 처리하기 위해 Main Thread가 Blocking 된다. - TokenManager가 Preference로부터 가져온 토큰을 캐싱하여 저장한다. - 이후 요청부터는 캐시된 토큰을 가져오므로 Main Thread가 Blocking 되지 않는다. * style: ktlint 적용 * feat: Night 모드 비활성화 * refactor: 여행 기간 날짜 형식 변환을 BindingAdapter에서 수행 - TimelineTravelUiModel 프로퍼티 수정 - UiModel의 여행기간 날짜를 LocalDate로 갖도록 통일 - 추후 날짜 관련 UI가 변경되었을 때 확장성 고려 - BindingAdapters에 날짜 형식 변환해주는 메서드 작성 * chore: 주석 처리된 Log 코드 삭제 * style: xml View의 ID 네이밍 컨벤션 적용 * ui: 앱 심볼 로고 추가 및 스플래시 스크린에 적용 * feat: 방문 상세 생성 API 연결 * ui: 배경 색을 흰 색으로 지정 * feat: 키보드 활성화 상태에서 화면 터치 시 키보드를 내리는 기능 추가 * style: ktlint 적용 * feat: 방문 상세 수정, 삭제 API 연결 * feat: 방문 기록 생성/수정 시 양방향 데이터 바인딩 적용 * fix: merge 과정에서 발생한 id값 네이밍 충돌 해결 * build: 앱 version code와 version name 수정 * feat: 방문 기록 생성 화면 사진 다중 선택 구현 * feat: 방문 기록 생성 이미지 업로드 구현 * feat: 스플래시 스크린 시간 조정 및 데모 시연용 토큰 활성화 * fix: 동일한 사진이 여러 장 업로드되는 버그 수정 * feat: 기존 로그인 기능으로 롤백 --------- Co-authored-by: somin * fix: 테스트 배포를 위한 버그 수정 #198 (#219) * style: formatting * fix: 무한 로딩 오류 수정 * fix: 여행 생성 오류 수정 * add: 앱 아이콘 변경 * ui: timeline empty view 추가 * feat: timeline empty view 가시성 설정 * ui: 여행 내 방문 기록 empty view 추가 및 가시성 설정 * ui: 방문 기록 내 로그 미지원 기능 view 추가 * feat: 사진 첨부 카메라 미지원 기능 알림 추가 * ui: 필수값 표기 style 정의 * ui: 여행 생성 및 수정 필수값 표기 추가 * ui: 방문 기록 생성 및 수정 필수값 표기 추가 * feat: 생성, 수정, 로그인 시 다중 요청 전송을 막기 위한 화면 터치 제한 * feat: 장소 생성의 사진 첨부 리사이클러뷰 구현 - 사진 추가 & 삭제 구현 - GridLayout으로 변경 - 사진 중복 없이 최대 5장으로 제한 - 새로 추가된 사진이 기존 사진 뒤에 더해지도록 구현 * chore: 방문 생성 화면 rv_photo_attach로 xml id 수정 * ui: app icon 및 splash icon 변경 * refactor: xml ID 네이밍 컨벤션 적용 --------- Co-authored-by: somin Co-authored-by: Junyoung-WON * refactor: 도메인명 변경에 따라 travel을 memory로 수정 #217 (#231) * refactor: 패키지명 travel -> memory로 수정 * refactor: dto의 TravelMapper 를 MemoryMapper 로 네이밍 변경 * refactor: 여행(현 추억) 생성 response dto 네이밍 변경 - TravelCreationResponse -> MemoryCreationResponse * refactor: 여행(현 추억) request dto 네이밍 변경 - TravelRequest -> MemoryRequest * refactor: 여행(현 추억) 조회 response dto 네이밍 변경 - TravelResponse -> MemoryResponse * refactor: 여행(현 추억) 수정 request dto 네이밍 변경 - TravelUpdateRequest -> MemoryUpdateRequest * refactor: 여행(현 추억) 내 방문 dto 네이밍 변경 - TravelVisitDto -> MemoryVisitDto * refactor: 타임라인 여행(현 추억) item의 dto 네이밍 변경 - TimelineTravelDto -> TimelineMemoryDto * refactor: 여행(현 추억) ApiService 네이밍 변경 - TravelApiService -> MemoryApiService * refactor: 여행(현 추억) DataSource 네이밍 변경 - TravelDataSource -> MemoryDataSource - TravelRemoteDataSource -> MemoryRemoteDataSource * refactor: 여행(현 추억) Repository 네이밍 변경 - TravelRepository -> MemoryRepository - TravelDefaultRepository -> MemoryDefaultRepository * style: TimelineMapper import 재정렬 * refactor: NewTravel 도메인명을 NewMemory로 변경 * refactor: Travel 도메인명을 Memory로 변경 * refactor: TravelVisit 도메인명을 MemoryVisit으로 변경 * refactor: presentation의 TravelMapper 명 변경 - TravelMapper -> MemoryMapper * refactor: 여행(현 추억) ui 모델명 변경 - TravelUiModel -> MemoryUiModel - TravelVisitUiModel -> MemoryVisitUiModel * refactor: 여행(현 추억) view model 명 변경 - TravelViewModel -> MemoryViewModel - TravelViewModelFactory -> MemoryViewModelFactory * refactor: MemoryApiService의 Path 변경 - travel을 memory로 변경 - travels을 memories로 변경 * refactor: Memory 관련 dto 변수명 변경 - travel을 memory로 변경 * refactor: Timeline Dto의 Memory 관련 변수명 변경 - travel을 memory로 변경 - travels를 memories로 변경 * refactor: Memory 관련 도메인 모델의 변수명 변경 - travel을 memory로 변경 * refactor: Memory 관련 ui 모델의 변수명 변경 - travel을 memory로 변경 * refactor: data layer의 Memory 관련 함수 및 변수명 변경 - travel을 memory로 변경 * refactor: 방문 생성 request dto의 travelId 변수명 변경 - travelId -> memoryId * refactor: 여행(현 추억) 조회 view model 및 fragment의 네이밍 변경 - travel -> memory * refactor: fragment_travel 의 리소스 네이밍 변경 - travel -> memory - strings.xml의 리소스명 변경 * refactor: TravelCreationActivity 네이밍 변경 - TravelCreationActivity -> MemoryCreationActivity * refactor: 여행(현 추억) 생성의 ViewModel 관련 네이밍 변경 - TravelCreationViewModel -> MemoryCreationViewModel - TravelCreationViewModelFactory -> MemoryCreationViewModelFactory - 관련 함수 및 변수명 변경 - travel -> memory * refactor: 여행(현 추억) 생성, 수정에 관한 xml 리소스 명 변경 - travel -> memory - strings.xml 의 관련 리소스 수정 * refactor: 여행(현 추억) 수정 Activity, Handler 의 네이밍 변경 - travel -> memory * refactor: 여행(현 추억) 수정 ViewModel 의 네이밍 변경 - 관련 함수 및 변수 명 변경 - travel -> memory - Factory 클래스명 변경 * refactor: 여행(현 추억) 생성, 수정에서의 파일 변환 메서드명 변경 - travel -> memory - 자식 파일 명 상수화 * refactor: Timeline 의 UI 모델 및 Travel ID Key 의 리네이밍 - travel -> memory 로 일괄 변경 * refactor: presentation/timeline 내 travel 도메인명 변경 - travel -> memory - TimelineMapper 내 domain model -> ui model 변환 메서드명 변경 * refactor: dto/MemoryMapper 내 domain 변환 메서드명 변경 - dto/MemoryMapper 내 domain model을 dto로 변환하는 메서드명 변경 - travel -> memory * refactor: dummyTravel 을 dummyMemory 로 변경 * refactor: MainActivity 내 travel을 memory로 변경 * refactor: activity_main 내 travel을 memory로 변경 * refactor: TimeLineApiService 내 GET 메서드 path 수정 - travels -> memories * refactor: MemoryFragment 내 travel 을 memory 로 변경 - MemoryFragment, fragment_memory 내 travel 을 memory 로 변경 * refactor: MemoryViewModel 내 error message 변수명 변경 - TRAVEL_ERROR_MESSAGE -> MEMORY_ERROR_MESSAGE * refactor: navigation graph 내 travel을 memory로 변경 * refactor: VisitUpdateActivity 내 extra 키 값 수정 - TRAVEL_ID_KEY -> MEMORY_ID_KEY - TRAVEL_TITLE_KEY -> MEMORY_TITLE_KEY * refactor: VisitFragment 내 travel을 memory로 변경 * refactor: VisitUpdateActivity 내 travel을 memory로 변경 * refactor: VisitUpdateViewModel 내 travel을 memory로 변경 * refactor: VisitTravelUiModel을 VisitMemoryUiModel로 변경 * refactor: 방문 수정 xml의 travel을 memory로 변경 * refactor: 여행(현 추억) 선택 xml 내 travel을 memory로 변경 * refactor: 여행 선택 바텀 시트 내 travel을 memory로 변경 - TravelSelectionFragment -> MemorySelectionFragment 로 수정 - TravelSelectionHandler -> MemorySelectionHandler 로 수정 - TravelSelectionFragment 내 메서드명 수정 - TravelSelectionHandler 내 매개변수명 수정 * refactor: VisitRepository와 구현체의 메서드 내 매개변수명 통일 * refactor: VisitsViewHolder 내 travel을 memory로 변경 * refactor: VisitCreationActivity 내 travel을 memory로 변경 * refactor: VisitCreationViewModel 내 travel을 memory로 변경 * refactor: 방문 생성 xml 내 travel을 memory로 변경 * refactor: BindingAdapters 내 travel을 memory로 변경 * refactor: strings 내 travel을 memory로 변경 - strings 내 '여행'을 '추억'으로 수정 Co-authored-by: Junyoung-WON Co-authored-by: s6m1n * refactor: visit, visit log 도메인명 수정 #218 (#237) * refactor: VisitApiService 내 visit을 moment 로 변경 - 파일명 수정 - path 수정 - 메서드명 수정 - 매개변수명 수정 * refactor: data/visit 패키지명을 moment로 변경 * refactor: data/dto/visit 패키지명을 moment로 변경 * refactor: VisitCreationRequest 네이밍 변경 - 이전: VisitCreationRequest - 이후: MomentCreationRequest * style: StaccatoClient import 재정렬 * refactor: VisitCreationResponse 네이밍 변경 - 이전: VisitCreationResponse - 이후: MomentCreationResponse - 필드명 변경 : visitId -> momentId * refactor: VisitResponse 네이밍 변경 - 이전: VisitResponse - 이후: MomentResponse - VisitResponse 필드 내 visit을 moment로 변경 - VisitResponse 필드 내 visitLogs SerialName을 comments로 변경 * refactor: VisitUpdateRequest 네이밍 변경 - 이전: VisitUpdateRequest - 이후: MomentUpdateRequest - VisitUpdateRequest 필드 내 visit을 moment로 변경 * refactor: VisitLogDto 내 SerialName 변경 - visitLogId를 commentId로 변경 * refactor: MemoryResponse 내 visits SerialName 변경 - visits를 moments로 변경 * refactor: VisitCreationViewModel 내 FORM_DATA_NAME 변경 - 이전: visitImageFiles - 이후: momentImageFiles * refactor: MemoryVisitDto 내 visit를 moment로 변경 - MemoryVisitDto -> MemoryMomentDto로 변경 - visitId -> momentId로 변경 - visitImageUrl -> momentImageUrl로 변경 * refactor: VisitRemoteDataSource 내 visit을 moment로 변경 - VisitRemoteDataSource -> MomentRemoteDataSource로 변경 - 메서드명 변경 - 매개변수명 변경 * refactor: MomentRepository 및 구현체 내 visit을 moment로 변경 - VisitRepository -> MomentRepository로 변경 - VisitDefaultRepository -> MomentDefaultRepository로 변경 - 메서드명 변경 - 매개변수명 변경 * refactor: Visit 도메인 모델명 및 변수명 변경 - Visit -> Moment로 변경 - visitLogs -> comments로 변경 * refactor: Memory 도에인 모델의 visits을 moments로 변경 * refactor: MemoryVisit 도메인 모델 내 visit을 moment로 변경 * refactor: MemoryResponse의 visits 필드명을 moments로 변경 * refactor: dto/mapper/VisitMapper를 MomentMapper로 변경 * refactor: presentation/visit 패키지명을 moment로 변경 * refactor: VisitViewHolderType 네이밍 변경 - VisitViewHolderType -> MomentViewHolderType - enum 상수명 변경 - VISIT_DEFAULT -> MOMENT_DEFAULT - MY_VISIT_LOG -> MY_COMMENTS * refactor: VisitViewHolder 네이밍 변경 - VisitViewHolder -> MomentViewHolder - VisitDefaultViewHolder -> MomentDefaultViewHolder - MyVisitLogViewHolder -> MyCommentViewHolder * refactor: VisitAdapter 내 visit을 moment로 변경 - VisitAdapter -> MomentAdapter 로 변경 - visit -> moment 로 변경 * refactor: MomentAdapter 내 visit log를 comments로 변경 * refactor: VisitDetailUiModel 내 visit을 moment로 변경 - VisitDetailUiModel -> MomentDetailUiModel - VisitDefaultUiModel -> MomentDefaultUiModel - visitImageUrls -> momentImageUrls * refactor: VisitLogUiModel을 CommentsUiModel로 변경 * refactor: VISIT_ID_KEY extra key id 네이밍 변경 - VISIT_ID_KEY -> MOMENT_ID_KEY * refactor: VisitFragment 내 visit을 moment로 변경 * refactor: VisitViewModel 내 visit을 moment로 변경 - VisitViewModel -> MomentViewModel로 변경 - VisitViewModelFactory -> MomentViewModelFactory로 변경 * refactor: VisitMemoryUiModel 네이밍 변경 - VisitMemoryUiModel -> MomentMemoryUiModel로 변경 * refactor: presentation/visitcreation 패키지명 momentcreation으로 변경 * refactor: VisitCreationActivity 내 visit을 moment로 변경 - VisitCreationActivity -> MomentCreationActivity로 변경 * refactor: VisitCreationHandler 네이밍 변경 - VisitCreationHandler -> MomentCreationHandler로 변경 * refactor: VisitCreationViewModel 내 visit을 moment로 변경 - VisitCreationViewModel -> MomentCreationViewModel로 변경 - 메서드 및 변수명 변경 * refactor: 여행 -> 추억, 방문 기록 -> 스타카토로 도메인명 변경 * feat: s3 api 연결 #239 (#241) * feat: ImageResponse, ImageApiService 구현 * feat: ImageRepository 및 구현체 구현 Co-authored-by: s6m1n * fix: 추억 기능 버그 수정 #246 (#252) * fix: 일부 EditText 개행 불가 처리 및 키보드 숨김 처리 #247 (#249) * ui: 닉네임과 추억 생성, 수정 제목 입력 시 줄바꿈 제한 * fix: 키보드 활성화 상태에서 빈 화면 터치로 키보드 숨김 처리 - 메서드 명 변경: setHideKeyboardAction -> setHidingKeyboardAction * style: 클래스 내 override 메서드의 순서 변경 - 팀 코드 컨벤션에 맞게 순서 재정렬 - override 메서드를 상단에 둔다. * style: ktlint 적용 * fix: root뷰 터치 시 클릭 이벤트가 발생하지 않는 오류 수정 - 원인 분석: ConstraintLayout 내부 Toolbar 및 ScrollView, 그리고 그 자식 View들이 클릭 이벤트를 가로채기 때문에, 바인딩 된 최상단 root 뷰인 ConstraintLayout의 클릭 이벤트가 동작하지 않는다. - 해결 방법: 여러 클릭 이벤트를 가로채는 dispatchTouchEvent 메서드를 오버라이드하여, 터치된 부분이 현재 포커스가 되지 않은 View(키보드 바깥 화면) 범위라면, 키보드를 숨기는 동작을 추가하였다. * refactor: 키보드 숨김 동작을 handler 바인딩으로 적용 - LoginHandler 에 화면 터치에 대한 동작을 추가, 화면 터치 시 키보드를 숨김 처리하는 동작을 바인딩으로 설정 - InputMethodManager 인스턴스를 지연초기화하여 저장 * refactor: InputMethodManager 인스턴스를 lazy로 지연 초기화 * fix: 닉네임, 제목 입력 칸의 키보드 액션 버튼 변경 - 키보드의 액션 타입을 Search에서 Done으로 변경 * style: ktlint 적용 * refactor: 타임라인 리팩터링 #232 (#263) * refactor: TimelineViewModelFactory의 생성자 파라미터 추가 - 내부 프로퍼티에 속해있던 TimelineRepository를 생성자 프로퍼티로 변경 * fix: 추억 목록 아이템이 하나일 때의 View 수정 - 아이템 개수가 하나일 때는 타임라인의 선이 나타나지 않도록 변경 * chore: 코루틴 예외 처리 로그에context 출력 * refactor: 메서드 분리 및 순서 재정렬 - 코드 컨벤션: override 메서드는 상단에 위치한다 * refactor: TimelineViewModel 생성 팩토리 메서드 활용 * style: ktlint 적용 * ui: 화면 전환에 사용될 twin animation 효과 생성 * ui: animation 효과 활용하여 화면 전환 애니메이션 적용 * ui: Main 화면의 배경 색을 하얀색(#FFFFFF)으로 지정 * style: ktlint 적용 * feat: 기분 선택 기능 구현 및 스타카토 조회 화면 구조 변경 #191 (#289) * feat: 기분 수정 요청을 보내는 Request Dto 작성 * feat: MomentApiService 에 기분 수정 요청에 대한 API 작성 * feat: 기분 수정 요청에 대한 DataSource 메서드 작성 * feat: 기분 도메인 모델 생성 * feat: 기분 도메인을 기분 수정 Request로 변환하는 메서드 작성 * ui: 기분 아이콘 이미지 리소스 추가 * ui: 기분 아이콘의 테두리를 selector로 생성 - 선택/미선택에 따라 다른 ui를 나타낸다 * ui: 기분 아이콘에 사용할 style 지정 * fix: API 변경에 따라 DTO 및 Mapper 변경 - 순간(현 스타카토)의 visitedAt의 타입을 LocalDate에서 LocalDateTime으로 변경 * fix: 순간 DTO에 기분 필드 추가 - 순간 Dto에 기분(Feeling) 필드를 추가함에 따라 Mapper 및 도메인 수정 * feat: 기분 선택 api에 필요한 repository 메서드 작성 * feat: 기분 uiModel 생성 * feat: 댓글에 대한 UI 모델 생성 * feat: 순간(현 스타카토) 상세 정보에 대한 UI 모델 생성 * feat: 기분 ImageView 의 선택 상태 바인딩 어댑터 작성 * feat: 댓글 화면 구성 및 Adapter, Fragment 작성 * feat: 순간(현 스타카토)의 Ui Model Mapper 변경 MomentDetailUiModel.CommentsUiModel -> CommentUiModel MomentDetailUiModel.MomentDefaultUiModel -> MomentDetailUiModel Feeling을 Ui Model로 변환하는 Mapper 추가 * feat: 기분 선택 View 구성 및 Fragment, ViewModel, Adapter, Handler 작성 * feat: 순간 상세에 대한 View 구성 및 Fragment, ViewModel 작성 * fix: 기분 선택 클릭 리스너와 바인딩 어댑터 설정 및 View 수정 * fix: 누락된 ViewModel 데이터 바인딩 설정 * feat: 순간 조회 화면 재구성 * refactor: 네비게이션 action 및 id 네이밍 수정 visit -> moment로 수정 * refactor: 방문 -> 순간 으로 키워드 변경 * refactor: 불필요한 클래스 및 xml 파일 제거 * style: ktlint 적용 * feat: 추억 API 변경사항 반영 및 리팩터링 #259 (#265) * ui: 추억 생성 화면 사진 로드 시 coil 라이브러리 사용 * ui: 삭제 버튼 아이콘 추가 * ui: 추억 생성 화면 사진 삭제 버튼 추가 * feat: 추억 생성 view model의 imageUri 설정 매개변수 타입 변경 * feat: 추억 생성 화면 사진 삭제 구현 * feat: 추억 수정 화면 사진 첨부 icon 가시성 설정 * ui: 추억 수정 화면 사진 삭제 버튼 추가 * feat: 추억 수정 화면 사진 삭제 버튼 가시성 설정 * feat: 추억 수정 view model의 imageUri 설정 매개변수 타입 변경 * feat: 추억 수정 화면 사진 삭제 구현 * fix: 추억 생성 화면의 사진 첨부란 연속 클릭 시 앱 종료 되는 버그 수정 * fix: 추억 수정 화면의 사진 첨부란 연속 클릭 시 앱 종료 되는 버그 수정 * feat: MemoryRequest dto에 썸네일 사진 url 필드 추가 * feat: 추억 생성 메서드의 시그니처 변경 - MemoryApiService 내 추억 생성 메서드의 시그니처 변경 - 위 변경에 따른 DataSource, Repository, ViewModel의 추억 생성 관련 메서드 시그니처 변경 * feat: 추억 생성 view model 주 생성자로 ImageRepository 주입 * feat: 추억 생성 화면의 썸네일 사진 저장 기능 구현 * feat: 서버에서 저장된 사진을 불러오는 기능 추가 (추억 생성 화면) - 추억 생성 화면에서 서버에 저장된 사진을 로드하는 기능 구현 - UI에 불러온 사진을 표시하는 로직 수정 * feat: 추억 생성 시 썸네일 사진 url 추가 * refactor: MemoryRequest의 추억 썸네일 사진 기본 인자 값 null로 설정 * feat: 추억 수정 메서드의 시그니처 변경 * feat: 추억 수정 view model 주 생성자로 ImageRepository 주입 * feat: 추억 수정 화면의 썸네일 사진 저장 기능 구현 * feat: 서버에서 저장된 사진을 불러오는 기능 추가 (추억 수정 화면) - 추억 수정 화면에서 서버에 저장된 사진을 로드하는 기능 구현 - UI에 불러온 사진을 표시하는 로직 수정 * feat: 추억 수정 시 썸네일 사진 url 추가 * refactor: 불필요한 MemoryUpdateRequest 제거 * ui: empty view 캐릭터 이미지 추가 * ui: 추억 설명글 유무에 따른 가시성 설정 * ui: 함께 한 사람들 가시성 gone 으로 설정 - 4차 스프린트 범위에서 제외됨 * feat: 이미지 선택 옵션 추가 (단일 선택 및 다중 선택 지원) * ui: TextInputLayout, TextInputEditText Style 정의 * ui: 추억 생성 화면 입력란 TextInputLayout으로 변경 - counter 속성 사용을 위해 TextInputLayout으로 변경함 * ui: 추억 수정 화면 입력란 TextInputLayout으로 변경 - counter 속성 사용을 위해 TextInputLayout으로 변경함 * ui: 추억 조회 화면 썸네일 사진 유무에 따른 가시성 설정 * ui: empty view 캐릭터 이미지 크기 변경 * ui: 앱 이름 Staccato_AN -> Staccato 로 수정 * refactor: 추억 생성 및 수정 화면 메서드 순서 정리 * ui: 제목용 TextInputEditTextStyle 정의 및 적용 * ui: 추억 생성 및 수정 화면 썸네일 coilPlaceHolder 변경 - 이전: shape_place_holder_rectangle - 이후: shape_all_gray1_8dp * refactor: 삭제 다이얼로그 show 메서드 호출 방식 변경 - apply를 사용하지 않는 방식으로 변경 * ui: 코멘트 미지원 안내 view 추가 * feat: 스타카토 생성, 수정 화면 사진 및 완료 버튼 개선 #242 (#291) * feat: (스타카토 생성 화면) 사진 드래그로 순서 변경 기능 구현 * refactor: data 패키지에 S3 이미지 API 분리 적용 * refactor: AttachedPhotoUiModel 및 프로그래스바 추가 * feat: recyclerView에서 지워진 사진의 job cancel 처리 * refactor: editText를 TextInputLayout로 수정 * feat: (스타카토 수정 화면) 사진 드래그로 순서 변경 / 로딩 구현 * refactor: 프로퍼티 네임 변경 및 visitedAt LocalDateTime으로 수정 * style: ktlint 적용 * build: 구글 맵 API 사용에 따른 CI 수정 #296 (#297) * build: 구글 맵 api key를 저장하는 파일을 설정하는 명령어 작성 * refactor: defaults 에 설정된 shell 설정에 따라 추가적인 shell 설정 삭제 * feat: Google Map 연결, 스타카토 목록 조회 API 연결 #54 (#295) * build: google map 의존성 추가 * build: 구글맵 관련 properties ignore 추가 * build: 구글맵 api key 설정 * feat: Google Map 연결 * feat: MainActivity Handler 구현 * ui: 추억 및 스타카토 생성 메뉴 추가 * ui: popup menu style 정의 * feat: 추억 생성 및 수정 menu 연결 - handler 연결 - 메서드 분리 * feat: 위치 권한 요청 구현 - ACCESS_FINE_LOCATION 권한 요청 - ACCESS_COARSE_LOCATION 권한 요청 * feat: 현 위치 표시 * style: MainActivity formatting * feat: locationPermissions 타입 변경 - 이전: List - 이후: Array * feat: MomentLocationDto, MomentLocationResponse 추가 * feat: 스타카토 목록 조회 api service 구현 * feat: 스타카토 목록 조회 data source 구현 * feat: MomentLocation 도메인 모델 구현 * feat: MomentLocationDto를 도메인 모델로 변환하는 mapper 구현 * feat: 스타카토 목록 조회 repository 구현 * feat: 스타카토 목록 조회 view model 구현 * feat: 스타카토 목록을 marker로 표시 * refactor: home 패키지명을 maps로 변경 * feat: 마커 클릭 시 스타카토 상세로 이동 기능 구현 * feat: 스타카토 조회 추억 id, 제목 필드 추가 * feat: 마지막 위치 위경도 찾기 * refactor: 안드로이드 1차 QA 반영 #299 (#301) * refactor: 안드로이드 1차 QA 반영 * refactor: 안드로이드 1차 QA 반영2 * refactor: 안드로이드 1차 QA 반영3 * refactor: 삭제 메시지 변경 * fix: 스타카토 조회 화면 스택 관리 및 ui 수정 #304 (#306) * feat: 지도 화면에서 스타카토 조회 화면으로 이동 시 스택 관리 * feat: 타임라인 화면에서 추억이 존재하지 않을 때 추억 생성 버튼 추가 * ui: 스타카토 조회 화면 툴바 위치 고정 * build: Android CD 적용 #300 (#308) * build: CD 워크플로우 yml 파일 작성 * build: keystore 접근을 위한 build.gradle.kts 파일 설정 * build: 기존 apk 추출 ci 파일 수정 - demo 버전의 apk를 추출 및 배포하는 목적에 맞게 파일 명 수정 - apk 빌드 후 테스트를 수행하는 job 추가 - firebase 앱 배포에 아티팩트 업로드하는 job 추가 * fix: ci 파일에도 keystore 생성 job 추가 * fix: 키스토어 환경변수를 base64로 디코딩하는 명령어 수정 * fix: 키스토어 환경변수를 base64로 디코딩하는 명령어 재수정 * fix: 키스토어 환경변수를 base64로 디코딩하는 명령어 재수정 * fix: ci 파일에 키스토어 관련 설정 적용 * fix: 키스토어 관련 명령어 일부 수정 * fix: build.gradle.kts 불필요한 괄호 제거 * fix: keystore.properties 로 부터 프로퍼티를 가져오는 형식 변경 * fix: upload-artifact step에서 빌드 파일의 upload 경로 수정 (#316) upload-artifact 는 defaults 설정의 working-directory 경로가 적용되지 않음 * fix: android cd 재수정 (2차) #317 (#319) * fix: upload-artifact 빌드 파일의 upload 경로 3차 수정 * fix: 배포 시 빌드 파일의 경로 수정 * fix: 빌드 파일의 upload 경로 수정 및 파일이 없는 경우 에러 처리 * fix: 빌드 파일의 upload 경로 4차 수정 * fix: 빌드 파일의 upload 경로 5차 수정 * fix: 빌드 파일의 upload 경로 6차 수정 - 디렉터리 경로 생성 후 upload 실행 * fix: 빌드 파일의 upload 경로 7차 수정 github의 workspace 환경변수(절대경로) 활용 * fix: clean test 제거 및 디버그용 파일 경로 탐색 명령어 추가 * fix: 디버그용 파일 경로 검색 명령어 수정 * fix: 디버그용 파일 경로 검색 명령어 삭제 * fix: 디버그용 파일 검색 명령어 삭제 및 업로드 파일 경로명 수정 * feat: 스타카토 생성 시 현 위치의 주소를 가져오는 기능 구현 #314 (#324) * feat: MainActivity에서 주소를 가져오는 로직 삭제 * feat: 스타카토 생성 시 현 위치의 주소를 가져오는 로직 구현 * refactor: 메서드 순서 정렬 * refactor: 스타카토 조회 화면 ViewPager2 적용 및 UI 아이콘 개선 #318 (#320) * refactor: 아이콘 추가 및 UI 개선 * feat: 스타카토 상세 사진 Viewpager 적용 * feat: 스타카토 상세 사진 Viewpager에 dot indicator 추가 * style: ktLint Format * feat: 메인 지도 화면에서 스타카토 생성하는 플로우 구현 #321 (#327) * feat: 날짜로 추억 목록 불러오는 getMemories API 추가 * feat: 메인에서 스타카토 생성 시 추억 목록 선택 가능 * feat: 스타카토 생성 시 역지오코딩과 추억 선택 연동 * build: debug와 release로 buildTypes 분리 (#329) - appName, appId, baseUrl 분리 - release에 난독화 적용 * build: debug 와 release 배포 분기에 따른 CD 수정 - CD에 대한 트리거 재설정 : main 브랜치에 대한 push 및 pr * fix: 스타카토 생성, 삭제 후 지도 화면의 마커가 갱신되지 않는 오류 해결 #326 (#330) * refactor: 지도 화면 onResume에서 스타카토 목록 load * refactor: 스타카토 목록 로드 메서드명 변경 - 이전: loadMoments - 이후: loadStaccatos * feat: 공유 view model에 스타카토 목록 업데이트 상태 추가 * fix: 스타카토 생성, 삭제 후 지도 화면의 마커가 갱신되지 않는 오류 해결 * feat: 지도 로드 시 현위치로 이동하도록 구현 * build: ci 및 cd 파일 수정 ci - 불필요한 gradle 빌드 및 테스트 제거 cd - 타겟 브랜치 develop 제거 * feat: 댓글 조회, 생성, 삭제 기능 구현 #290 (#331) * feat: 기분 수정 요청을 보내는 Request Dto 작성 * feat: MomentApiService 에 기분 수정 요청에 대한 API 작성 * feat: 기분 수정 요청에 대한 DataSource 메서드 작성 * feat: 기분 도메인 모델 생성 * feat: 기분 도메인을 기분 수정 Request로 변환하는 메서드 작성 * ui: 기분 아이콘 이미지 리소스 추가 * ui: 기분 아이콘의 테두리를 selector로 생성 - 선택/미선택에 따라 다른 ui를 나타낸다 * ui: 기분 아이콘에 사용할 style 지정 * fix: API 변경에 따라 DTO 및 Mapper 변경 - 순간(현 스타카토)의 visitedAt의 타입을 LocalDate에서 LocalDateTime으로 변경 * fix: 순간 DTO에 기분 필드 추가 - 순간 Dto에 기분(Feeling) 필드를 추가함에 따라 Mapper 및 도메인 수정 * feat: 기분 선택 api에 필요한 repository 메서드 작성 * feat: 기분 uiModel 생성 * feat: 댓글에 대한 UI 모델 생성 * feat: 순간(현 스타카토) 상세 정보에 대한 UI 모델 생성 * feat: 기분 ImageView 의 선택 상태 바인딩 어댑터 작성 * feat: 댓글 화면 구성 및 Adapter, Fragment 작성 * feat: 순간(현 스타카토)의 Ui Model Mapper 변경 MomentDetailUiModel.CommentsUiModel -> CommentUiModel MomentDetailUiModel.MomentDefaultUiModel -> MomentDetailUiModel Feeling을 Ui Model로 변환하는 Mapper 추가 * feat: 기분 선택 View 구성 및 Fragment, ViewModel, Adapter, Handler 작성 * feat: 순간 상세에 대한 View 구성 및 Fragment, ViewModel 작성 * fix: 기분 선택 클릭 리스너와 바인딩 어댑터 설정 및 View 수정 * fix: 누락된 ViewModel 데이터 바인딩 설정 * feat: 순간 조회 화면 재구성 * refactor: 네비게이션 action 및 id 네이밍 수정 visit -> moment로 수정 * refactor: 방문 -> 순간 으로 키워드 변경 * refactor: 불필요한 클래스 및 xml 파일 제거 * ui: xml 컨벤션에 맞추어진 타 사용자의 댓글 ui 구성 * feat: 댓글 API의 DTO 작성 * feat: 댓글 API Service 작성 * feat: 댓글 CRUD DataSource 작성 * refactor: CommentApiService 각 메서드의 반환 값을 Response로 변경 * feat: CommentApiService 를 create * feat: CommentDataSource 구현체 생성 * refactor: 댓글 Dto 클래스 네이밍 변경 - VisitLogDto -> CommentDto * refactor: CommentDto 의 ID 프로퍼티 네이밍 변경 - visitLogId -> commentId * refactor: VisitLog 도메인 모델 클래스의 네이밍 변경 - VisitLog -> Comment * refactor: Comment 도메인 모델의 ID 프로퍼티 네이밍 변경 - visitLogId -> commentId * feat: 새로운 댓글 도메인 모델 생성 * feat: CommentRepository 작성 * feat: Domain 모델과 DTO 모델을 변환해주는 Mapper 작성 - CommentDto를 Comment로 변환하는 메서드를 CommentMapper.kt로 이동 * feat: CommentRepository의 기본 구현체 작성 * feat: 댓글 ViewModel, Factory 작성 및 Comment 불러오기 구현 * ui: ViewModel 데이터바인딩 및 빈 댓글 문구에 대한 strings 설정 * feat: CommentsViewModel 활용 및 옵저빙 * feat: 댓글 조회, 생성, 삭제 기능 구현 * chore: ktlint 적용 * feat: 추억 생성 및 수정 이미지 로딩 중 표시 및 저장 버튼 비활성화 #332 (#334) * feat: 추억 생성 이미지 로딩 중 표시 * feat: 추억 수정 이미지 로딩 중 표시 * feat: 추억 생성 및 수정 이미지 로딩 중 저장 버튼 비활성화 * style: formatting * refactor: 댓글 화면 개선 및 리팩터링 #333 (#335) * fix: merge conflicts 해결 * fix: 글자 수 제한 500자로 수정 * style: ktlint 체크 * build: CD 수정 - 구글 플레이스토어 업로드 스텝 추가 * build: defaultConfig의 버전 코드와 이름 수정 versionCode : 2 -> 3 versionName : 1.1 -> 1.0.0 (배포 버전과 동일) * refactor: 패키지명 변경 #342 (#343) - 5차 스프린트 요구사항 만족을 위해 패키지명 변경 - 이전: com.woowacourse.staccato - 이후: com.on.staccato * ui: 타임라인 화면 디자인 수정 #347 (#348) * layout: 타임라인 디자인 수정 및 STATE_HALF_EXPANDED 구현 * chore: 불필요한 파일 삭제 * chore: 수정된 패키지명 반영 * layout: empty 추억 view 높이 조절 * layout: 기분 선택 여부 컬러/흑백 처리 * ui: 추억 화면 디자인 수정 및 추억 생성 플로우 변경 #346 (#355) * ui: 추억 썸네일 이미지용 gradient drawable 구현 * ui: 스타카토 썸네일 이미지용 gradient drawable 구현 * ui: 추억 조회 화면 ui 수정 - 추억 상세 내용 ui 수정 - 스타카토 목록 ui 수정 * ui: 스타카토 추가 버튼 수정 * feat: 홈 화면의 추억 생성 플로우 제거 - 홈 화면에서는 스타카토 생성만 가능하게 변경 * ui: 추억 생성 및 수정 화면 toolbar 제목 추가 * ui: 스타카토 생성 및 수정 화면 toolbar 제목 추가 * ui: 타임라인 화면 추억 추가 및 정렬 버튼 추가 * style: formatting * refactor: 댓글 화면 개선 #333 (#354) * fix: merge conflicts 해결 * fix: 글자 수 제한 500자로 수정 * style: ktlint 체크 * build: CD 수정 - 구글 플레이스토어 업로드 스텝 추가 * ui: 댓글 구성요소의 UI 개선 RecyclerView - 아이템 변화 시 애니메이션 효과 제거 - 스크롤 시 물결 무늬 애니메이션 제거 - 최소 높이 지정 댓글이 없는 경우의 Default View - 높이 및 마진 조정 * refactor: UserInfoSharedPreferences의 파일, 키 이름 변경 - 패키지명 변경에 따라 해당 SF가 사용하는 파일, 키 이름 변경 * fix: xml 속성 수정 - layout_marginBottom 오타 수정 - app:itemAnimator 속성 제거 * feat: 댓글 입력 중 화면 터치 시 키보드 비활성화 구현 - MainActivity 에서 dispatchTouchEvent 를 오버라이드하여, focus 된 EditText의 focus를 해제하고, 키보드를 숨김처리하도록 구현 * ui: RecyclerView와 댓글이 없을 때 View의 높이 조정 * feat: 리사이클러뷰 애니메이션 효과 제거 및 adapter 설정 메서드명 변경 * feat: 댓글 수정하기 메뉴 제거 및 댓글 삭제 시 삭제 다이얼로그를 띄우도록 변경 --------- Co-authored-by: Somin Lee <46596035+s6m1n@users.noreply.github.com> Co-authored-by: hodu <92203597+Junyoung-WON@users.noreply.github.com> Co-authored-by: Junyoung-WON Co-authored-by: s6m1n * style: code convention 적용 * fix: 중복 닉네임 입력 시 유저 정보 불러오도록 수정 #344 (#345) * build: develop 브랜치 배포 트리거 추가 * fix: 중복 닉네임 사용 가능하도록 수정 * style: code convention 적용 --------- Co-authored-by: somin Co-authored-by: BurningFalls Co-authored-by: linirini <2001yerin@naver.com> Co-authored-by: devhoya97 Co-authored-by: YoonJuHo Co-authored-by: Hyeyeon Gong <103019852+hxeyexn@users.noreply.github.com> Co-authored-by: linirini <101927543+linirini@users.noreply.github.com> Co-authored-by: devhoya97 <146502065+devhoya97@users.noreply.github.com> Co-authored-by: Somin Lee <46596035+s6m1n@users.noreply.github.com> Co-authored-by: hxeyexn --- .github/workflows/android-cd.yml | 2 +- .github/workflows/backend-ci-cd-dev.yml | 2 +- .github/workflows/backend-ci-cd-stage.yml | 2 +- android/Staccato_AN/app/build.gradle.kts | 8 +- .../staccato/ExampleInstrumentedTest.kt | 4 +- .../staccato/StaccatoApplication.kt | 4 +- .../staccato/data/ApiResponseHandler.kt | 8 +- .../staccato/data/HeaderInterceptor.kt | 2 +- .../staccato/data/ResponseResult.kt | 4 +- .../staccato/data/StaccatoClient.kt | 18 +-- .../staccato/data/TokenManager.kt | 4 +- .../data/UserInfoPreferencesManager.kt | 6 +- .../data/comment/CommentApiService.kt | 8 +- .../data/comment/CommentDataSource.kt | 10 +- .../data/comment/CommentDefaultRepository.kt | 16 +-- .../data/comment/CommentRemoteDataSource.kt | 14 +- .../staccato/data/dto/ErrorResponse.kt | 2 +- .../staccato/data/dto/Status.kt | 2 +- .../staccato/data/dto/comment/CommentDto.kt | 2 +- .../data/dto/comment/CommentRequest.kt | 2 +- .../data/dto/comment/CommentUpdateRequest.kt | 2 +- .../data/dto/comment/CommentsResponse.kt | 2 +- .../staccato/data/dto/image/ImageResponse.kt | 2 +- .../data/dto/login/NicknameLoginRequest.kt | 2 +- .../data/dto/login/NicknameLoginResponse.kt | 2 +- .../staccato/data/dto/mapper/CommentMapper.kt | 12 +- .../staccato/data/dto/mapper/FeelingMapper.kt | 9 ++ .../staccato/data/dto/mapper/MemberMapper.kt | 11 ++ .../staccato/data/dto/mapper/MemoryMapper.kt | 20 +-- .../staccato/data/dto/mapper/MomentMapper.kt | 12 +- .../data/dto/mapper/TimelineMapper.kt | 10 +- .../staccato/data/dto/member/MemberDto.kt | 2 +- .../data/dto/memory/MemoriesResponse.kt | 2 +- .../data/dto/memory/MemoryCreationResponse.kt | 2 +- .../data/dto/memory/MemoryMomentDto.kt | 2 +- .../staccato/data/dto/memory/MemoryRequest.kt | 2 +- .../data/dto/memory/MemoryResponse.kt | 4 +- .../data/dto/moment/FeelingRequest.kt | 2 +- .../data/dto/moment/MomentCreationRequest.kt | 2 +- .../data/dto/moment/MomentCreationResponse.kt | 2 +- .../data/dto/moment/MomentLocationDto.kt | 2 +- .../data/dto/moment/MomentLocationResponse.kt | 2 +- .../data/dto/moment/MomentResponse.kt | 4 +- .../data/dto/moment/MomentUpdateRequest.kt | 2 +- .../data/dto/timeline/TimelineMemberDto.kt | 2 +- .../data/dto/timeline/TimelineMemoryDto.kt | 2 +- .../data/dto/timeline/TimelineResponse.kt | 2 +- .../staccato/data/image/ImageApiService.kt | 4 +- .../data/image/ImageDefaultRepository.kt | 10 +- .../staccato/data/login/LoginApiService.kt | 6 +- .../on/staccato/data/login/LoginDataSource.kt | 8 ++ .../data/login/LoginDefaultRepository.kt | 6 +- .../data/login/LoginRemoteDataSource.kt | 14 ++ .../staccato/data/memory/MemoryApiService.kt | 10 +- .../staccato/data/memory/MemoryDataSource.kt | 12 +- .../data/memory/MemoryDefaultRepository.kt | 16 +-- .../data/memory/MemoryRemoteDataSource.kt | 16 +-- .../staccato/data/moment/MomentApiService.kt | 16 +-- .../data/moment/MomentDefaultRepository.kt | 18 +-- .../data/moment/MomentRemoteDataSource.kt | 18 +-- .../data/timeline/TimeLineApiService.kt | 6 +- .../data/timeline/TimelineDataSource.kt | 6 +- .../timeline/TimelineDefaultRepository.kt | 10 +- .../data/timeline/TimelineRemoteDataSource.kt | 10 +- .../staccato/domain/model/Comment.kt | 2 +- .../staccato/domain/model/Feeling.kt | 2 +- .../staccato/domain/model/Member.kt | 2 +- .../staccato/domain/model/Memory.kt | 2 +- .../staccato/domain/model/MemoryCandidate.kt | 2 +- .../staccato/domain/model/MemoryMoment.kt | 2 +- .../staccato/domain/model/Moment.kt | 2 +- .../staccato/domain/model/MomentLocation.kt | 2 +- .../staccato/domain/model/NewComment.kt | 2 +- .../staccato/domain/model/NewMemory.kt | 2 +- .../staccato/domain/model/Timeline.kt | 2 +- .../domain/repository/CommentRepository.kt | 8 +- .../domain/repository/ImageRepository.kt | 9 ++ .../domain/repository/LoginRepository.kt | 4 +- .../domain/repository/MemoryRepository.kt | 12 +- .../domain/repository/MomentRepository.kt | 10 +- .../domain/repository/TimelineRepository.kt | 8 ++ .../staccato/presentation/BindingAdapters.kt | 30 +++-- .../presentation/base/BindingActivity.kt | 2 +- .../presentation/base/BindingFragment.kt | 2 +- .../common/AttachedPhotoHandler.kt | 9 ++ .../common/DeleteDialogFragment.kt | 4 +- .../staccato/presentation/common/Event.kt | 2 +- .../presentation/common/MemberUiModel.kt | 2 +- .../common/MutableSingleLiveData.kt | 2 +- .../common/PhotoAttachFragment.kt | 10 +- .../presentation/common/PhotoAttachHandler.kt | 2 +- .../presentation/common/SingleLiveData.kt | 2 +- .../presentation/common/ToolbarHandler.kt | 2 +- .../presentation/login/LoginActivity.kt | 16 +-- .../presentation/login/LoginHandler.kt | 2 +- .../login/viewmodel/LoginViewModel.kt | 18 +-- .../login/viewmodel/LoginViewModelFactory.kt | 6 +- .../presentation/main/MainActivity.kt | 121 +++++++++++------- .../staccato/presentation/main/MainHandler.kt | 5 + .../presentation/main/SharedViewModel.kt | 6 +- .../presentation/mapper/MemoryMapper.kt | 14 +- .../presentation/mapper/TimelineMapper.kt | 8 +- .../presentation/mapper/VisitUiModelMapper.kt | 57 +++++++++ .../presentation/maps/MapsFragment.kt | 18 +-- .../presentation/maps/MapsViewModel.kt | 20 +-- .../presentation/maps/MapsViewModelFactory.kt | 4 +- .../presentation/maps/model/MarkerUiModel.kt | 2 +- .../presentation/memory/MemoryFragment.kt | 40 +++--- .../presentation/memory/MemoryHandler.kt | 2 +- .../memory/adapter/MatesAdapter.kt | 6 +- .../memory/adapter/MatesViewHolder.kt | 6 +- .../memory/adapter/VisitsAdapter.kt | 8 +- .../memory/adapter/VisitsViewHolder.kt | 8 +- .../memory/model/MemoryUiModel.kt | 6 +- .../memory/model/MemoryVisitUiModel.kt | 2 +- .../memory/viewmodel/MemoryViewModel.kt | 24 ++-- .../viewmodel/MemoryViewModelFactory.kt | 4 +- .../memorycreation/DateConverter.kt | 2 +- .../memorycreation/MemoryCreationActivity.kt | 30 ++--- .../memorycreation/MemoryCreationHandler.kt | 2 +- .../viewmodel/MemoryCreationViewModel.kt | 26 ++-- .../MemoryCreationViewModelFactory.kt | 6 +- .../memoryupdate/MemoryUpdateActivity.kt | 30 ++--- .../memoryupdate/MemoryUpdateHandler.kt | 2 +- .../viewmodel/MemoryUpdateViewModel.kt | 30 ++--- .../viewmodel/MemoryUpdateViewModelFactory.kt | 6 +- .../presentation/moment/MomentFragment.kt | 28 ++-- .../moment/MomentToolbarHandler.kt | 2 +- .../moment/comments/CommentHandler.kt | 2 +- .../moment/comments/CommentUiModel.kt | 2 +- .../moment/comments/CommentViewHolder.kt | 35 ++--- .../moment/comments/CommentsAdapter.kt | 4 +- .../moment/comments/MomentCommentsFragment.kt | 45 ++----- .../comments/MomentCommentsViewModel.kt | 20 +-- .../MomentCommentsViewModelFactory.kt | 8 +- .../moment/detail/MomentDetailUiModel.kt | 2 +- .../moment/detail/MomentDetailViewModel.kt | 2 +- .../moment/detail/ViewpagePhotoAdapter.kt | 4 +- .../moment/detail/ViewpagePhotoViewHolder.kt | 4 +- .../moment/feeling/FeelingHandler.kt | 2 +- .../moment/feeling/FeelingSelectionAdapter.kt | 8 +- .../moment/feeling/FeelingUiModel.kt | 8 ++ .../feeling/MomentFeelingSelectionFragment.kt | 12 +- .../MomentFeelingSelectionViewModel.kt | 8 +- .../MomentFeelingSelectionViewModelFactory.kt | 8 +- .../moment/model/MomentDetailUiModel.kt | 2 +- .../moment/viewmodel/MomentViewModel.kt | 18 +-- .../viewmodel/MomentViewModelFactory.kt | 8 +- .../momentcreation/MomentCreationActivity.kt | 30 ++--- .../momentcreation/MomentCreationHandler.kt | 2 +- .../momentcreation/OnUrisSelectedListener.kt | 2 +- .../adapter/PhotoAttachAdapter.kt | 14 +- .../adapter/PhotoAttachViewHolder.kt | 12 +- .../dialog/MemorySelectionFragment.kt | 6 +- .../dialog/MemorySelectionHandler.kt | 7 + .../dialog/VisitedAtSelectionFragment.kt | 4 +- .../dialog/VisitedAtSelectionHandler.kt | 2 +- .../model/AttachedPhotoUiModel.kt | 6 +- .../model/AttachedPhotosUiModel.kt | 2 +- .../viewmodel/MomentCreationViewModel.kt | 28 ++-- .../MomentCreationViewModelFactory.kt | 18 +-- .../presentation/timeline/TimelineFragment.kt | 30 +++-- .../presentation/timeline/TimelineHandler.kt | 4 +- .../timeline/adapter/TimelineAdapter.kt | 51 ++++++++ .../timeline/adapter/TimelineViewHolder.kt | 16 +++ .../timeline/model/TimelineUiModel.kt | 2 +- .../timeline/viewmodel/TimelineViewModel.kt | 24 ++-- .../viewmodel/TimelineViewModelFactory.kt | 6 +- .../staccato/presentation/util/FileUtils.kt | 2 +- .../presentation/util/MessageUtils.kt | 2 +- .../AttachedPhotoItemTouchHelperCallback.kt | 4 +- .../visitcreation/adapter/ItemDragListener.kt | 4 +- .../visitcreation/adapter/ItemMoveListener.kt | 2 +- .../visitupdate/VisitUpdateActivity.kt | 32 ++--- .../visitupdate/VisitUpdateHandler.kt | 2 +- .../model/VisitUpdateDefaultUiModel.kt | 2 +- .../viewmodel/VisitUpdateViewModel.kt | 32 ++--- .../viewmodel/VisitUpdateViewModelFactory.kt | 10 +- .../staccato/data/dto/mapper/FeelingMapper.kt | 9 -- .../staccato/data/dto/mapper/MemberMapper.kt | 11 -- .../staccato/data/login/LoginDataSource.kt | 8 -- .../data/login/LoginRemoteDataSource.kt | 14 -- .../domain/repository/ImageRepository.kt | 9 -- .../domain/repository/TimelineRepository.kt | 8 -- .../common/AttachedPhotoHandler.kt | 9 -- .../staccato/presentation/main/MainHandler.kt | 5 - .../presentation/mapper/VisitUiModelMapper.kt | 52 -------- .../moment/comments/KeyboardActionHandler.kt | 5 - .../moment/feeling/FeelingUiModel.kt | 7 - .../dialog/MemorySelectionHandler.kt | 7 - .../adapter/FirstTimelineViewHolder.kt | 23 ---- .../adapter/LastTimelineViewHolder.kt | 15 --- .../adapter/MiddleTimelineViewHolder.kt | 15 --- .../timeline/adapter/TimelineAdapter.kt | 83 ------------ .../timeline/adapter/TimelineViewHolder.kt | 14 -- .../timeline/adapter/TimelineViewType.kt | 29 ----- .../src/main/res/drawable/calendar_today.xml | 12 ++ .../src/main/res/drawable/feeling_angry.png | Bin 17737 -> 128742 bytes .../main/res/drawable/feeling_angry_gray.png | Bin 0 -> 59887 bytes .../src/main/res/drawable/feeling_excited.png | Bin 15966 -> 111978 bytes .../res/drawable/feeling_excited_gray.png | Bin 0 -> 62564 bytes .../src/main/res/drawable/feeling_happy.png | Bin 18657 -> 141506 bytes .../main/res/drawable/feeling_happy_gray.png | Bin 0 -> 72813 bytes .../app/src/main/res/drawable/feeling_sad.png | Bin 20629 -> 121897 bytes .../main/res/drawable/feeling_sad_gray.png | Bin 0 -> 67566 bytes .../src/main/res/drawable/feeling_scared.png | Bin 15784 -> 116484 bytes .../main/res/drawable/feeling_scared_gray.png | Bin 0 -> 59130 bytes .../src/main/res/drawable/icon_arrow_left.xml | 2 +- .../app/src/main/res/drawable/icon_edit.xml | 14 ++ .../app/src/main/res/drawable/icon_filter.xml | 15 +-- .../app/src/main/res/drawable/icon_folder.xml | 13 ++ .../src/main/res/drawable/memory_gradient.xml | 14 ++ .../main/res/drawable/shape_all_gray1_4dp.xml | 4 +- .../drawable/shape_bottom_sheet_square.xml | 4 + .../main/res/drawable/staccato_gradient.xml | 15 +++ .../src/main/res/layout/activity_login.xml | 4 +- .../app/src/main/res/layout/activity_main.xml | 41 ++---- .../res/layout/activity_memory_creation.xml | 20 +-- .../res/layout/activity_memory_update.xml | 14 +- .../res/layout/activity_visit_creation.xml | 10 +- .../main/res/layout/activity_visit_update.xml | 10 +- .../src/main/res/layout/fragment_memory.xml | 88 ++++++++----- .../src/main/res/layout/fragment_moment.xml | 4 +- .../res/layout/fragment_moment_comments.xml | 24 ++-- .../main/res/layout/fragment_photo_attach.xml | 2 +- .../src/main/res/layout/fragment_timeline.xml | 97 ++++++++++---- .../src/main/res/layout/fragment_visit.xml | 2 +- .../src/main/res/layout/item_add_photo.xml | 4 +- .../main/res/layout/item_attached_photo.xml | 6 +- .../app/src/main/res/layout/item_mates.xml | 2 +- .../layout/item_moment_feeling_selection.xml | 7 +- .../res/layout/item_moment_my_comment.xml | 2 +- .../res/layout/item_moment_others_comment.xml | 2 +- .../src/main/res/layout/item_my_visit_log.xml | 2 +- .../main/res/layout/item_others_visit_log.xml | 2 +- .../app/src/main/res/layout/item_timeline.xml | 35 +++++ .../main/res/layout/item_timeline_first.xml | 59 --------- .../main/res/layout/item_timeline_last.xml | 59 --------- .../main/res/layout/item_timeline_middle.xml | 58 --------- .../app/src/main/res/layout/item_visits.xml | 98 ++++++++------ .../src/main/res/layout/layout_timeline.xml | 40 ++++-- .../src/main/res/layout/toolbar_detail.xml | 2 +- .../app/src/main/res/menu/menu_comment.xml | 3 - .../app/src/main/res/menu/menu_creation.xml | 9 -- .../navigation/bottom_navigation_graph.xml | 6 +- .../app/src/main/res/values/strings.xml | 21 ++- .../app/src/main/res/values/styles.xml | 16 ++- .../app/src/main/res/xml/file_paths.xml | 4 +- .../staccato/ExampleUnitTest.kt | 2 +- .../staccato/auth/service/AuthService.java | 5 +- .../service/dto/request/LoginRequest.java | 2 +- .../service/dto/request/CommentRequest.java | 14 +- .../member/repository/MemberRepository.java | 6 +- .../memory/controller/MemoryController.java | 2 +- .../java/com/staccato/memory/domain/Term.java | 2 +- .../src/main/resources/console-appender.xml | 4 +- backend/src/main/resources/error-appender.xml | 4 +- backend/src/main/resources/info-appender.xml | 4 +- backend/src/main/resources/warn-appender.xml | 4 +- .../auth/service/AuthServiceTest.java | 17 +++ .../controller/MemoryControllerTest.java | 1 - .../staccato/memory/domain/MemoryTest.java | 2 +- 262 files changed, 1451 insertions(+), 1482 deletions(-) rename android/Staccato_AN/app/src/androidTest/java/com/{woowacourse => on}/staccato/ExampleInstrumentedTest.kt (84%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/StaccatoApplication.kt (82%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/ApiResponseHandler.kt (91%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/HeaderInterceptor.kt (95%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/ResponseResult.kt (77%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/StaccatoClient.kt (81%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/TokenManager.kt (87%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/UserInfoPreferencesManager.kt (77%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/comment/CommentApiService.kt (80%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/comment/CommentDataSource.kt (57%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/comment/CommentDefaultRepository.kt (85%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/comment/CommentRemoteDataSource.kt (68%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/ErrorResponse.kt (76%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/Status.kt (75%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/comment/CommentDto.kt (88%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/comment/CommentRequest.kt (81%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/comment/CommentUpdateRequest.kt (71%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/comment/CommentsResponse.kt (79%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/image/ImageResponse.kt (78%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/login/NicknameLoginRequest.kt (79%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/login/NicknameLoginResponse.kt (78%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/mapper/CommentMapper.kt (54%) create mode 100644 android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/FeelingMapper.kt create mode 100644 android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/MemberMapper.kt rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/mapper/MemoryMapper.kt (65%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/mapper/MomentMapper.kt (62%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/mapper/TimelineMapper.kt (66%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/member/MemberDto.kt (85%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/memory/MemoriesResponse.kt (87%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/memory/MemoryCreationResponse.kt (78%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/memory/MemoryMomentDto.kt (87%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/memory/MemoryRequest.kt (89%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/memory/MemoryResponse.kt (84%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/moment/FeelingRequest.kt (78%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/moment/MomentCreationRequest.kt (91%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/moment/MomentCreationResponse.kt (78%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/moment/MomentLocationDto.kt (85%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/moment/MomentLocationResponse.kt (82%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/moment/MomentResponse.kt (84%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/moment/MomentUpdateRequest.kt (83%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/timeline/TimelineMemberDto.kt (82%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/timeline/TimelineMemoryDto.kt (90%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/dto/timeline/TimelineResponse.kt (79%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/image/ImageApiService.kt (78%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/image/ImageDefaultRepository.kt (74%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/login/LoginApiService.kt (59%) create mode 100644 android/Staccato_AN/app/src/main/java/com/on/staccato/data/login/LoginDataSource.kt rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/login/LoginDefaultRepository.kt (82%) create mode 100644 android/Staccato_AN/app/src/main/java/com/on/staccato/data/login/LoginRemoteDataSource.kt rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/memory/MemoryApiService.kt (81%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/memory/MemoryDataSource.kt (56%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/memory/MemoryDefaultRepository.kt (87%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/memory/MemoryRemoteDataSource.kt (67%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/moment/MomentApiService.kt (74%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/moment/MomentDefaultRepository.kt (82%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/moment/MomentRemoteDataSource.kt (68%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/timeline/TimeLineApiService.kt (55%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/timeline/TimelineDataSource.kt (51%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/timeline/TimelineDefaultRepository.kt (77%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/data/timeline/TimelineRemoteDataSource.kt (65%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/domain/model/Comment.kt (77%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/domain/model/Feeling.kt (92%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/domain/model/Member.kt (70%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/domain/model/Memory.kt (86%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/domain/model/MemoryCandidate.kt (77%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/domain/model/MemoryMoment.kt (80%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/domain/model/Moment.kt (87%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/domain/model/MomentLocation.kt (69%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/domain/model/NewComment.kt (61%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/domain/model/NewMemory.kt (82%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/domain/model/Timeline.kt (51%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/domain/repository/CommentRepository.kt (63%) create mode 100644 android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/ImageRepository.kt rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/domain/repository/LoginRepository.kt (51%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/domain/repository/MemoryRepository.kt (57%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/domain/repository/MomentRepository.kt (72%) create mode 100644 android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/TimelineRepository.kt rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/BindingAdapters.kt (96%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/base/BindingActivity.kt (93%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/base/BindingFragment.kt (94%) create mode 100644 android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/AttachedPhotoHandler.kt rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/common/DeleteDialogFragment.kt (92%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/common/Event.kt (91%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/common/MemberUiModel.kt (97%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/common/MutableSingleLiveData.kt (84%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/common/PhotoAttachFragment.kt (94%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/common/PhotoAttachHandler.kt (62%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/common/SingleLiveData.kt (94%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/common/ToolbarHandler.kt (61%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/login/LoginActivity.kt (87%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/login/LoginHandler.kt (60%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/login/viewmodel/LoginViewModel.kt (77%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/login/viewmodel/LoginViewModelFactory.kt (73%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/main/MainActivity.kt (68%) create mode 100644 android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/main/MainHandler.kt rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/main/SharedViewModel.kt (73%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/mapper/MemoryMapper.kt (60%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/mapper/TimelineMapper.kt (62%) create mode 100644 android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/mapper/VisitUiModelMapper.kt rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/maps/MapsFragment.kt (93%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/maps/MapsViewModel.kt (75%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/maps/MapsViewModelFactory.kt (79%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/maps/model/MarkerUiModel.kt (58%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memory/MemoryFragment.kt (74%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memory/MemoryHandler.kt (65%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memory/adapter/MatesAdapter.kt (87%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memory/adapter/MatesViewHolder.kt (55%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memory/adapter/VisitsAdapter.kt (83%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memory/adapter/VisitsViewHolder.kt (55%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memory/model/MemoryUiModel.kt (80%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memory/model/MemoryVisitUiModel.kt (94%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memory/viewmodel/MemoryViewModel.kt (73%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memory/viewmodel/MemoryViewModelFactory.kt (77%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memorycreation/DateConverter.kt (84%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memorycreation/MemoryCreationActivity.kt (82%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memorycreation/MemoryCreationHandler.kt (72%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memorycreation/viewmodel/MemoryCreationViewModel.kt (82%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memorycreation/viewmodel/MemoryCreationViewModelFactory.kt (72%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memoryupdate/MemoryUpdateActivity.kt (83%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memoryupdate/MemoryUpdateHandler.kt (73%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memoryupdate/viewmodel/MemoryUpdateViewModel.kt (83%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/memoryupdate/viewmodel/MemoryUpdateViewModelFactory.kt (74%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/MomentFragment.kt (80%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/MomentToolbarHandler.kt (73%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/comments/CommentHandler.kt (71%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/comments/CommentUiModel.kt (73%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/comments/CommentViewHolder.kt (61%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/comments/CommentsAdapter.kt (91%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/comments/MomentCommentsFragment.kt (62%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/comments/MomentCommentsViewModel.kt (83%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/comments/MomentCommentsViewModelFactory.kt (69%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/detail/MomentDetailUiModel.kt (81%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/detail/MomentDetailViewModel.kt (87%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/detail/ViewpagePhotoAdapter.kt (90%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/detail/ViewpagePhotoViewHolder.kt (65%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/feeling/FeelingHandler.kt (59%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/feeling/FeelingSelectionAdapter.kt (89%) create mode 100644 android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/FeelingUiModel.kt rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/feeling/MomentFeelingSelectionFragment.kt (79%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/feeling/MomentFeelingSelectionViewModel.kt (88%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/feeling/MomentFeelingSelectionViewModelFactory.kt (70%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/model/MomentDetailUiModel.kt (89%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/viewmodel/MomentViewModel.kt (72%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/moment/viewmodel/MomentViewModelFactory.kt (66%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/momentcreation/MomentCreationActivity.kt (90%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/momentcreation/MomentCreationHandler.kt (62%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/momentcreation/OnUrisSelectedListener.kt (62%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/momentcreation/adapter/PhotoAttachAdapter.kt (86%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/momentcreation/adapter/PhotoAttachViewHolder.kt (72%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/momentcreation/dialog/MemorySelectionFragment.kt (89%) create mode 100644 android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/dialog/MemorySelectionHandler.kt rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/momentcreation/dialog/VisitedAtSelectionFragment.kt (92%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/momentcreation/dialog/VisitedAtSelectionHandler.kt (63%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/momentcreation/model/AttachedPhotoUiModel.kt (61%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/momentcreation/model/AttachedPhotosUiModel.kt (96%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/momentcreation/viewmodel/MomentCreationViewModel.kt (87%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/momentcreation/viewmodel/MomentCreationViewModelFactory.kt (57%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/timeline/TimelineFragment.kt (73%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/timeline/TimelineHandler.kt (59%) create mode 100644 android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/adapter/TimelineAdapter.kt create mode 100644 android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/adapter/TimelineViewHolder.kt rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/timeline/model/TimelineUiModel.kt (77%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/timeline/viewmodel/TimelineViewModel.kt (74%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/timeline/viewmodel/TimelineViewModelFactory.kt (73%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/util/FileUtils.kt (97%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/util/MessageUtils.kt (90%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/visitcreation/adapter/AttachedPhotoItemTouchHelperCallback.kt (90%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/visitcreation/adapter/ItemDragListener.kt (55%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/visitcreation/adapter/ItemMoveListener.kt (63%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/visitupdate/VisitUpdateActivity.kt (82%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/visitupdate/VisitUpdateHandler.kt (52%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/visitupdate/model/VisitUpdateDefaultUiModel.kt (70%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/visitupdate/viewmodel/VisitUpdateViewModel.kt (83%) rename android/Staccato_AN/app/src/main/java/com/{woowacourse => on}/staccato/presentation/visitupdate/viewmodel/VisitUpdateViewModelFactory.kt (68%) delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/FeelingMapper.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/MemberMapper.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/login/LoginDataSource.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/login/LoginRemoteDataSource.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/ImageRepository.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/TimelineRepository.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/AttachedPhotoHandler.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/main/MainHandler.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/mapper/VisitUiModelMapper.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/KeyboardActionHandler.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/FeelingUiModel.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/dialog/MemorySelectionHandler.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/FirstTimelineViewHolder.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/LastTimelineViewHolder.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/MiddleTimelineViewHolder.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/TimelineAdapter.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/TimelineViewHolder.kt delete mode 100644 android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/TimelineViewType.kt create mode 100644 android/Staccato_AN/app/src/main/res/drawable/calendar_today.xml create mode 100644 android/Staccato_AN/app/src/main/res/drawable/feeling_angry_gray.png create mode 100644 android/Staccato_AN/app/src/main/res/drawable/feeling_excited_gray.png create mode 100644 android/Staccato_AN/app/src/main/res/drawable/feeling_happy_gray.png create mode 100644 android/Staccato_AN/app/src/main/res/drawable/feeling_sad_gray.png create mode 100644 android/Staccato_AN/app/src/main/res/drawable/feeling_scared_gray.png create mode 100644 android/Staccato_AN/app/src/main/res/drawable/icon_edit.xml create mode 100644 android/Staccato_AN/app/src/main/res/drawable/icon_folder.xml create mode 100644 android/Staccato_AN/app/src/main/res/drawable/memory_gradient.xml create mode 100644 android/Staccato_AN/app/src/main/res/drawable/shape_bottom_sheet_square.xml create mode 100644 android/Staccato_AN/app/src/main/res/drawable/staccato_gradient.xml create mode 100644 android/Staccato_AN/app/src/main/res/layout/item_timeline.xml delete mode 100644 android/Staccato_AN/app/src/main/res/layout/item_timeline_first.xml delete mode 100644 android/Staccato_AN/app/src/main/res/layout/item_timeline_last.xml delete mode 100644 android/Staccato_AN/app/src/main/res/layout/item_timeline_middle.xml delete mode 100644 android/Staccato_AN/app/src/main/res/menu/menu_creation.xml rename android/Staccato_AN/app/src/test/java/com/{woowacourse => on}/staccato/ExampleUnitTest.kt (90%) diff --git a/.github/workflows/android-cd.yml b/.github/workflows/android-cd.yml index 3c87d42e1..ff40666dc 100644 --- a/.github/workflows/android-cd.yml +++ b/.github/workflows/android-cd.yml @@ -87,6 +87,6 @@ jobs: # uses: r0adkll/upload-google-play@v1 # with: # serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }} -# packageName: com.woowacourse.staccato +# packageName: com.on.staccato # releaseFiles: android/Staccato_AN/app/build/outputs/bundle/release/app-release.aab # track: internal diff --git a/.github/workflows/backend-ci-cd-dev.yml b/.github/workflows/backend-ci-cd-dev.yml index a8fa76037..c92e4f4cb 100644 --- a/.github/workflows/backend-ci-cd-dev.yml +++ b/.github/workflows/backend-ci-cd-dev.yml @@ -2,7 +2,7 @@ name: Backend CI/CD dev on: pull_request: - branches: [ "develop-be" ] + branches: [ "develop-be", "develop" ] jobs: ci: diff --git a/.github/workflows/backend-ci-cd-stage.yml b/.github/workflows/backend-ci-cd-stage.yml index 12e134329..70c341f41 100644 --- a/.github/workflows/backend-ci-cd-stage.yml +++ b/.github/workflows/backend-ci-cd-stage.yml @@ -2,7 +2,7 @@ name: Backend CI/CD stage on: push: - branches: [ "develop-be" ] + branches: [ "develop-be", "develop" ] jobs: ci: diff --git a/android/Staccato_AN/app/build.gradle.kts b/android/Staccato_AN/app/build.gradle.kts index 702c54303..b95747432 100644 --- a/android/Staccato_AN/app/build.gradle.kts +++ b/android/Staccato_AN/app/build.gradle.kts @@ -22,15 +22,15 @@ plugins { } android { - namespace = "com.woowacourse.staccato" + namespace = "com.on.staccato" compileSdk = 34 defaultConfig { - applicationId = "com.woowacourse.staccato" + applicationId = "com.on.staccato" minSdk = 26 targetSdk = 34 - versionCode = 2 - versionName = "1.1" + versionCode = 3 + versionName = "1.0.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" diff --git a/android/Staccato_AN/app/src/androidTest/java/com/woowacourse/staccato/ExampleInstrumentedTest.kt b/android/Staccato_AN/app/src/androidTest/java/com/on/staccato/ExampleInstrumentedTest.kt similarity index 84% rename from android/Staccato_AN/app/src/androidTest/java/com/woowacourse/staccato/ExampleInstrumentedTest.kt rename to android/Staccato_AN/app/src/androidTest/java/com/on/staccato/ExampleInstrumentedTest.kt index 998888761..e050a1a54 100644 --- a/android/Staccato_AN/app/src/androidTest/java/com/woowacourse/staccato/ExampleInstrumentedTest.kt +++ b/android/Staccato_AN/app/src/androidTest/java/com/on/staccato/ExampleInstrumentedTest.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato +package com.on.staccato import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry @@ -17,6 +17,6 @@ class ExampleInstrumentedTest { fun useAppContext() { // Context of the app under test. val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("com.woowacourse.staccato", appContext.packageName) + assertEquals("com.on.staccato", appContext.packageName) } } diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/StaccatoApplication.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/StaccatoApplication.kt similarity index 82% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/StaccatoApplication.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/StaccatoApplication.kt index 5c60df9bb..91cabaf3f 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/StaccatoApplication.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/StaccatoApplication.kt @@ -1,8 +1,8 @@ -package com.woowacourse.staccato +package com.on.staccato import android.app.Application import androidx.appcompat.app.AppCompatDelegate -import com.woowacourse.staccato.data.UserInfoPreferencesManager +import com.on.staccato.data.UserInfoPreferencesManager class StaccatoApplication : Application() { override fun onCreate() { diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/ApiResponseHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/ApiResponseHandler.kt similarity index 91% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/ApiResponseHandler.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/ApiResponseHandler.kt index 0910ec6e7..3c268f59c 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/ApiResponseHandler.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/ApiResponseHandler.kt @@ -1,8 +1,8 @@ -package com.woowacourse.staccato.data +package com.on.staccato.data -import com.woowacourse.staccato.data.StaccatoClient.getErrorResponse -import com.woowacourse.staccato.data.dto.ErrorResponse -import com.woowacourse.staccato.data.dto.Status +import com.on.staccato.data.StaccatoClient.getErrorResponse +import com.on.staccato.data.dto.ErrorResponse +import com.on.staccato.data.dto.Status import okhttp3.ResponseBody import retrofit2.HttpException import retrofit2.Response diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/HeaderInterceptor.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/HeaderInterceptor.kt similarity index 95% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/HeaderInterceptor.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/HeaderInterceptor.kt index b5169825b..0d7537f84 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/HeaderInterceptor.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/HeaderInterceptor.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data +package com.on.staccato.data import kotlinx.coroutines.runBlocking import okhttp3.Interceptor diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/ResponseResult.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/ResponseResult.kt similarity index 77% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/ResponseResult.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/ResponseResult.kt index f8e3624b1..e8d30eb87 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/ResponseResult.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/ResponseResult.kt @@ -1,6 +1,6 @@ -package com.woowacourse.staccato.data +package com.on.staccato.data -import com.woowacourse.staccato.data.dto.Status +import com.on.staccato.data.dto.Status sealed interface ResponseResult { class Success(val data: T) : ResponseResult diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/StaccatoClient.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/StaccatoClient.kt similarity index 81% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/StaccatoClient.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/StaccatoClient.kt index 428bd29d9..e6a34290c 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/StaccatoClient.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/StaccatoClient.kt @@ -1,14 +1,14 @@ -package com.woowacourse.staccato.data +package com.on.staccato.data import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory -import com.woowacourse.staccato.BuildConfig -import com.woowacourse.staccato.data.comment.CommentApiService -import com.woowacourse.staccato.data.dto.ErrorResponse -import com.woowacourse.staccato.data.image.ImageApiService -import com.woowacourse.staccato.data.login.LoginApiService -import com.woowacourse.staccato.data.memory.MemoryApiService -import com.woowacourse.staccato.data.moment.MomentApiService -import com.woowacourse.staccato.data.timeline.TimeLineApiService +import com.on.staccato.BuildConfig +import com.on.staccato.data.comment.CommentApiService +import com.on.staccato.data.dto.ErrorResponse +import com.on.staccato.data.image.ImageApiService +import com.on.staccato.data.login.LoginApiService +import com.on.staccato.data.memory.MemoryApiService +import com.on.staccato.data.moment.MomentApiService +import com.on.staccato.data.timeline.TimeLineApiService import kotlinx.serialization.json.Json import okhttp3.MediaType.Companion.toMediaType import okhttp3.OkHttpClient diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/TokenManager.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/TokenManager.kt similarity index 87% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/TokenManager.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/TokenManager.kt index a6ba0ca5c..18e82afeb 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/TokenManager.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/TokenManager.kt @@ -1,6 +1,6 @@ -package com.woowacourse.staccato.data +package com.on.staccato.data -import com.woowacourse.staccato.StaccatoApplication +import com.on.staccato.StaccatoApplication import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/UserInfoPreferencesManager.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/UserInfoPreferencesManager.kt similarity index 77% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/UserInfoPreferencesManager.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/UserInfoPreferencesManager.kt index 25c0c431b..28b061208 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/UserInfoPreferencesManager.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/UserInfoPreferencesManager.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data +package com.on.staccato.data import android.content.Context import android.content.SharedPreferences @@ -22,7 +22,7 @@ class UserInfoPreferencesManager(context: Context) { } companion object { - private const val USER_INFO_PREF_NAME = "com.woowacourse.staccato.user_info_prefs" - private const val TOKEN_KEY_NAME = "com.woowacourse.staccato.token" + private const val USER_INFO_PREF_NAME = "com.on.staccato.user_info_prefs" + private const val TOKEN_KEY_NAME = "com.on.staccato.token" } } diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/comment/CommentApiService.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/comment/CommentApiService.kt similarity index 80% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/comment/CommentApiService.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/comment/CommentApiService.kt index b30638f22..bc04c15cb 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/comment/CommentApiService.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/comment/CommentApiService.kt @@ -1,8 +1,8 @@ -package com.woowacourse.staccato.data.comment +package com.on.staccato.data.comment -import com.woowacourse.staccato.data.dto.comment.CommentRequest -import com.woowacourse.staccato.data.dto.comment.CommentUpdateRequest -import com.woowacourse.staccato.data.dto.comment.CommentsResponse +import com.on.staccato.data.dto.comment.CommentRequest +import com.on.staccato.data.dto.comment.CommentUpdateRequest +import com.on.staccato.data.dto.comment.CommentsResponse import retrofit2.Response import retrofit2.http.Body import retrofit2.http.DELETE diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/comment/CommentDataSource.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/comment/CommentDataSource.kt similarity index 57% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/comment/CommentDataSource.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/comment/CommentDataSource.kt index 8b313e135..2dc715d1c 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/comment/CommentDataSource.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/comment/CommentDataSource.kt @@ -1,9 +1,9 @@ -package com.woowacourse.staccato.data.comment +package com.on.staccato.data.comment -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.comment.CommentRequest -import com.woowacourse.staccato.data.dto.comment.CommentUpdateRequest -import com.woowacourse.staccato.data.dto.comment.CommentsResponse +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.comment.CommentRequest +import com.on.staccato.data.dto.comment.CommentUpdateRequest +import com.on.staccato.data.dto.comment.CommentsResponse interface CommentDataSource { suspend fun getComments(momentId: Long): ResponseResult diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/comment/CommentDefaultRepository.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/comment/CommentDefaultRepository.kt similarity index 85% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/comment/CommentDefaultRepository.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/comment/CommentDefaultRepository.kt index 4c091536c..2ef22f9eb 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/comment/CommentDefaultRepository.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/comment/CommentDefaultRepository.kt @@ -1,12 +1,12 @@ -package com.woowacourse.staccato.data.comment +package com.on.staccato.data.comment -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.comment.CommentUpdateRequest -import com.woowacourse.staccato.data.dto.mapper.toDomain -import com.woowacourse.staccato.data.dto.mapper.toDto -import com.woowacourse.staccato.domain.model.Comment -import com.woowacourse.staccato.domain.model.NewComment -import com.woowacourse.staccato.domain.repository.CommentRepository +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.comment.CommentUpdateRequest +import com.on.staccato.data.dto.mapper.toDomain +import com.on.staccato.data.dto.mapper.toDto +import com.on.staccato.domain.model.Comment +import com.on.staccato.domain.model.NewComment +import com.on.staccato.domain.repository.CommentRepository class CommentDefaultRepository( private val commentDataSource: CommentDataSource = CommentRemoteDataSource(), diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/comment/CommentRemoteDataSource.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/comment/CommentRemoteDataSource.kt similarity index 68% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/comment/CommentRemoteDataSource.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/comment/CommentRemoteDataSource.kt index 161f6f77f..5deb481b3 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/comment/CommentRemoteDataSource.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/comment/CommentRemoteDataSource.kt @@ -1,11 +1,11 @@ -package com.woowacourse.staccato.data.comment +package com.on.staccato.data.comment -import com.woowacourse.staccato.data.ApiResponseHandler.handleApiResponse -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.StaccatoClient -import com.woowacourse.staccato.data.dto.comment.CommentRequest -import com.woowacourse.staccato.data.dto.comment.CommentUpdateRequest -import com.woowacourse.staccato.data.dto.comment.CommentsResponse +import com.on.staccato.data.ApiResponseHandler.handleApiResponse +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.StaccatoClient +import com.on.staccato.data.dto.comment.CommentRequest +import com.on.staccato.data.dto.comment.CommentUpdateRequest +import com.on.staccato.data.dto.comment.CommentsResponse class CommentRemoteDataSource( private val commentApiService: CommentApiService = StaccatoClient.commentApiService, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/ErrorResponse.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/ErrorResponse.kt similarity index 76% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/ErrorResponse.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/ErrorResponse.kt index ca79ccf5f..6e76c586d 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/ErrorResponse.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/ErrorResponse.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto +package com.on.staccato.data.dto import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/Status.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/Status.kt similarity index 75% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/Status.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/Status.kt index 96b635d05..0c3551785 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/Status.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/Status.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto +package com.on.staccato.data.dto sealed class Status { data class Code(val code: Int) : Status() diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/comment/CommentDto.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/comment/CommentDto.kt similarity index 88% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/comment/CommentDto.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/comment/CommentDto.kt index fc5b5d25a..96645af91 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/comment/CommentDto.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/comment/CommentDto.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.comment +package com.on.staccato.data.dto.comment import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/comment/CommentRequest.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/comment/CommentRequest.kt similarity index 81% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/comment/CommentRequest.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/comment/CommentRequest.kt index aaf064b5f..239fd3f49 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/comment/CommentRequest.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/comment/CommentRequest.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.comment +package com.on.staccato.data.dto.comment import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/comment/CommentUpdateRequest.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/comment/CommentUpdateRequest.kt similarity index 71% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/comment/CommentUpdateRequest.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/comment/CommentUpdateRequest.kt index 34b225bd4..e89e54f19 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/comment/CommentUpdateRequest.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/comment/CommentUpdateRequest.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.comment +package com.on.staccato.data.dto.comment import kotlinx.serialization.SerialName diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/comment/CommentsResponse.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/comment/CommentsResponse.kt similarity index 79% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/comment/CommentsResponse.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/comment/CommentsResponse.kt index 2b800ffbb..f6503b5f5 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/comment/CommentsResponse.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/comment/CommentsResponse.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.comment +package com.on.staccato.data.dto.comment import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/image/ImageResponse.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/image/ImageResponse.kt similarity index 78% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/image/ImageResponse.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/image/ImageResponse.kt index e40014283..6716049eb 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/image/ImageResponse.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/image/ImageResponse.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.image +package com.on.staccato.data.dto.image import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/login/NicknameLoginRequest.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/login/NicknameLoginRequest.kt similarity index 79% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/login/NicknameLoginRequest.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/login/NicknameLoginRequest.kt index 450c07b4d..c92e9bec0 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/login/NicknameLoginRequest.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/login/NicknameLoginRequest.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.login +package com.on.staccato.data.dto.login import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/login/NicknameLoginResponse.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/login/NicknameLoginResponse.kt similarity index 78% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/login/NicknameLoginResponse.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/login/NicknameLoginResponse.kt index 551274b5b..e280bca08 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/login/NicknameLoginResponse.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/login/NicknameLoginResponse.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.login +package com.on.staccato.data.dto.login import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/CommentMapper.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/CommentMapper.kt similarity index 54% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/CommentMapper.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/CommentMapper.kt index 8520dd82a..a27b33fee 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/CommentMapper.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/CommentMapper.kt @@ -1,10 +1,10 @@ -package com.woowacourse.staccato.data.dto.mapper +package com.on.staccato.data.dto.mapper -import com.woowacourse.staccato.data.dto.comment.CommentDto -import com.woowacourse.staccato.data.dto.comment.CommentRequest -import com.woowacourse.staccato.data.dto.comment.CommentsResponse -import com.woowacourse.staccato.domain.model.Comment -import com.woowacourse.staccato.domain.model.NewComment +import com.on.staccato.data.dto.comment.CommentDto +import com.on.staccato.data.dto.comment.CommentRequest +import com.on.staccato.data.dto.comment.CommentsResponse +import com.on.staccato.domain.model.Comment +import com.on.staccato.domain.model.NewComment fun CommentsResponse.toDomain(): List = comments.map { it.toDomain() } diff --git a/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/FeelingMapper.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/FeelingMapper.kt new file mode 100644 index 000000000..b7f2c87b2 --- /dev/null +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/FeelingMapper.kt @@ -0,0 +1,9 @@ +package com.on.staccato.data.dto.mapper + +import com.on.staccato.data.dto.moment.FeelingRequest +import com.on.staccato.domain.model.Feeling + +fun Feeling.toFeelingRequest(): FeelingRequest = + FeelingRequest( + feeling = value, + ) diff --git a/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/MemberMapper.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/MemberMapper.kt new file mode 100644 index 000000000..d1298f8b1 --- /dev/null +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/MemberMapper.kt @@ -0,0 +1,11 @@ +package com.on.staccato.data.dto.mapper + +import com.on.staccato.data.dto.member.MemberDto +import com.on.staccato.domain.model.Member + +fun MemberDto.toDomain() = + Member( + memberId = memberId, + nickname = nickname, + memberImage = memberImage, + ) diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/MemoryMapper.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/MemoryMapper.kt similarity index 65% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/MemoryMapper.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/MemoryMapper.kt index fb0293f72..0fed56a7f 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/MemoryMapper.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/MemoryMapper.kt @@ -1,14 +1,14 @@ -package com.woowacourse.staccato.data.dto.mapper +package com.on.staccato.data.dto.mapper -import com.woowacourse.staccato.data.dto.memory.MemoriesResponse -import com.woowacourse.staccato.data.dto.memory.MemoryMomentDto -import com.woowacourse.staccato.data.dto.memory.MemoryRequest -import com.woowacourse.staccato.data.dto.memory.MemoryResponse -import com.woowacourse.staccato.domain.model.Memory -import com.woowacourse.staccato.domain.model.MemoryCandidate -import com.woowacourse.staccato.domain.model.MemoryCandidates -import com.woowacourse.staccato.domain.model.MemoryMoment -import com.woowacourse.staccato.domain.model.NewMemory +import com.on.staccato.data.dto.memory.MemoriesResponse +import com.on.staccato.data.dto.memory.MemoryMomentDto +import com.on.staccato.data.dto.memory.MemoryRequest +import com.on.staccato.data.dto.memory.MemoryResponse +import com.on.staccato.domain.model.Memory +import com.on.staccato.domain.model.MemoryCandidate +import com.on.staccato.domain.model.MemoryCandidates +import com.on.staccato.domain.model.MemoryMoment +import com.on.staccato.domain.model.NewMemory import java.time.LocalDate import java.time.LocalDateTime diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/MomentMapper.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/MomentMapper.kt similarity index 62% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/MomentMapper.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/MomentMapper.kt index 4626157a1..fa8d96207 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/MomentMapper.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/MomentMapper.kt @@ -1,10 +1,10 @@ -package com.woowacourse.staccato.data.dto.mapper +package com.on.staccato.data.dto.mapper -import com.woowacourse.staccato.data.dto.moment.MomentLocationDto -import com.woowacourse.staccato.data.dto.moment.MomentResponse -import com.woowacourse.staccato.domain.model.Feeling -import com.woowacourse.staccato.domain.model.Moment -import com.woowacourse.staccato.domain.model.MomentLocation +import com.on.staccato.data.dto.moment.MomentLocationDto +import com.on.staccato.data.dto.moment.MomentResponse +import com.on.staccato.domain.model.Feeling +import com.on.staccato.domain.model.Moment +import com.on.staccato.domain.model.MomentLocation import java.time.LocalDateTime fun MomentResponse.toDomain() = diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/TimelineMapper.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/TimelineMapper.kt similarity index 66% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/TimelineMapper.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/TimelineMapper.kt index dc872145b..4f8e2d907 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/TimelineMapper.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/mapper/TimelineMapper.kt @@ -1,9 +1,9 @@ -package com.woowacourse.staccato.data.dto.mapper +package com.on.staccato.data.dto.mapper -import com.woowacourse.staccato.data.dto.timeline.TimelineMemoryDto -import com.woowacourse.staccato.data.dto.timeline.TimelineResponse -import com.woowacourse.staccato.domain.model.Memory -import com.woowacourse.staccato.domain.model.Timeline +import com.on.staccato.data.dto.timeline.TimelineMemoryDto +import com.on.staccato.data.dto.timeline.TimelineResponse +import com.on.staccato.domain.model.Memory +import com.on.staccato.domain.model.Timeline import java.time.LocalDate fun TimelineResponse.toDomain(): Timeline { diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/member/MemberDto.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/member/MemberDto.kt similarity index 85% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/member/MemberDto.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/member/MemberDto.kt index 7e372f7ba..2c4e3514f 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/member/MemberDto.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/member/MemberDto.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.member +package com.on.staccato.data.dto.member import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/memory/MemoriesResponse.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/memory/MemoriesResponse.kt similarity index 87% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/memory/MemoriesResponse.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/memory/MemoriesResponse.kt index cef8a85c4..5378ad231 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/memory/MemoriesResponse.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/memory/MemoriesResponse.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.memory +package com.on.staccato.data.dto.memory import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/memory/MemoryCreationResponse.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/memory/MemoryCreationResponse.kt similarity index 78% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/memory/MemoryCreationResponse.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/memory/MemoryCreationResponse.kt index 3753654a5..980d71054 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/memory/MemoryCreationResponse.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/memory/MemoryCreationResponse.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.memory +package com.on.staccato.data.dto.memory import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/memory/MemoryMomentDto.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/memory/MemoryMomentDto.kt similarity index 87% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/memory/MemoryMomentDto.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/memory/MemoryMomentDto.kt index ce8cc4e25..f29d71800 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/memory/MemoryMomentDto.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/memory/MemoryMomentDto.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.memory +package com.on.staccato.data.dto.memory import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/memory/MemoryRequest.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/memory/MemoryRequest.kt similarity index 89% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/memory/MemoryRequest.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/memory/MemoryRequest.kt index 7cd627686..32ab681bb 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/memory/MemoryRequest.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/memory/MemoryRequest.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.memory +package com.on.staccato.data.dto.memory import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/memory/MemoryResponse.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/memory/MemoryResponse.kt similarity index 84% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/memory/MemoryResponse.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/memory/MemoryResponse.kt index dba9f11ad..6f70a8a79 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/memory/MemoryResponse.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/memory/MemoryResponse.kt @@ -1,6 +1,6 @@ -package com.woowacourse.staccato.data.dto.memory +package com.on.staccato.data.dto.memory -import com.woowacourse.staccato.data.dto.member.MemberDto +import com.on.staccato.data.dto.member.MemberDto import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/FeelingRequest.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/FeelingRequest.kt similarity index 78% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/FeelingRequest.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/FeelingRequest.kt index ffecd61fe..dc1f9d605 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/FeelingRequest.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/FeelingRequest.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.moment +package com.on.staccato.data.dto.moment import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentCreationRequest.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentCreationRequest.kt similarity index 91% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentCreationRequest.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentCreationRequest.kt index 8f3f6b316..5bd04f730 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentCreationRequest.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentCreationRequest.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.moment +package com.on.staccato.data.dto.moment import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentCreationResponse.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentCreationResponse.kt similarity index 78% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentCreationResponse.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentCreationResponse.kt index 0c57084b3..f912fef3e 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentCreationResponse.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentCreationResponse.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.moment +package com.on.staccato.data.dto.moment import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentLocationDto.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentLocationDto.kt similarity index 85% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentLocationDto.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentLocationDto.kt index b4b1081b6..d88afbcdc 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentLocationDto.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentLocationDto.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.moment +package com.on.staccato.data.dto.moment import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentLocationResponse.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentLocationResponse.kt similarity index 82% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentLocationResponse.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentLocationResponse.kt index 4410dec49..ea96475d0 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentLocationResponse.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentLocationResponse.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.moment +package com.on.staccato.data.dto.moment import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentResponse.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentResponse.kt similarity index 84% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentResponse.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentResponse.kt index ecafde2cb..b639c195d 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentResponse.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentResponse.kt @@ -1,6 +1,6 @@ -package com.woowacourse.staccato.data.dto.moment +package com.on.staccato.data.dto.moment -import com.woowacourse.staccato.data.dto.comment.CommentDto +import com.on.staccato.data.dto.comment.CommentDto import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentUpdateRequest.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentUpdateRequest.kt similarity index 83% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentUpdateRequest.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentUpdateRequest.kt index 7a56e398f..a106d279a 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/moment/MomentUpdateRequest.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/moment/MomentUpdateRequest.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.moment +package com.on.staccato.data.dto.moment import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/timeline/TimelineMemberDto.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/timeline/TimelineMemberDto.kt similarity index 82% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/timeline/TimelineMemberDto.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/timeline/TimelineMemberDto.kt index 0c1f84fbe..d5fcd6901 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/timeline/TimelineMemberDto.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/timeline/TimelineMemberDto.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.timeline +package com.on.staccato.data.dto.timeline import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/timeline/TimelineMemoryDto.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/timeline/TimelineMemoryDto.kt similarity index 90% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/timeline/TimelineMemoryDto.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/timeline/TimelineMemoryDto.kt index 3585a614c..0c64759a2 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/timeline/TimelineMemoryDto.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/timeline/TimelineMemoryDto.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.timeline +package com.on.staccato.data.dto.timeline import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/timeline/TimelineResponse.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/timeline/TimelineResponse.kt similarity index 79% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/timeline/TimelineResponse.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/timeline/TimelineResponse.kt index 372fe13d4..b7eaf5af0 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/timeline/TimelineResponse.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/dto/timeline/TimelineResponse.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.data.dto.timeline +package com.on.staccato.data.dto.timeline import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/image/ImageApiService.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/image/ImageApiService.kt similarity index 78% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/image/ImageApiService.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/image/ImageApiService.kt index 6eb1c3584..9b7b83d10 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/image/ImageApiService.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/image/ImageApiService.kt @@ -1,6 +1,6 @@ -package com.woowacourse.staccato.data.image +package com.on.staccato.data.image -import com.woowacourse.staccato.data.dto.image.ImageResponse +import com.on.staccato.data.dto.image.ImageResponse import okhttp3.MultipartBody import retrofit2.Response import retrofit2.http.Multipart diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/image/ImageDefaultRepository.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/image/ImageDefaultRepository.kt similarity index 74% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/image/ImageDefaultRepository.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/image/ImageDefaultRepository.kt index 2a4e8c9a7..a4d4a265c 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/image/ImageDefaultRepository.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/image/ImageDefaultRepository.kt @@ -1,9 +1,9 @@ -package com.woowacourse.staccato.data.image +package com.on.staccato.data.image -import com.woowacourse.staccato.data.ApiResponseHandler.handleApiResponse -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.image.ImageResponse -import com.woowacourse.staccato.domain.repository.ImageRepository +import com.on.staccato.data.ApiResponseHandler.handleApiResponse +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.image.ImageResponse +import com.on.staccato.domain.repository.ImageRepository import okhttp3.MultipartBody class ImageDefaultRepository( diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/login/LoginApiService.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/login/LoginApiService.kt similarity index 59% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/login/LoginApiService.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/login/LoginApiService.kt index e5e7f4fd2..db333f305 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/login/LoginApiService.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/login/LoginApiService.kt @@ -1,7 +1,7 @@ -package com.woowacourse.staccato.data.login +package com.on.staccato.data.login -import com.woowacourse.staccato.data.dto.login.NicknameLoginRequest -import com.woowacourse.staccato.data.dto.login.NicknameLoginResponse +import com.on.staccato.data.dto.login.NicknameLoginRequest +import com.on.staccato.data.dto.login.NicknameLoginResponse import retrofit2.Response import retrofit2.http.Body import retrofit2.http.POST diff --git a/android/Staccato_AN/app/src/main/java/com/on/staccato/data/login/LoginDataSource.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/login/LoginDataSource.kt new file mode 100644 index 000000000..484a1781e --- /dev/null +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/login/LoginDataSource.kt @@ -0,0 +1,8 @@ +package com.on.staccato.data.login + +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.login.NicknameLoginResponse + +interface LoginDataSource { + suspend fun requestLoginWithNickname(nickname: String): ResponseResult +} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/login/LoginDefaultRepository.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/login/LoginDefaultRepository.kt similarity index 82% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/login/LoginDefaultRepository.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/login/LoginDefaultRepository.kt index 4497978f1..c73e47e87 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/login/LoginDefaultRepository.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/login/LoginDefaultRepository.kt @@ -1,7 +1,7 @@ -package com.woowacourse.staccato.data.login +package com.on.staccato.data.login -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.domain.repository.LoginRepository +import com.on.staccato.data.ResponseResult +import com.on.staccato.domain.repository.LoginRepository class LoginDefaultRepository( private val loginDataSource: LoginDataSource = LoginRemoteDataSource(), diff --git a/android/Staccato_AN/app/src/main/java/com/on/staccato/data/login/LoginRemoteDataSource.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/login/LoginRemoteDataSource.kt new file mode 100644 index 000000000..00c650d61 --- /dev/null +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/login/LoginRemoteDataSource.kt @@ -0,0 +1,14 @@ +package com.on.staccato.data.login + +import com.on.staccato.data.ApiResponseHandler.handleApiResponse +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.StaccatoClient +import com.on.staccato.data.dto.login.NicknameLoginRequest +import com.on.staccato.data.dto.login.NicknameLoginResponse + +class LoginRemoteDataSource( + private val loginApiService: LoginApiService = StaccatoClient.loginApiService, +) : LoginDataSource { + override suspend fun requestLoginWithNickname(nickname: String): ResponseResult = + handleApiResponse { loginApiService.postNicknameLogin(NicknameLoginRequest(nickname)) } +} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/memory/MemoryApiService.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/memory/MemoryApiService.kt similarity index 81% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/memory/MemoryApiService.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/memory/MemoryApiService.kt index 17c001acd..62eafa632 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/memory/MemoryApiService.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/memory/MemoryApiService.kt @@ -1,9 +1,9 @@ -package com.woowacourse.staccato.data.memory +package com.on.staccato.data.memory -import com.woowacourse.staccato.data.dto.memory.MemoriesResponse -import com.woowacourse.staccato.data.dto.memory.MemoryCreationResponse -import com.woowacourse.staccato.data.dto.memory.MemoryRequest -import com.woowacourse.staccato.data.dto.memory.MemoryResponse +import com.on.staccato.data.dto.memory.MemoriesResponse +import com.on.staccato.data.dto.memory.MemoryCreationResponse +import com.on.staccato.data.dto.memory.MemoryRequest +import com.on.staccato.data.dto.memory.MemoryResponse import retrofit2.Response import retrofit2.http.Body import retrofit2.http.DELETE diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/memory/MemoryDataSource.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/memory/MemoryDataSource.kt similarity index 56% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/memory/MemoryDataSource.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/memory/MemoryDataSource.kt index 880307960..9898deeff 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/memory/MemoryDataSource.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/memory/MemoryDataSource.kt @@ -1,10 +1,10 @@ -package com.woowacourse.staccato.data.memory +package com.on.staccato.data.memory -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.memory.MemoriesResponse -import com.woowacourse.staccato.data.dto.memory.MemoryCreationResponse -import com.woowacourse.staccato.data.dto.memory.MemoryResponse -import com.woowacourse.staccato.domain.model.NewMemory +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.memory.MemoriesResponse +import com.on.staccato.data.dto.memory.MemoryCreationResponse +import com.on.staccato.data.dto.memory.MemoryResponse +import com.on.staccato.domain.model.NewMemory interface MemoryDataSource { suspend fun getMemory(memoryId: Long): ResponseResult diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/memory/MemoryDefaultRepository.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/memory/MemoryDefaultRepository.kt similarity index 87% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/memory/MemoryDefaultRepository.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/memory/MemoryDefaultRepository.kt index 2169fc6f3..582c08cb6 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/memory/MemoryDefaultRepository.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/memory/MemoryDefaultRepository.kt @@ -1,12 +1,12 @@ -package com.woowacourse.staccato.data.memory +package com.on.staccato.data.memory -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.mapper.toDomain -import com.woowacourse.staccato.data.dto.memory.MemoryCreationResponse -import com.woowacourse.staccato.domain.model.Memory -import com.woowacourse.staccato.domain.model.MemoryCandidates -import com.woowacourse.staccato.domain.model.NewMemory -import com.woowacourse.staccato.domain.repository.MemoryRepository +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.mapper.toDomain +import com.on.staccato.data.dto.memory.MemoryCreationResponse +import com.on.staccato.domain.model.Memory +import com.on.staccato.domain.model.MemoryCandidates +import com.on.staccato.domain.model.NewMemory +import com.on.staccato.domain.repository.MemoryRepository class MemoryDefaultRepository( private val memoryDataSource: MemoryDataSource, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/memory/MemoryRemoteDataSource.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/memory/MemoryRemoteDataSource.kt similarity index 67% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/memory/MemoryRemoteDataSource.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/memory/MemoryRemoteDataSource.kt index ffc394e6e..8ff154d5b 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/memory/MemoryRemoteDataSource.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/memory/MemoryRemoteDataSource.kt @@ -1,12 +1,12 @@ -package com.woowacourse.staccato.data.memory +package com.on.staccato.data.memory -import com.woowacourse.staccato.data.ApiResponseHandler.handleApiResponse -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.mapper.toDto -import com.woowacourse.staccato.data.dto.memory.MemoriesResponse -import com.woowacourse.staccato.data.dto.memory.MemoryCreationResponse -import com.woowacourse.staccato.data.dto.memory.MemoryResponse -import com.woowacourse.staccato.domain.model.NewMemory +import com.on.staccato.data.ApiResponseHandler.handleApiResponse +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.mapper.toDto +import com.on.staccato.data.dto.memory.MemoriesResponse +import com.on.staccato.data.dto.memory.MemoryCreationResponse +import com.on.staccato.data.dto.memory.MemoryResponse +import com.on.staccato.domain.model.NewMemory class MemoryRemoteDataSource( private val memoryApiService: MemoryApiService, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/moment/MomentApiService.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/moment/MomentApiService.kt similarity index 74% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/moment/MomentApiService.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/moment/MomentApiService.kt index ae9a98ddb..ab4b1c55a 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/moment/MomentApiService.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/moment/MomentApiService.kt @@ -1,11 +1,11 @@ -package com.woowacourse.staccato.data.moment - -import com.woowacourse.staccato.data.dto.moment.FeelingRequest -import com.woowacourse.staccato.data.dto.moment.MomentCreationRequest -import com.woowacourse.staccato.data.dto.moment.MomentCreationResponse -import com.woowacourse.staccato.data.dto.moment.MomentLocationResponse -import com.woowacourse.staccato.data.dto.moment.MomentResponse -import com.woowacourse.staccato.data.dto.moment.MomentUpdateRequest +package com.on.staccato.data.moment + +import com.on.staccato.data.dto.moment.FeelingRequest +import com.on.staccato.data.dto.moment.MomentCreationRequest +import com.on.staccato.data.dto.moment.MomentCreationResponse +import com.on.staccato.data.dto.moment.MomentLocationResponse +import com.on.staccato.data.dto.moment.MomentResponse +import com.on.staccato.data.dto.moment.MomentUpdateRequest import retrofit2.Response import retrofit2.http.Body import retrofit2.http.DELETE diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/moment/MomentDefaultRepository.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/moment/MomentDefaultRepository.kt similarity index 82% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/moment/MomentDefaultRepository.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/moment/MomentDefaultRepository.kt index 3860d609a..dc34b33aa 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/moment/MomentDefaultRepository.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/moment/MomentDefaultRepository.kt @@ -1,13 +1,13 @@ -package com.woowacourse.staccato.data.moment +package com.on.staccato.data.moment -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.mapper.toDomain -import com.woowacourse.staccato.data.dto.moment.FeelingRequest -import com.woowacourse.staccato.data.dto.moment.MomentCreationRequest -import com.woowacourse.staccato.data.dto.moment.MomentCreationResponse -import com.woowacourse.staccato.domain.model.Moment -import com.woowacourse.staccato.domain.model.MomentLocation -import com.woowacourse.staccato.domain.repository.MomentRepository +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.mapper.toDomain +import com.on.staccato.data.dto.moment.FeelingRequest +import com.on.staccato.data.dto.moment.MomentCreationRequest +import com.on.staccato.data.dto.moment.MomentCreationResponse +import com.on.staccato.domain.model.Moment +import com.on.staccato.domain.model.MomentLocation +import com.on.staccato.domain.repository.MomentRepository import java.time.LocalDateTime class MomentDefaultRepository(private val remoteDataSource: MomentRemoteDataSource) : diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/moment/MomentRemoteDataSource.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/moment/MomentRemoteDataSource.kt similarity index 68% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/moment/MomentRemoteDataSource.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/moment/MomentRemoteDataSource.kt index 955032d6a..580fd4907 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/moment/MomentRemoteDataSource.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/moment/MomentRemoteDataSource.kt @@ -1,13 +1,13 @@ -package com.woowacourse.staccato.data.moment +package com.on.staccato.data.moment -import com.woowacourse.staccato.data.ApiResponseHandler.handleApiResponse -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.moment.FeelingRequest -import com.woowacourse.staccato.data.dto.moment.MomentCreationRequest -import com.woowacourse.staccato.data.dto.moment.MomentCreationResponse -import com.woowacourse.staccato.data.dto.moment.MomentLocationResponse -import com.woowacourse.staccato.data.dto.moment.MomentResponse -import com.woowacourse.staccato.data.dto.moment.MomentUpdateRequest +import com.on.staccato.data.ApiResponseHandler.handleApiResponse +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.moment.FeelingRequest +import com.on.staccato.data.dto.moment.MomentCreationRequest +import com.on.staccato.data.dto.moment.MomentCreationResponse +import com.on.staccato.data.dto.moment.MomentLocationResponse +import com.on.staccato.data.dto.moment.MomentResponse +import com.on.staccato.data.dto.moment.MomentUpdateRequest class MomentRemoteDataSource( private val momentApiService: MomentApiService, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/timeline/TimeLineApiService.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/timeline/TimeLineApiService.kt similarity index 55% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/timeline/TimeLineApiService.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/timeline/TimeLineApiService.kt index 9d45ffda4..498729390 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/timeline/TimeLineApiService.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/timeline/TimeLineApiService.kt @@ -1,7 +1,7 @@ -package com.woowacourse.staccato.data.timeline +package com.on.staccato.data.timeline -import com.woowacourse.staccato.data.dto.timeline.TimelineResponse -import com.woowacourse.staccato.data.memory.MemoryApiService.Companion.MEMORIES_PATH +import com.on.staccato.data.dto.timeline.TimelineResponse +import com.on.staccato.data.memory.MemoryApiService.Companion.MEMORIES_PATH import retrofit2.Response import retrofit2.http.GET import retrofit2.http.Query diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/timeline/TimelineDataSource.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/timeline/TimelineDataSource.kt similarity index 51% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/timeline/TimelineDataSource.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/timeline/TimelineDataSource.kt index c606c713a..403aa9e1e 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/timeline/TimelineDataSource.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/timeline/TimelineDataSource.kt @@ -1,7 +1,7 @@ -package com.woowacourse.staccato.data.timeline +package com.on.staccato.data.timeline -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.timeline.TimelineResponse +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.timeline.TimelineResponse interface TimelineDataSource { suspend fun getAllTimeline(): ResponseResult diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/timeline/TimelineDefaultRepository.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/timeline/TimelineDefaultRepository.kt similarity index 77% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/timeline/TimelineDefaultRepository.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/timeline/TimelineDefaultRepository.kt index 0e65e00a5..10ed2bdf6 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/timeline/TimelineDefaultRepository.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/timeline/TimelineDefaultRepository.kt @@ -1,9 +1,9 @@ -package com.woowacourse.staccato.data.timeline +package com.on.staccato.data.timeline -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.mapper.toDomain -import com.woowacourse.staccato.domain.model.Timeline -import com.woowacourse.staccato.domain.repository.TimelineRepository +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.mapper.toDomain +import com.on.staccato.domain.model.Timeline +import com.on.staccato.domain.repository.TimelineRepository class TimelineDefaultRepository( private val timelineDataSource: TimelineDataSource = TimelineRemoteDataSource(), diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/timeline/TimelineRemoteDataSource.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/timeline/TimelineRemoteDataSource.kt similarity index 65% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/timeline/TimelineRemoteDataSource.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/data/timeline/TimelineRemoteDataSource.kt index 96a94b3b7..0b7e69fa2 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/timeline/TimelineRemoteDataSource.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/data/timeline/TimelineRemoteDataSource.kt @@ -1,9 +1,9 @@ -package com.woowacourse.staccato.data.timeline +package com.on.staccato.data.timeline -import com.woowacourse.staccato.data.ApiResponseHandler.handleApiResponse -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.StaccatoClient -import com.woowacourse.staccato.data.dto.timeline.TimelineResponse +import com.on.staccato.data.ApiResponseHandler.handleApiResponse +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.StaccatoClient +import com.on.staccato.data.dto.timeline.TimelineResponse class TimelineRemoteDataSource( private val timelineApiService: TimeLineApiService = StaccatoClient.timelineService, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Comment.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Comment.kt similarity index 77% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Comment.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Comment.kt index e6dd8c0ba..e4accaff1 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Comment.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Comment.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.domain.model +package com.on.staccato.domain.model data class Comment( val commentId: Long, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Feeling.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Feeling.kt similarity index 92% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Feeling.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Feeling.kt index f1ac5857e..f1e6a345b 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Feeling.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Feeling.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.domain.model +package com.on.staccato.domain.model enum class Feeling(val value: String) { HAPPY("happy"), diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Member.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Member.kt similarity index 70% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Member.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Member.kt index edff9e020..e80e943a2 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Member.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Member.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.domain.model +package com.on.staccato.domain.model data class Member( val memberId: Long, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Memory.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Memory.kt similarity index 86% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Memory.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Memory.kt index ca86cdba1..45d0dc179 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Memory.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Memory.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.domain.model +package com.on.staccato.domain.model import java.time.LocalDate diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/MemoryCandidate.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/MemoryCandidate.kt similarity index 77% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/MemoryCandidate.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/MemoryCandidate.kt index 5e024bc6c..737c6c2ab 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/MemoryCandidate.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/MemoryCandidate.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.domain.model +package com.on.staccato.domain.model data class MemoryCandidates(val memoryCandidate: List) diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/MemoryMoment.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/MemoryMoment.kt similarity index 80% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/MemoryMoment.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/MemoryMoment.kt index c885e7658..d9a7880b4 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/MemoryMoment.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/MemoryMoment.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.domain.model +package com.on.staccato.domain.model import java.time.LocalDateTime diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Moment.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Moment.kt similarity index 87% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Moment.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Moment.kt index 57cfc64c4..20f565115 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Moment.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Moment.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.domain.model +package com.on.staccato.domain.model import java.time.LocalDateTime diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/MomentLocation.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/MomentLocation.kt similarity index 69% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/MomentLocation.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/MomentLocation.kt index 042c27905..8d9712c37 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/MomentLocation.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/MomentLocation.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.domain.model +package com.on.staccato.domain.model data class MomentLocation( val momentId: Long, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/NewComment.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/NewComment.kt similarity index 61% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/NewComment.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/NewComment.kt index 6e0acf073..b3874b7f9 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/NewComment.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/NewComment.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.domain.model +package com.on.staccato.domain.model data class NewComment( val momentId: Long, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/NewMemory.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/NewMemory.kt similarity index 82% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/NewMemory.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/NewMemory.kt index cca492904..e6e619447 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/NewMemory.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/NewMemory.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.domain.model +package com.on.staccato.domain.model import java.time.LocalDate diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Timeline.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Timeline.kt similarity index 51% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Timeline.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Timeline.kt index 4913431d4..aaf6cd1fa 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/model/Timeline.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/model/Timeline.kt @@ -1,3 +1,3 @@ -package com.woowacourse.staccato.domain.model +package com.on.staccato.domain.model data class Timeline(val memories: List) diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/CommentRepository.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/CommentRepository.kt similarity index 63% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/CommentRepository.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/CommentRepository.kt index 911beb401..aaf11b79f 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/CommentRepository.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/CommentRepository.kt @@ -1,8 +1,8 @@ -package com.woowacourse.staccato.domain.repository +package com.on.staccato.domain.repository -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.domain.model.Comment -import com.woowacourse.staccato.domain.model.NewComment +import com.on.staccato.data.ResponseResult +import com.on.staccato.domain.model.Comment +import com.on.staccato.domain.model.NewComment interface CommentRepository { suspend fun fetchComments(momentId: Long): ResponseResult> diff --git a/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/ImageRepository.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/ImageRepository.kt new file mode 100644 index 000000000..87bcdd3d5 --- /dev/null +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/ImageRepository.kt @@ -0,0 +1,9 @@ +package com.on.staccato.domain.repository + +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.image.ImageResponse +import okhttp3.MultipartBody + +interface ImageRepository { + suspend fun convertImageFileToUrl(imageFile: MultipartBody.Part): ResponseResult +} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/LoginRepository.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/LoginRepository.kt similarity index 51% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/LoginRepository.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/LoginRepository.kt index c7ab6df4c..e739e9dd3 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/LoginRepository.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/LoginRepository.kt @@ -1,6 +1,6 @@ -package com.woowacourse.staccato.domain.repository +package com.on.staccato.domain.repository -import com.woowacourse.staccato.data.ResponseResult +import com.on.staccato.data.ResponseResult interface LoginRepository { suspend fun loginWithNickname(nickname: String): ResponseResult diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/MemoryRepository.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/MemoryRepository.kt similarity index 57% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/MemoryRepository.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/MemoryRepository.kt index 4693a21e3..b8ba0d598 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/MemoryRepository.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/MemoryRepository.kt @@ -1,10 +1,10 @@ -package com.woowacourse.staccato.domain.repository +package com.on.staccato.domain.repository -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.memory.MemoryCreationResponse -import com.woowacourse.staccato.domain.model.Memory -import com.woowacourse.staccato.domain.model.MemoryCandidates -import com.woowacourse.staccato.domain.model.NewMemory +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.memory.MemoryCreationResponse +import com.on.staccato.domain.model.Memory +import com.on.staccato.domain.model.MemoryCandidates +import com.on.staccato.domain.model.NewMemory interface MemoryRepository { suspend fun getMemory(memoryId: Long): ResponseResult diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/MomentRepository.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/MomentRepository.kt similarity index 72% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/MomentRepository.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/MomentRepository.kt index a6aed6b9b..6f44b853f 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/MomentRepository.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/MomentRepository.kt @@ -1,9 +1,9 @@ -package com.woowacourse.staccato.domain.repository +package com.on.staccato.domain.repository -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.moment.MomentCreationResponse -import com.woowacourse.staccato.domain.model.Moment -import com.woowacourse.staccato.domain.model.MomentLocation +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.moment.MomentCreationResponse +import com.on.staccato.domain.model.Moment +import com.on.staccato.domain.model.MomentLocation import java.time.LocalDateTime interface MomentRepository { diff --git a/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/TimelineRepository.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/TimelineRepository.kt new file mode 100644 index 000000000..c35a88371 --- /dev/null +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/domain/repository/TimelineRepository.kt @@ -0,0 +1,8 @@ +package com.on.staccato.domain.repository + +import com.on.staccato.data.ResponseResult +import com.on.staccato.domain.model.Timeline + +interface TimelineRepository { + suspend fun getTimeline(): ResponseResult +} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/BindingAdapters.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/BindingAdapters.kt similarity index 96% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/BindingAdapters.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/BindingAdapters.kt index a65940643..eddbe4fec 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/BindingAdapters.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/BindingAdapters.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation +package com.on.staccato.presentation import android.graphics.drawable.Drawable import android.net.Uri @@ -18,10 +18,10 @@ import coil.transform.RoundedCornersTransformation import com.bumptech.glide.Glide import com.bumptech.glide.load.resource.bitmap.RoundedCorners import com.bumptech.glide.request.RequestOptions -import com.woowacourse.staccato.R -import com.woowacourse.staccato.domain.model.MemoryCandidate -import com.woowacourse.staccato.domain.model.MemoryCandidates -import com.woowacourse.staccato.presentation.momentcreation.model.AttachedPhotosUiModel +import com.on.staccato.R +import com.on.staccato.domain.model.MemoryCandidate +import com.on.staccato.domain.model.MemoryCandidates +import com.on.staccato.presentation.momentcreation.model.AttachedPhotosUiModel import okhttp3.internal.format import java.time.LocalDate import java.time.LocalDateTime @@ -440,9 +440,23 @@ fun ImageView.setSelectedState(selected: Boolean) { isSelected = selected } -@BindingAdapter("setImageResource") -fun ImageView.setImageResourceWithId(resId: Int) { - setImageResource(resId) +@BindingAdapter( + value = [ + "colorImageResource", + "grayImageResource", + ], +) +fun ImageView.setImageResourceWithId( + colorResId: Int, + grayResId: Int, +) { + setImageResource( + if (isSelected) { + colorResId + } else { + grayResId + }, + ) } @BindingAdapter("setAddress") diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/base/BindingActivity.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/base/BindingActivity.kt similarity index 93% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/base/BindingActivity.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/base/BindingActivity.kt index d179d3352..44c37f1fe 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/base/BindingActivity.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/base/BindingActivity.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.base +package com.on.staccato.presentation.base import android.os.Bundle import androidx.appcompat.app.AppCompatActivity diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/base/BindingFragment.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/base/BindingFragment.kt similarity index 94% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/base/BindingFragment.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/base/BindingFragment.kt index 79214a595..281de2152 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/base/BindingFragment.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/base/BindingFragment.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.base +package com.on.staccato.presentation.base import android.os.Bundle import android.view.LayoutInflater diff --git a/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/AttachedPhotoHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/AttachedPhotoHandler.kt new file mode 100644 index 000000000..3e1e1e880 --- /dev/null +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/AttachedPhotoHandler.kt @@ -0,0 +1,9 @@ +package com.on.staccato.presentation.common + +import com.on.staccato.presentation.momentcreation.model.AttachedPhotoUiModel + +interface AttachedPhotoHandler { + fun onDeleteClicked(deletedPhoto: AttachedPhotoUiModel) + + fun onAddClicked() +} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/DeleteDialogFragment.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/DeleteDialogFragment.kt similarity index 92% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/DeleteDialogFragment.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/DeleteDialogFragment.kt index b0fe50e6f..4df4a2d59 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/DeleteDialogFragment.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/DeleteDialogFragment.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.common +package com.on.staccato.presentation.common import android.graphics.Color import android.graphics.drawable.ColorDrawable @@ -7,7 +7,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.DialogFragment -import com.woowacourse.staccato.databinding.FragmentDeleteDialogBinding +import com.on.staccato.databinding.FragmentDeleteDialogBinding class DeleteDialogFragment(private val dialogHandler: DialogHandler) : DialogFragment() { private var _binding: FragmentDeleteDialogBinding? = null diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/Event.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/Event.kt similarity index 91% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/Event.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/Event.kt index ae611faf2..caebcb80c 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/Event.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/Event.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.common +package com.on.staccato.presentation.common /** * Used as a wrapper for data that is exposed via a LiveData that represents an event. diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/MemberUiModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/MemberUiModel.kt similarity index 97% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/MemberUiModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/MemberUiModel.kt index 5b3ae8d0f..7ee1f2e83 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/MemberUiModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/MemberUiModel.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.common +package com.on.staccato.presentation.common data class MemberUiModel( val id: Long, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/MutableSingleLiveData.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/MutableSingleLiveData.kt similarity index 84% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/MutableSingleLiveData.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/MutableSingleLiveData.kt index 312b3b858..07d9ca183 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/MutableSingleLiveData.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/MutableSingleLiveData.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.common +package com.on.staccato.presentation.common class MutableSingleLiveData : SingleLiveData { constructor() : super() diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/PhotoAttachFragment.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/PhotoAttachFragment.kt similarity index 94% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/PhotoAttachFragment.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/PhotoAttachFragment.kt index b5ed17e94..b9ea62251 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/PhotoAttachFragment.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/PhotoAttachFragment.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.common +package com.on.staccato.presentation.common import android.Manifest.permission.READ_EXTERNAL_STORAGE import android.Manifest.permission.READ_MEDIA_IMAGES @@ -19,10 +19,10 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.core.content.ContextCompat import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.google.android.material.snackbar.Snackbar -import com.woowacourse.staccato.R -import com.woowacourse.staccato.databinding.FragmentPhotoAttachBinding -import com.woowacourse.staccato.presentation.momentcreation.OnUrisSelectedListener -import com.woowacourse.staccato.presentation.util.showToast +import com.on.staccato.R +import com.on.staccato.databinding.FragmentPhotoAttachBinding +import com.on.staccato.presentation.momentcreation.OnUrisSelectedListener +import com.on.staccato.presentation.util.showToast class PhotoAttachFragment : BottomSheetDialogFragment(), PhotoAttachHandler { private var _binding: FragmentPhotoAttachBinding? = null diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/PhotoAttachHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/PhotoAttachHandler.kt similarity index 62% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/PhotoAttachHandler.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/PhotoAttachHandler.kt index 10232adee..70b871b62 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/PhotoAttachHandler.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/PhotoAttachHandler.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.common +package com.on.staccato.presentation.common interface PhotoAttachHandler { fun onCameraClicked() diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/SingleLiveData.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/SingleLiveData.kt similarity index 94% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/SingleLiveData.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/SingleLiveData.kt index 7ef4f6906..61ae59777 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/SingleLiveData.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/SingleLiveData.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.common +package com.on.staccato.presentation.common import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.MutableLiveData diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/ToolbarHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/ToolbarHandler.kt similarity index 61% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/ToolbarHandler.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/ToolbarHandler.kt index 544d47ce2..cf8872b67 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/ToolbarHandler.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/common/ToolbarHandler.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.common +package com.on.staccato.presentation.common interface ToolbarHandler { fun onUpdateClicked() diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/login/LoginActivity.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/login/LoginActivity.kt similarity index 87% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/login/LoginActivity.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/login/LoginActivity.kt index d44f1b786..4fc66c047 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/login/LoginActivity.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/login/LoginActivity.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.login +package com.on.staccato.presentation.login import android.content.Intent import android.os.Bundle @@ -11,13 +11,13 @@ import androidx.core.splashscreen.SplashScreen import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.databinding.DataBindingUtil import androidx.lifecycle.lifecycleScope -import com.woowacourse.staccato.R -import com.woowacourse.staccato.StaccatoApplication.Companion.userInfoPrefsManager -import com.woowacourse.staccato.databinding.ActivityLoginBinding -import com.woowacourse.staccato.presentation.login.viewmodel.LoginViewModel -import com.woowacourse.staccato.presentation.login.viewmodel.LoginViewModelFactory -import com.woowacourse.staccato.presentation.main.MainActivity -import com.woowacourse.staccato.presentation.util.showToast +import com.on.staccato.R +import com.on.staccato.StaccatoApplication.Companion.userInfoPrefsManager +import com.on.staccato.databinding.ActivityLoginBinding +import com.on.staccato.presentation.login.viewmodel.LoginViewModel +import com.on.staccato.presentation.login.viewmodel.LoginViewModelFactory +import com.on.staccato.presentation.main.MainActivity +import com.on.staccato.presentation.util.showToast import kotlinx.coroutines.delay import kotlinx.coroutines.launch diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/login/LoginHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/login/LoginHandler.kt similarity index 60% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/login/LoginHandler.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/login/LoginHandler.kt index c1fd58aab..995903046 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/login/LoginHandler.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/login/LoginHandler.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.login +package com.on.staccato.presentation.login interface LoginHandler { fun onStartClicked() diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/login/viewmodel/LoginViewModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/login/viewmodel/LoginViewModel.kt similarity index 77% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/login/viewmodel/LoginViewModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/login/viewmodel/LoginViewModel.kt index b33b5902d..bb997f422 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/login/viewmodel/LoginViewModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/login/viewmodel/LoginViewModel.kt @@ -1,17 +1,17 @@ -package com.woowacourse.staccato.presentation.login.viewmodel +package com.on.staccato.presentation.login.viewmodel import android.util.Log import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.woowacourse.staccato.StaccatoApplication -import com.woowacourse.staccato.data.ApiResponseHandler.onException -import com.woowacourse.staccato.data.ApiResponseHandler.onServerError -import com.woowacourse.staccato.data.ApiResponseHandler.onSuccess -import com.woowacourse.staccato.data.dto.Status -import com.woowacourse.staccato.domain.repository.LoginRepository -import com.woowacourse.staccato.presentation.common.MutableSingleLiveData -import com.woowacourse.staccato.presentation.common.SingleLiveData +import com.on.staccato.StaccatoApplication +import com.on.staccato.data.ApiResponseHandler.onException +import com.on.staccato.data.ApiResponseHandler.onServerError +import com.on.staccato.data.ApiResponseHandler.onSuccess +import com.on.staccato.data.dto.Status +import com.on.staccato.domain.repository.LoginRepository +import com.on.staccato.presentation.common.MutableSingleLiveData +import com.on.staccato.presentation.common.SingleLiveData import kotlinx.coroutines.launch class LoginViewModel(private val repository: LoginRepository) : ViewModel() { diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/login/viewmodel/LoginViewModelFactory.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/login/viewmodel/LoginViewModelFactory.kt similarity index 73% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/login/viewmodel/LoginViewModelFactory.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/login/viewmodel/LoginViewModelFactory.kt index 2d59777ca..3f7a17e05 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/login/viewmodel/LoginViewModelFactory.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/login/viewmodel/LoginViewModelFactory.kt @@ -1,9 +1,9 @@ -package com.woowacourse.staccato.presentation.login.viewmodel +package com.on.staccato.presentation.login.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.woowacourse.staccato.data.login.LoginDefaultRepository -import com.woowacourse.staccato.domain.repository.LoginRepository +import com.on.staccato.data.login.LoginDefaultRepository +import com.on.staccato.domain.repository.LoginRepository class LoginViewModelFactory( private val repository: LoginRepository = LoginDefaultRepository(), diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/main/MainActivity.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/main/MainActivity.kt similarity index 68% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/main/MainActivity.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/main/MainActivity.kt index b679401e0..3759167bf 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/main/MainActivity.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/main/MainActivity.kt @@ -1,9 +1,9 @@ -package com.woowacourse.staccato.presentation.main +package com.on.staccato.presentation.main import android.os.Bundle -import android.view.Gravity +import android.view.MotionEvent import android.view.View -import android.widget.PopupMenu +import android.view.inputmethod.InputMethodManager import androidx.activity.addCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.viewModels @@ -15,16 +15,16 @@ import androidx.navigation.fragment.NavHostFragment import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_COLLAPSED import com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_EXPANDED -import com.woowacourse.staccato.R -import com.woowacourse.staccato.databinding.ActivityMainBinding -import com.woowacourse.staccato.presentation.base.BindingActivity -import com.woowacourse.staccato.presentation.maps.MapsFragment.Companion.BOTTOM_SHEET_NEW_STATE -import com.woowacourse.staccato.presentation.maps.MapsFragment.Companion.BOTTOM_SHEET_STATE_REQUEST_KEY -import com.woowacourse.staccato.presentation.memory.MemoryFragment.Companion.MEMORY_ID_KEY -import com.woowacourse.staccato.presentation.memorycreation.MemoryCreationActivity -import com.woowacourse.staccato.presentation.moment.MomentFragment.Companion.MOMENT_ID_KEY -import com.woowacourse.staccato.presentation.momentcreation.MomentCreationActivity -import com.woowacourse.staccato.presentation.util.showToast +import com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_HALF_EXPANDED +import com.on.staccato.R +import com.on.staccato.databinding.ActivityMainBinding +import com.on.staccato.presentation.base.BindingActivity +import com.on.staccato.presentation.maps.MapsFragment.Companion.BOTTOM_SHEET_NEW_STATE +import com.on.staccato.presentation.maps.MapsFragment.Companion.BOTTOM_SHEET_STATE_REQUEST_KEY +import com.on.staccato.presentation.memory.MemoryFragment.Companion.MEMORY_ID_KEY +import com.on.staccato.presentation.moment.MomentFragment.Companion.MOMENT_ID_KEY +import com.on.staccato.presentation.momentcreation.MomentCreationActivity +import com.on.staccato.presentation.util.showToast class MainActivity : BindingActivity(), MainHandler { override val layoutResourceId: Int @@ -34,6 +34,9 @@ class MainActivity : BindingActivity(), MainHandler { private lateinit var navHostFragment: NavHostFragment private lateinit var navController: NavController private val sharedViewModel: SharedViewModel by viewModels() + private val inputManager: InputMethodManager by lazy { + getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager + } val memoryCreationLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> @@ -99,37 +102,7 @@ class MainActivity : BindingActivity(), MainHandler { setUpBottomSheetStateListener() } - override fun onCreationClicked() { - val popup = inflateCreationMenu(binding.ivMainCreation) - setUpCreationMenu(popup) - popup.show() - } - - private fun inflateCreationMenu(view: View): PopupMenu { - val popup = PopupMenu(this, view, Gravity.END, 0, R.style.Theme_Staccato_AN_PopupMenu) - popup.menuInflater.inflate(R.menu.menu_creation, popup.menu) - return popup - } - - private fun setUpCreationMenu(popup: PopupMenu) { - popup.setOnMenuItemClickListener { menuItem -> - when (menuItem.itemId) { - R.id.memory_creation -> navigateToMemoryCreation() - R.id.staccato_creation -> navigateToStaccatoCreation() - } - false - } - } - - private fun navigateToMemoryCreation() { - MemoryCreationActivity.startWithResultLauncher( - this, - memoryCreationLauncher, - ) - } - - private fun navigateToStaccatoCreation() { - // TODO : 현재 날짜, 시간을 기준으로 여행이 있으면 메인 -> 방문 기록 생성 플로우 구현 + override fun onStaccatoCreationClicked() { MomentCreationActivity.startWithResultLauncher( 0L, "임시 추억", @@ -142,6 +115,8 @@ class MainActivity : BindingActivity(), MainHandler { var backPressedTime = 0L onBackPressedDispatcher.addCallback { if (behavior.state == STATE_EXPANDED) { + behavior.state = STATE_HALF_EXPANDED + } else if (behavior.state == STATE_HALF_EXPANDED) { behavior.state = STATE_COLLAPSED } else { handleBackPressedTwice(backPressedTime).also { @@ -162,7 +137,9 @@ class MainActivity : BindingActivity(), MainHandler { } private fun setupBottomSheetController() { - behavior = BottomSheetBehavior.from(binding.constraintMainBottomSheet) + behavior = + BottomSheetBehavior.from(binding.constraintMainBottomSheet) + .apply { setState(STATE_HALF_EXPANDED) } navHostFragment = supportFragmentManager.findFragmentById(R.id.fragment_container_view_main_bottom_sheet) as NavHostFragment navController = navHostFragment.navController @@ -195,14 +172,28 @@ class MainActivity : BindingActivity(), MainHandler { bottomSheet: View, newState: Int, ) { + when (newState) { + STATE_EXPANDED -> { + binding.viewMainDragBar.visibility = + View.INVISIBLE + binding.constraintMainBottomSheet.setBackgroundResource( + R.drawable.shape_bottom_sheet_square, + ) + } + + else -> { + binding.viewMainDragBar.visibility = View.VISIBLE + binding.constraintMainBottomSheet.setBackgroundResource( + R.drawable.shape_bottom_sheet_20dp, + ) + } + } } override fun onSlide( - bottomSheet: View, - slideOffset: Float, + p0: View, + p1: Float, ) { - binding.tvMainBottomSheetRemindYourMemories.alpha = 1 - slideOffset - binding.ivMainBottomSheetRemindYourMemories.alpha = 1 - slideOffset } }, ) @@ -218,4 +209,36 @@ class MainActivity : BindingActivity(), MainHandler { behavior.state = newState } } + + override fun dispatchTouchEvent(event: MotionEvent): Boolean { + if (event.action == MotionEvent.ACTION_DOWN) { + currentFocus?.let { view -> + if (!isTouchInsideView(event, view)) { + clearFocusAndHideKeyboard(view) + } + } + } + return super.dispatchTouchEvent(event) + } + + private fun isTouchInsideView( + event: MotionEvent, + view: View, + ): Boolean { + val rect = android.graphics.Rect() + view.getGlobalVisibleRect(rect) + return rect.contains(event.rawX.toInt(), event.rawY.toInt()) + } + + private fun clearFocusAndHideKeyboard(view: View) { + view.clearFocus() + hideKeyboard(view) + } + + private fun hideKeyboard(view: View) { + inputManager.hideSoftInputFromWindow( + view.windowToken, + InputMethodManager.HIDE_NOT_ALWAYS, + ) + } } diff --git a/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/main/MainHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/main/MainHandler.kt new file mode 100644 index 000000000..bddc7f00e --- /dev/null +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/main/MainHandler.kt @@ -0,0 +1,5 @@ +package com.on.staccato.presentation.main + +interface MainHandler { + fun onStaccatoCreationClicked() +} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/main/SharedViewModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/main/SharedViewModel.kt similarity index 73% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/main/SharedViewModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/main/SharedViewModel.kt index eec27d2f3..05d799ab2 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/main/SharedViewModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/main/SharedViewModel.kt @@ -1,8 +1,8 @@ -package com.woowacourse.staccato.presentation.main +package com.on.staccato.presentation.main import androidx.lifecycle.ViewModel -import com.woowacourse.staccato.presentation.common.MutableSingleLiveData -import com.woowacourse.staccato.presentation.common.SingleLiveData +import com.on.staccato.presentation.common.MutableSingleLiveData +import com.on.staccato.presentation.common.SingleLiveData class SharedViewModel : ViewModel() { private val _isTimelineUpdated = MutableSingleLiveData(false) diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/mapper/MemoryMapper.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/mapper/MemoryMapper.kt similarity index 60% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/mapper/MemoryMapper.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/mapper/MemoryMapper.kt index 26dd0d897..5e563c89f 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/mapper/MemoryMapper.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/mapper/MemoryMapper.kt @@ -1,11 +1,11 @@ -package com.woowacourse.staccato.presentation.mapper +package com.on.staccato.presentation.mapper -import com.woowacourse.staccato.domain.model.Member -import com.woowacourse.staccato.domain.model.Memory -import com.woowacourse.staccato.domain.model.MemoryMoment -import com.woowacourse.staccato.presentation.common.MemberUiModel -import com.woowacourse.staccato.presentation.memory.model.MemoryUiModel -import com.woowacourse.staccato.presentation.memory.model.MemoryVisitUiModel +import com.on.staccato.domain.model.Member +import com.on.staccato.domain.model.Memory +import com.on.staccato.domain.model.MemoryMoment +import com.on.staccato.presentation.common.MemberUiModel +import com.on.staccato.presentation.memory.model.MemoryUiModel +import com.on.staccato.presentation.memory.model.MemoryVisitUiModel fun Memory.toUiModel() = MemoryUiModel( diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/mapper/TimelineMapper.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/mapper/TimelineMapper.kt similarity index 62% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/mapper/TimelineMapper.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/mapper/TimelineMapper.kt index d80d2b2fb..2bc14e008 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/mapper/TimelineMapper.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/mapper/TimelineMapper.kt @@ -1,8 +1,8 @@ -package com.woowacourse.staccato.presentation.mapper +package com.on.staccato.presentation.mapper -import com.woowacourse.staccato.domain.model.Memory -import com.woowacourse.staccato.domain.model.Timeline -import com.woowacourse.staccato.presentation.timeline.model.TimelineUiModel +import com.on.staccato.domain.model.Memory +import com.on.staccato.domain.model.Timeline +import com.on.staccato.presentation.timeline.model.TimelineUiModel fun Timeline.toTimelineUiModel(): List { return memories.map { memory -> diff --git a/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/mapper/VisitUiModelMapper.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/mapper/VisitUiModelMapper.kt new file mode 100644 index 000000000..fd9c3d135 --- /dev/null +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/mapper/VisitUiModelMapper.kt @@ -0,0 +1,57 @@ +package com.on.staccato.presentation.mapper + +import com.on.staccato.R +import com.on.staccato.domain.model.Comment +import com.on.staccato.domain.model.Feeling +import com.on.staccato.domain.model.Moment +import com.on.staccato.presentation.moment.comments.CommentUiModel +import com.on.staccato.presentation.moment.detail.MomentDetailUiModel +import com.on.staccato.presentation.moment.feeling.FeelingUiModel +import com.on.staccato.presentation.visitupdate.model.VisitUpdateDefaultUiModel + +fun Moment.toMomentDetailUiModel(): MomentDetailUiModel { + return MomentDetailUiModel( + id = momentId, + memoryId = memoryId, + memoryTitle = memoryTitle, + placeName = placeName, + momentImageUrls = momentImageUrls, + address = address, + visitedAt = visitedAt, + ) +} + +fun Moment.toVisitUpdateDefaultUiModel(): VisitUpdateDefaultUiModel { + return VisitUpdateDefaultUiModel( + id = momentId, + address = address, + visitedAt = visitedAt, + ) +} + +fun Comment.toCommentUiModel() = + CommentUiModel( + id = commentId, + memberId = memberId, + nickname = nickname, + memberImageUrl = memberImageUrl, + content = content, + ) + +fun Feeling.toFeelingUiModel(selectedFeeling: String = Feeling.NOTHING.value): FeelingUiModel { + val colorAndGraySrc = + when (this) { + Feeling.HAPPY -> R.drawable.feeling_happy to R.drawable.feeling_happy_gray + Feeling.ANGRY -> R.drawable.feeling_angry to R.drawable.feeling_angry_gray + Feeling.SAD -> R.drawable.feeling_sad to R.drawable.feeling_sad_gray + Feeling.SCARED -> R.drawable.feeling_scared to R.drawable.feeling_scared_gray + Feeling.EXCITED -> R.drawable.feeling_excited to R.drawable.feeling_excited_gray + Feeling.NOTHING -> null + } + return FeelingUiModel( + value, + colorAndGraySrc?.first, + colorAndGraySrc?.second, + selectedFeeling == this.value, + ) +} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/maps/MapsFragment.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/maps/MapsFragment.kt similarity index 93% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/maps/MapsFragment.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/maps/MapsFragment.kt index e031c21fb..561704a87 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/maps/MapsFragment.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/maps/MapsFragment.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.maps +package com.on.staccato.presentation.maps import android.Manifest import android.content.Intent @@ -30,14 +30,14 @@ import com.google.android.gms.maps.model.Marker import com.google.android.gms.maps.model.MarkerOptions import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.snackbar.Snackbar -import com.woowacourse.staccato.R -import com.woowacourse.staccato.data.StaccatoClient.momentApiService -import com.woowacourse.staccato.data.moment.MomentDefaultRepository -import com.woowacourse.staccato.data.moment.MomentRemoteDataSource -import com.woowacourse.staccato.domain.model.MomentLocation -import com.woowacourse.staccato.presentation.main.SharedViewModel -import com.woowacourse.staccato.presentation.maps.model.MarkerUiModel -import com.woowacourse.staccato.presentation.moment.MomentFragment.Companion.MOMENT_ID_KEY +import com.on.staccato.R +import com.on.staccato.data.StaccatoClient.momentApiService +import com.on.staccato.data.moment.MomentDefaultRepository +import com.on.staccato.data.moment.MomentRemoteDataSource +import com.on.staccato.domain.model.MomentLocation +import com.on.staccato.presentation.main.SharedViewModel +import com.on.staccato.presentation.maps.model.MarkerUiModel +import com.on.staccato.presentation.moment.MomentFragment.Companion.MOMENT_ID_KEY class MapsFragment : Fragment() { private val viewModel: MapsViewModel by viewModels { diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/maps/MapsViewModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/maps/MapsViewModel.kt similarity index 75% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/maps/MapsViewModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/maps/MapsViewModel.kt index 98d6f4d94..3874245b7 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/maps/MapsViewModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/maps/MapsViewModel.kt @@ -1,18 +1,18 @@ -package com.woowacourse.staccato.presentation.maps +package com.on.staccato.presentation.maps import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.woowacourse.staccato.data.ApiResponseHandler.onException -import com.woowacourse.staccato.data.ApiResponseHandler.onServerError -import com.woowacourse.staccato.data.ApiResponseHandler.onSuccess -import com.woowacourse.staccato.data.dto.Status -import com.woowacourse.staccato.domain.model.MomentLocation -import com.woowacourse.staccato.domain.repository.MomentRepository -import com.woowacourse.staccato.presentation.common.MutableSingleLiveData -import com.woowacourse.staccato.presentation.common.SingleLiveData -import com.woowacourse.staccato.presentation.maps.model.MarkerUiModel +import com.on.staccato.data.ApiResponseHandler.onException +import com.on.staccato.data.ApiResponseHandler.onServerError +import com.on.staccato.data.ApiResponseHandler.onSuccess +import com.on.staccato.data.dto.Status +import com.on.staccato.domain.model.MomentLocation +import com.on.staccato.domain.repository.MomentRepository +import com.on.staccato.presentation.common.MutableSingleLiveData +import com.on.staccato.presentation.common.SingleLiveData +import com.on.staccato.presentation.maps.model.MarkerUiModel import kotlinx.coroutines.launch class MapsViewModel( diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/maps/MapsViewModelFactory.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/maps/MapsViewModelFactory.kt similarity index 79% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/maps/MapsViewModelFactory.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/maps/MapsViewModelFactory.kt index 38f3aa940..2031d9421 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/maps/MapsViewModelFactory.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/maps/MapsViewModelFactory.kt @@ -1,8 +1,8 @@ -package com.woowacourse.staccato.presentation.maps +package com.on.staccato.presentation.maps import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.woowacourse.staccato.domain.repository.MomentRepository +import com.on.staccato.domain.repository.MomentRepository class MapsViewModelFactory( private val momentRepository: MomentRepository, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/maps/model/MarkerUiModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/maps/model/MarkerUiModel.kt similarity index 58% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/maps/model/MarkerUiModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/maps/model/MarkerUiModel.kt index 9daf4e8bf..79a0d754f 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/maps/model/MarkerUiModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/maps/model/MarkerUiModel.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.maps.model +package com.on.staccato.presentation.maps.model data class MarkerUiModel( val staccatoId: Long, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/MemoryFragment.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/MemoryFragment.kt similarity index 74% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/MemoryFragment.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/MemoryFragment.kt index 2ee14c5e1..6972aafc1 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/MemoryFragment.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/MemoryFragment.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.memory +package com.on.staccato.presentation.memory import android.os.Bundle import android.view.View @@ -6,25 +6,25 @@ import androidx.core.os.bundleOf import androidx.fragment.app.activityViewModels import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController -import com.woowacourse.staccato.R -import com.woowacourse.staccato.data.StaccatoClient.memoryApiService -import com.woowacourse.staccato.data.memory.MemoryDefaultRepository -import com.woowacourse.staccato.data.memory.MemoryRemoteDataSource -import com.woowacourse.staccato.databinding.FragmentMemoryBinding -import com.woowacourse.staccato.presentation.base.BindingFragment -import com.woowacourse.staccato.presentation.common.DeleteDialogFragment -import com.woowacourse.staccato.presentation.common.DialogHandler -import com.woowacourse.staccato.presentation.common.ToolbarHandler -import com.woowacourse.staccato.presentation.main.MainActivity -import com.woowacourse.staccato.presentation.main.SharedViewModel -import com.woowacourse.staccato.presentation.memory.adapter.MatesAdapter -import com.woowacourse.staccato.presentation.memory.adapter.VisitsAdapter -import com.woowacourse.staccato.presentation.memory.viewmodel.MemoryViewModel -import com.woowacourse.staccato.presentation.memory.viewmodel.MemoryViewModelFactory -import com.woowacourse.staccato.presentation.memoryupdate.MemoryUpdateActivity -import com.woowacourse.staccato.presentation.moment.MomentFragment.Companion.MOMENT_ID_KEY -import com.woowacourse.staccato.presentation.momentcreation.MomentCreationActivity -import com.woowacourse.staccato.presentation.util.showToast +import com.on.staccato.R +import com.on.staccato.data.StaccatoClient.memoryApiService +import com.on.staccato.data.memory.MemoryDefaultRepository +import com.on.staccato.data.memory.MemoryRemoteDataSource +import com.on.staccato.databinding.FragmentMemoryBinding +import com.on.staccato.presentation.base.BindingFragment +import com.on.staccato.presentation.common.DeleteDialogFragment +import com.on.staccato.presentation.common.DialogHandler +import com.on.staccato.presentation.common.ToolbarHandler +import com.on.staccato.presentation.main.MainActivity +import com.on.staccato.presentation.main.SharedViewModel +import com.on.staccato.presentation.memory.adapter.MatesAdapter +import com.on.staccato.presentation.memory.adapter.VisitsAdapter +import com.on.staccato.presentation.memory.viewmodel.MemoryViewModel +import com.on.staccato.presentation.memory.viewmodel.MemoryViewModelFactory +import com.on.staccato.presentation.memoryupdate.MemoryUpdateActivity +import com.on.staccato.presentation.moment.MomentFragment.Companion.MOMENT_ID_KEY +import com.on.staccato.presentation.momentcreation.MomentCreationActivity +import com.on.staccato.presentation.util.showToast class MemoryFragment : BindingFragment(R.layout.fragment_memory), diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/MemoryHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/MemoryHandler.kt similarity index 65% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/MemoryHandler.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/MemoryHandler.kt index dd8ed6d56..30a4dfbf6 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/MemoryHandler.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/MemoryHandler.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.memory +package com.on.staccato.presentation.memory interface MemoryHandler { fun onVisitClicked(visitId: Long) diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/adapter/MatesAdapter.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/adapter/MatesAdapter.kt similarity index 87% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/adapter/MatesAdapter.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/adapter/MatesAdapter.kt index 8c651e0bb..5381fe4f1 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/adapter/MatesAdapter.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/adapter/MatesAdapter.kt @@ -1,11 +1,11 @@ -package com.woowacourse.staccato.presentation.memory.adapter +package com.on.staccato.presentation.memory.adapter import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter -import com.woowacourse.staccato.databinding.ItemMatesBinding -import com.woowacourse.staccato.presentation.common.MemberUiModel +import com.on.staccato.databinding.ItemMatesBinding +import com.on.staccato.presentation.common.MemberUiModel class MatesAdapter : ListAdapter(diffUtil) { override fun onCreateViewHolder( diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/adapter/MatesViewHolder.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/adapter/MatesViewHolder.kt similarity index 55% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/adapter/MatesViewHolder.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/adapter/MatesViewHolder.kt index 134ba6951..38eaf4717 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/adapter/MatesViewHolder.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/adapter/MatesViewHolder.kt @@ -1,8 +1,8 @@ -package com.woowacourse.staccato.presentation.memory.adapter +package com.on.staccato.presentation.memory.adapter import androidx.recyclerview.widget.RecyclerView.ViewHolder -import com.woowacourse.staccato.databinding.ItemMatesBinding -import com.woowacourse.staccato.presentation.common.MemberUiModel +import com.on.staccato.databinding.ItemMatesBinding +import com.on.staccato.presentation.common.MemberUiModel class MatesViewHolder( private val binding: ItemMatesBinding, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/adapter/VisitsAdapter.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/adapter/VisitsAdapter.kt similarity index 83% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/adapter/VisitsAdapter.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/adapter/VisitsAdapter.kt index db0b02310..af8f00329 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/adapter/VisitsAdapter.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/adapter/VisitsAdapter.kt @@ -1,12 +1,12 @@ -package com.woowacourse.staccato.presentation.memory.adapter +package com.on.staccato.presentation.memory.adapter import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter -import com.woowacourse.staccato.databinding.ItemVisitsBinding -import com.woowacourse.staccato.presentation.memory.MemoryHandler -import com.woowacourse.staccato.presentation.memory.model.MemoryVisitUiModel +import com.on.staccato.databinding.ItemVisitsBinding +import com.on.staccato.presentation.memory.MemoryHandler +import com.on.staccato.presentation.memory.model.MemoryVisitUiModel class VisitsAdapter(private val handler: MemoryHandler) : ListAdapter(diffUtil) { override fun onCreateViewHolder( diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/adapter/VisitsViewHolder.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/adapter/VisitsViewHolder.kt similarity index 55% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/adapter/VisitsViewHolder.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/adapter/VisitsViewHolder.kt index 56831750f..787428f63 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/adapter/VisitsViewHolder.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/adapter/VisitsViewHolder.kt @@ -1,9 +1,9 @@ -package com.woowacourse.staccato.presentation.memory.adapter +package com.on.staccato.presentation.memory.adapter import androidx.recyclerview.widget.RecyclerView.ViewHolder -import com.woowacourse.staccato.databinding.ItemVisitsBinding -import com.woowacourse.staccato.presentation.memory.MemoryHandler -import com.woowacourse.staccato.presentation.memory.model.MemoryVisitUiModel +import com.on.staccato.databinding.ItemVisitsBinding +import com.on.staccato.presentation.memory.MemoryHandler +import com.on.staccato.presentation.memory.model.MemoryVisitUiModel class VisitsViewHolder( private val binding: ItemVisitsBinding, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/model/MemoryUiModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/model/MemoryUiModel.kt similarity index 80% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/model/MemoryUiModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/model/MemoryUiModel.kt index 2fcf81c39..1e45e8436 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/model/MemoryUiModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/model/MemoryUiModel.kt @@ -1,7 +1,7 @@ -package com.woowacourse.staccato.presentation.memory.model +package com.on.staccato.presentation.memory.model -import com.woowacourse.staccato.presentation.common.MemberUiModel -import com.woowacourse.staccato.presentation.common.dummyMates +import com.on.staccato.presentation.common.MemberUiModel +import com.on.staccato.presentation.common.dummyMates import java.time.LocalDate data class MemoryUiModel( diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/model/MemoryVisitUiModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/model/MemoryVisitUiModel.kt similarity index 94% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/model/MemoryVisitUiModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/model/MemoryVisitUiModel.kt index f6151392e..530bd23c9 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/model/MemoryVisitUiModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/model/MemoryVisitUiModel.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.memory.model +package com.on.staccato.presentation.memory.model import java.time.LocalDateTime diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/viewmodel/MemoryViewModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/viewmodel/MemoryViewModel.kt similarity index 73% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/viewmodel/MemoryViewModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/viewmodel/MemoryViewModel.kt index e3f901ede..ac04bc970 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/viewmodel/MemoryViewModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/viewmodel/MemoryViewModel.kt @@ -1,20 +1,20 @@ -package com.woowacourse.staccato.presentation.memory.viewmodel +package com.on.staccato.presentation.memory.viewmodel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.woowacourse.staccato.data.ApiResponseHandler.onException -import com.woowacourse.staccato.data.ApiResponseHandler.onServerError -import com.woowacourse.staccato.data.ApiResponseHandler.onSuccess -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.Status -import com.woowacourse.staccato.domain.model.Memory -import com.woowacourse.staccato.domain.repository.MemoryRepository -import com.woowacourse.staccato.presentation.common.MutableSingleLiveData -import com.woowacourse.staccato.presentation.common.SingleLiveData -import com.woowacourse.staccato.presentation.mapper.toUiModel -import com.woowacourse.staccato.presentation.memory.model.MemoryUiModel +import com.on.staccato.data.ApiResponseHandler.onException +import com.on.staccato.data.ApiResponseHandler.onServerError +import com.on.staccato.data.ApiResponseHandler.onSuccess +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.Status +import com.on.staccato.domain.model.Memory +import com.on.staccato.domain.repository.MemoryRepository +import com.on.staccato.presentation.common.MutableSingleLiveData +import com.on.staccato.presentation.common.SingleLiveData +import com.on.staccato.presentation.mapper.toUiModel +import com.on.staccato.presentation.memory.model.MemoryUiModel import kotlinx.coroutines.launch import java.time.LocalDate diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/viewmodel/MemoryViewModelFactory.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/viewmodel/MemoryViewModelFactory.kt similarity index 77% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/viewmodel/MemoryViewModelFactory.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/viewmodel/MemoryViewModelFactory.kt index 65c8f1f5e..c374f6556 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memory/viewmodel/MemoryViewModelFactory.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memory/viewmodel/MemoryViewModelFactory.kt @@ -1,8 +1,8 @@ -package com.woowacourse.staccato.presentation.memory.viewmodel +package com.on.staccato.presentation.memory.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.woowacourse.staccato.domain.repository.MemoryRepository +import com.on.staccato.domain.repository.MemoryRepository class MemoryViewModelFactory( private val memoryRepository: MemoryRepository, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memorycreation/DateConverter.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memorycreation/DateConverter.kt similarity index 84% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memorycreation/DateConverter.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memorycreation/DateConverter.kt index ece4b153a..ee2cec58f 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memorycreation/DateConverter.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memorycreation/DateConverter.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.memorycreation +package com.on.staccato.presentation.memorycreation import java.time.Instant import java.time.LocalDate diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memorycreation/MemoryCreationActivity.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memorycreation/MemoryCreationActivity.kt similarity index 82% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memorycreation/MemoryCreationActivity.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memorycreation/MemoryCreationActivity.kt index 0098b5e62..3e590d998 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memorycreation/MemoryCreationActivity.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memorycreation/MemoryCreationActivity.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.memorycreation +package com.on.staccato.presentation.memorycreation import android.content.Context import android.content.Intent @@ -13,20 +13,20 @@ import androidx.activity.viewModels import androidx.core.util.Pair import androidx.fragment.app.FragmentManager import com.google.android.material.datepicker.MaterialDatePicker -import com.woowacourse.staccato.R -import com.woowacourse.staccato.data.StaccatoClient.imageApiService -import com.woowacourse.staccato.data.StaccatoClient.memoryApiService -import com.woowacourse.staccato.data.image.ImageDefaultRepository -import com.woowacourse.staccato.data.memory.MemoryDefaultRepository -import com.woowacourse.staccato.data.memory.MemoryRemoteDataSource -import com.woowacourse.staccato.databinding.ActivityMemoryCreationBinding -import com.woowacourse.staccato.presentation.base.BindingActivity -import com.woowacourse.staccato.presentation.common.PhotoAttachFragment -import com.woowacourse.staccato.presentation.memory.MemoryFragment.Companion.MEMORY_ID_KEY -import com.woowacourse.staccato.presentation.memorycreation.viewmodel.MemoryCreationViewModel -import com.woowacourse.staccato.presentation.memorycreation.viewmodel.MemoryCreationViewModelFactory -import com.woowacourse.staccato.presentation.momentcreation.OnUrisSelectedListener -import com.woowacourse.staccato.presentation.util.showToast +import com.on.staccato.R +import com.on.staccato.data.StaccatoClient.imageApiService +import com.on.staccato.data.StaccatoClient.memoryApiService +import com.on.staccato.data.image.ImageDefaultRepository +import com.on.staccato.data.memory.MemoryDefaultRepository +import com.on.staccato.data.memory.MemoryRemoteDataSource +import com.on.staccato.databinding.ActivityMemoryCreationBinding +import com.on.staccato.presentation.base.BindingActivity +import com.on.staccato.presentation.common.PhotoAttachFragment +import com.on.staccato.presentation.memory.MemoryFragment.Companion.MEMORY_ID_KEY +import com.on.staccato.presentation.memorycreation.viewmodel.MemoryCreationViewModel +import com.on.staccato.presentation.memorycreation.viewmodel.MemoryCreationViewModelFactory +import com.on.staccato.presentation.momentcreation.OnUrisSelectedListener +import com.on.staccato.presentation.util.showToast class MemoryCreationActivity : BindingActivity(), diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memorycreation/MemoryCreationHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memorycreation/MemoryCreationHandler.kt similarity index 72% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memorycreation/MemoryCreationHandler.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memorycreation/MemoryCreationHandler.kt index 266ddf152..5d5112656 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memorycreation/MemoryCreationHandler.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memorycreation/MemoryCreationHandler.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.memorycreation +package com.on.staccato.presentation.memorycreation interface MemoryCreationHandler { fun onPeriodSelectionClicked() diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memorycreation/viewmodel/MemoryCreationViewModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memorycreation/viewmodel/MemoryCreationViewModel.kt similarity index 82% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memorycreation/viewmodel/MemoryCreationViewModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memorycreation/viewmodel/MemoryCreationViewModel.kt index 2bebbbc88..8512496ca 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memorycreation/viewmodel/MemoryCreationViewModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memorycreation/viewmodel/MemoryCreationViewModel.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.memorycreation.viewmodel +package com.on.staccato.presentation.memorycreation.viewmodel import android.content.Context import android.net.Uri @@ -7,18 +7,18 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.woowacourse.staccato.data.ApiResponseHandler.onException -import com.woowacourse.staccato.data.ApiResponseHandler.onServerError -import com.woowacourse.staccato.data.ApiResponseHandler.onSuccess -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.Status -import com.woowacourse.staccato.data.dto.image.ImageResponse -import com.woowacourse.staccato.data.dto.memory.MemoryCreationResponse -import com.woowacourse.staccato.domain.model.NewMemory -import com.woowacourse.staccato.domain.repository.ImageRepository -import com.woowacourse.staccato.domain.repository.MemoryRepository -import com.woowacourse.staccato.presentation.memorycreation.DateConverter.convertLongToLocalDate -import com.woowacourse.staccato.presentation.util.convertMemoryUriToFile +import com.on.staccato.data.ApiResponseHandler.onException +import com.on.staccato.data.ApiResponseHandler.onServerError +import com.on.staccato.data.ApiResponseHandler.onSuccess +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.Status +import com.on.staccato.data.dto.image.ImageResponse +import com.on.staccato.data.dto.memory.MemoryCreationResponse +import com.on.staccato.domain.model.NewMemory +import com.on.staccato.domain.repository.ImageRepository +import com.on.staccato.domain.repository.MemoryRepository +import com.on.staccato.presentation.memorycreation.DateConverter.convertLongToLocalDate +import com.on.staccato.presentation.util.convertMemoryUriToFile import kotlinx.coroutines.launch import java.time.LocalDate diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memorycreation/viewmodel/MemoryCreationViewModelFactory.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memorycreation/viewmodel/MemoryCreationViewModelFactory.kt similarity index 72% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memorycreation/viewmodel/MemoryCreationViewModelFactory.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memorycreation/viewmodel/MemoryCreationViewModelFactory.kt index e12af1a49..386e9f8e5 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memorycreation/viewmodel/MemoryCreationViewModelFactory.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memorycreation/viewmodel/MemoryCreationViewModelFactory.kt @@ -1,9 +1,9 @@ -package com.woowacourse.staccato.presentation.memorycreation.viewmodel +package com.on.staccato.presentation.memorycreation.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.woowacourse.staccato.domain.repository.ImageRepository -import com.woowacourse.staccato.domain.repository.MemoryRepository +import com.on.staccato.domain.repository.ImageRepository +import com.on.staccato.domain.repository.MemoryRepository class MemoryCreationViewModelFactory( private val memoryRepository: MemoryRepository, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memoryupdate/MemoryUpdateActivity.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memoryupdate/MemoryUpdateActivity.kt similarity index 83% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memoryupdate/MemoryUpdateActivity.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memoryupdate/MemoryUpdateActivity.kt index 110000e1c..328993ecc 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memoryupdate/MemoryUpdateActivity.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memoryupdate/MemoryUpdateActivity.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.memoryupdate +package com.on.staccato.presentation.memoryupdate import android.content.Context import android.content.Intent @@ -13,20 +13,20 @@ import androidx.activity.viewModels import androidx.core.util.Pair import androidx.fragment.app.FragmentManager import com.google.android.material.datepicker.MaterialDatePicker -import com.woowacourse.staccato.R -import com.woowacourse.staccato.data.StaccatoClient.imageApiService -import com.woowacourse.staccato.data.StaccatoClient.memoryApiService -import com.woowacourse.staccato.data.image.ImageDefaultRepository -import com.woowacourse.staccato.data.memory.MemoryDefaultRepository -import com.woowacourse.staccato.data.memory.MemoryRemoteDataSource -import com.woowacourse.staccato.databinding.ActivityMemoryUpdateBinding -import com.woowacourse.staccato.presentation.base.BindingActivity -import com.woowacourse.staccato.presentation.common.PhotoAttachFragment -import com.woowacourse.staccato.presentation.memory.MemoryFragment.Companion.MEMORY_ID_KEY -import com.woowacourse.staccato.presentation.memoryupdate.viewmodel.MemoryUpdateViewModel -import com.woowacourse.staccato.presentation.memoryupdate.viewmodel.MemoryUpdateViewModelFactory -import com.woowacourse.staccato.presentation.momentcreation.OnUrisSelectedListener -import com.woowacourse.staccato.presentation.util.showToast +import com.on.staccato.R +import com.on.staccato.data.StaccatoClient.imageApiService +import com.on.staccato.data.StaccatoClient.memoryApiService +import com.on.staccato.data.image.ImageDefaultRepository +import com.on.staccato.data.memory.MemoryDefaultRepository +import com.on.staccato.data.memory.MemoryRemoteDataSource +import com.on.staccato.databinding.ActivityMemoryUpdateBinding +import com.on.staccato.presentation.base.BindingActivity +import com.on.staccato.presentation.common.PhotoAttachFragment +import com.on.staccato.presentation.memory.MemoryFragment.Companion.MEMORY_ID_KEY +import com.on.staccato.presentation.memoryupdate.viewmodel.MemoryUpdateViewModel +import com.on.staccato.presentation.memoryupdate.viewmodel.MemoryUpdateViewModelFactory +import com.on.staccato.presentation.momentcreation.OnUrisSelectedListener +import com.on.staccato.presentation.util.showToast class MemoryUpdateActivity : BindingActivity(), diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memoryupdate/MemoryUpdateHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memoryupdate/MemoryUpdateHandler.kt similarity index 73% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memoryupdate/MemoryUpdateHandler.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memoryupdate/MemoryUpdateHandler.kt index 53ec7ed91..db8fe224a 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memoryupdate/MemoryUpdateHandler.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memoryupdate/MemoryUpdateHandler.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.memoryupdate +package com.on.staccato.presentation.memoryupdate interface MemoryUpdateHandler { fun onPeriodSelectionClicked() diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memoryupdate/viewmodel/MemoryUpdateViewModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memoryupdate/viewmodel/MemoryUpdateViewModel.kt similarity index 83% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memoryupdate/viewmodel/MemoryUpdateViewModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memoryupdate/viewmodel/MemoryUpdateViewModel.kt index 85908355c..d52569e6d 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memoryupdate/viewmodel/MemoryUpdateViewModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memoryupdate/viewmodel/MemoryUpdateViewModel.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.memoryupdate.viewmodel +package com.on.staccato.presentation.memoryupdate.viewmodel import android.content.Context import android.net.Uri @@ -7,20 +7,20 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.woowacourse.staccato.data.ApiResponseHandler.onException -import com.woowacourse.staccato.data.ApiResponseHandler.onServerError -import com.woowacourse.staccato.data.ApiResponseHandler.onSuccess -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.Status -import com.woowacourse.staccato.data.dto.image.ImageResponse -import com.woowacourse.staccato.domain.model.Memory -import com.woowacourse.staccato.domain.model.NewMemory -import com.woowacourse.staccato.domain.repository.ImageRepository -import com.woowacourse.staccato.domain.repository.MemoryRepository -import com.woowacourse.staccato.presentation.common.MutableSingleLiveData -import com.woowacourse.staccato.presentation.common.SingleLiveData -import com.woowacourse.staccato.presentation.memorycreation.DateConverter.convertLongToLocalDate -import com.woowacourse.staccato.presentation.util.convertMemoryUriToFile +import com.on.staccato.data.ApiResponseHandler.onException +import com.on.staccato.data.ApiResponseHandler.onServerError +import com.on.staccato.data.ApiResponseHandler.onSuccess +import com.on.staccato.data.ResponseResult +import com.on.staccato.data.dto.Status +import com.on.staccato.data.dto.image.ImageResponse +import com.on.staccato.domain.model.Memory +import com.on.staccato.domain.model.NewMemory +import com.on.staccato.domain.repository.ImageRepository +import com.on.staccato.domain.repository.MemoryRepository +import com.on.staccato.presentation.common.MutableSingleLiveData +import com.on.staccato.presentation.common.SingleLiveData +import com.on.staccato.presentation.memorycreation.DateConverter.convertLongToLocalDate +import com.on.staccato.presentation.util.convertMemoryUriToFile import kotlinx.coroutines.launch import java.time.LocalDate diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memoryupdate/viewmodel/MemoryUpdateViewModelFactory.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memoryupdate/viewmodel/MemoryUpdateViewModelFactory.kt similarity index 74% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memoryupdate/viewmodel/MemoryUpdateViewModelFactory.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memoryupdate/viewmodel/MemoryUpdateViewModelFactory.kt index 0aa27bf6e..f14fcd36a 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/memoryupdate/viewmodel/MemoryUpdateViewModelFactory.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/memoryupdate/viewmodel/MemoryUpdateViewModelFactory.kt @@ -1,9 +1,9 @@ -package com.woowacourse.staccato.presentation.memoryupdate.viewmodel +package com.on.staccato.presentation.memoryupdate.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.woowacourse.staccato.domain.repository.ImageRepository -import com.woowacourse.staccato.domain.repository.MemoryRepository +import com.on.staccato.domain.repository.ImageRepository +import com.on.staccato.domain.repository.MemoryRepository class MemoryUpdateViewModelFactory( private val memoryId: Long, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/MomentFragment.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/MomentFragment.kt similarity index 80% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/MomentFragment.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/MomentFragment.kt index 018e548a4..2b62bdae2 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/MomentFragment.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/MomentFragment.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.moment +package com.on.staccato.presentation.moment import android.os.Bundle import android.view.View @@ -7,19 +7,19 @@ import androidx.fragment.app.activityViewModels import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController import com.google.android.material.tabs.TabLayoutMediator -import com.woowacourse.staccato.R -import com.woowacourse.staccato.databinding.FragmentMomentBinding -import com.woowacourse.staccato.presentation.base.BindingFragment -import com.woowacourse.staccato.presentation.common.DeleteDialogFragment -import com.woowacourse.staccato.presentation.main.MainActivity -import com.woowacourse.staccato.presentation.main.SharedViewModel -import com.woowacourse.staccato.presentation.moment.comments.MomentCommentsFragment -import com.woowacourse.staccato.presentation.moment.detail.ViewpagePhotoAdapter -import com.woowacourse.staccato.presentation.moment.feeling.MomentFeelingSelectionFragment -import com.woowacourse.staccato.presentation.moment.viewmodel.MomentViewModel -import com.woowacourse.staccato.presentation.moment.viewmodel.MomentViewModelFactory -import com.woowacourse.staccato.presentation.util.showToast -import com.woowacourse.staccato.presentation.visitupdate.VisitUpdateActivity +import com.on.staccato.R +import com.on.staccato.databinding.FragmentMomentBinding +import com.on.staccato.presentation.base.BindingFragment +import com.on.staccato.presentation.common.DeleteDialogFragment +import com.on.staccato.presentation.main.MainActivity +import com.on.staccato.presentation.main.SharedViewModel +import com.on.staccato.presentation.moment.comments.MomentCommentsFragment +import com.on.staccato.presentation.moment.detail.ViewpagePhotoAdapter +import com.on.staccato.presentation.moment.feeling.MomentFeelingSelectionFragment +import com.on.staccato.presentation.moment.viewmodel.MomentViewModel +import com.on.staccato.presentation.moment.viewmodel.MomentViewModelFactory +import com.on.staccato.presentation.util.showToast +import com.on.staccato.presentation.visitupdate.VisitUpdateActivity import kotlin.properties.Delegates class MomentFragment : diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/MomentToolbarHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/MomentToolbarHandler.kt similarity index 73% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/MomentToolbarHandler.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/MomentToolbarHandler.kt index 7fa24e7b0..5f81e5aa8 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/MomentToolbarHandler.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/MomentToolbarHandler.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.moment +package com.on.staccato.presentation.moment interface MomentToolbarHandler { fun onUpdateClicked( diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/CommentHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/CommentHandler.kt similarity index 71% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/CommentHandler.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/CommentHandler.kt index 96d6b7851..5a8ee42b6 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/CommentHandler.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/CommentHandler.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.moment.comments +package com.on.staccato.presentation.moment.comments interface CommentHandler { fun onSendButtonClicked() diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/CommentUiModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/CommentUiModel.kt similarity index 73% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/CommentUiModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/CommentUiModel.kt index 99405ba01..552f898db 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/CommentUiModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/CommentUiModel.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.moment.comments +package com.on.staccato.presentation.moment.comments data class CommentUiModel( val id: Long = 0, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/CommentViewHolder.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/CommentViewHolder.kt similarity index 61% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/CommentViewHolder.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/CommentViewHolder.kt index b865a8ee0..1fe94465a 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/CommentViewHolder.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/CommentViewHolder.kt @@ -1,18 +1,27 @@ -package com.woowacourse.staccato.presentation.moment.comments +package com.on.staccato.presentation.moment.comments import android.view.Gravity import android.view.View import android.widget.PopupMenu +import androidx.fragment.app.FragmentManager import androidx.recyclerview.widget.RecyclerView -import com.woowacourse.staccato.R -import com.woowacourse.staccato.databinding.ItemMomentMyCommentBinding +import com.on.staccato.R +import com.on.staccato.databinding.ItemMomentMyCommentBinding +import com.on.staccato.presentation.common.DeleteDialogFragment +import com.on.staccato.presentation.common.DialogHandler // Todo: 추후 나의 댓글, 다른 사용자의 댓글 구분하기 class CommentViewHolder( private val binding: ItemMomentMyCommentBinding, private val commentHandler: CommentHandler, -) : - RecyclerView.ViewHolder(binding.root) { +) : RecyclerView.ViewHolder(binding.root), + DialogHandler { + private val deleteDialogFragment = DeleteDialogFragment { onConfirmClicked() } + + override fun onConfirmClicked() { + binding.myComment?.id?.let { commentHandler.onDeleteButtonClicked(it) } + } + fun bind(commentUiModel: CommentUiModel) { binding.myComment = commentUiModel binding.root.setOnLongClickListener { @@ -37,19 +46,11 @@ class CommentViewHolder( private fun setUpCreationMenu(popup: PopupMenu) { popup.setOnMenuItemClickListener { menuItem -> when (menuItem.itemId) { - R.id.comment_update -> - binding.myComment?.id?.let { - commentHandler.onUpdateButtonClicked( - it, - ) - } - R.id.comment_delete -> - binding.myComment?.id?.let { - commentHandler.onDeleteButtonClicked( - it, - ) - } + deleteDialogFragment.show( + FragmentManager.findFragmentManager(binding.root), + DeleteDialogFragment.TAG, + ) } false } diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/CommentsAdapter.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/CommentsAdapter.kt similarity index 91% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/CommentsAdapter.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/CommentsAdapter.kt index 506fcc889..ce90e73e7 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/CommentsAdapter.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/CommentsAdapter.kt @@ -1,10 +1,10 @@ -package com.woowacourse.staccato.presentation.moment.comments +package com.on.staccato.presentation.moment.comments import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter -import com.woowacourse.staccato.databinding.ItemMomentMyCommentBinding +import com.on.staccato.databinding.ItemMomentMyCommentBinding class CommentsAdapter(private val commentHandler: CommentHandler) : ListAdapter(diffUtil) { diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/MomentCommentsFragment.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/MomentCommentsFragment.kt similarity index 62% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/MomentCommentsFragment.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/MomentCommentsFragment.kt index 8d5daed4e..82eba3e07 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/MomentCommentsFragment.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/MomentCommentsFragment.kt @@ -1,22 +1,19 @@ -package com.woowacourse.staccato.presentation.moment.comments +package com.on.staccato.presentation.moment.comments -import android.content.Context.INPUT_METHOD_SERVICE import android.os.Bundle import android.view.View import android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE -import android.view.inputmethod.InputMethodManager import androidx.fragment.app.viewModels -import com.woowacourse.staccato.R -import com.woowacourse.staccato.databinding.FragmentMomentCommentsBinding -import com.woowacourse.staccato.presentation.base.BindingFragment -import com.woowacourse.staccato.presentation.moment.viewmodel.MomentViewModel -import com.woowacourse.staccato.presentation.moment.viewmodel.MomentViewModelFactory -import com.woowacourse.staccato.presentation.util.showToast +import com.on.staccato.R +import com.on.staccato.databinding.FragmentMomentCommentsBinding +import com.on.staccato.presentation.base.BindingFragment +import com.on.staccato.presentation.moment.viewmodel.MomentViewModel +import com.on.staccato.presentation.moment.viewmodel.MomentViewModelFactory +import com.on.staccato.presentation.util.showToast import kotlin.properties.Delegates class MomentCommentsFragment : - BindingFragment(R.layout.fragment_moment_comments), - KeyboardActionHandler { + BindingFragment(R.layout.fragment_moment_comments) { private lateinit var commentsAdapter: CommentsAdapter private var momentId by Delegates.notNull() private val commentsViewModel: MomentCommentsViewModel by viewModels { @@ -27,30 +24,27 @@ class MomentCommentsFragment : ) { MomentViewModelFactory() } - private val inputManager: InputMethodManager by lazy { - requireActivity().getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager - } override fun onViewCreated( view: View, savedInstanceState: Bundle?, ) { momentId = arguments?.getLong(MOMENT_ID_KEY) ?: return - initAdapter() + setUpRecyclerView() setUpBinding() observeMomentViewModel() observeCommentsViewModel() } - private fun initAdapter() { + private fun setUpRecyclerView() { commentsAdapter = CommentsAdapter(commentsViewModel) binding.rvMomentComments.adapter = commentsAdapter + binding.rvMomentComments.itemAnimator = null } private fun setUpBinding() { binding.viewModel = commentsViewModel binding.commentHandler = commentsViewModel - binding.keyboardHandler = this } private fun observeMomentViewModel() { @@ -79,23 +73,6 @@ class MomentCommentsFragment : } } - override fun onScreenTouchEvent() { - requireParentFragment().view?.setOnTouchListener { _, _ -> - hideKeyboard() - false - } - } - - private fun hideKeyboard() { - requireActivity().currentFocus?.let { view -> - inputManager.hideSoftInputFromWindow( - view.windowToken, - InputMethodManager.HIDE_NOT_ALWAYS, - ) - view.clearFocus() - } - } - companion object { const val MOMENT_ID_KEY = "momentId" } diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/MomentCommentsViewModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/MomentCommentsViewModel.kt similarity index 83% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/MomentCommentsViewModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/MomentCommentsViewModel.kt index 790c80041..c9272bfec 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/MomentCommentsViewModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/MomentCommentsViewModel.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.moment.comments +package com.on.staccato.presentation.moment.comments import android.util.Log import androidx.lifecycle.LiveData @@ -6,15 +6,15 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.map import androidx.lifecycle.viewModelScope -import com.woowacourse.staccato.data.ApiResponseHandler.onException -import com.woowacourse.staccato.data.ApiResponseHandler.onServerError -import com.woowacourse.staccato.data.ApiResponseHandler.onSuccess -import com.woowacourse.staccato.data.dto.Status -import com.woowacourse.staccato.domain.model.NewComment -import com.woowacourse.staccato.domain.repository.CommentRepository -import com.woowacourse.staccato.presentation.common.MutableSingleLiveData -import com.woowacourse.staccato.presentation.common.SingleLiveData -import com.woowacourse.staccato.presentation.mapper.toCommentUiModel +import com.on.staccato.data.ApiResponseHandler.onException +import com.on.staccato.data.ApiResponseHandler.onServerError +import com.on.staccato.data.ApiResponseHandler.onSuccess +import com.on.staccato.data.dto.Status +import com.on.staccato.domain.model.NewComment +import com.on.staccato.domain.repository.CommentRepository +import com.on.staccato.presentation.common.MutableSingleLiveData +import com.on.staccato.presentation.common.SingleLiveData +import com.on.staccato.presentation.mapper.toCommentUiModel import kotlinx.coroutines.launch class MomentCommentsViewModel( diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/MomentCommentsViewModelFactory.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/MomentCommentsViewModelFactory.kt similarity index 69% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/MomentCommentsViewModelFactory.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/MomentCommentsViewModelFactory.kt index 5ccee1904..7aa1f03cc 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/MomentCommentsViewModelFactory.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/comments/MomentCommentsViewModelFactory.kt @@ -1,10 +1,10 @@ -package com.woowacourse.staccato.presentation.moment.comments +package com.on.staccato.presentation.moment.comments import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.woowacourse.staccato.data.StaccatoClient.commentApiService -import com.woowacourse.staccato.data.comment.CommentDefaultRepository -import com.woowacourse.staccato.data.comment.CommentRemoteDataSource +import com.on.staccato.data.StaccatoClient.commentApiService +import com.on.staccato.data.comment.CommentDefaultRepository +import com.on.staccato.data.comment.CommentRemoteDataSource class MomentCommentsViewModelFactory(private val momentId: Long) : ViewModelProvider.Factory { override fun create(modelClass: Class): T { diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/detail/MomentDetailUiModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/detail/MomentDetailUiModel.kt similarity index 81% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/detail/MomentDetailUiModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/detail/MomentDetailUiModel.kt index 749baff58..c83faa490 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/detail/MomentDetailUiModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/detail/MomentDetailUiModel.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.moment.detail +package com.on.staccato.presentation.moment.detail import java.time.LocalDateTime diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/detail/MomentDetailViewModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/detail/MomentDetailViewModel.kt similarity index 87% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/detail/MomentDetailViewModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/detail/MomentDetailViewModel.kt index c5b885d48..62fabf25e 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/detail/MomentDetailViewModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/detail/MomentDetailViewModel.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.moment.detail +package com.on.staccato.presentation.moment.detail import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/detail/ViewpagePhotoAdapter.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/detail/ViewpagePhotoAdapter.kt similarity index 90% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/detail/ViewpagePhotoAdapter.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/detail/ViewpagePhotoAdapter.kt index 01bc77c47..8359f6c10 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/detail/ViewpagePhotoAdapter.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/detail/ViewpagePhotoAdapter.kt @@ -1,10 +1,10 @@ -package com.woowacourse.staccato.presentation.moment.detail +package com.on.staccato.presentation.moment.detail import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter -import com.woowacourse.staccato.databinding.ItemViewpagePhotoBinding +import com.on.staccato.databinding.ItemViewpagePhotoBinding class ViewpagePhotoAdapter : ListAdapter(diffUtil) { diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/detail/ViewpagePhotoViewHolder.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/detail/ViewpagePhotoViewHolder.kt similarity index 65% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/detail/ViewpagePhotoViewHolder.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/detail/ViewpagePhotoViewHolder.kt index 88ca75ed5..f99620f9e 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/detail/ViewpagePhotoViewHolder.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/detail/ViewpagePhotoViewHolder.kt @@ -1,7 +1,7 @@ -package com.woowacourse.staccato.presentation.moment.detail +package com.on.staccato.presentation.moment.detail import androidx.recyclerview.widget.RecyclerView -import com.woowacourse.staccato.databinding.ItemViewpagePhotoBinding +import com.on.staccato.databinding.ItemViewpagePhotoBinding class ViewpagePhotoViewHolder(private val binding: ItemViewpagePhotoBinding) : RecyclerView.ViewHolder(binding.root) { diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/FeelingHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/FeelingHandler.kt similarity index 59% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/FeelingHandler.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/FeelingHandler.kt index 524e48d29..8f2bf21a7 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/FeelingHandler.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/FeelingHandler.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.moment.feeling +package com.on.staccato.presentation.moment.feeling interface FeelingHandler { fun onFeelingClicked(selectedFeeling: FeelingUiModel) diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/FeelingSelectionAdapter.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/FeelingSelectionAdapter.kt similarity index 89% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/FeelingSelectionAdapter.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/FeelingSelectionAdapter.kt index 9f94b8044..41ebae8fd 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/FeelingSelectionAdapter.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/FeelingSelectionAdapter.kt @@ -1,13 +1,13 @@ -package com.woowacourse.staccato.presentation.moment.feeling +package com.on.staccato.presentation.moment.feeling import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView -import com.woowacourse.staccato.databinding.ItemMomentFeelingSelectionBinding -import com.woowacourse.staccato.domain.model.Feeling -import com.woowacourse.staccato.presentation.mapper.toFeelingUiModel +import com.on.staccato.databinding.ItemMomentFeelingSelectionBinding +import com.on.staccato.domain.model.Feeling +import com.on.staccato.presentation.mapper.toFeelingUiModel class FeelingSelectionAdapter(private val feelingHandler: FeelingHandler) : ListAdapter(diffUtil) { diff --git a/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/FeelingUiModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/FeelingUiModel.kt new file mode 100644 index 000000000..a4857f805 --- /dev/null +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/FeelingUiModel.kt @@ -0,0 +1,8 @@ +package com.on.staccato.presentation.moment.feeling + +data class FeelingUiModel( + val feeling: String, + val colorSrc: Int?, + val graySrc: Int?, + val isSelected: Boolean = false, +) diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/MomentFeelingSelectionFragment.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/MomentFeelingSelectionFragment.kt similarity index 79% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/MomentFeelingSelectionFragment.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/MomentFeelingSelectionFragment.kt index 441bff5f0..31cfc5019 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/MomentFeelingSelectionFragment.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/MomentFeelingSelectionFragment.kt @@ -1,13 +1,13 @@ -package com.woowacourse.staccato.presentation.moment.feeling +package com.on.staccato.presentation.moment.feeling import android.os.Bundle import android.view.View import androidx.fragment.app.viewModels -import com.woowacourse.staccato.R -import com.woowacourse.staccato.databinding.FragmentMomentFeelingSelectionBinding -import com.woowacourse.staccato.presentation.base.BindingFragment -import com.woowacourse.staccato.presentation.moment.viewmodel.MomentViewModel -import com.woowacourse.staccato.presentation.moment.viewmodel.MomentViewModelFactory +import com.on.staccato.R +import com.on.staccato.databinding.FragmentMomentFeelingSelectionBinding +import com.on.staccato.presentation.base.BindingFragment +import com.on.staccato.presentation.moment.viewmodel.MomentViewModel +import com.on.staccato.presentation.moment.viewmodel.MomentViewModelFactory import kotlin.properties.Delegates class MomentFeelingSelectionFragment : diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/MomentFeelingSelectionViewModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/MomentFeelingSelectionViewModel.kt similarity index 88% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/MomentFeelingSelectionViewModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/MomentFeelingSelectionViewModel.kt index a07f1ddba..4234614d9 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/MomentFeelingSelectionViewModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/MomentFeelingSelectionViewModel.kt @@ -1,12 +1,12 @@ -package com.woowacourse.staccato.presentation.moment.feeling +package com.on.staccato.presentation.moment.feeling import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.woowacourse.staccato.domain.model.Feeling -import com.woowacourse.staccato.domain.repository.MomentRepository -import com.woowacourse.staccato.presentation.mapper.toFeelingUiModel +import com.on.staccato.domain.model.Feeling +import com.on.staccato.domain.repository.MomentRepository +import com.on.staccato.presentation.mapper.toFeelingUiModel import kotlinx.coroutines.launch class MomentFeelingSelectionViewModel( diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/MomentFeelingSelectionViewModelFactory.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/MomentFeelingSelectionViewModelFactory.kt similarity index 70% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/MomentFeelingSelectionViewModelFactory.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/MomentFeelingSelectionViewModelFactory.kt index 29bf78abf..7ad061539 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/MomentFeelingSelectionViewModelFactory.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/feeling/MomentFeelingSelectionViewModelFactory.kt @@ -1,10 +1,10 @@ -package com.woowacourse.staccato.presentation.moment.feeling +package com.on.staccato.presentation.moment.feeling import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.woowacourse.staccato.data.StaccatoClient.momentApiService -import com.woowacourse.staccato.data.moment.MomentDefaultRepository -import com.woowacourse.staccato.data.moment.MomentRemoteDataSource +import com.on.staccato.data.StaccatoClient.momentApiService +import com.on.staccato.data.moment.MomentDefaultRepository +import com.on.staccato.data.moment.MomentRemoteDataSource class MomentFeelingSelectionViewModelFactory(private val momentId: Long) : ViewModelProvider.Factory { diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/model/MomentDetailUiModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/model/MomentDetailUiModel.kt similarity index 89% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/model/MomentDetailUiModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/model/MomentDetailUiModel.kt index 408746d19..acc84981f 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/model/MomentDetailUiModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/model/MomentDetailUiModel.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.moment.model +package com.on.staccato.presentation.moment.model import java.time.LocalDateTime diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/viewmodel/MomentViewModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/viewmodel/MomentViewModel.kt similarity index 72% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/viewmodel/MomentViewModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/viewmodel/MomentViewModel.kt index fa54be992..9c623aa45 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/viewmodel/MomentViewModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/viewmodel/MomentViewModel.kt @@ -1,17 +1,17 @@ -package com.woowacourse.staccato.presentation.moment.viewmodel +package com.on.staccato.presentation.moment.viewmodel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.woowacourse.staccato.domain.model.Feeling -import com.woowacourse.staccato.domain.repository.MomentRepository -import com.woowacourse.staccato.presentation.common.MutableSingleLiveData -import com.woowacourse.staccato.presentation.common.SingleLiveData -import com.woowacourse.staccato.presentation.mapper.toCommentUiModel -import com.woowacourse.staccato.presentation.mapper.toMomentDetailUiModel -import com.woowacourse.staccato.presentation.moment.comments.CommentUiModel -import com.woowacourse.staccato.presentation.moment.detail.MomentDetailUiModel +import com.on.staccato.domain.model.Feeling +import com.on.staccato.domain.repository.MomentRepository +import com.on.staccato.presentation.common.MutableSingleLiveData +import com.on.staccato.presentation.common.SingleLiveData +import com.on.staccato.presentation.mapper.toCommentUiModel +import com.on.staccato.presentation.mapper.toMomentDetailUiModel +import com.on.staccato.presentation.moment.comments.CommentUiModel +import com.on.staccato.presentation.moment.detail.MomentDetailUiModel import kotlinx.coroutines.launch class MomentViewModel(private val momentRepository: MomentRepository) : ViewModel() { diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/viewmodel/MomentViewModelFactory.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/viewmodel/MomentViewModelFactory.kt similarity index 66% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/viewmodel/MomentViewModelFactory.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/viewmodel/MomentViewModelFactory.kt index 71bab6301..b7ed8c01f 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/viewmodel/MomentViewModelFactory.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/moment/viewmodel/MomentViewModelFactory.kt @@ -1,10 +1,10 @@ -package com.woowacourse.staccato.presentation.moment.viewmodel +package com.on.staccato.presentation.moment.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.woowacourse.staccato.data.StaccatoClient.momentApiService -import com.woowacourse.staccato.data.moment.MomentDefaultRepository -import com.woowacourse.staccato.data.moment.MomentRemoteDataSource +import com.on.staccato.data.StaccatoClient.momentApiService +import com.on.staccato.data.moment.MomentDefaultRepository +import com.on.staccato.data.moment.MomentRemoteDataSource class MomentViewModelFactory : ViewModelProvider.Factory { override fun create(modelClass: Class): T { diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/MomentCreationActivity.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/MomentCreationActivity.kt similarity index 90% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/MomentCreationActivity.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/MomentCreationActivity.kt index aaa066ece..f5027d4de 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/MomentCreationActivity.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/MomentCreationActivity.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.momentcreation +package com.on.staccato.presentation.momentcreation import android.Manifest.permission.ACCESS_COARSE_LOCATION import android.Manifest.permission.ACCESS_FINE_LOCATION @@ -28,20 +28,20 @@ import com.google.android.gms.location.FusedLocationProviderClient import com.google.android.gms.location.LocationRequest import com.google.android.gms.location.LocationServices import com.google.android.material.snackbar.Snackbar -import com.woowacourse.staccato.R -import com.woowacourse.staccato.databinding.ActivityVisitCreationBinding -import com.woowacourse.staccato.presentation.base.BindingActivity -import com.woowacourse.staccato.presentation.common.PhotoAttachFragment -import com.woowacourse.staccato.presentation.memory.MemoryFragment.Companion.MEMORY_ID_KEY -import com.woowacourse.staccato.presentation.moment.MomentFragment.Companion.MOMENT_ID_KEY -import com.woowacourse.staccato.presentation.momentcreation.adapter.PhotoAttachAdapter -import com.woowacourse.staccato.presentation.momentcreation.dialog.MemorySelectionFragment -import com.woowacourse.staccato.presentation.momentcreation.model.AttachedPhotoUiModel -import com.woowacourse.staccato.presentation.momentcreation.viewmodel.MomentCreationViewModel -import com.woowacourse.staccato.presentation.momentcreation.viewmodel.MomentCreationViewModelFactory -import com.woowacourse.staccato.presentation.util.showToast -import com.woowacourse.staccato.presentation.visitcreation.adapter.AttachedPhotoItemTouchHelperCallback -import com.woowacourse.staccato.presentation.visitcreation.adapter.ItemDragListener +import com.on.staccato.R +import com.on.staccato.databinding.ActivityVisitCreationBinding +import com.on.staccato.presentation.base.BindingActivity +import com.on.staccato.presentation.common.PhotoAttachFragment +import com.on.staccato.presentation.memory.MemoryFragment.Companion.MEMORY_ID_KEY +import com.on.staccato.presentation.moment.MomentFragment.Companion.MOMENT_ID_KEY +import com.on.staccato.presentation.momentcreation.adapter.PhotoAttachAdapter +import com.on.staccato.presentation.momentcreation.dialog.MemorySelectionFragment +import com.on.staccato.presentation.momentcreation.model.AttachedPhotoUiModel +import com.on.staccato.presentation.momentcreation.viewmodel.MomentCreationViewModel +import com.on.staccato.presentation.momentcreation.viewmodel.MomentCreationViewModelFactory +import com.on.staccato.presentation.util.showToast +import com.on.staccato.presentation.visitcreation.adapter.AttachedPhotoItemTouchHelperCallback +import com.on.staccato.presentation.visitcreation.adapter.ItemDragListener import java.time.LocalDateTime class MomentCreationActivity : diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/MomentCreationHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/MomentCreationHandler.kt similarity index 62% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/MomentCreationHandler.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/MomentCreationHandler.kt index 9872e89fc..0ef17e4d3 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/MomentCreationHandler.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/MomentCreationHandler.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.momentcreation +package com.on.staccato.presentation.momentcreation interface MomentCreationHandler { fun onCreateDoneClicked() diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/OnUrisSelectedListener.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/OnUrisSelectedListener.kt similarity index 62% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/OnUrisSelectedListener.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/OnUrisSelectedListener.kt index 7b74785aa..50b5d3d66 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/OnUrisSelectedListener.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/OnUrisSelectedListener.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.momentcreation +package com.on.staccato.presentation.momentcreation import android.net.Uri diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/adapter/PhotoAttachAdapter.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/adapter/PhotoAttachAdapter.kt similarity index 86% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/adapter/PhotoAttachAdapter.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/adapter/PhotoAttachAdapter.kt index 83c2efdd6..b04c888ee 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/adapter/PhotoAttachAdapter.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/adapter/PhotoAttachAdapter.kt @@ -1,15 +1,15 @@ -package com.woowacourse.staccato.presentation.momentcreation.adapter +package com.on.staccato.presentation.momentcreation.adapter import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter -import com.woowacourse.staccato.databinding.ItemAddPhotoBinding -import com.woowacourse.staccato.databinding.ItemAttachedPhotoBinding -import com.woowacourse.staccato.presentation.common.AttachedPhotoHandler -import com.woowacourse.staccato.presentation.momentcreation.model.AttachedPhotoUiModel -import com.woowacourse.staccato.presentation.visitcreation.adapter.ItemDragListener -import com.woowacourse.staccato.presentation.visitcreation.adapter.ItemMoveListener +import com.on.staccato.databinding.ItemAddPhotoBinding +import com.on.staccato.databinding.ItemAttachedPhotoBinding +import com.on.staccato.presentation.common.AttachedPhotoHandler +import com.on.staccato.presentation.momentcreation.model.AttachedPhotoUiModel +import com.on.staccato.presentation.visitcreation.adapter.ItemDragListener +import com.on.staccato.presentation.visitcreation.adapter.ItemMoveListener class PhotoAttachAdapter( private val dragListener: ItemDragListener, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/adapter/PhotoAttachViewHolder.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/adapter/PhotoAttachViewHolder.kt similarity index 72% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/adapter/PhotoAttachViewHolder.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/adapter/PhotoAttachViewHolder.kt index 716a85acf..e064c14a4 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/adapter/PhotoAttachViewHolder.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/adapter/PhotoAttachViewHolder.kt @@ -1,13 +1,13 @@ -package com.woowacourse.staccato.presentation.momentcreation.adapter +package com.on.staccato.presentation.momentcreation.adapter import android.view.MotionEvent import androidx.databinding.ViewDataBinding import androidx.recyclerview.widget.RecyclerView -import com.woowacourse.staccato.databinding.ItemAddPhotoBinding -import com.woowacourse.staccato.databinding.ItemAttachedPhotoBinding -import com.woowacourse.staccato.presentation.common.AttachedPhotoHandler -import com.woowacourse.staccato.presentation.momentcreation.model.AttachedPhotoUiModel -import com.woowacourse.staccato.presentation.visitcreation.adapter.ItemDragListener +import com.on.staccato.databinding.ItemAddPhotoBinding +import com.on.staccato.databinding.ItemAttachedPhotoBinding +import com.on.staccato.presentation.common.AttachedPhotoHandler +import com.on.staccato.presentation.momentcreation.model.AttachedPhotoUiModel +import com.on.staccato.presentation.visitcreation.adapter.ItemDragListener sealed class PhotoAttachViewHolder(binding: ViewDataBinding) : RecyclerView.ViewHolder(binding.root) { diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/dialog/MemorySelectionFragment.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/dialog/MemorySelectionFragment.kt similarity index 89% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/dialog/MemorySelectionFragment.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/dialog/MemorySelectionFragment.kt index 14f7e03df..611f6a453 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/dialog/MemorySelectionFragment.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/dialog/MemorySelectionFragment.kt @@ -1,12 +1,12 @@ -package com.woowacourse.staccato.presentation.momentcreation.dialog +package com.on.staccato.presentation.momentcreation.dialog import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import com.google.android.material.bottomsheet.BottomSheetDialogFragment -import com.woowacourse.staccato.databinding.FragmentMemorySelectionBinding -import com.woowacourse.staccato.domain.model.MemoryCandidate +import com.on.staccato.databinding.FragmentMemorySelectionBinding +import com.on.staccato.domain.model.MemoryCandidate class MemorySelectionFragment : BottomSheetDialogFragment() { private var _binding: FragmentMemorySelectionBinding? = null diff --git a/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/dialog/MemorySelectionHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/dialog/MemorySelectionHandler.kt new file mode 100644 index 000000000..0a6c63353 --- /dev/null +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/dialog/MemorySelectionHandler.kt @@ -0,0 +1,7 @@ +package com.on.staccato.presentation.momentcreation.dialog + +import com.on.staccato.domain.model.MemoryCandidate + +fun interface MemorySelectionHandler { + fun onConfirmClicked(memoryUiModel: MemoryCandidate) +} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/dialog/VisitedAtSelectionFragment.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/dialog/VisitedAtSelectionFragment.kt similarity index 92% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/dialog/VisitedAtSelectionFragment.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/dialog/VisitedAtSelectionFragment.kt index af1e8369e..948c12797 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/dialog/VisitedAtSelectionFragment.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/dialog/VisitedAtSelectionFragment.kt @@ -1,11 +1,11 @@ -package com.woowacourse.staccato.presentation.momentcreation.dialog +package com.on.staccato.presentation.momentcreation.dialog import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import com.google.android.material.bottomsheet.BottomSheetDialogFragment -import com.woowacourse.staccato.databinding.FragmentVisitedAtSelectionBinding +import com.on.staccato.databinding.FragmentVisitedAtSelectionBinding import java.time.LocalDate class VisitedAtSelectionFragment : BottomSheetDialogFragment() { diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/dialog/VisitedAtSelectionHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/dialog/VisitedAtSelectionHandler.kt similarity index 63% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/dialog/VisitedAtSelectionHandler.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/dialog/VisitedAtSelectionHandler.kt index 3937f499e..6a64e2371 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/dialog/VisitedAtSelectionHandler.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/dialog/VisitedAtSelectionHandler.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.momentcreation.dialog +package com.on.staccato.presentation.momentcreation.dialog import java.time.LocalDate diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/model/AttachedPhotoUiModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/model/AttachedPhotoUiModel.kt similarity index 61% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/model/AttachedPhotoUiModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/model/AttachedPhotoUiModel.kt index dc3818f70..26aace123 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/model/AttachedPhotoUiModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/model/AttachedPhotoUiModel.kt @@ -1,8 +1,8 @@ -package com.woowacourse.staccato.presentation.momentcreation.model +package com.on.staccato.presentation.momentcreation.model import android.net.Uri -import com.woowacourse.staccato.presentation.momentcreation.adapter.PhotoAttachAdapter.Companion.ADD_PHOTO_BUTTON_URI -import com.woowacourse.staccato.presentation.momentcreation.adapter.PhotoAttachAdapter.Companion.ADD_PHOTO_BUTTON_URL +import com.on.staccato.presentation.momentcreation.adapter.PhotoAttachAdapter.Companion.ADD_PHOTO_BUTTON_URI +import com.on.staccato.presentation.momentcreation.adapter.PhotoAttachAdapter.Companion.ADD_PHOTO_BUTTON_URL data class AttachedPhotoUiModel( val uri: Uri? = null, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/model/AttachedPhotosUiModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/model/AttachedPhotosUiModel.kt similarity index 96% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/model/AttachedPhotosUiModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/model/AttachedPhotosUiModel.kt index b9d5666d6..59dcfde21 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/model/AttachedPhotosUiModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/model/AttachedPhotosUiModel.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.momentcreation.model +package com.on.staccato.presentation.momentcreation.model import android.net.Uri diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/viewmodel/MomentCreationViewModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/viewmodel/MomentCreationViewModel.kt similarity index 87% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/viewmodel/MomentCreationViewModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/viewmodel/MomentCreationViewModel.kt index ff0a75253..fa711a8c8 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/viewmodel/MomentCreationViewModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/viewmodel/MomentCreationViewModel.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.momentcreation.viewmodel +package com.on.staccato.presentation.momentcreation.viewmodel import android.content.Context import android.location.Location @@ -8,19 +8,19 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.woowacourse.staccato.data.ApiResponseHandler.onException -import com.woowacourse.staccato.data.ApiResponseHandler.onSuccess -import com.woowacourse.staccato.data.image.ImageDefaultRepository -import com.woowacourse.staccato.domain.model.MemoryCandidate -import com.woowacourse.staccato.domain.model.MemoryCandidates -import com.woowacourse.staccato.domain.repository.MemoryRepository -import com.woowacourse.staccato.domain.repository.MomentRepository -import com.woowacourse.staccato.presentation.common.AttachedPhotoHandler -import com.woowacourse.staccato.presentation.common.MutableSingleLiveData -import com.woowacourse.staccato.presentation.common.SingleLiveData -import com.woowacourse.staccato.presentation.momentcreation.model.AttachedPhotoUiModel -import com.woowacourse.staccato.presentation.momentcreation.model.AttachedPhotosUiModel -import com.woowacourse.staccato.presentation.util.convertExcretaFile +import com.on.staccato.data.ApiResponseHandler.onException +import com.on.staccato.data.ApiResponseHandler.onSuccess +import com.on.staccato.data.image.ImageDefaultRepository +import com.on.staccato.domain.model.MemoryCandidate +import com.on.staccato.domain.model.MemoryCandidates +import com.on.staccato.domain.repository.MemoryRepository +import com.on.staccato.domain.repository.MomentRepository +import com.on.staccato.presentation.common.AttachedPhotoHandler +import com.on.staccato.presentation.common.MutableSingleLiveData +import com.on.staccato.presentation.common.SingleLiveData +import com.on.staccato.presentation.momentcreation.model.AttachedPhotoUiModel +import com.on.staccato.presentation.momentcreation.model.AttachedPhotosUiModel +import com.on.staccato.presentation.util.convertExcretaFile import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.Job import kotlinx.coroutines.async diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/viewmodel/MomentCreationViewModelFactory.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/viewmodel/MomentCreationViewModelFactory.kt similarity index 57% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/viewmodel/MomentCreationViewModelFactory.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/viewmodel/MomentCreationViewModelFactory.kt index 68012c470..dfdde605e 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/viewmodel/MomentCreationViewModelFactory.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/momentcreation/viewmodel/MomentCreationViewModelFactory.kt @@ -1,15 +1,15 @@ -package com.woowacourse.staccato.presentation.momentcreation.viewmodel +package com.on.staccato.presentation.momentcreation.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.woowacourse.staccato.data.StaccatoClient.imageApiService -import com.woowacourse.staccato.data.StaccatoClient.memoryApiService -import com.woowacourse.staccato.data.StaccatoClient.momentApiService -import com.woowacourse.staccato.data.image.ImageDefaultRepository -import com.woowacourse.staccato.data.memory.MemoryDefaultRepository -import com.woowacourse.staccato.data.memory.MemoryRemoteDataSource -import com.woowacourse.staccato.data.moment.MomentDefaultRepository -import com.woowacourse.staccato.data.moment.MomentRemoteDataSource +import com.on.staccato.data.StaccatoClient.imageApiService +import com.on.staccato.data.StaccatoClient.memoryApiService +import com.on.staccato.data.StaccatoClient.momentApiService +import com.on.staccato.data.image.ImageDefaultRepository +import com.on.staccato.data.memory.MemoryDefaultRepository +import com.on.staccato.data.memory.MemoryRemoteDataSource +import com.on.staccato.data.moment.MomentDefaultRepository +import com.on.staccato.data.moment.MomentRemoteDataSource class MomentCreationViewModelFactory : ViewModelProvider.Factory { override fun create(modelClass: Class): T { diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/TimelineFragment.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/TimelineFragment.kt similarity index 73% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/TimelineFragment.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/TimelineFragment.kt index 086d75ffd..9bea3cf3a 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/TimelineFragment.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/TimelineFragment.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.timeline +package com.on.staccato.presentation.timeline import android.os.Bundle import android.view.View @@ -6,17 +6,17 @@ import androidx.core.os.bundleOf import androidx.fragment.app.activityViewModels import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController -import com.woowacourse.staccato.R -import com.woowacourse.staccato.databinding.FragmentTimelineBinding -import com.woowacourse.staccato.presentation.base.BindingFragment -import com.woowacourse.staccato.presentation.main.MainActivity -import com.woowacourse.staccato.presentation.main.SharedViewModel -import com.woowacourse.staccato.presentation.memory.MemoryFragment.Companion.MEMORY_ID_KEY -import com.woowacourse.staccato.presentation.memorycreation.MemoryCreationActivity -import com.woowacourse.staccato.presentation.timeline.adapter.TimelineAdapter -import com.woowacourse.staccato.presentation.timeline.model.TimelineUiModel -import com.woowacourse.staccato.presentation.timeline.viewmodel.TimelineViewModel -import com.woowacourse.staccato.presentation.util.showToast +import com.on.staccato.R +import com.on.staccato.databinding.FragmentTimelineBinding +import com.on.staccato.presentation.base.BindingFragment +import com.on.staccato.presentation.main.MainActivity +import com.on.staccato.presentation.main.SharedViewModel +import com.on.staccato.presentation.memory.MemoryFragment.Companion.MEMORY_ID_KEY +import com.on.staccato.presentation.memorycreation.MemoryCreationActivity +import com.on.staccato.presentation.timeline.adapter.TimelineAdapter +import com.on.staccato.presentation.timeline.model.TimelineUiModel +import com.on.staccato.presentation.timeline.viewmodel.TimelineViewModel +import com.on.staccato.presentation.util.showToast class TimelineFragment : BindingFragment(R.layout.fragment_timeline), @@ -47,6 +47,10 @@ class TimelineFragment : ) } + override fun onSortClicked() { + showToast(getString(R.string.all_default_not_supported)) + } + private fun navigateToMemory(bundle: Bundle) { findNavController().navigate(R.id.action_timelineFragment_to_memoryFragment, bundle) } @@ -76,10 +80,12 @@ class TimelineFragment : private fun checkTimelineEmpty(timeline: List) { // TODO: data binding 으로 가시성 설정되지 않는 오류 해결하기 if (timeline.isEmpty()) { + binding.frameTimelineAddMemory.visibility = View.GONE binding.ivTimelineEmpty.visibility = View.VISIBLE binding.tvTimelineEmpty.visibility = View.VISIBLE binding.btnTimelineCreateMemory.visibility = View.VISIBLE } else { + binding.frameTimelineAddMemory.visibility = View.VISIBLE binding.ivTimelineEmpty.visibility = View.GONE binding.tvTimelineEmpty.visibility = View.GONE binding.btnTimelineCreateMemory.visibility = View.GONE diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/TimelineHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/TimelineHandler.kt similarity index 59% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/TimelineHandler.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/TimelineHandler.kt index 1c0310e18..cca0fa725 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/TimelineHandler.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/TimelineHandler.kt @@ -1,7 +1,9 @@ -package com.woowacourse.staccato.presentation.timeline +package com.on.staccato.presentation.timeline interface TimelineHandler { fun onMemoryClicked(memoryId: Long) fun onMemoryCreationClicked() + + fun onSortClicked() } diff --git a/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/adapter/TimelineAdapter.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/adapter/TimelineAdapter.kt new file mode 100644 index 000000000..aa0c2b6bc --- /dev/null +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/adapter/TimelineAdapter.kt @@ -0,0 +1,51 @@ +package com.on.staccato.presentation.timeline.adapter + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.ListAdapter +import com.on.staccato.databinding.ItemTimelineBinding +import com.on.staccato.presentation.timeline.TimelineHandler +import com.on.staccato.presentation.timeline.model.TimelineUiModel + +class TimelineAdapter(private val eventHandler: TimelineHandler) : + ListAdapter(diffUtil) { + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int, + ): TimelineViewHolder { + val binding = + ItemTimelineBinding.inflate( + LayoutInflater.from(parent.context), + parent, + false, + ) + return TimelineViewHolder(binding, eventHandler) + } + + override fun onBindViewHolder( + holder: TimelineViewHolder, + position: Int, + ) { + holder.bind(currentList[position]) + } + + fun updateTimeline(newTimeline: List) { + submitList(newTimeline) + } + + companion object { + val diffUtil = + object : DiffUtil.ItemCallback() { + override fun areContentsTheSame( + oldItem: TimelineUiModel, + newItem: TimelineUiModel, + ): Boolean = oldItem == newItem + + override fun areItemsTheSame( + oldItem: TimelineUiModel, + newItem: TimelineUiModel, + ): Boolean = oldItem.memoryId == newItem.memoryId + } + } +} diff --git a/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/adapter/TimelineViewHolder.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/adapter/TimelineViewHolder.kt new file mode 100644 index 000000000..d5c4681b0 --- /dev/null +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/adapter/TimelineViewHolder.kt @@ -0,0 +1,16 @@ +package com.on.staccato.presentation.timeline.adapter + +import androidx.recyclerview.widget.RecyclerView +import com.on.staccato.databinding.ItemTimelineBinding +import com.on.staccato.presentation.timeline.TimelineHandler +import com.on.staccato.presentation.timeline.model.TimelineUiModel + +class TimelineViewHolder( + private val binding: ItemTimelineBinding, + private val eventHandler: TimelineHandler, +) : RecyclerView.ViewHolder(binding.root) { + fun bind(item: TimelineUiModel) { + binding.memory = item + binding.eventHandler = eventHandler + } +} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/model/TimelineUiModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/model/TimelineUiModel.kt similarity index 77% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/model/TimelineUiModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/model/TimelineUiModel.kt index e58008073..a548d8043 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/model/TimelineUiModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/model/TimelineUiModel.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.timeline.model +package com.on.staccato.presentation.timeline.model import java.time.LocalDate diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/viewmodel/TimelineViewModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/viewmodel/TimelineViewModel.kt similarity index 74% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/viewmodel/TimelineViewModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/viewmodel/TimelineViewModel.kt index 9ec4cf1a2..6a8fa8046 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/viewmodel/TimelineViewModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/viewmodel/TimelineViewModel.kt @@ -1,21 +1,21 @@ -package com.woowacourse.staccato.presentation.timeline.viewmodel +package com.on.staccato.presentation.timeline.viewmodel import android.util.Log import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.woowacourse.staccato.data.ApiResponseHandler.onException -import com.woowacourse.staccato.data.ApiResponseHandler.onServerError -import com.woowacourse.staccato.data.ApiResponseHandler.onSuccess -import com.woowacourse.staccato.data.dto.Status -import com.woowacourse.staccato.data.timeline.TimelineDefaultRepository -import com.woowacourse.staccato.domain.model.Timeline -import com.woowacourse.staccato.domain.repository.TimelineRepository -import com.woowacourse.staccato.presentation.common.MutableSingleLiveData -import com.woowacourse.staccato.presentation.common.SingleLiveData -import com.woowacourse.staccato.presentation.mapper.toTimelineUiModel -import com.woowacourse.staccato.presentation.timeline.model.TimelineUiModel +import com.on.staccato.data.ApiResponseHandler.onException +import com.on.staccato.data.ApiResponseHandler.onServerError +import com.on.staccato.data.ApiResponseHandler.onSuccess +import com.on.staccato.data.dto.Status +import com.on.staccato.data.timeline.TimelineDefaultRepository +import com.on.staccato.domain.model.Timeline +import com.on.staccato.domain.repository.TimelineRepository +import com.on.staccato.presentation.common.MutableSingleLiveData +import com.on.staccato.presentation.common.SingleLiveData +import com.on.staccato.presentation.mapper.toTimelineUiModel +import com.on.staccato.presentation.timeline.model.TimelineUiModel import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.launch diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/viewmodel/TimelineViewModelFactory.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/viewmodel/TimelineViewModelFactory.kt similarity index 73% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/viewmodel/TimelineViewModelFactory.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/viewmodel/TimelineViewModelFactory.kt index 28e5a5d42..ad4a5bea9 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/viewmodel/TimelineViewModelFactory.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/timeline/viewmodel/TimelineViewModelFactory.kt @@ -1,9 +1,9 @@ -package com.woowacourse.staccato.presentation.timeline.viewmodel +package com.on.staccato.presentation.timeline.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.woowacourse.staccato.data.timeline.TimelineDefaultRepository -import com.woowacourse.staccato.domain.repository.TimelineRepository +import com.on.staccato.data.timeline.TimelineDefaultRepository +import com.on.staccato.domain.repository.TimelineRepository class TimelineViewModelFactory( private val timelineRepository: TimelineRepository = TimelineDefaultRepository(), diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/util/FileUtils.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/util/FileUtils.kt similarity index 97% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/util/FileUtils.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/util/FileUtils.kt index 24d8d8ceb..4962a643e 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/util/FileUtils.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/util/FileUtils.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.util +package com.on.staccato.presentation.util import android.content.ContentResolver import android.content.Context diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/util/MessageUtils.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/util/MessageUtils.kt similarity index 90% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/util/MessageUtils.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/util/MessageUtils.kt index 4d72ff131..47328701c 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/util/MessageUtils.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/util/MessageUtils.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.util +package com.on.staccato.presentation.util import android.content.Context import android.view.View diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitcreation/adapter/AttachedPhotoItemTouchHelperCallback.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitcreation/adapter/AttachedPhotoItemTouchHelperCallback.kt similarity index 90% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitcreation/adapter/AttachedPhotoItemTouchHelperCallback.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitcreation/adapter/AttachedPhotoItemTouchHelperCallback.kt index e57aeb4b7..967bbb70a 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitcreation/adapter/AttachedPhotoItemTouchHelperCallback.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitcreation/adapter/AttachedPhotoItemTouchHelperCallback.kt @@ -1,8 +1,8 @@ -package com.woowacourse.staccato.presentation.visitcreation.adapter +package com.on.staccato.presentation.visitcreation.adapter import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.RecyclerView -import com.woowacourse.staccato.presentation.momentcreation.adapter.PhotoAttachViewHolder +import com.on.staccato.presentation.momentcreation.adapter.PhotoAttachViewHolder class AttachedPhotoItemTouchHelperCallback( private val moveListener: ItemMoveListener, diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitcreation/adapter/ItemDragListener.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitcreation/adapter/ItemDragListener.kt similarity index 55% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitcreation/adapter/ItemDragListener.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitcreation/adapter/ItemDragListener.kt index 1387a3597..ae3aa42e8 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitcreation/adapter/ItemDragListener.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitcreation/adapter/ItemDragListener.kt @@ -1,7 +1,7 @@ -package com.woowacourse.staccato.presentation.visitcreation.adapter +package com.on.staccato.presentation.visitcreation.adapter import androidx.recyclerview.widget.RecyclerView -import com.woowacourse.staccato.presentation.momentcreation.model.AttachedPhotoUiModel +import com.on.staccato.presentation.momentcreation.model.AttachedPhotoUiModel interface ItemDragListener { fun onStartDrag(viewHolder: RecyclerView.ViewHolder) diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitcreation/adapter/ItemMoveListener.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitcreation/adapter/ItemMoveListener.kt similarity index 63% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitcreation/adapter/ItemMoveListener.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitcreation/adapter/ItemMoveListener.kt index cdf6432bf..d6c8a283c 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitcreation/adapter/ItemMoveListener.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitcreation/adapter/ItemMoveListener.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.visitcreation.adapter +package com.on.staccato.presentation.visitcreation.adapter interface ItemMoveListener { fun onItemMove( diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitupdate/VisitUpdateActivity.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitupdate/VisitUpdateActivity.kt similarity index 82% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitupdate/VisitUpdateActivity.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitupdate/VisitUpdateActivity.kt index 164e2503d..2ba1d08ee 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitupdate/VisitUpdateActivity.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitupdate/VisitUpdateActivity.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.visitupdate +package com.on.staccato.presentation.visitupdate import android.content.Context import android.content.Intent @@ -13,21 +13,21 @@ import androidx.activity.viewModels import androidx.fragment.app.FragmentManager import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.RecyclerView -import com.woowacourse.staccato.R -import com.woowacourse.staccato.databinding.ActivityVisitUpdateBinding -import com.woowacourse.staccato.presentation.base.BindingActivity -import com.woowacourse.staccato.presentation.common.PhotoAttachFragment -import com.woowacourse.staccato.presentation.memory.MemoryFragment.Companion.MEMORY_ID_KEY -import com.woowacourse.staccato.presentation.memory.MemoryFragment.Companion.MEMORY_TITLE_KEY -import com.woowacourse.staccato.presentation.moment.MomentFragment.Companion.MOMENT_ID_KEY -import com.woowacourse.staccato.presentation.momentcreation.OnUrisSelectedListener -import com.woowacourse.staccato.presentation.momentcreation.adapter.PhotoAttachAdapter -import com.woowacourse.staccato.presentation.momentcreation.model.AttachedPhotoUiModel -import com.woowacourse.staccato.presentation.util.showToast -import com.woowacourse.staccato.presentation.visitcreation.adapter.AttachedPhotoItemTouchHelperCallback -import com.woowacourse.staccato.presentation.visitcreation.adapter.ItemDragListener -import com.woowacourse.staccato.presentation.visitupdate.viewmodel.VisitUpdateViewModel -import com.woowacourse.staccato.presentation.visitupdate.viewmodel.VisitUpdateViewModelFactory +import com.on.staccato.R +import com.on.staccato.databinding.ActivityVisitUpdateBinding +import com.on.staccato.presentation.base.BindingActivity +import com.on.staccato.presentation.common.PhotoAttachFragment +import com.on.staccato.presentation.memory.MemoryFragment.Companion.MEMORY_ID_KEY +import com.on.staccato.presentation.memory.MemoryFragment.Companion.MEMORY_TITLE_KEY +import com.on.staccato.presentation.moment.MomentFragment.Companion.MOMENT_ID_KEY +import com.on.staccato.presentation.momentcreation.OnUrisSelectedListener +import com.on.staccato.presentation.momentcreation.adapter.PhotoAttachAdapter +import com.on.staccato.presentation.momentcreation.model.AttachedPhotoUiModel +import com.on.staccato.presentation.util.showToast +import com.on.staccato.presentation.visitcreation.adapter.AttachedPhotoItemTouchHelperCallback +import com.on.staccato.presentation.visitcreation.adapter.ItemDragListener +import com.on.staccato.presentation.visitupdate.viewmodel.VisitUpdateViewModel +import com.on.staccato.presentation.visitupdate.viewmodel.VisitUpdateViewModelFactory class VisitUpdateActivity : BindingActivity(), diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitupdate/VisitUpdateHandler.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitupdate/VisitUpdateHandler.kt similarity index 52% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitupdate/VisitUpdateHandler.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitupdate/VisitUpdateHandler.kt index db10fcda4..9f63868a9 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitupdate/VisitUpdateHandler.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitupdate/VisitUpdateHandler.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.visitupdate +package com.on.staccato.presentation.visitupdate interface VisitUpdateHandler { fun onUpdateDoneClicked() diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitupdate/model/VisitUpdateDefaultUiModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitupdate/model/VisitUpdateDefaultUiModel.kt similarity index 70% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitupdate/model/VisitUpdateDefaultUiModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitupdate/model/VisitUpdateDefaultUiModel.kt index aa05a7c5c..87ab26f5d 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitupdate/model/VisitUpdateDefaultUiModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitupdate/model/VisitUpdateDefaultUiModel.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.visitupdate.model +package com.on.staccato.presentation.visitupdate.model import java.time.LocalDateTime diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitupdate/viewmodel/VisitUpdateViewModel.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitupdate/viewmodel/VisitUpdateViewModel.kt similarity index 83% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitupdate/viewmodel/VisitUpdateViewModel.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitupdate/viewmodel/VisitUpdateViewModel.kt index 48fcb8c98..e0202ce5f 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitupdate/viewmodel/VisitUpdateViewModel.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitupdate/viewmodel/VisitUpdateViewModel.kt @@ -1,4 +1,4 @@ -package com.woowacourse.staccato.presentation.visitupdate.viewmodel +package com.on.staccato.presentation.visitupdate.viewmodel import android.content.Context import android.net.Uri @@ -7,21 +7,21 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.woowacourse.staccato.data.ApiResponseHandler.onException -import com.woowacourse.staccato.data.ApiResponseHandler.onSuccess -import com.woowacourse.staccato.domain.model.MemoryCandidate -import com.woowacourse.staccato.domain.repository.ImageRepository -import com.woowacourse.staccato.domain.repository.MomentRepository -import com.woowacourse.staccato.presentation.common.AttachedPhotoHandler -import com.woowacourse.staccato.presentation.common.MutableSingleLiveData -import com.woowacourse.staccato.presentation.common.SingleLiveData -import com.woowacourse.staccato.presentation.mapper.toVisitUpdateDefaultUiModel -import com.woowacourse.staccato.presentation.momentcreation.model.AttachedPhotoUiModel -import com.woowacourse.staccato.presentation.momentcreation.model.AttachedPhotosUiModel -import com.woowacourse.staccato.presentation.momentcreation.model.AttachedPhotosUiModel.Companion.createPhotosByUrls -import com.woowacourse.staccato.presentation.momentcreation.viewmodel.MomentCreationViewModel -import com.woowacourse.staccato.presentation.util.convertExcretaFile -import com.woowacourse.staccato.presentation.visitupdate.model.VisitUpdateDefaultUiModel +import com.on.staccato.data.ApiResponseHandler.onException +import com.on.staccato.data.ApiResponseHandler.onSuccess +import com.on.staccato.domain.model.MemoryCandidate +import com.on.staccato.domain.repository.ImageRepository +import com.on.staccato.domain.repository.MomentRepository +import com.on.staccato.presentation.common.AttachedPhotoHandler +import com.on.staccato.presentation.common.MutableSingleLiveData +import com.on.staccato.presentation.common.SingleLiveData +import com.on.staccato.presentation.mapper.toVisitUpdateDefaultUiModel +import com.on.staccato.presentation.momentcreation.model.AttachedPhotoUiModel +import com.on.staccato.presentation.momentcreation.model.AttachedPhotosUiModel +import com.on.staccato.presentation.momentcreation.model.AttachedPhotosUiModel.Companion.createPhotosByUrls +import com.on.staccato.presentation.momentcreation.viewmodel.MomentCreationViewModel +import com.on.staccato.presentation.util.convertExcretaFile +import com.on.staccato.presentation.visitupdate.model.VisitUpdateDefaultUiModel import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.Job import kotlinx.coroutines.async diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitupdate/viewmodel/VisitUpdateViewModelFactory.kt b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitupdate/viewmodel/VisitUpdateViewModelFactory.kt similarity index 68% rename from android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitupdate/viewmodel/VisitUpdateViewModelFactory.kt rename to android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitupdate/viewmodel/VisitUpdateViewModelFactory.kt index c4c3e05a3..12ed40edb 100644 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/visitupdate/viewmodel/VisitUpdateViewModelFactory.kt +++ b/android/Staccato_AN/app/src/main/java/com/on/staccato/presentation/visitupdate/viewmodel/VisitUpdateViewModelFactory.kt @@ -1,11 +1,11 @@ -package com.woowacourse.staccato.presentation.visitupdate.viewmodel +package com.on.staccato.presentation.visitupdate.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.woowacourse.staccato.data.StaccatoClient -import com.woowacourse.staccato.data.image.ImageDefaultRepository -import com.woowacourse.staccato.data.moment.MomentDefaultRepository -import com.woowacourse.staccato.data.moment.MomentRemoteDataSource +import com.on.staccato.data.StaccatoClient +import com.on.staccato.data.image.ImageDefaultRepository +import com.on.staccato.data.moment.MomentDefaultRepository +import com.on.staccato.data.moment.MomentRemoteDataSource class VisitUpdateViewModelFactory : ViewModelProvider.Factory { override fun create(modelClass: Class): T { diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/FeelingMapper.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/FeelingMapper.kt deleted file mode 100644 index 95298e357..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/FeelingMapper.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.woowacourse.staccato.data.dto.mapper - -import com.woowacourse.staccato.data.dto.moment.FeelingRequest -import com.woowacourse.staccato.domain.model.Feeling - -fun Feeling.toFeelingRequest(): FeelingRequest = - FeelingRequest( - feeling = value, - ) diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/MemberMapper.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/MemberMapper.kt deleted file mode 100644 index e6b3c4b4d..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/dto/mapper/MemberMapper.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.woowacourse.staccato.data.dto.mapper - -import com.woowacourse.staccato.data.dto.member.MemberDto -import com.woowacourse.staccato.domain.model.Member - -fun MemberDto.toDomain() = - Member( - memberId = memberId, - nickname = nickname, - memberImage = memberImage, - ) diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/login/LoginDataSource.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/login/LoginDataSource.kt deleted file mode 100644 index d53643303..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/login/LoginDataSource.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.woowacourse.staccato.data.login - -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.login.NicknameLoginResponse - -interface LoginDataSource { - suspend fun requestLoginWithNickname(nickname: String): ResponseResult -} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/login/LoginRemoteDataSource.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/login/LoginRemoteDataSource.kt deleted file mode 100644 index 9ed737836..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/data/login/LoginRemoteDataSource.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.woowacourse.staccato.data.login - -import com.woowacourse.staccato.data.ApiResponseHandler.handleApiResponse -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.StaccatoClient -import com.woowacourse.staccato.data.dto.login.NicknameLoginRequest -import com.woowacourse.staccato.data.dto.login.NicknameLoginResponse - -class LoginRemoteDataSource( - private val loginApiService: LoginApiService = StaccatoClient.loginApiService, -) : LoginDataSource { - override suspend fun requestLoginWithNickname(nickname: String): ResponseResult = - handleApiResponse { loginApiService.postNicknameLogin(NicknameLoginRequest(nickname)) } -} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/ImageRepository.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/ImageRepository.kt deleted file mode 100644 index 4c12dac47..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/ImageRepository.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.woowacourse.staccato.domain.repository - -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.data.dto.image.ImageResponse -import okhttp3.MultipartBody - -interface ImageRepository { - suspend fun convertImageFileToUrl(imageFile: MultipartBody.Part): ResponseResult -} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/TimelineRepository.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/TimelineRepository.kt deleted file mode 100644 index 1bc034052..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/domain/repository/TimelineRepository.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.woowacourse.staccato.domain.repository - -import com.woowacourse.staccato.data.ResponseResult -import com.woowacourse.staccato.domain.model.Timeline - -interface TimelineRepository { - suspend fun getTimeline(): ResponseResult -} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/AttachedPhotoHandler.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/AttachedPhotoHandler.kt deleted file mode 100644 index b32db1bfe..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/common/AttachedPhotoHandler.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.woowacourse.staccato.presentation.common - -import com.woowacourse.staccato.presentation.momentcreation.model.AttachedPhotoUiModel - -interface AttachedPhotoHandler { - fun onDeleteClicked(deletedPhoto: AttachedPhotoUiModel) - - fun onAddClicked() -} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/main/MainHandler.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/main/MainHandler.kt deleted file mode 100644 index 182a64015..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/main/MainHandler.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.woowacourse.staccato.presentation.main - -interface MainHandler { - fun onCreationClicked() -} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/mapper/VisitUiModelMapper.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/mapper/VisitUiModelMapper.kt deleted file mode 100644 index dff1ecd68..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/mapper/VisitUiModelMapper.kt +++ /dev/null @@ -1,52 +0,0 @@ -package com.woowacourse.staccato.presentation.mapper - -import com.woowacourse.staccato.R -import com.woowacourse.staccato.domain.model.Comment -import com.woowacourse.staccato.domain.model.Feeling -import com.woowacourse.staccato.domain.model.Moment -import com.woowacourse.staccato.presentation.moment.comments.CommentUiModel -import com.woowacourse.staccato.presentation.moment.detail.MomentDetailUiModel -import com.woowacourse.staccato.presentation.moment.feeling.FeelingUiModel -import com.woowacourse.staccato.presentation.visitupdate.model.VisitUpdateDefaultUiModel - -fun Moment.toMomentDetailUiModel(): MomentDetailUiModel { - return MomentDetailUiModel( - id = momentId, - memoryId = memoryId, - memoryTitle = memoryTitle, - placeName = placeName, - momentImageUrls = momentImageUrls, - address = address, - visitedAt = visitedAt, - ) -} - -fun Moment.toVisitUpdateDefaultUiModel(): VisitUpdateDefaultUiModel { - return VisitUpdateDefaultUiModel( - id = momentId, - address = address, - visitedAt = visitedAt, - ) -} - -fun Comment.toCommentUiModel() = - CommentUiModel( - id = commentId, - memberId = memberId, - nickname = nickname, - memberImageUrl = memberImageUrl, - content = content, - ) - -fun Feeling.toFeelingUiModel(selectedFeeling: String = Feeling.NOTHING.value): FeelingUiModel { - val src = - when (this) { - Feeling.HAPPY -> R.drawable.feeling_happy - Feeling.ANGRY -> R.drawable.feeling_angry - Feeling.SAD -> R.drawable.feeling_sad - Feeling.SCARED -> R.drawable.feeling_scared - Feeling.EXCITED -> R.drawable.feeling_excited - Feeling.NOTHING -> null - } - return FeelingUiModel(value, src, selectedFeeling == this.value) -} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/KeyboardActionHandler.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/KeyboardActionHandler.kt deleted file mode 100644 index f9cfee9f3..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/comments/KeyboardActionHandler.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.woowacourse.staccato.presentation.moment.comments - -interface KeyboardActionHandler { - fun onScreenTouchEvent() -} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/FeelingUiModel.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/FeelingUiModel.kt deleted file mode 100644 index 9d08f3f44..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/moment/feeling/FeelingUiModel.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.woowacourse.staccato.presentation.moment.feeling - -data class FeelingUiModel( - val feeling: String, - val src: Int?, - val isSelected: Boolean = false, -) diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/dialog/MemorySelectionHandler.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/dialog/MemorySelectionHandler.kt deleted file mode 100644 index 01ce9f5f2..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/momentcreation/dialog/MemorySelectionHandler.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.woowacourse.staccato.presentation.momentcreation.dialog - -import com.woowacourse.staccato.domain.model.MemoryCandidate - -fun interface MemorySelectionHandler { - fun onConfirmClicked(memoryUiModel: MemoryCandidate) -} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/FirstTimelineViewHolder.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/FirstTimelineViewHolder.kt deleted file mode 100644 index 792cfceb3..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/FirstTimelineViewHolder.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.woowacourse.staccato.presentation.timeline.adapter - -import android.view.View -import com.woowacourse.staccato.databinding.ItemTimelineFirstBinding -import com.woowacourse.staccato.presentation.timeline.TimelineHandler -import com.woowacourse.staccato.presentation.timeline.model.TimelineUiModel - -class FirstTimelineViewHolder( - private val binding: ItemTimelineFirstBinding, - private val eventHandler: TimelineHandler, - private val isOnlyOne: Boolean, -) : TimelineViewHolder(binding, eventHandler) { - override fun bind(item: TimelineUiModel) { - binding.memory = item - binding.eventHandler = eventHandler - binding.viewTimeline.visibility = - if (isOnlyOne) { - View.INVISIBLE - } else { - View.VISIBLE - } - } -} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/LastTimelineViewHolder.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/LastTimelineViewHolder.kt deleted file mode 100644 index 6bdff2507..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/LastTimelineViewHolder.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.woowacourse.staccato.presentation.timeline.adapter - -import com.woowacourse.staccato.databinding.ItemTimelineLastBinding -import com.woowacourse.staccato.presentation.timeline.TimelineHandler -import com.woowacourse.staccato.presentation.timeline.model.TimelineUiModel - -class LastTimelineViewHolder( - private val binding: ItemTimelineLastBinding, - private val eventHandler: TimelineHandler, -) : TimelineViewHolder(binding, eventHandler) { - override fun bind(item: TimelineUiModel) { - binding.memory = item - binding.eventHandler = eventHandler - } -} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/MiddleTimelineViewHolder.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/MiddleTimelineViewHolder.kt deleted file mode 100644 index 330c364f9..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/MiddleTimelineViewHolder.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.woowacourse.staccato.presentation.timeline.adapter - -import com.woowacourse.staccato.databinding.ItemTimelineMiddleBinding -import com.woowacourse.staccato.presentation.timeline.TimelineHandler -import com.woowacourse.staccato.presentation.timeline.model.TimelineUiModel - -class MiddleTimelineViewHolder( - private val binding: ItemTimelineMiddleBinding, - private val eventHandler: TimelineHandler, -) : TimelineViewHolder(binding, eventHandler) { - override fun bind(item: TimelineUiModel) { - binding.memory = item - binding.eventHandler = eventHandler - } -} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/TimelineAdapter.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/TimelineAdapter.kt deleted file mode 100644 index d8bd5c568..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/TimelineAdapter.kt +++ /dev/null @@ -1,83 +0,0 @@ -package com.woowacourse.staccato.presentation.timeline.adapter - -import android.view.LayoutInflater -import android.view.ViewGroup -import androidx.recyclerview.widget.DiffUtil -import androidx.recyclerview.widget.ListAdapter -import com.woowacourse.staccato.databinding.ItemTimelineFirstBinding -import com.woowacourse.staccato.databinding.ItemTimelineLastBinding -import com.woowacourse.staccato.databinding.ItemTimelineMiddleBinding -import com.woowacourse.staccato.presentation.timeline.TimelineHandler -import com.woowacourse.staccato.presentation.timeline.model.TimelineUiModel - -class TimelineAdapter(private val eventHandler: TimelineHandler) : - ListAdapter(diffUtil) { - override fun getItemViewType(position: Int): Int { - return TimelineViewType.fromPosition(position, itemCount).viewType - } - - override fun onCreateViewHolder( - parent: ViewGroup, - viewType: Int, - ): TimelineViewHolder { - return when (TimelineViewType.byViewType(viewType)) { - TimelineViewType.FIRST_ITEM -> { - val binding = - ItemTimelineFirstBinding.inflate( - LayoutInflater.from(parent.context), - parent, - false, - ) - FirstTimelineViewHolder(binding, eventHandler, currentList.size == LIST_SIZE_ONE) - } - - TimelineViewType.MIDDLE_ITEM -> { - val binding = - ItemTimelineMiddleBinding.inflate( - LayoutInflater.from(parent.context), - parent, - false, - ) - MiddleTimelineViewHolder(binding, eventHandler) - } - - TimelineViewType.LAST_ITEM -> { - val binding = - ItemTimelineLastBinding.inflate( - LayoutInflater.from(parent.context), - parent, - false, - ) - LastTimelineViewHolder(binding, eventHandler) - } - } - } - - override fun onBindViewHolder( - holder: TimelineViewHolder, - position: Int, - ) { - holder.bind(currentList[position]) - } - - fun updateTimeline(newTimeline: List) { - submitList(newTimeline) - } - - companion object { - private const val LIST_SIZE_ONE = 1 - - val diffUtil = - object : DiffUtil.ItemCallback() { - override fun areContentsTheSame( - oldItem: TimelineUiModel, - newItem: TimelineUiModel, - ): Boolean = oldItem == newItem - - override fun areItemsTheSame( - oldItem: TimelineUiModel, - newItem: TimelineUiModel, - ): Boolean = oldItem.memoryId == newItem.memoryId - } - } -} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/TimelineViewHolder.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/TimelineViewHolder.kt deleted file mode 100644 index 32879f797..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/TimelineViewHolder.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.woowacourse.staccato.presentation.timeline.adapter - -import androidx.databinding.ViewDataBinding -import androidx.recyclerview.widget.RecyclerView -import com.woowacourse.staccato.presentation.timeline.TimelineHandler -import com.woowacourse.staccato.presentation.timeline.model.TimelineUiModel - -sealed class TimelineViewHolder( - binding: ViewDataBinding, - private val eventHandler: TimelineHandler, -) : - RecyclerView.ViewHolder(binding.root) { - abstract fun bind(item: TimelineUiModel) -} diff --git a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/TimelineViewType.kt b/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/TimelineViewType.kt deleted file mode 100644 index faf5ec78f..000000000 --- a/android/Staccato_AN/app/src/main/java/com/woowacourse/staccato/presentation/timeline/adapter/TimelineViewType.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.woowacourse.staccato.presentation.timeline.adapter - -enum class TimelineViewType(val viewType: Int) { - FIRST_ITEM(0), - MIDDLE_ITEM(1), - LAST_ITEM(2), ; - - companion object { - private const val FIRST_INDEX = 0 - private const val LAST_INDEX_ADJUSTMENT = 1 - - fun fromPosition( - position: Int, - totalSize: Int, - ): TimelineViewType { - return if (position == FIRST_INDEX) { - FIRST_ITEM - } else if (position < totalSize - LAST_INDEX_ADJUSTMENT) { - MIDDLE_ITEM - } else { - LAST_ITEM - } - } - - fun byViewType(viewType: Int): TimelineViewType { - return entries.first { it.viewType == viewType } - } - } -} diff --git a/android/Staccato_AN/app/src/main/res/drawable/calendar_today.xml b/android/Staccato_AN/app/src/main/res/drawable/calendar_today.xml new file mode 100644 index 000000000..ef8489782 --- /dev/null +++ b/android/Staccato_AN/app/src/main/res/drawable/calendar_today.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/android/Staccato_AN/app/src/main/res/drawable/feeling_angry.png b/android/Staccato_AN/app/src/main/res/drawable/feeling_angry.png index 01c2359ad00cac4e15f946cde3791ea5d9832974..2d172f97832fb2096f22a758d4a996910a17090b 100644 GIT binary patch literal 128742 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 W7}{R^**$)S{K-lxg381V0{;imXU*;a literal 17737 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 hM_7hN?Dq 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 qsq@MV(vUq?AorqTqL}I( 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

TDV({4z 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 literal 15966 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 Of0C6_lB@xJ5BfhQy08TR diff --git a/android/Staccato_AN/app/src/main/res/drawable/feeling_excited_gray.png b/android/Staccato_AN/app/src/main/res/drawable/feeling_excited_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..f1e200a331d77970a24521ffa7e51a6eefda131c GIT binary patch literal 62564 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�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⋘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⪚R!%QC5Cs5l#8Q1h)#}1w<^}kJ}{?UJYM@Q81)dH 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�mjOrDbaKBbq%slvk>Ljn2#UwpaJaM!Fl@>dc6o$Iia^)x8G%0j79b}{BfRYK zTI{t?V$(^Xd0d5T)Xy@#{$9lW=JEbXu(y4({ege?1NM~t5Z60`-eu-tr`u0{`moYJ zdi3LugY}8Wrug`y&3FV(ZQ^2Ba@K_mM;gKaY~f&w6`}h>!63P}qU^_7jMmIcjn^_@ z^VM&oq6Fxe7(aD}Xv#d5cV*$t2j=p3Ko0~o4@>} zbDd!}*3p5wIebaSyd%qj03W|*uTF>C)d*A_qzw)b**G0g+8$SyJhsZ2G98dhmdBr0 z{>IJttiS#=yzWic_5th@efax55dZeCd2P~|!>6Jb_#67h>5F}8>C1WJ!; zGkO1_+t4Kn`G&k1M#oROWQ?OL0)T-576@c5zw!C0TzaJI`524kdY-Mldht8)cPQij zDy5q!-PMK1)p+^nJM446<4ds99ZLJm*quo8jMw|?mR;t|!y&4t*T@f4*O1Sa84<3N(Gz|FW_Drh{Xp__o�K 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 CE}I_! literal 18657 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 IM6N<$f&zAv6aWAK diff --git a/android/Staccato_AN/app/src/main/res/drawable/feeling_happy_gray.png b/android/Staccato_AN/app/src/main/res/drawable/feeling_happy_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..dd6f78258133d3fb43a79e5796bbd826b7401f1c GIT binary patch literal 72813 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

-tq7HvKMf7 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ⅇBKvec79?_7p%y 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 literal 20629 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 D4tb8I diff --git a/android/Staccato_AN/app/src/main/res/drawable/feeling_sad_gray.png b/android/Staccato_AN/app/src/main/res/drawable/feeling_sad_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..7ef6ef8e475fa154f2a317e94e630b35ded07262 GIT binary patch literal 67566 zcmeFYXIGPJ7cCswxCK!mL;;m%=p|r56e&?js3L+$2~DM!fE4LP5tJT62}%hXx^xH~ z5=ELIgiwNnru1T@gcj-v`#JBQc*kLk3nT!gU<(m)B8eO4O&J3dZanXgiFDGi9dRAt}ud6M6&q~4H)Y1RMx`F}U?|GOLb zLizIG*tzfC;I$4~dx%ooUAU)d=#R^OW7S?Tid>?+{g)e4+Qy6|8kP-9@V?O)U8iN!X(l$0WMz8#(EEQ7= z^6bA+`AP=Z^1Z>V&H75d{=~9_E}z@^uyl4UXB1}AaW6h26d7`~A=miF^J_(iV4yq8 z(-W_>SOI|Y@g(@qAH2k!HqX(W5yo`)E!Ur`d9wXJ%GK4oBI*dSDda-+T1>zG){5(RD}g zczklnpn_m-@u<=P#$t|xF};%MHx*SY0muWuz|8Z|-f~~tADdU(4wtR8N@=5zW{1Bk z`NyYDPhLpwcS2n7x*wR%t}eA?+TE}9{F8=2y?f5Y8^)%l%W&yIRch0WSl!vP8YjU( z0N{%v>GPAKxxdUeGCbE)J3m}uW=n(9KdkDIM}J({RsD7v#f3n_N(7u6_l4hT@VJb` z%@S`YEAN%^HvKwT#0?NRas2w8rsuGI+gl+Xy_dyJBwC9(`@PVv4RMkk-<`F~b;OBs z=PEAv0y%;jqwgMmCCu&?`K<2}2--JwbW-A>`cVi%X zw0YGP|5`D?zkvS?E6P`?%!6^zmwOn~QD!Q%2ksp__!Uq;GGy5#l7hta(i~YH?|Gc= z$qwsV|FGAxeRGttyFS}({Xr!92n$$X{qL5Hwc{`Ks_u=D)SfbZtc-+PP*qy|l2{7g zES7x!T5~%m@>5E_>Xyc?EW5s2OrFama%L*|AaOU{%gZZ&HgXEZ4G_31$_%5QpCxOP zQFoRK=Ix*D#P6^Dkd5_8bi2rlcg)%_>rP@d(;F7d=s}v2;WXu_rr_QB5Ph@;SMHtT zuuEaQ{1;ou7VtkmeDdf}#-AB0?!CBqq!~apU!_-EdS3-N4`<2k=rd(8axnp6CLm7Q zk%n10l9E!si=~Z!1MGPyz7l{-@0q0)@C7`#yIf`+&<&~GpO@vDM4x=lxY7j^aB7L4 zb8@UjS64O(9J;EP@I&NP`O-ruup)7O5n}6v>0#UUxbNg1ea<}v#r{e-^7vq;$r*uv z>-X$G(Tf;Q++?7H9Dm|n3Tv9^4^grSz1Y|7-RQJhe^8pZ>Z{S12gY?*QQv6XREBFEp#id7`RyBwI*?3KI&eY`}p-z z!n!B5#K9^xMpN&L^TEg5p5ESxonLP_)lMD#V8Q+Gs;81yctZ~9S)t^&XD=V>9`01i zy7_zr>w+Q`;-aA&fHZ zTxTiMkbmI$!A;XGb(kjYUAT~fODO*Pj}i?oAM~5!=-P>2uY^jOufg<1FZ5{Na-BAF zgT5?aR>yzq@qP0L?+t)P6}WJ2gi-v2J*LZPQhtUgNntGzy}ewskqKM&!HdUshbj#y z))Bdth$^=GzU%f3Ar~0vH9MFIr~o|S>p|a+Ei9X6hO)MgcWxPjNfTo3kRILs&DPXi|GOftah=;q;J=T=AV>*N3jPg4QN`@18^- zXZq|%;I~=(GZMZd&)x}iL1t?wLyr#1etZvf0hWh(FH=AP*t@oBQ7=Vbiw|wO-Oyyk zzMV<;mKpi{t*!cH5jL^=4|>un$vX4{;L%;tF!W0M~!v+xLJ0>@v_4sP>%*y2m5v-n~NVE^Cf{I%6loLRODf(6P&rOxw(C zEm+MNHT-aKR#W80ja^O`M}?&P;gt*h4a_>>BbMc4&Gz!|_xo#u(UyD zbJ-7le$u^CHyxiur_Bt|JJva74|Ezl%pdD*yOs2NVpTaN;%#+7$trsHV_?pNzU%$I zSFiljJ5>4O}xklpF?KDt{KomgX&fc-e}KELn;4yaRT0ctF-nrNZm8F(2QYDc41 zOJoMEe|O;qoPlwl003OuM;x-6>F1RHyfEasNvsPw*yWwi3GRnIZhg+7TI(TJY+j=p z;x{Y0Rxt7y=aufNi~1OK8evt#_F(ay%%EE6&)O%11f<#xqK?AO94p|T<9vM=$f+w= z_bcq1SL^D`{#q{MrSpW90o~la-q{X6T5h0h{CVz4sQ@wfu%mxZyyyv4#55$*IGZqHn!Ygt7f&{V(HX*gh@2PALWEb7XhWYm*&2IjJR(^{c>;OOY;^o4SEE@ql3KkKp9#=Eky`i+yQ5cBE{ zeK|S9+cre?3enz4Nmuw>oH)YZJEh>MXn^LZGvgBnuP>IUVkillY1R59%I$Q(a`X_l z_2%M)P}(?K&e$8q%dsd4?2bG;fW__BKY%aB8VvMz#(dThzNvF1Guv3dYlYO~6gacZ ztGdyrzLytw0-)<^x^cP{vtYGBsoGwCPS8729*HS15cQC#ehk$GLUjw^Az}imR)Z$f zr=;=(c=RmL9R~FY%pgqv4F?vU0&yy{^t3? zlD=mVwKRiwn5SjZ_e2#i%TJWkf2O$AuB&`aRbZuI@+p|vcjB$G29D!cN`G}HSl%I6 z{>6lUu^zG`S|b3e^?NgS+L_Tl8Y{SL@%KAB;NN3NrBH70hn5mC@zCtik7D!MzwAo1 zi;QaXLlyH@>yXeOIfUCkD`^A1KSryRc1?^A>N8CGG4s1#ZN{(VXEyen;s|;Z&7DRu ze!n)Il@Z~w`Tn(*&3Dd%J1%68DZ0z|%Tu>GIQowukM|U~CE0BSr8eTTXR9P4T>@`H ziCYf2_LQzlslI-wx8_%j(o>cKZAQ1&8Kr{7+R<2aMqP`UQ!ColI=S8eI;<7 z)Hu`Tw!Kf4&rcC@`-6yhI)Uw3QJx{q;{2R?v&Q{6YJY@^C785YI?8RhEpEZ)1D0Ok zJB{(d4f^V^k_+f6uq^}}Kb+6fOOGPB;Cet`HhdI#qYW(=O}gp5+p>&*8l9BM3%E_Q z-`J#wcbrhHfD_EjQ{FZr`EM%Lvr8&ab$|8SyV)G|=$|s=xTdFS*NCa7?yjIGg;FOa zpp>7cq^iq0*)iUOd9|wupaQ98#@c<{v9W|)UtnD=*um{?vEyWLHLZhQBAGdpv{CE# z(mWcxuIPUrt$A&+3gmRLP^F_$vSLYR?<>-6>_}5zWvzAO{~95j!R)GZOd-xylGR3+ZmOHhdJxGCU*dEXFQ6T17Tl*U zdP#g1-tG0Z9nQ!5A+2DB_w0>7lyb~GLlHH~FFJ{w+)mqf@|4U*_ijzX|*&0uN5pkwxV%beNj;8a#g_cx=z zSFck&=I>MP#NTw!3f_{cO<&OhxE|yGtC3A#Wb0=Vbp=y-`_$=MWTnNQ`-d})e;bNi z%RX`xJ+rA&(BF6wsKR1Dj-eAkdDWjrlJ@)lXot9L1^zzx73HiA^K&v(co6-=iQtsw zpXTsxPl{cvn;?qCFNmz@W92rh2Q?9*2BWtSWi=w1CW-E2c{N!Pu5>AOFp%pwey+@g zZZ&@$nT}U3RT*QjE8XA82wL8GpCV%-n8o{H{opHige3I5fryAo+*~!A$fB7Km1QxC z3(~VL0d6T)>!S|w>{yWt*rn2}+ukLYj!ZdG=XtCp5y=moH5)gTq3)qj@_ILSW8#av zO{X;96CdFWKUL>p?zT%eZfyP2S=7uwJ1KGE?t5(j;Nzq4->Jm?*;!^csd`;rIDal@ z-TDjZM_F)n#Dj96^sr%j7m6~A`#3CEt37~dE3 zS*N8mB=7zY?jywDqxCn3l6m{DB4X5fNC+!w7Xx`5vuA-XbXy0JW2`m`S-)r;LlKpB zGl$HZzFkuJf6%;n5_1vLgZyGDO2pJ7HaS#^nN^o*?JCaTZ1=C#us&d&CboaFl^o!1>@r?5}2qluLi#L9`PH-j)Z_8;FUn?B{i=oZ~ zjZ0LwE)w1TJuVVod>)$dl{T$+<T}y4sQn-J)T-9xg-;YPJDKv#3g@BEo)bdJ*7oi2J;dVcA5aXEkM04pfRqjY46M<4YdQ{a$j=yKbPpM2KQre=tv1Cv3yRJ91Q_Q+m z^N)_vYP3x0ZAp1Hc@nzCWH!f!zIAxxM8rpSIlZe1ihAaT-V$L(^3ptkZQ1w)uTX^( z{cpsQ!DRqLPASCk)jqi|B>(O%I0le+RmD!E_u*>dKoF{t#p+{3gF zXm|7BjooH=4*}Djo!ESI@m!51)9Zg~)c<~a88hxPiX?qVPY>LjO|=d&w9<;cYJr0! zCl|a=`w%tBJp}gXXIU6YhSh&Icbb3G03=oya_wN)l{#m zSTCEW$*JDa!kK(@?ns|(s7_!_!|TxoNQfCyo9yZ$U{sg$EIt76 z;`q#6Qj^y*GBZ_|x@5}sQ<$K;Nm}z<_x9Oa>6?qVcHZZOuDZ$06EgFbip;o+`JU`Z zGR{>HtJROYi(o{K7ogI#rWuA8Xg``m@Zh~MkEx~YN)*t5eOI^!U6pYTTP z=V@cCQQqvFMMJ!Eg-jh(g204TRQ!%k!gHC!tCu~^G? z=AF1vr!$MeD74$y#nOeSfbKX6mj4Fd{*i~C`~A;p*T?_;KaUZ+RDt)|Z}Vrh4P{FuwmPAf?P5`r12d$XRdiyG43*r}mu%z_HVkk|Ew!8#vhoHKlCs+V zPILy*o;*{gsOFSY>^d+ylqQt;Xn=~|(sWL(g^cuv3y;rD?iKlzOlyjuZceUej^-=k z_gi*1m#=Vt6+bp3@;hkf$B>D2GyS-APHRfof0yC?{GoYQ*MkYMXJAN^#m<=v9>A~X zfsY~gKTCj3_uhoa%TvW6GEtllTZxfBw^#uX(3;HivRn%|_oCq)Q~}vr&k??*>rA=~ zvS8J*b5Z(^z3Jm5uoy({8bC_L?Iz3ffHW_Y5?>gbW&wncjnJxJ`doC*v^iiioj!BO z;qMu$@$fovtqlHi$tUNb-t=uPRS^|QP$<&qR>uxnio%N23>3 z6^jcnV$r!Z3PeBi#Jc45oaw3Go41fjF&dnDcsvfyS8c6C*K((!5LhAihOC=e+a3_z z<-STR(KyiJ$MF8bT1@;3W$hC?Y*9scEa`t{L`actG;LDMv&y{}`>hE~!nn6HX)9^n zr4%k}B>Vbt0#4W1OukaR+l*$e=Fv!1(~ZeB(QtW_r@aMkdF(QH!Lxa!iUFw@QN2_!>P|fHou8X~NXkkL0Lwoe_>s?1AyMF`R2Vz-@3HxTQCvOWS94UfB2gJ?Sf*Wgxl> zua&*ld3AMjQD8D=u4O=+Yk*d>v@ zsS$GcM`LSHkloRpp(C`B_doxG#?`m+)URUS=KTX03>aX-&uJA@Ev&<$d z^X-gYSmk3b@R|!4 z`I6u95Y};^0Tt%@FBY%bdCshUXV7j@ip}V{{@fGe+;2`omiqp&uFE~Cjj#ydkwsR- zY9u3I_AbGQcuWe|y{Sp;k_b{0=bd&pTZ>$lyg$vW>X!Hs%ML>~E9Ma97Mp80C`b!} zyMm=MXHF1-6GKe71kBkhiHpE^iGo>j3sh0JPutk)vAklk+Fz0-ISIWZs;;7jE|OgwG>qqJai8#;>+y1Z&0y?`{Pw*ilw)Aix!kRLJp;Wm>{f4M^uCAo#LrZ{Q#7uo z`+R$Qc2e)Z7LD(96-h17hj_51EUk}U=@GKVN=&L6ij=f~ovT_zqMLp+d375hW^xq4 z1XyiZ(K}zWaupspgPR(_eO;?V9HoYoB)iV$aNeR}+d#87B8)2^qyIQ@;F9fA;(nICEM~*j3hOewKW(tSg6k@1I4gt8b3&p|m+{~g z9q$~4KGjdq7_DHvR82zF8})J%Fb4&~!{I8L>!}*tg#}f+2D^kDMK^OfV>~HMKqgun z+`jV={PPU6=-=r~TKaLp#A0nm_S|H(4~=?jKBu`K(9RQ?7+lzN{z+n&zaJ3V?Pl~5 zMysAPe}1ch%_}gC>m!5PkhRmfL#8N7qAcS)BYKLxF>;5F3j@BkT9s3)(>HF`+A|Co zDJ4CQWz$V_+e}f2-W1i=jW@#1gA4@RYMKMm?Ufv)iVUs7s#l!-i85+Z7lE#QtQ&GY!3 zLrcAYo@OARejSOJf!0QESCy|))w#47JI$rWJI0G@u#@0wskncn?sSgky>!Tk>15)J zAc+%Sn6!v+X9TZRUB^RZ+J^Zt&EL4*;pR~Qd8Gcw1I+QUHnIj!;`RLgwx*!x#}3If zxiv{*&RGdkHWbRP%MYhBaJ|d^A$|uEDX2W{5E!ebuDQ{JvjQ;~z+XlOsK-P~-}!MB zXxv2GvES1oNawi`s6fTt&F$P#4aZ35N9d?o5PaR_jul!B#qS{BFUg>#pyi_10~hZGNdR4sxsucVQyKO9 z>)qDLyvfiXLRqOAwy_cBF%SJXVvTMY#%mH0t#U`D=W8#tIpD^FSFLw&-*Z*dN3`je1+UZ$aP6h3%3uG^`;0@% z(+CM)qKB;VtY8*mQ_DuuJa7T~meSeP-`cn)Cyld;gY>+sDufU2b}m`<&4qv;}h z7kGn?wklJb|CDD;`mnr03NqPYEhy+6gVyE`WUTn(f)GnhubeMjEO7)1P57XMg1&C! z+*D3yGcE(UjBR^b5alArE>hNKg$Btx+@w+!*xhu^#_ zv@P`;{d-`U=A;S8}Jx3K|2!g{sCgFDy zy!38Z&H8q3P@ybo+D>#*6`IYW1wytzFX)$c6}$3nFXFIU+i1bbt`LQ}nz+9e$;R2E zi26zP)_$ckU9<(N{dQ6!?vW0S9Q+aKe_*$XR*=Jca9wbqGQJInD5_*FI>;q_Km4^9 zd6!9sxTabJEau8HJCuV*Sbmf~$6eIjST+%)NAYYsH=zU=la`;dh6{xd%v*BiT*4mg zzB{d(um;Ca^X+n{!B-fUM)d#27(wsM;qMq^F|j~>($?$w0aBuTTBr)xbU>j(e>w2E zjAyKU82U@+`$$1`U2m^IOr+e3zg&~*31MbCUL!-;$d#wnyN*<@Yo+_nu~(YaSD!8u z^e}y9vim7Q%lvl0LBb#UN$6CgoecPG?j7TXnsS$5=W0^$F9!Af$Bvdt0XRs-!h*hz zeUbP_2Y9<@zEl0P$n%ouEv@t>HQvR3)4r`L0{y6l5?;bfrng?vkFnr)>bMG4$PNB9 znoFWDXK@2qxT2mmeq?K5)@*{Be(6!*q2EW7iL~P8ldq|KI-={pu3_#b_t!m5;+f&O zHqVfT_!wMsfMez|wNmC&6|L~^6m_=(GKGp3>f7NZ z_9Ps?jNJKZ59yJORuNKCm%q&yWr#DsH((6l!^gCDfG<2 zt>J_y-!mSPBOAE0l=~nvQGfrE;KBzm*cuW-m6+A0=^E&1^E)aw6{Ob)Auj$!iFzs+ zI7BHyNT5FywZ1#RD}}QIT63`=ax%5l2~W&H?v`erLURD5#Y-x_&>bxoEu58v%w4sn zR1w$^%C2j+kS~(SnZN#@quNVBADA_GFBZ|~j-bSI`T~x?lP=fXF4!8TQ^JHHZvD?m z2PiPR3}hYn74fQGwXhk{zCIAZRV8kvVl8$g3l3}h+|lvgM1RRdS4%hSCRn;;OJS|_ zUhrDD=%j=bKXZDuV(4Eu=|^;&2TYcA!cjLJOkut6BJ~zcXNNh@sqOp<1pW7J(q|f$ zOGlSKy%Ur^s@@mMj(K`71~J&A6VrpK>8Kp9+rKpx`Ab=roMI{?|g3 z2AsOh`pEWPZNEx!gchiK)61w;i(|P7q`k4UQ8U!9ndVo`cgY}o7ECa>T*9kiB^Wmt zz|xdQr$-OZ0+kUc>fF2_uO-zqA>Qjk2nLWuO$m775_Jh;(VCnfLl- z=;V9ABW7hEJ#*|UO8SW_deFvZ*O2W;F~zIyKD2Gy0b09c=P$ zHn+BS3N1~3D1UD%a~ToL`TebJOr8_3e2G`QFEE=%Zx7k?VY$oXv|T|n3%{@Vx9lx9 zF^aYPA^lh2cK85eC3Y8o zDf)IW8=@7~T1lps&fQqySoTn$n&OaJ!HCgv7$0&JBt;2vn%0tj-0jry3X?l!Se5&A z{xoeWyf!=T1hPrz&?O6Eojt4gx4U7#LF&ZEi?V#S>w zj307)8VevaxQ){4Vt0N=$%Q=ZyY>w((Wd;c38^=RU?G3z-BiERZWCJ(cQ{ea%w_K4 zfb+uKUyZw;m{?YKH@sX{%gEMqCkd$+L9_Z6@7qJb#-bAad1Aj5PP9gR!biGrG-{Hb z&$6q2_mwIOiHGUtbjHo5&t!`#-aHZsyDi<&F5It)Zc3AnQ`dXt=?B%}m8Ay4Y}dRe zu%hp)r$5J?Smq<~p>;z(fva;jWok>;3%(6s+t*8Bpmr8oJU^544Y&|dO4XqS*f_9htD`VAC`iHv>lE9f3A${9}6UF0_Q zhF9i}%-)xqy2TrU5YWf3R;n}6#w~@c(TnD?&NjLr8ul!N#El4Y_1jy3FX4UgB!s1! zn_t7c5Xc~XBf|Uj#khYpf>s?bE~9su0=KUv_D`9bkD5ze(EJ(gze#4oSPD2EXL8gO z>yV%4|6C(FPfIZ;f+)8B@tz3W`!{|6^UK`pi3>GbdPOq8wT_nPI~uO5gw*}0_y{Y5 zUvU=*s2dszCRB+cy&~k_H%6E|^Xa!CHLRJwR%Ynli5O6cUXiRGvlq^fTGUD#j5qkZ z#}4=>5?1~s;p7zBAGf!>AMlq8Z9s=0SmSPvm~#kKmqGF%_kXr5ah8?g?23b@o$yWK z*Zl-}?@^{CqMmk3e0SK@wJcf@B_{o991cxXEi4s_R0uTq`fap)Y1J`3IX^g$=7_sC zWs}2+*cu0IVfylDFFsif)I&(9D_S;h9|yh9%xu1L;wdvYcvQ`V51s3qGbF0VOQO3yK+B zUbJC%v4EY78O%3g)%->4I|X-9)48urJ%uF&&u5wUo7&JEi3hl{ikt?cz33zH*3;*VNp_FUqK&ckE2!6Fj<1fAjVqi_*X-ky&=>K8i{ZMPN z?~m;1ug+O}p9J(LcoT_Zx7>!6DGHyv4)EpSrN+j%`6l6x{d{-7Z z>YS<@+y3;v0zbYtpUCQkD%LrE0cEH(KwsDJ9msuzOc}g0$ESn)k9ymcS^=ar$nLzJ zmZ>6m)usggIVYgsFMAYIe(8R5@G|=g2ur?Yj*-Hey})C_im`dx`((LxKg%8ylKh1D z_T$eYvu2WnAm4vc#1rS3;K-oDbGB<>J$x&wss5db&zaYJK$i*F3S4ie(P4n@>xh+D z%84-KzM#&^Iacfb-fU!$vt7%|AVN!3y6 zT5PldqKsepP-v(rLsYg-Ud8%y(xAR>2Ama#cON5&_Bmee-`Nbms5c#K6ZKR&v92tQ zNb&EWy*SDV`MoIyo*Me>ARu1@JxT<;FfDK61H`E~^~^*}74L@_!-REk4iCUJg*$0^ z@<6C;F}!!3DAsIu1bN+gunEJ?XVo|&_Ih}2_20vHA90@=D&6|$wA`<`I4wa^?Vq&< zg-LD+<56xy(b!b^sYeZc>#Wc9QmM)7^++|191q-P<6v3h-Q@NHQGTb3+K*gb-bSks z%Ic4ZXuyk~o<)}dA3_i3LnjvFmH$fCrdr!Xon4d;rN)lLi~E5$CDR#t6Huf4b&7iN5f&vi*&b+#Tjr>I%xx6TD|1)z-OF0lO(hA7Z@= zU?x>~-A2DI%Cy#PT!L=QXRm;7-(b>htY3V&zlK#Y!vnNV%OTD87_dHHp6Sho>@S5P zSUd`X^&V*9M5_944oP!CLj44KP7&PkK{0n{kj9O`-y_tAFs`24 z23Oq%T=YTkw6og3{6aL_Ukx7Ke@e3%L^%>Q*Q0vML;)Vcn1jQfVO*3t8XP%xsw7@RfyF7R@oDn28|jI07w0ipI}>g{OdqaxUE!Kol-wbg zi+;EhlDui8}~sAT9a`jgXfwX zlZ9!j6DWFUA54hx@?sGNxZQel(uOHfbMFETTh9-#D{v>?j@Gz`0DGybInf+rUWeBf zxXjMY&*wLgHk8ppS;Z$yFu5z|T?~-G>XMijgKiM{D2ua5mEKd}_t=kQ@DoGg78}1@ zW!=F7!NWX}q=3rmro3PK^|EPNaP7(E+Qi#Q?M>T#9z7W2c*3bV2c~N4u$JiuFz&B| z-;;(P@I<=zfTkzsP~DI#Tv7M6M=8&#VA$JeIMRSDz8-luR^zj?89~Ts5atSt+>(-4 z=QVYCHmfKCynQaNU{&qc^PF6F-2KsL{s5L&yRy~UL#fPmF2Fw4QJnW@n!Ev?DLTyY z$9_rrqoekNv{zf6z16gK7Zr7r7e<|Ckk?x4XoHXSn^jM6Jykq$72bPix!Ci{`Xqgs zbKRxTxEJBaTp{@ja7Z764YQ>e*HkN$>I-K(h`RAV8jgACjR+eq|>xDX%tg)2&1 zRbP+WTaC(B+braj0I)Fio_QMBAD9fL=$x1(QNEoM$AXp@YzE=`C^n3K#S-O}vALKX zyOiH8;OlF;iaE%lW<)#>l`+DXVQ#>^)lAsc3+uGm zdgjFYsCJ`@NHxbnyjAa`TTXte)*7hXsN#i8)zlwl?8;wC%hVEmJ6zRu4j8EpYrxlO z6X@oygKuZvNcc4!)&^15Wv`UQLH;JqR;AjH46@3~cc3(j94ppyZ1MzLXjKZv3rb}0 ztAJl5o}tzcFkNB|HNM~TiiZ55Uo%t5Rs|YyGM^E zA?s%78RpRAWKfg8PjO`aW<7=6s#Y?eDPepN$qAV)rjIYlYrjJIAHuie_P8n>ERAM7 zIYVY;tm~CdaOFV5|9N#cURaKlM7Ey!zEI-yWhXk4J6c?&J-S8PWNDC~s9k&YZFvD< zH?jv*A!v2)czz|};{LjLU}632e# z@H7qoLxMZ;Zq6an_2@GDtACFj<@A4z0u!Sit&48_wR+a~SU)W?U(YDg6^0-X zbzbjPe?e?VUxk*45!pxVwPak0u}99P(6&h!hf-QQ>Ke_)MQH9H;G|V(q29zwB5~g$ zrC*fH4-AFa=-uJGh??8D3<8`zw#ESa=Dquk)Q+*HVDUQXEjcV%va_$Po>%JgFTHg` zCArUj4JPtT_{+cJ0O1~~d{JR;`ROn+`kR%Xwbq^#S-Lo2X+W(e{}O#4ANxGokm;^)Hug?5q}i6z8cXsbo@7{G>R$ zm2c3JSH>?IFM3xP2p=M_euuY-d0Qk^bVLHdT^kWxj^jil<7>ET+3=EB;b}G4s5{WO z>4CSb>49j*tTWwhk-97%vB)PeJZ*OX-jHcR2&eoiqja z6O=ChgPhI!n$TvBN)6p+C$?56kvOR$>*nB%_BtcQOP^+6=0@iGmLe3ZuQ$my^R1Ql zu4q{!oJQsjnA-(qw`ur+(uaWC%=-{8W#T#!N}2W1tP1%L)v)ZzV2@;N8E!Lx?mr^< zwnj+G2JX0nyx#E3v?dqcLnlXzdt}woBA?DGR{La6zZqVmy5#0t8ErhmP02i$aQ=2j zD3_!#eyMDbw+Pweu9v*#X(5a-1?%bNzf=e;0ar*s!O~u^wLIDL`YHz-1MbXq1*RES zO{{}A*O<*==TW-ES9SBH&B&5ZXicn@qvfNbg3m9_dHI|*yJNtRyO^Js-$a%foVeTV z;*SkRuF*!UwT-k|)ag;w-#+FCk@)t2JoA*MESIikNmo7SFtPQZfY8ec90jPl(mmoIlf;Jg#O^h5&fcnYq2dj!V zP}rgEiLJu3Sjuw|&%MucnqZg2y5F1iBr7O$zQQi}VbFEe=N(&er-x9O7|eVr@Wq~? zcdAg;gokY0Ki`M39+tlk=HmWoAU4JOo?$i`jFLn1&El90$^Hm?U4b6?6^m%LjizSz z5P^MszA9~uSw2y|Lx38o_7Bg#D)t;V&NlJFAy?e78J8}C`|%5AD^q<{3A$mj)VC(L zoC8CwjtCfg6KNsf8?jqz+ooWiof2AE8Otla{|Cu+pTOHE{Tc zu=h9c$b4cQa|#4Fv)^#>J(FnaW#(_Qi68@K+sM1cD_CKEX+C@n!zbMM_0MUL`#TJJ zw+OQmSBal<;m9|diA z7Yis4kA32P2GJIsGAW%SyJio(aE-azv3@D)4xa5=q1?7hdp)u}D!P-RpjU2au*B#_ zo{jtCA%yo)xQw`Lm8BVxc)ofHcmo+!z2P9!Uy+M+>PXv#599=w?@rt~G_3FRVDewX z3rfF6@?I*s{(M1UCeiJN|CRzGlN-4LSDJn68-m<(nmkjwkZCc4_t{{A+P@c#gUim4 zYQZAFulDR5PQTGzURQD$r6UW^WY;d=<8Ip=M;I{$U2BE2@INlN2zPVEMZSS>%_7Ov zUq|~bG~KZ1y-s={O1@fmlHqgkAWNw*?!=->%GN#Z%nAR?AEt57v7@qs2LtU%L!|h+ zan<~zHl_rhXwCA9Ndv)*ODz~JDjq>~k?^!$i8?13hiH0JGsP#jt>iv$4WcHcq0jIB z{VH1ZBIIWp-_W|BlFQm=!j{r=_2?PcXi`mcPzeeL)>FTfzTw4@1}Jwmn?_VFGQ=!h zwQv!&y7FHT9SIQ<8jPKk)!vg3;;aQmj;n)mDy@wHl=#gj-y*e>(avlS6KY zGpqh1>{##jbY;XWj^ine&k234VRhrQl0LtzS!L@5kMn{~39h>L;fTB0G^bg}Yddyh z2=^7Tw6~uvN`Bo?v_l;v&SdmNmTn;jmgSdmd3L`ktyeZ9+|1RqT0Udavrw9JhW|b2 zaAdaq4e$hx<`p1ki}x^tdI`O?sxzCFO;59K20yxU>MXWu;Gy!t6PBkUO!5PCoCkw3 z^45nRn(E7vttCbmz}a7sj<}f9O1t&GEjfyHLYRe^hxsWzW%w$b6;*u_l>ZM6H~%W|}Gld}vBC+m;;8PYUf zq&juWmF|5w68*pv+7$CHvTm4)^HEVa!PhhF+CSaduFYtpANg#JI6!Z{rU^#ER{4rd z$_`2Xo;wU4a_*<7j7Yv;FN-&ft}9SV@SWi<00l_O=sMjN2Tf{CZ z&EtP3BDDHrYUEDjmTt~u-P4QeKQwq>N`cQKWt^=Wg)6A&UjH&{mC&YZ+QBh@-Hpnf zY5oRX1qT$4DvTEsw@mw~h)kO87RAUlut9A{;+fmTv#&?=dpYPw=v%%^X7A16IX7Qx z(zIXVQ;o3%b31&EEDm_lD*u$WckLEZq3h?=Kh=7ZxdDdIp37tkcADoNxBtXc89e;$ z&R68nR&flA9@pBz+LAvw)ZV`Rd^F`+N*}9atPLGXtl-TW@3ReMnebxZAK$dQhCfTcG+YjD0lECP_G(WM{-!C$+6EA-Fm${}z z$FbJv3Uk-mtlO5`GWT|m%&~YY$yrVDDl9w7>h-q8?`^y$lG7>s$m%&K&$f@%1K)gW{Bm__*PC+s7>+I~A(L$Pn&HA|JUu z#fL2NEQ)_+40Sq_M+o036CqfIjS<)Wfta?AwxW11fuJ?&bI(cy4Bb#F^ZT33mA8XB z)*9tw+l~`zmx@$VqpQAphFPrCSimTMc2f=Cz{&fdHmlKoMfZ2RBmb01uxDU)2j7Y( z$Ud`~^}wG@Nv&|a$bnYT=GUOTkbPZ{f{K0-666?cRf>sYbL)}d)c)f%|Ei`W%3O*> zuZ8=zxS~d-Qmq0Ot^C6njuRO%4_~O-6$hx7 zh6Rq|)dHXYs4RiJ@P3U1TK0$W10T`pG|pkSPYz$*D~2yS#mbc$kE(Y$*&wLI3hK-( z<9$r>HtgSn^hW1&_gc1{P9-6rTH2Q>URTP=C$^ zy03WPgW}j0t-d1JBdscC8K5YN87^1QT&@9MBVusZg{e}QFiqP1xx}IS%7qt7;hPI~ ziV`oxKFQNO4=16uh+fvX>C%^2J{zL>Qc|#4qP5WN?J=*c#4kSoFuk{vTJ3VAtF~rs zRnu|a=A`?liZOL?Z zXUBWNsPTiykz3mQ0sfS_8Dwp=FMAnM8W$KZ#yf*WVLryN$vUOiUO}3_bPR#r<$N6% zqw3X4*N1LZplD1J{trv%9?#_e|Nrvl9jWA8Dzcoyc#}iU#pW2Ia@azV!!RP}V{|fe zn!}W1h7e2GCN)IP%V8rjqMVOmbDHDt^7;P$uUl8wUf1*WJUkxv=W*Z>+5lsIUZ&;x z)+t^G3}>e8;4_Oh;LdaukY32Hy}jm-M;l3)!_$c`>fP6TmR*q1#hV0U^gStBP*GCt zbu-LxTuR!))(#)1{-a;M6KV0omj>OKWwyAMfi{NT0P-p^wMp!ssBXwGj!pus=K^S3KfdLT=@JpvD1$F8vCMMc7uERv7Xhgh3`fc)*K)hbAzMrq@FJR8FQ0{1zSD^@Mlw7&x+eqcW&VjY*??^p z{^cg}i!Z2ebi%*Bl9v#oau8-}e@?eQ6H9A-34Bm&&EGDdQ*TVor(W(?cnRCp_CHfQ zbsEu6K@Xx%4i0kT^&dr5j}aMz5ikmI{WLE&e0F1c(mgj&h|r>T^30N24^Q;=H``f$ zmhi%ChrSlRHPdlF3~AbY8PwCp$Te(~IBrToY+OMa=fj0g!-nGNx5L4!E<(JTHoH_c ze3dn`o&&aE*=>~QG2S0sxpZ#gW1m0for5+eF6Eq6wZbu(``4}D;MkPiR%EUIR%H~) zqrP;$J2_4bJ$F%L{!76Vw-1MVSCXzz*z*6BvX97|c%X7*CemTxpL#JNYd^nP*30$i z2jIMOFNf28#6No&j-&{g|1Eb%qt!d5wk*w<5UT**2OE`*S7VSTA$+w~K$)sq3plS2EjV!O^|TV|wLIw`7oI5zeHl{&dk9oP z&)JjefGTcYDWz+`1bEd;*h zBodsOoOk-KTz5ZhUdwXQH$RbAos8N1_JBCNfpW zPk687GxgHHs-1vLkSL2xlUB%bxpdG{YB~eWh__J*U#Nf zsoQZ7bx@QiA~iYdSC#Pl($WE;Eu|NzyRXC)74Em6opXGil$n^LsNMWt+~E{;OMK#4 z^OYbSCL7*1y40=Pg#O~hFOovgTx+UYPgqi;)NfVXB$=K{y0Q@l_4}~3^Q2d2YntoG zsp9kOe=7Kyv>hIXiI#f?8giGc$@`})GKrIx)h;aGaMn5;jCdQ?&l+@4)aLqve`bfM=l_*SIu7dTKoSuYHZ1Id7aL4pE=> zMWPuONQPQ_y&CCji5J-K+k2bbhT17&0kh_o9KzYP$dByLNXDl7lU!76fNa~VgiAX< z#Pi5kiZpNobhqS3lG_(mSy=x|PN&WWsfPLOHTp$^bThSjZqemY-xv9o7^Rk7Nq=#z zb)2j5enER%ypK_*Yw}p&ki&T1S2f_`R5N7x&P3oEe#i+Y66`}$Qwlaf+{LcyFkP6T zoYr0WkO^z_(-7_=;ti8p%|fg1oUoDm-f*kS^Vcf9Hj)Vr$gn^U`yC(NOJaE)e^Hyp z^YyW%tx@eS9Cbl6To>eILV(Y9LB!>+F8r9Hc(+su%WI;EH83%*b<10 z$3T7;K>4pJ46dCop-*_S#x(2T)Gwxws)s-!F7i>}O|l6Y`ZHlV?Vcf8-qcDRuy8N+ zUZ_>oDNQM)LOW;kIAl_Xu5gBkL4_hkS$M=K@b4R*+r8+q@hnMNF80x-Cyos#Dis&Y z-A{Q;P6JAj*846?Mr7#!DoM{((83i)xly#Z|f)7i;s#QAP9d>&+F?VOyf)+D41{#GA% zuflVg>M{rJbIfxaV!F;XUs@Z|a+hfG&R9Y8ewka{DRTXeP}8A~UUP&iNEI1h&6QTE z8jYVW{~>*8nfwHEKVm@m#t`~<=ob6w>@xAYM=(Ws#HNg&}yCioe3py z?ubW99w=P~Nm4sp+gZ@z988!bG&fNOeWbls$aLVY z;Tm=hw-4}#ufDTrKtv3uF!yXjlW$g|b~K*Di&dHh$F z`GfL*f#2zJ{`NH|=1J*|IZID79NBekz$O-OCfu z(=+)}S;Q2ZY}aejDeP3_b~j&(@q=;>ke^&h&eJzMQ$zk)W6CBlv|oS~0Ti62nCel5 zy9EoNF%T8T#*YdJ5tH*OVWnVM0_|KMG0 zYs~t!VY3|k#eJIV7YZnkB7iA|gj}14 z1z^*GcZL$y`n%a%#nOBsb=dt$bgoo$C_MGhs^TCOhaXfbR4Xy@O@Fl|XO5svy2IEoRL^$K$>>fS5PfTmyO)9S7DPNtXNnxRt`%7sScIIf8I%GVGAVg|fAZl; zF6hS@?4O}tjixLxiRhxV{yG5_m}BVen-7>I58T+`l4ntHr3-4_+ZlU7#=}V#H(XAB znUhd{x&1zE{|^X45Ay8hPW-gs!G_A@WsYWWZV0hpPukgkB`!H#iPVD#U=w??bL{iaJ#y=YPHD z?;c_&OHD}Z_QxH7*?FD9lH4gAhL+UI|!x&H1`wDXzheL&NY@|hZoeE-ix%H|beVSMD$FVln_!`kpALcB)9Q%FmNgv6(ArB(K7!fP+9 z2cmC2jEwdq@FB2t^!7mNcz>orJ51sivt&AiM{tDdf$+URMe~;Z?NhcH7`{+wC8Dro z>kTNSfi&9G>4o9~A6 z)qMayk7uZ=!y+7!x3=W(ggY>8SJvcNV03jk9Jdk)>jIWWvKMVO0~n=Y8w&k~K9oD{tEWA=Qci z2V1%NY-qG@)8;!wJ-7GW5U3QgjGQ^x|5DOf0(Qk0c3}WZy0KHa#?L3p=UMNPEmS~LC|ML1`b(tNrFj=wx{r^k%mlLLJc_=#$`Y$>v>fw%+FKkfPH2=~xt4p910& z^!o9^)xC7ZMxwkO$U%Q}4fvCjB--FY5c8+2nSrB49%)m_12*OPu;+tl^7?wBO_bXW z0VRL9t!HxPTHAvuP*cs&wVrv7+@KE-j?~Rz11&d^JWD$H`{LGjFRC(jpWNun%0FaA z|IPf0I{`%JKY)Wh!a}#o5l$-RveVZ@=*UysM-qP~TRe)mDRyVhUjHT^H#v#)8oI}9 z`9LZSRV#cPK6YRzZ2#FQt5+pb>fF7_4g8wN!%KQT?Tnh>CF((fdM+O*1JwR z{UT%oxdpS+zWKeM7@4-<1xYTP3T9V0R`eoXl&8Ubk%5H0^kr^J!mY-`g&&#znjMn? z5hsaAhXCV9F^$=Jwc_o*i50~jf?6#%tW#MIipOekEL(S9#EeE z&4i_V=)@OFP=JzXI2-y_LOq+3{v!;d%OtS0uY6?Gk%Gi$SwzpvoBthKmbA=)*}0nT z0G+D-PNul4wJ(8)@GoDu+Vqe=kkWH?C3ES!?5XbC_zy~Dm;7)xOk)tme> zPQL{o1?gWonY?Xc6%YEZV^uVah0x9_IWBu_$Zu=#FPFsi+Q4Z)k;NMmZc9}-2eQ2@ zD=K`J^uzJd!78o(z}F;sr(b`i>h|`~E77pIVc$>+T=dohD>lrhj=Cf9Uk7@8h*?xs z5#eZz`ROSK3c`WnEa}7#Qik%pyK{xfK2q$VmlOm-E?{-Cq*3~Rv(sm|94OM@MtU7E zO`&B1E~Isy!&RR7m=mJ67j@=MEKOG;SHk;6!D z^vK(5@|Dw)ar3Pjb;wu5^mfQl1VT^%6E)N`?)b%VxT9)fvb}m41)&5H9M|`fricWw zhmT_Hex?l79zJe6?;fEX1Lg8jSM+Cqzt+z3_Xx!0C~-K)SR_SYCO6UTfAL!T^ zs>>RoI6LD5yz3*k_I|tgdyM;CxI2mnu~Jqzw#|_;^K8gapz}oc=4%(L&yOcU4VFCT zF&dVdx-P7$V(-LxOJ8{6a_@}BMs8it;rC6UHorc0$OLGH?p66~RE1vq=gSYT6i8h*q1-wLX(vWo-i zn;mN%6K}7;;(%_^@hv_LGN5av0j*mpP*w1R0&hFqw_f#9$nThJNQ{aeE7pUz{`y*5 zK12c}yv#3qvgiedF5*`(S`k_10DD=8I=$i?*TA!OhwmkAZ3?;dAh%cNl;EyT)Ox(T zrm#sMS>wI1`Kj<}Hnq&Dp^;udDR`LWlnlg=r^fe-rdk`~zV-Lt2otsg%bsIhOw8GU z$W#RQ;$|@|GGmX<*+17vU0uj+sRVq+oyh5xh*>R%UFkn40j|n~LEF5q=?w56`kg$Q z|3zG6VFo&3G42LoiK+=3_n57a)>S!V1yO#+{dadYganQzDvf$24<fEWy3Ej4%o_O2X)`Aw z(3%Y?L}P6-H!mQ|<7=>7nLE6>dtL{CW<4Ds?^Y9lB*bLOS3c-h;1B^IKxCyw^|G}p zp4#^N*!J|UQ*3g1oEW)bvrqz-8AYORMUb8|&It!wkHaR%wWRC)ekmJF1sNohFKLT1D-u(NeAQHJ9D6LfRx;j@JAh)f6X_Ot@DIR(dkz5M2DEM??CEiEOTCh^hS<7jDy&Ys{@M@p#!+PJn&u|i1OGzm zWLOf1SpQf~zv*JcHG#2Y>Sky(gnr&&)%=ckm~NOprnbFpkr!aP@i?ZcD*`txkd$=D zP`?2eMCKtOXV1YZKsiDFE=DG9Q$tqt%5=L#^;uKyFNS6T1+5<*eHol&Yq0jY_bY*Kdtwzq^TG0zg*_-{{?uet=Ib`eAaTP|9B$m{BKIdNg|N%O{Gj+@G`G z23NTcCnuRKg9?d<@Rs6x`B9>L53~LSw=2S;=b{W->h4L?+*a!B7HPp{w+2Xle^y`a z?Kode{fc|=N1^>jTtqqR?cQeMUf2?<4Iit(u*X3qXigX4=(@okvfr2Y*gq?SpbzFR zM;&AI{(Xh5@g7tWy_t%;mD=4Q81(C4v$io;fxOz>dF@R5j#7Nfr0CYCfQ7P>cSoFM z1VAw!ZQ;Q?ktf@CU(K2U$whM9?;21b&5!9}|FyW<5h6?Xh3Q@RoRf2qStOwcwa_%01qY?Vs)Y(dIktMR$=qg^gFZDxC&#-Qj z?j_xO{d=tgjR5$3%z<0dLlaPP(VpZnb2{C*tlxO-cU)g> ziT%+)YQ%6$Uv*gYHG7K<*!kYk;TJEz18%-%ZBbY&TKmx97KcT zZk~jQtR*B#D>}t3-E8slG*;P5WGMOXPjhf&<#Ymsr zw;q>}m<$q8*@aNN>=c@;Yu)_qGuyj-qB5r1+TpW9gNxmPC2In$m`C3_&CS~Eh6pt5 zO)FYjhSU2~XW)XDwecs+mk1CE+-70y^IDfgDC{LL46$dqdePz!b9T#7<@nJ zDPT=*@%@|t-m$`%cH>%fmZUcC5Wp&VSG-(s5E2;X-S?TU4`0PW)>k+svtii-j=XiX zqyChs^RIxQ@oP#+tsWf@Mbv6DSGOmVElYCzO~dvk#T28G3E1htcD^&%k846njuK+U zlY=g`#GKm4;gchL1~3sp!p0N1dNwO&XU+IEp;z0G7mYKv1HnF-yQ6$~Zymk1>xSH} zH8+o~U}oPl{=xD{eQb>}zAtefh)`dSz{0b5uCDC+bEKebL%0kcYLxY)f}m24Fq;qW~j(9th0?Q->JJ_?$UE zB!U!G9r#Dr>s|k(w7j!*JBsxgK`=H>BlNkoeT4$~^9vya=y~Rb@hc zk&^rH0DW-5bH8KJe!_gwsnS;mGu)N3hUA(Sg`aMpCfwglc6&?-MFX{j@sWu{i^)|5 zN`#>2Y8H%MJgW4icIqfsk*2}{Ka0FuLPvr+3&;$|&GK2_-D&C#Yl-QK>@*b_-E=2e zy+c-Se%v>m&7a?N#s(+6Q46K7(<7#k9{OVp3V%G6`<)EFT_-HcuW2-1>LU&$L30bR z@)eAwUwklJ#a@suyf&P50+1L5o+26wc)bzD&HmQ!?>kr%zW=z1m$mg?`F- zmJz|&b6)Hm0qulb0)s!Vk_i3PoM#*c;KC+IKdR6n>nr~44(nid#Zv5WyIq>+Yme}8 z1ni=Jhj`k`1>Kd<-tZ+QHR~1&zF<12Jfnn!sOt!ZBG`?qTl1YJpg=>0^|ZLpbwBao#qzGsxZ&GXd(ePfvR18 zWGorc+P}t&80Ql`UZ`q3shUIzi$Bz9heBAzWL&Zr*l6uUR1w)5l9}jdY*XWroe^Sc-idx~g?&V3N(!D;^ zxiRdrtF9t12K{_EpHUg%8us@|{+G^VE7{a>*c*=qA%{P>FY$Q9S%<#j>Oqbdff15o z5(Gc#;lU+BT&l5{m+(JXNXw@Pm#<9mR7I5BVzZr@Z|=~i*Cq2RU}q;e{__`j#p*X- z^@aC@&6*W8SOp&fHRB{>_a2wG63}A#kH!AR0YHx_4)tbT&w8_VGe!X^? zu2WHk@)+Agb3)$F^yi7QuO#2s%N;Tb(;17?N{3gA_s$jXS+fKyL!e<3{P}a(SzPH3 zpCBdc+@Lo>e$HBSgIZpgc%i#NDntYOA3`uu2&NZ4Noa2f>@j9D)?Wx7%L~f04;{@{ z`aMZBYB{yhKB7K*CZb7*-atxoNj2d1uW&$e;2EthT$rc%)Am1lU55)e5C2_F7jln z3kEZnd=FOXLy!o{0o>)9vZC>37>d)NGP2tO&6Brp6OLiMt2H-}$&Ui`Y=<@t)7tgz zH;?fH4}8n`==y^%#@bbo$i9 zGx~bVN#AGK3(Y`rqRnzoKPoxXoMijeU{YQtr5?O&bR#R??nNW^ri8Q8e>OtLJ$HZB zq--i=W&Qp==^p3MV2+rdh3V2h5S;exAPT=FFqfxIkaj_Z>j@mN78yj|7ARo4Cpmp3nP94`M48PJ%UC4y3 z=)&n&8NOV{{wf~cTAVQfF9QnNv{?}8_VcZqCoZL1=xhuG072S3&#xo0C~7S-MM%;M zK=icoJ+ooWRZ)|QC7Xdh`;)s6BSqQmwGS-oOO@vM9H{{nt-)3k@Es;7sA#izA3%p7 z=(-U0i3Cv-J|tx4=KGR@jW^P7RbQS|rVqZ}#34gx9}bM23j{!6cLt4t*W8lIPCCbW z6cQG7$x09I{DMDskMLPX-*V?xzY0~vJ{=6lA}O;TchONZBQ$*paB4c>@#zFR&l^c* zHCl$z(rD3p$%jgja|U8r+MIw4cWdmsZKpd$%7I*Wsf>*Eg-XMyEw9ooDa4bvc~h|`A7g&HSUq^G(*8n~ND#-e+^w_>r>iW=duH0 z-o2h0gUG%J9oAG@e{I7CzSC(1p@voj4tGdcfA*LPt5sQ&ZfhNCDPYR`kLbOLjc~O#f-{q)}bVX%s8a*PB#ndfM%#)T2cT(%;G-%G*gVW3Q$W^4G zr5Sp=aGIE)YU=wOADEBZ9eF~=5!UOhXSdsR{`&1sZHY;L1VE8K;ta0;GJVw>t@!W$ zgVb}Ami_IalZ=(&R5W^#C25m7xoGFX|3UgWnWJJ)gp~`FoDv|rsQLR*->vOQ-u7Xe zHTgPq_=qWt(NX8hJmL>JW>62aPwlc}8-mZl_sTZv`Y@2pd-)A!4M~X-Y7)HPC_l6v zlSUHb@!~9UBtA*9qsSk78zst(@6K~6>%K&9NHV$m7BNdn*-zZ2DwkMJYU4KHdnVaC zgnj_3kYoYGj^}HN7jDD>7L`1#Wvt>rFIZpB+R+S6C2Sm8$oKs^2mn`_3_J!Zt2@G`%R}wfT6u>w z_sRyM-u(cNP2vl0&iWPS1lHGIxU=%f z!hjvBK!2H&kDuPYZ?u?LbqH^6YpYrhcF*x^gY(+~bkN$fN2*v4(Y=+5{P5On)h4rP zSWB^6uUtPL#~;`F7pD6Br~%=I6tmu`LPV+zZhrk*WXTAv!Ng9#x26EhJ_uTV2>wX0 zl)QPD;t_~nN61fHL`K-}J_IieHW=+dM%4@7p9TT0C zJ|vq`6c#8x8+z?p!`Z~Q;2knP&f~{Y2$DyfZ~CK<6cV?UveUv)tPUAstk;tykw$bZ zsq7M7XW?39NwL}TV?xvg<(F5p9@Mne&AgKKsfgToo*sD9gSYMh`fs7?=KMJi4a*8r zu~_ul+Ji*T9|!w&K#2BAM)$lRf$v zS$2qD(!PIaLf&Qf7ukmRtPp~cDif~D;YFv-e|p4vEWNlAE6}vwwbl!3F=4zy&t{dN zY+;$Za~rvV@~_s3Q^H1GX}geqZ7pjDe3F~NqO>`?SG%7)Zg$pgBP43wS&C+}c#fH5 z#(hb*aU0kL(_Z*k=v-V2hgAMK)@W8}9q{Xgg;`jeKL;}1$SrTCijR}$2P>vRW!?-+JR>s&bkpYfe{@mdpVp1F>qbO(u4`9Q4JiZuRxjl}9ksHK zO}9TxaFNg0f@Du!kd#dUKm1NHo}kOF6hl3D59>W9228y=eb0O4)sHc+RP*SxyK~lc zyD%I+)$`fi2HJA3flSbQd@tw`>{ys|vgYv+s}qY)Bq}9yEg#Sz=TW65oA^%Zg0ye- zj8$ES#CNFOqnnfZ1w=4DviskaXoXvakB>w9Jzy5~lVg7@1OHwN(=l5i-fo zT`JxAjwV+W{{MS>5sdol`4`Q!#ord6?ncwXi{+c7&zi}2qR(|_F7d3Hhh;LZM2;!* z8l?zvcwwsORnOmIdxcLaoUAKNGJGOgL{inNuLZ$(EErHz-^9=1q2y#$7)P}<9oAYM zU=cp8ovjn%g8W|RE#o+D)bx{0b|vj5h23n? zBp=?24t5nmq)mWtr1pL6g7$}=m*aEhD#CV%Nq;_O2T_zIuMakCK=OZ_(6IuIxe?B6 zP(`ljSb-P#!M(M`O0ME4-?Gz-YN70vm#!+x+GvN{4mAlLit&)Ig0H%2_-c(}{wMxXb=p_xMgn_#t&(0rmtO zro99Da($SO&qcn)5%Rvo_Z2}dgNgHT+{gCfAqz$dsUgwu-R?yO33i1d(l6BW&#*6x zG5t#V{~qQDbaS4CtjS-s^t#y(u`#bBoTwmELIBGa@dgk+fXz4>uRw;UN; z%DFWmh@7lYL0|zcwoLM~;RtTx&X@nzHYuLt=+~y3#Sy@aYVF$PO>Hr=i~O2^Boc(OdBm}=cCYCgG=`k=^l`@nAZr@wBv{-~ztz&j~NRalqdej%w? zqfB~2>e6Ih)mV5zYdd+Mmri!)8ZThJeU!GNJkZlIouBqK_BiI#jR+RS$uZB8QAi=F zDQ(d}0>saG9obwE+agqV`Ou=fg!N@GZ4@iT&<-cdEB0TQUv07QoieO88n3f-QPizR zdlD?}hCqDy;jYCa&#VDkjb@Zhm?G^uF3LzDNL#79YV*shg)4%A*bvnBdt?P2+gCZZ z2EBroDdEC?^^2W$vzxDxkgnN-5JRrd5+4C>v%=ZMp-MgNaX0O+a_Z~v!O8%l=V4K# zW~ZT)u_KnR?w3@tkq}#1jb_TWnDk$dqF0&8>v-v>+c=H8rF~m`FWw~+tJ-o^ zMOE_OBYm5O+Qci%b1hX8PoDE^+{_hROJ4wn=k>;#iOrtEHd#CoVx{0bqmk7eg8P!$ zfeF=q#V#D#=WoyoBHpVlWZs=RXZ9p!>Ip^n`*q=BcnkCHFSfHVG;}It0 zk?1HT+(O&;_>V5rc`K>`CEWROLOIm83Q=YxtPC@3hO5lE=k+4P`5PX|S--Pg?~6*= zc|Hkks)+jS8k(KAN@z*{k!Rz?kUKeUYtH#@AXwKf))BT^|3uRnUS63fMn5DgR*)o$ zBICZx5i0IVX^Pe>+gxxIEjG&8NP>I$c%EP6ZW4&dav*sRoAKEJn+}9ImnkFzi@ZUT z8rvNE4LHS%`%LnL2RfJNK_!${+Gqu8!Fo+gNN`Hnu2%sUU3}mGW%!9u`ew#mC2`9V zBF|i(yFSUXTBF|4lQo6W=XpOEbeS|f&i`a?dDdh;LL1U%wVpGhui*cen3oS5$=g@z znH0j!x|b)8RRi*!uUo()0CDQUfx8||L)RQ7Zrg{|*%@l2dHJ9*xaOPy%V zI#MN9Rp3_0M6I?TK1$F#k5g@~6q7i={1|ACL3s~Nw-^p(K>FytBTsrkRR@icn-RkR&u zJP-5EIJtCHsNFa>?(#V=XPJ;R9Ko1GAJT>I`V7+`!J#_9_Otn!Y+noYUjhA(vUNp` z_|GvDYikN4`2??w#e$Y=2ZB>C)9C1TM$ocg-v9JgqBH;FyF`R=5r?^jMaZX5EBN5| zi}S&t*y6xZ$VbRyiFk7+Y~-CCn`YJ+?StfKd(M-(Ux;BJ@fGI7Xr_8}jdo1gwal*r zN2|8-GENXjhQMrcpxg3PAwdy3n_|5eiA*XoA#cTxc`2HPG*=AmG^2SrGP4NIt?}*Nr#FVbfZLfb`4V-h)$31qy9|UtvQM|8 zOoflrw?DA*whLxq>sSfJMJ^zxA2c7!1jB{+U;%oB(#zmNmLpRvY_1>xfHk~3>SY}b zXpK*ZMLgC7Jo+@i2v=tk8Fhw$a}a<&Z=5pn-KEuCdXwFDJsK3$?rkJ;m={^8*!Goi zWpXt?&50JaQ^r7^DJKx!iWZCZoG z(zdgD0Am&@5VQSZXQmdGBTTZ)c!H~Ar)317%D+c>Q)u;&ku=wVJ(L!>r z|LSxKJLY;I@QFT+u-4YQEd@oz-T3^=YJ|CDrv%kebcXMe9h|3D>jr$66fd~Zg*KXU7ry2(*3 z(a-I;8oRz=+o-t=?B2wEOj>_Ic)ayhI3jUSsSq+xZkX_1g1Xa0c5c@>qnGxjO1>&#l!P-PV*d5V%6;h5g| zY2O++4dW&`%Ksxyguc})E4C=V-4Eh*0f8^8RMys4?I+Mz1p5Q3`je6gmj@4a54IZf zkKoQzRv=@^*l#FKTRB>5p>qc4?9tHdU3q0g7$3D_`fuamK__?(B+x~YNRgNKJIi~9 zn?v~aU`TBQ3HQm-z6)4?kp~z)_|_CJn$c|=cYbvGQ9&*jkrgoAbol5|$JdPwQw>O4 z0)XYBCBT9uZ@0$43c@BPumNy9hto8EY3de6_A*P4<@^g~j`XPsy}rWtTJtRGj+9Ys z5XJY^>iS%UlH&N6-=-5UEvs!Vj7i*(*6_51<#>D+=9qgEp|XozA?D3IBXxMPQWKj` ztBd)BBTn z6|WTcZ+S$5-^)N_+Hep*^mRFqc_G2Jp&tf93n0gfWi*z95!#t+kAb>7{+jw3dzr!hE|~kp&?RM!P|&d4x5zjJ0WdY2PdwqaH@4N5&yk#i^T8)(phcG%<71W{%Wgm@I=w7<>9*J{N{+S zrKsctB^j*e9Jk&%97;g6jH`KiOHOSQPhiis4-P8*g7Eb-|$I`}*U_r3O zSkl$#-V>*oLNc=@kjUR$U?qvP?Fzk7mKb+CW3P|S_&9T{($XOsIuR0!5=W*Wbt7-a5lwpChb$qoaWKV&2Mg~~Dl8-1CH0!v7v)Y5% zeD3~`K}^E9jdb~n`$xoD}BsA@j54`SDDm#L0($mOkip-k7)tD+>kt|qHp=)b#mAp44-nOhIu-;l7tXj4VAq@TK4 zkEQTiX3xzBt(eRb!I6UuTyu|ECIjwM38CSFiX-DkH{}svUeM05#W=gN>A9dsrvz@& z{KKCBHfi3G#FO=d(7LUOD`8Fi2&eLIg>Wmf*73dJ*Lh%+$D!Bm-G*?HeX8l&*4KY{ z1R_%)rBE-4Pp*f=C(W9+pv}VBESsQ&y3c`QPBOg0#eq>*F6Mo`8)KXU3T0f}yI2x; zjQL>@A*v|HWqH+{=`Ih_$Lx-~n87P5_JLMP4emT|cEC7m>wVbLy{=~|M@umUTr2B0 zmD}wEqU2{2R{~6HMc}Q^Bwl*%f)AzoW$h5d9jy>RC^0eKS_^tKrXe|87UdYeOuTAZ z_v1e3JND}$FU?vYDDG>j&%J)8iPkL4g){T4C@ih&m;DV-xcHz1~}a2Mtt|L=@Y1o`n_GVbw9c3=x0QyDr>#%Pknt! z2E;3grya+u0TFJ{Vi5Xv`ervQM^&7X%-ijY^2W~EFr2Q#8)({&@5q^zV)p~6(1%S{ zKB~f)QldNR;c2fWnleTOnGjNofzP}Zec7`Hw0ZxuzYY|7E4I~**>d3j-;+;N)bzko zPplrNw+Os>eg#dw_knoJ62Q(ZWlEaP$F2~m{y%i4?5s=$6l9NeUE@Ne$E}nTx2+#~ zL+_YgI5Ngqr-S$?y0^uf6)ul3&NA3;(`|;ZuEvf%hFY}eOlmlxAr&%YXoxo1nQ$^74@e%eR7`X2 zT2at&Og995Un2JRa9@`PWNX|^ZhS-*B&Ux$6S=?Wq`n+V)wi_6%1j_@e_?UyaaJ1G zRGC6uV)K5@Cfev0BGTs?s1zJs6a;>mUVsz@MvLZFvkXOD>e{VcZ2qC-%F5xvN_NzP zz;&uo3E9|p@a3QnfVI&t|L8GaE)E$%@UC4nkE`vYN8$y0>C#7S82#1eQXFYK5c&6zIiK|qbbLWt0TYB^->$vfqT4}gccXA zd2Up`2#m6eeH%3fq-_JyBbZM+3*`pAp9hlcr-3`g3@Co?#9RBQ<^wyWA6E7B<25m# z`LsWKKg>XV7dOE43=e)08YBzc)Qk>qSw1%nqu4NBEFR~&bsG4OtO4;SJzpl?_BwUM zmQbN~9uS%q(C)Z>=b~l5et*4mguHYPvh(m%_UPuFe38RvPXQIHSB=w~&0C+y7Ijb- zuo#*=Uzhj_7@14)Yz-#ySoZHB>+azbPvgIzBjgmSm@|{#IaXgpwBr{9QTlVOWAkeJEAG_5Z|jD;NWF1q(2F4yt%kOw267Zlf6PPHP}> z_6iX;RV$*fZ92Z+CQ1vFJT*^rDLK^oI8^WT)4HNnj)qvd5k{(}Rm=(D#*mtopN744 z9(wC>^0NPe;Z_B9$TKLL+VtXJZV4xO0QM&=1sl;3#<|eMTei#|cmj6}N;~v@Z7{2jx=}rJ<-kz+{zx_99NNn2dfcET_Y8TsqbTmVHVi~fsYaG$6 zm~V@RW%K}*&+4;O?&-#g07b@%@8s7I<3Z#ST~E8KPDRHQ@Lyp|?MJd^W{9P<;YA5`<#>aw=H zytLL^nMI6#;MBj_MzLi9HxM5Sq7@hQSMVI{vwG(`4YczT5*CvBkL6Jqu_>%3d5T51&spQ{c)}Y;->8Fw#}7bNHpt zD(IRo$=40_aa+Hy_*m(KLx|z;AkY0d4xBq6tKRcWWHVew%C<_$#f)6TRD;OG1KAq>Z8#Kq}&h-%iiG>3ainw=c zlh#$BOx5M*{1zTzZq6)BzqIZeYJIpjN(~R#S8FyG!dVKQC{3Z5pN#qeQPFX_f8YukO}_xPPXgR7Qaa7Hiua$$ol+$OYBxXdEdaRMlJ>)*kfS}j<-6!k_{cW1CY zWy^_DuKl`RTebuuaya9AAQcJt<&AZgfbcc14)j&}8PgR0ap|$4!7aD&Dt4LPEd>vu zYh&jY#FfPqu~DA&yN|d3ygJMWzSyyaziGawy&c?pZ1hEcUkm*jrOGqr4(RZ!su|jt z4gj#d&8XJd1Y>?wiwUlTKe4vo=@Bl-G8_jN8DHH0E-ZYNui!^!1eVr?+lM!9z#S&= zx0BX*jV>yM7WDuVd==h2NmDzJf%J`hgSo|?-9v0+7UTa$~;E9x3kIP2f*<&S+Zzrw;`_#j0 z)=eqM0hsMV@XGx`g=XBOgO=fXjcPEl=NeVnVCDlSJ#?zOzn&CMA*OdW=#h7U&P5ob zQ@Zw-)Nyg=uJ(W_B8ZjEBM#o@uJcs-Hd;WmGKb*rk z=N;Gey1IAhPwmmlJ;~fWaACr^@?;XXJ3NOFX!7GF4QF{Wyrc%0J>_3+&S|d>JR47g zMRSQ5S`2-b*<4}>+F|JE7?uib&U_U%G?|90vomJGdt!YaIr*Dxn6#SYhSa@sUPD&$ zm;oIv9O41!@wEcKf+8Ka9;%%bPULMFja$fM%bp~<@%27Wl#<>3em`uVtCn^nE%Cr@ zoGNhpL#`e0slU>iEOCPs828W}IjNjYxhw8jP+;;Az_Ouq5g~?vMi*~ndGb!oRiqZd zkrD&lj$++@kw7=vBOuo8wDhiJ&3v`eF?)*8KeA8Ca1k8R% z0)WbU56r9suhI|Lr3@ON4EzU>t_n~M2CiHApzi0w!PXk3dE=u%Mixly3%`fU-@R1> zro>-nQTwL*pgJf6x$YDC?nwH^Gy8jN@ zR~V^Q4@rwd1A4oz(#0TO)Gl$A-#hD8;h)qTcFh6gfh^}(gy!X80kQcOpb(GmyfDgp z|MNOz2pW>RH=~d5+2wv!$&xG_ckFSSW4vReq3|vBRK7vnb#b&}KPzxrjOGFA zp{t1!H>zKlC6aHyT?kn*{gzLGG1l54?wM<*DF@eG@iksV+OK~y;Z3I+R9E0^99hj9 zsnqrPL5m}o+kRho;msONTw9(6WjrYFoD~NWZAO@cljA(1 z%YVwu_ohvp^48kKvh=^^$9+uhs}Y`<(`sA#_*MP%M-YRJ^i`}g>fR!|^|M5N1sC>V zB4{>i4vrji1lHx~=h)@zJ-e^(@XPiSY;Y4$caq}EqGMj3Oy&i<~DPLIgSz%qhdO}E^q0s7w*U6KKth&#h zJzLN1V0;6}?TSvvN={pB5a)|v%v4fm?pWZ`v+PfSn}k4TqJ2TImz+972u`@jKKErt zQ@#y%YV-hKU!LL!6O+H^L?n%??O(^WBEnC(%t}m@QFW)bb4#s>o+~o_7Q)t-vu)cD814=wp zlPKg%0Ze_*v#ss}D!5@cqX%+UwB_KTD|^S94;iOo`|`B@W`yXGwC7trg}?-bDXq{)&2Q z;=k*{xpe<&pn4rGlH&j^ZJ~PRB6f6k;xOT~S~+;>nv;#{eSXHIr-_{(>R!N{e4H@K zx}wwu{qNI_&r5f5qXjkp^B4ij=h|NzR?)vATcgB{)CIj&BzE&MkCdBAArO#b(RvQMWlDin z3A!G=&0ncV9d2iqf^`(Qs5JwHv!ZS-1!^L2CUZ{ecD3I15-D$0K6f?JmCWYN%Rrrf zHry|tbO?&s^$-Ab+hGE>-vG*hloskyPGkXnbFoEb`REN{Tm|QY=S^n+swY2&3L zq4D7(zB>hVAn#(`bT+hEes8fv-Pbq`wBT8DdBVXBU58IJ%VWF=+Y8oxb@l=JY*j0l=>OI+U}s@zJsr5E`ib@HbjOnM(c zEd|K5cRAo`p8?+Nt|{mjj=EwN3nRv+=dvKf{CTA{d>Y!Nxxe^Da%bWqHl_b8Y2dBu zaX(Erv{96`*+bCX4El8y)}_J6@F-(&x3^UK`dX%aj-B=unEd_7A%&QMI+TQ7&X3(M z6e&UxH{`ynIKej@X$w>7cZ`qUj@O+=56236Q|FQyO38`p(!R8q)W_CxK#tf-;2ml^eJq557rYxi zN+@sD@XoU<+foWOq8gpL@(m3%%l9C#>(io<0)PD796w#j3kLH&IOMdaxC){ zTcnf{ekhc#9gTtFd{Ul5I~iv!OL~Amg^^{U;00>aY`#@a~rCsX%R7M zC0}Z(M(Y3%~w*c&9addEEyTdTK zlT6*MYueW#i)c^nQw=Y85WcSENjkSw0j#sR*;a|ey-&jqY^Akxoe!)wTQ0&XyPGOb zeuplKIy=lF1q!#At_pE&*ZB~%V+ji81}f%ndGT_M8k|*LpjB``!^2Adb_;X>pcJ+U zz_(WBj||GGO(cD$4eSX-AJ3=a=?zzaFu4LE>HQy>(uWGL^*rTxJ3#z##EJ!HBt1?D z`N-uDvI!UJOIps~hV3C`9huSlX>@u+orNKy=jG8%<$=RNLe@<0+19E$)A6sj%<92O z2h%~W0?T9|x7!O>rLjBH{Ar9Eg+}?I(Jqc8P9|ApXG%>cNaD?s%-W5k0*a9ci6Q#5 zpL0`W8$m*i{EKc1w2|$G`EphC@bU^m{79UN?S^mrL>WM$@~dRt6V~!ESr>riUX_V%1-2l91(f zB~Bd*;NCsO?tIdoc<0Co4KeGVvmPG^v8{9}e{1Vj!>#BN1WGP`)9+xjY&`;khQ-ke z+KcW0e5xdg>eGQ$$Oh4=_gz^Qg3#nRxT{NJh5VXW#}M^%r+QmZ#HVqXRd=Y{hk?WY zw056I)@ZaUE{0{x?5n@Y6OfGyyYejZ;Q=e)&YO9PV56iEc0r>W>hL#Sqe2@*b_ILo*)jPpZ61P}HC!Bjyva$P8 zA)i8z7gV&7fx#Myj+OF^e{>U6lwnGL5|!ykL(MKm`%$e~AYkPiy1!K=x zyG1JV7Svo^IjjbyCAw|(K5Bj|gp(8wDek9pI?tj9pELxX`Tk#7`&w+q8Tp6u*BDPG zCPCd!)R%|DC3qB9|1jUKS>0+amsX+XQ5Dn10WvTLkq8SjVj2z`2~Ub$u1}!fUoMx} z@-E{12O*D`*X;&i@*JD~nVRQ2B8fY8smXQEVH3@tvmDbeCXR|(qLBTXo9sSYzWi6K15rN&D%5h`y~_X&LES{McP{+kCmC(*)&k zZvlHrA#2;g>OU$BEfMl0li>^Z(N)-4Su7K@UrLR$YRdXU+9IjcX$EE3H9_tu;LxQg z6)&1I=FTrBbyEN&=Vu4&QR&xKI}nLC-AvhXD!$Y zybWa$>eVc=4}LO733l0NLf?nh2}sKT<7}=}CY!6#Xkd{MWt6rhKmE=HkTCfwDwWE| z-blpH+mpd(>bB3Z@xJ5=P+_@?TAd|ml)U>p@OHR=if1Lt0+!#>VYXXhmrGi1 zXxyZ`VYH{#NXIjtFoS5d17w|NdlSh|^n}(9UB7?piWK9{KS0j^LvcgUA)jcYY}NV1 zpl63T>a=e3#U_^p0!&MupXjF#AK-ivIz#KI&_U4CgxrkuCvgKbkAU->k(ODgWCzY8 zV?wJ0p)LE2arjeUg2SfuzxGsS8_%}_|F`#7(>rSoFHrV#JxOm*U?xk6dxt3&Qli&i zGw0(!DkSNZv87uY0TuIu1|U-TK_c7<%Z07uuU&~GuLNr>sIHry@LOeFLjk--i1vY? z6tt^_vp!$61eM|vDd8Lh7<$!#arD|kD#PaRhmm`|Y5vh;PQB3+%my+fGl_elarn?& z0uarFdEJ|?M)UEu2SrRDpwSrJyIp`pv(wrb`YTV`(^Za^v;V3vRD){SH_*@4dTRK< ztw$X`Y-NvDc$Oi7Otkk4*$a6~(P5(%VI!=wqj4Fw;e{G=kX4Sdc)$J7QI~O{vNPz6 zgN?c^zlazDh6@cA-L#jlG^ql~{-w}Wza*NcXPk^z|0hzI4LB&cbjMEvKE4dufoUb; zugRiiX4?^$Pd&}TYqigACL#vQd*z5Di*k7X(&=(fc5k37@Sj(_)@}ePFtfSa2fI?3!EIfYN$$_q z5HQ2w&vqC{JR4ZjT{BDTEHKoqe$$&rGcm@TTs#f0mCv7!(B-@cf7VH>^6jZ>6XN#5 zcRx1WA$mK0u*i;b56nsB?Leqz8}xo{b@N^5Y-!oi%mjIo(=Q}msQGealYCEdAps3^ z$!T5Bw3MwI=rDj;zK{n%QqcajACKKs@-%bH?~sJ1jmAfqoX;KMK(Nq==Q^Cy&`--9 zaVkAy+i?blCa&ylL+E*W>H^f^+`A0J#zo|IQgRl8tP|ubRSb#-?$inQ7u&|82Bh&|g2eBe?=n{8qLGo-i_ZR)Y}4 z8tzB5?rw|*%+m^zzQZEEoL7fb)xAvX_$rVN03E(5Kh%6Mc-RiihO4&Tn$pT|8KfIc z61)WJTj;I&H%ustZd!hh5=R(Jy6y856g)-r6;d0gcJ#X70i@=?!TYe|3f% zsK<_y489Q)*+{lQ4+r*N3{Nos+s(a@OWYJDw!bU?!rj@)y&C_DTOSWe1A=0EY}ErS z#FP3Na;mQ&0YkxhHH7#?(G7dHKiRIU32Fa9v&2fBVKHr=F)D{p{M0(s(OT#+Ib`vr zpbmON8axS#a$wvdw`g7T0R);#&Hk6}d zgAEP4{6?iEW4R0EZXFw)ty;XtJt4B~n08)3PH=-5x&I74-^eF;)mS9$;Xuxv|A=n6YCQ;}fmJn1+|DM69cQGAdbuC> z-xA`12{teQ@s;p8uX%AHO0^$-16Ri5gvmFhwKo*Cck-e1atUD%Uc!v(m@e-F=1or^ zNw;yfXYRrKde0SoJUL}afBr#m-M=cG(WE&$4sS$&ML$g&DU0%*Q%szs>KEb40!X0d z3B%bvSVv=R_hi;e^ONm9tnd?pc4TQ9Y+zCC=>%RBbndt^i0ISYBJo(;+;Nk<={aRD z5CVkj@W*Gv{DK4BQx`(QekV9ZXZEU@$X!B&aBQk-zUFi*lJ>9Xf_Nh=WW((dpdv z^%v!{6pp5+Ey7x7IA;YIArmb>JQMR+w1jHP`>2EXF*wIx?SL0p4=M{FVFS(6Rjp#V zSv=)v?LbyS0PxN89V4=uso6pSGpHEJ`9u^Yx$({co_gXN?I%!ZA8~4#9%BH~D7waBcehd2+ zK)_TqTuI24K~KeSpg?m5G%T{1Coum4C-rkxW$aSk1Ib0ZeBVTm&?pVZ-x?e60FfRhGalsCqubF%MHJWukl9V$vGR{+NLh z%uoystaG~nv=zY@PACx2(B_=F+JR^|e%Pr-GTR^dXABwiK``{MDr1qM`F3upatCh# zwx~G*ws;h_C>fq;`BW`Z;AgX0naS>c<-QW7e*15Sc>MgLJp!dG@0gohG{`_2q3M~5 z!%U|yEqIW0B1k zVct|sw>Hdnf5OE6sso9GEl>Ykl}SDjcx1M*y#~NA%sg_S6@?tBYvq=l*^k}wrb+Ru7E?nv}YKe76^>>EtWnltA&+s}rlQQu}3?&0R2#(?jtjDq%J}`pmo6Fs-b)VWtJBve{ zQn${K#ku=$2ko=>&@8+|ApP*)7`@JqHbuSa)<=Dp3$p*y6u6F>zLAyMIu)=?FZN?t z8>JAD+5yZWYtY2|jpY;)<@a>)$KO_&W(w&w__h|axw?fucEzC3Q)GFq_BLv?-{_$k zNY_Ya9%p=`c`4}wS3>@lsOEVJ_M``shXYJ|5=U%*kNM;qp9E1E6Km%y3Lwh4#uh<7 zUaN$N?d`ZGu7}_gQS5okjG`V2^s=?c#MuKgQyP;=t_SU_WX;e=y*qd5nnImiyO@+w z*`Dn+0A<&U6TY7WSF?Qjc0`5~q1K>n!hALjZm;2}rHg#%5M4Rq>`AuQT2^@Ub224F z;V8NVL<9KF>RoU!3s#9d)Z2 z_^b@|iqB>`w~$8nE|s%qz?bb)e%dMDEyrn)$eJY=(h~RI*p7Mr>|i#C_#r>Z2sLTk zQH++iz-s=8BAAl6{Dxn9n!)N0eUeT`I&D^lewsW?rs)-;`U`}Co)gf{(~Y7j!p=Ru z9#j`o6P6QWlj$9QBU*#R|5L1S5$A|DDEcgB(f1D{Um5}oN4k>j3g;t&y{B>+Ew2rD z3>R#?D*z*9;f2U@BEpHE*WpSxveAcr4EJPcz@$+8tOY_&P$01#;K%i?se`gGdN@tb z?aTctcO{c^Jv%@{lh>q@*?xhaGf=jx(&O!FIW@^;J|QL$h*|Z=2OfzxCZ!J0ay7?_ zO%Fex(_ftep}Dew^uXUE)hhl%XmtU@oI_G&(3$XGmz*O!e+Arpi;O+JVw`|JY_7fi zt23beLQMA&&;}-wAM57QD)w_aYAX(Um+zq{I-^hRDc_cv3%+O;6NQbE8Pm_uyyBz8 zq5u3yIe9`#uCs@TIiOMm7fpQ_Ko&u;IVCVQ?ka_bT(z*=+y~ZWXF5!5g#AeU~7#m3b z<|3eu@!{JnanXbJsCBEJ4A%%{Nuwf$->N)Q5rpr$7FufTKCGZStD;TYax9 ziu$@sZ1HqrFO#zuL#tb~d$(8Ew$TJ9xmLf`*gzf-sqPOwh+v)g;T);iW2CT3u01wF zlm)dV-g6D^!MECKvRGX8Q$St9s?kxLVZ8#OKh*5QJ(JCV9tmuNOA(y#%~Y;swk zs-RZBOo^8AodJYZ#K2$c>>`bGx@GVwSOKBj2k4K)sCOU0EB@FsM9G3QG7cOpC{KNS zJw~kUuAZG({HM#*T;R{#f&!m+8CB&p<4(u2=ax0o{6@YZ@wSsuNT0g;7hf(8pK627 zfnZa%N+1unGZf8j2vXE@cqY}!#T0r;Sz7_NcKQhDx8MtP#k@nkQ@+Z}K(rM=V4x1L zO1c-Q!A3!De?eK-^iBC=N6Uf}CwBVyf9ZmCC$dGbP8x|O{ywV)*-}UB`mubw9&Jtc zOJ5F-&6C#-O%Rf@gzdAGx*m8@a^7d_en%ge^nX|TdW&@SleOKGsm}h$)@1j&I-^eb zZk3b973KBO$l5eyh$ZV=6rM=V zr>`!xWq?J3H8UgQL_?1KUesvSbp!Tl6MJhkmp1?Wky?*m^c^+W{gnki**)M-D1@J< zk{@gW9)u6d?vxh8y1TDvQ#@giPB#aAQq*=3E4sCoQmS*TTD71Kq==t zY=B>WH)B@oKYak8Nt1u1#$1AJ*{!uxSnQhShXfQSD(Ft__DBDfU;!4J$&-EWfc}qr zW#VXF<)pJv<=9a?=qZ2HI81X8sj)QXXkoQi0y8tuU-8OnXzAYFQ(=khTq(+^Z5uycLFAQi;yD z`F^8d)Oa|~DDC9_c(~@u2T(O2LD9{JIXBojM3d0G!7Dh3P?quwh~bWkknbS(krx)) z=TXv+X!R7ZXBFZZPg~V=a&3xM`JHxa6Yz4>e0rQ5(U-wE!EBxCMEw@pU{v*}BVD@g z`V3ULZs#!L#ucg|6pb3QTYIBSM9|yRL~irSFSQ$saQIZ3eO45gbM79J)Lv;^k(r+a>&I&1xP%DciV2D6y(-RuwYBq0Fw4nU7mgh83;?VtjM01b z27p>OWO>?QnJ<5wC$A|FNSW9mc)^+cwCfB3do|wF-$F~m#pPW)eT@D-Oi`mB#CFH@ zQOfkvM5A0MX_T)!P|A8qD1i!M_4+Hho&wg6B4yTZyGJB#E*D}S!)wSkT#PL6ZQXSB zeS69b!@e3e(qL(2ByUe0PkJ|*0c&RSz<|)1qfJhf$&8Sf@H}D^Y`12js{GGFO^Ejw z&Grp^&>4Q{^34Z6z7_$0xlaHr#=6*DX>2l(n%H7`;b&tey}2i$mZxvjl(?MoTu6XE z(c~2IgBJC9Nssd{bL6JJ6)UwO*u#b2CTa*N{2X~f6MKU822v(~-t6+cJ-zy%_?s`$ z{fQcHwM1u|Rr2xjWo)^*qcqC;pA;KO>QlGyhwRU7~upgEeV_{HOL00e$*(+%2|Wog%}pGISp_6k|!6 zsGMp$j8t=euVsMawuipUWU1QLj!oy}gHE$bB%#r+oj3KrRyFa7Pd zO)_iMGCf~!MYt=xjPu&5Jhg!!JT(!W77emy&Xj4!2yUArX{<0u#^U=S0G(8XyY!Ll zSzfFKWu5lsdBwTq+h=p$c5Hp6$|n>nUw(%Gpc{3fLj@SQ8s3e&Gs3O+XKzJ_~$9W&rrv8~r)3-9H208m-U;qwg^IQp3^%bYIwegD_ma z+;=n{?~i>}ta_}1>&|lq^3hOr4^GK~1&8UJEOS9|lV8tUW34INeqkfZiDzxt^EE7L zDv(7fgf2tnI;&edb#gdNegm$Xaq9<>-^(d;w7)=$7v`)tTHR4Z^N1gmcRD?LDY7fr z3Os0{6_&iYI39Irq5BxPfe&;dR)RzMpd~>`1NhHf#kIN|U2#RbM3ucXykbzcao#Og zK^opfgk8>!vAPgEmScZIeyPs&GyN6dEd&@rFjHx+t1r zy#=U6{e3(5EfN8%6T?S&lYv|{8kMi9TZKr%W-6W^5F`J}dsWf0Kk**~G2d+&Wc>E@ zSN5rfF94E~j`Vi$VYs6|-sm)*;RgEQ1(WJb+5p{$h$gar07ve}81PF;g}DwYdsdbU z2QWpeaDT<3z6F2%+HEbpuv%7mZf4el2x=K}w^&F>tLol8@Qr>|({(l?=OK_Y zD)L_4YdM$q==<{n0g=p01IzTegj@jY(?VoD-}#OH0MGHjt_)S<TaIGokZhrHE47sY8&v<_%ETThPPIuj+>iW|H|!5-AKb#JT+g#LCVtpdv>qob)gLW`7ueB2aR}bXMVL-CBU~4X^!gbp?CAS)OKF7Rg({90{BuWQx96U z0%-r9T+|*2Zl^z3%nHhueDk{gPVf}@!;e?PL(2Yr67-Vd$y0`Z7IO1W;*bGh;r-R#lhwGP*vBllnJ9<~0 zeoBVY;tRTlCpX>jxvwh?IhQuoXs;4t@wlS~v0LqD;ZLWgXn`Nuik({YZc=+X=fDIf z9%X1${%lv2JM&%0yW`!~-dt(ejh>iaEa@7V1QFy9Q(4N>56bz z{L^RN_nHwy;WVNFIi1;du*b|xt5f~|Z$fSt$!|NC)+3rN>R=Dw|QGTZ*{!qY@S1&^4 zD&56u#rfMi;0(e?12?CQ41!eTWS;RZP>)*H+WtzKbL43Ky?gm&>puk&F;ADxq_=9N zH0B*oG+p>WQ?Z)NQEd6Tf7=PMvg#Y~U%eQvTMbO~D}^pEAEmg5)%{VUTYhvul7*J> zOP8X}SH8P>S#?F<`@VCe;oax_nxs`^&f%=r55$BmIhRLf|TMNr(P) zA{-PssUsVm6p_-M5H?7F4*6eJajQyf$1expI9u}s{o+b9y!1zwsYKJae73;N>-Kad z2By7~dMEL>eZyGWJjkt>wBZuuN4gX~b@VS@&gGLY`iOf&x;01euCxk|lbrDc;(#hy zy@%b#MD57ur=qr$r=H`bTVj(xZppe#el7U>E04iKv4?+^eH{`ZxAWol9zcDFJL&|W zcgi29+ngNBcB*8q>eqX@iScF^Y0VH3IG-LGY^wOJ?6rs)2FD14)i3oKcXYe#0fVGI zQ3h%kGs}89)+Hyl!qvldPpFHqHnnW^}-gNB(CJFNkGK~py z)PwW|pz^y{$L!?)^tNS)2~<)M#%2F^KRf`!Pi%PfI=TLb_UAv+CH~aG77BY>KFgA| zYi7{uu3mYbLGnFo*2hMol(m=bStJ>{O5<;d+d^*KGDo(jA`b|12MroqCW1R0V`-Lw z2(ND5qOVF}UI+my8FNCrgm!k{%6^LBL;WhB0R?jHd-B=9!a{{G_8;I$_j;1Q=y#hS(MY5;cLt9J1bRGv&iWzc||jCKL9)LaR>gkDx}z+NuP zGfOl_&mSpmOcfuzZ=(rKcUtq$_2M3}G_SKfO11oSipo3Sib_A++2pTmb|+pN$z1-k z9}tWXOQs!LX|?Y`-b(#}@|lZl#eSoyEIS_WOW)(x_~CJS5_)jz(&kMeyZ>73f>Hh_ z8K{ap)1Ub3AZ*-5v^ka%4aB5HBELn>(7+nrZ9-9Ik8*vwH_%OgN{UeFnUEhJK#^UH z`NBE)8BpSE-ol46Zp6_yPaSq8P6kLs<;wv z3?#0-6&c>3c1@2}VBEY{R~Hi-8&F9mdjmN39oZA@A~uP+NGl_o1XI@MUp6{%L!V6D z%J-&TGBX6-k3ikiHO1+SaXcxAGcSDuKTM$IO3(TUq#9+({$?I(CCF}lIz4y*L^8_c z=*!Iz^N)tDM%@xdIWC*T1#wmnz**I*FAF@LZ^!K)6>OwT)rClp;?75{cEE(g_lJS^ z*Em>834KoRmV3z+VBT0|ovFaYI6+Yb+G_3VPiP67t_BT_|D9DWM0zWuK}QZFT!qt& zwTipKBBE^W>`$pP<&&eR$JD(QUi2?bxb6Id!S=KeZuR6BNH3VVskGwN)e*n8qZb7j_%9l$Iu4Q!#ag`YLEH8jEfj{3+ezySGScIFmCh3STD)5M-NyTt+TCBgyh+E8{c~-G3bp&s zU}1zqsA3_?Bes^4v$z+>09xJn56fzqv$zex?meRM7Jg*JYr8nd3{(ipSd(84zpgn}S4$O#hB8jwEZS;Ogr|+|-#lK6HMxO~UIQJu557_($2>~364qwyF zOi*!3Fri=aMIT5L-6d4%VfQo&Cy#j_*v#m07OH2-64>Y4KXWoJd*80*O;v-yb_;|8 zc-Jz=fx!^B<@z5vhrUR5mj<-EX0RmaE*LUk)0Udt8GS()xKfbzT9%fn#SJ*)p@O^i zXSX#k^4@~HlZ?$Y)jmmTY=-(QZZpZpe5AikUr%6K##HF);Gt+-s5h(WT+{?F`+;v& zcj8(Hx+3RybC;T`YDM{re&C{03;B)r%*pr7zL}0J+*JtomV#zx-h|LZ&G@e#iq1+D zxybD&En7vh9j8iN)xJ~c>LTQ^(y+m7<_iu?7Yw|93>cQno7+V%m9IP(CGCDX>L zdNcbo>#D}d9cn%efRbvH{x2wa;Q^#XFI0KV#ax8z>Er>H;{ghzwd?ul zo14HZoFfbsfLLsTGFQy!^r*7F;zbtQ_jsql8{$N#>5GmL-z;e5d#R;=v(Ldbd(^7h z)44rGuXcDH>c0_c>45G6<51bP8lIhOjkzA?(Lj4zl?gUDTf=d#VsvzJp8;pTAVzoa zgYQrFa6^mS1IfV5%-iwDLev1m#W}mcW1!~uxOQajMn%)6?+m4c6YXw2Oz{|hzF$L;r9@e*qYJE=PKP9$nTE)m>Bq( zPguLC?v=Ct1q*8VUWLSvSTq&REg_6b61JDQ!yGND!^b$E@dc279`Fn8Fs1I)JVi0+ z*Ec?NkGcZKK9@Pd9VTY#$cA<0>;ntpDz&~{XNNYcum=;6<_c^{0Qy4FhN(o zSCDGO3sSW-nH1?Z zyJ<6{Hmoiclzf`^j&orZ9K5Zb=aBfC>>D$8+I(y);#>WPtpJ+$F;*r(Qgwc z`MO%ry&fQNXZxXydLUA2AX3I4@6>J++^11z-qA}%W$iLUAUu2Jf-j9`4RpJGq%8Xk z6y?1M*e83vt0T)T?(rK4xo3E~K653kkJqpjzp(sQeVrYczs>Crs0VS}9g?b-ii!GH z)XecKJlyK}KSrkMpwuoJQJMx8-@5^be8}8Wk5!dDW^s*y!FzJnh)2&A*k#L#LPyqi z?4l0A@0Qb@4c)vaZrO5!HbP!`O}Q(ArBqYC+8`pFDE5ty&2+_M0Wty zpzZrRzk0Z5is1Ieqs`+?@4E@UXfMYrU9K};sAekgWFuLeUfbevbpQT2Fy>ExfMU)x z9;8u$%9>cAM9|c;d_fhmLR|e`b-zi6d)gPkUn4skCyxuwf3Bz>UfR(cN}Dga;yw>M z$sY;F4CY&eE^DlJPzva&cd(BiB1=hlUud|wQj0xK&K)ir{BI}WI#f2Etv^mF!s1dB zzB-^pMc31rnib8F8s6r2Pkd!qbg;1FB-HXSlpuF?fgM$|lPpmJUNKY8>3T^!3>{yq zpK4GHt@rj|Y+02*8Sm%Le)UD3e35+u0KyKCF72wng1~&#yfePl4@KIo`y@v?5EBcT zbzfIYJu|FNf{Z`A058ywu2$xwI04ik)t@HQk0D^VF;Psa+o6|x)Fhyy(2{#oN zj#@6T$4brca804f|ib17RkPu&O0BIvS|HQnEacbInZ-^KhH%5!jLJ z0o;#oh*FW_PKHlM#XSc_<V z$$G$%yz{8X4tjXa94 zW-d&|7y47oO_D3+?rCHB`;a;cyN|bq82AQ^AJd$?sE3{Fk6dw?|2X**;;q@8GWij1 zSG)Prpz;&0tqjk!Lg~=g&5<9Hp-*fcuwR^?Q z?d*g@krdlmDc$-;T_^a-@;H{Ur%9#K)FHk}r=jbqfV(mmgPPPESp#IN)LZ1>e+;x{Yh`AY1{V1(HoZJ z#`RIjm%)Z{-22Vya|T2~&7C1GmwOx>;GWM^R zyWPDk8G}+gCPs6uq9yhaFL<3;(ne!b!pd|7h05AWF}hh`OB8AvKCyZqIUxb=Jv@eY`1YMnEnUx}qNl=J&eJ@;D? zXDkpE7GQORGriM>;A_0W>I8m5zygsl2em)RPn8E_Qc%$@2x~}=Q+&~S!{nqUZC`_K zs0cEMp8`!L6B+Orb@*PW&`SS}dYi!D$Y@rzCt;FaDGcAKIl0gWE9*fI#<6z9GKuT7 zhS0Rc0I<}w`6B7L8iSqpzP(`~oB}wTHvu9%vDp=n9W;7EQfa;;AdXFCpXMS=SFt;7 zlNOVm^hbTI;@rp6fn(ZPTl8YeMw{*ZXZY&&;rktc;DRC2$g}5-FQ7t)yV*MyCpaC8 zp^bx|_Z^ypL!_7BAB_YXwVc%90{H<+pL0`d2-=mQsemEJY0T=a42|mR^H#C|a!{4- zI(kS4A2MzNCtt`BZ81dE4NCD+ZcU#gC`H&G8Bj%V{UdN9>9tndAIT_$u1RSQB+1+> z$GbSeexqdl+>1Y*T)f%zQJ;%}6tiYa@-*8a@BLV6iz+pOIg;PcAmiZ_}^2c*<80`9k1VkyAX1Ama=%k*a5Oc}{in zeq_KLU?GePVt9JA#b3Z+5hnqUo(dbY>8BNpynQ!bJS8eb)U3KKwYJQLJ(8YR5F^l$ z_+z=X=x7G`w@*zwRP{L1591m}OQk4tXQBVfgDo3n%`rHiN^@V-Ab?doCw4c&kVJzkDla5QpYEHH|KFxSW^Rq|my*J`=oWs1}@!QUR@UnpowcK2lN zJq~p|@=*yl5)))iwpp)MIWlVxV$%rt@_hw?C{cLD^?S4?Y# zo}PcpvWk$Mv`gdMso{b}Yby(MQKRk8_s!mHvIlI&@l%=;n)z{oBa2#X?#kAuOmZ6b zZrNjhyTPG@dyK<%o~#a&4iZ$K_9Hpsd)56l9RB_YO%4C(;?Hfw*uA)#QIl9WIEV8H zl@^lOFOd37F!POdJu)G|Su81i1H4CAH4%`7y1OO4%es`$?u&iVF(VW0iLp8rT9^}3sanX(TGXP%94y3-O0|fZhYvft zKv&&%kcs>sI8#7_fv0yg{U;|Or>eQb-(9=9cU3XAc@~6b-(hZ^*JvqxoUk#Wpk4gC ztWsaoMjfp7pYOp85e?|KW|Av)Qsv6N&IN7-yO2^Ujdi^YQH#}*0+dbs{c05daQ70a z8Bt*n3zRps-%IcEz)tvBn&J-sE-x2f$jd8SHol*pzTMOPOEzWr{P6}Sr|vgVM#^`idW*Q2iy@(z8cbcV5)Kfvnf$+KDl|OT9nJtNPB;yJ&Uw)nBl2!H{?Kw zjssbQr3tga2ewOn+NJNx4 zJ1l5e()Rbq1oO<#D!b=m&<5Gqs?>0d9%emdqE1S(WPX^4o`dhN?0cHirkZs@DgRww zEDe_gTb}|8?PM?|$--prJ*^C@Rbt`DxrGootxmSKAk_c@!}DN-s+?zuNQ@z{8;|CT zl;Auo6mMCPjOTcFT3`p4Fquqypb??MsbE22H@Di+ogJ;~1hXeg-c5I3?C({Qy4iqO zNMYx3Dv{Xu=SkoRAao!e-M;hSe&n?m{x9DJn+X@(4IcKB1kM(x9*1`;FLyS&=L zMQdFBHSirttD+7FM&n4ovN)7eLe`2#`-TgX+lk7P`B?#2-CM64H*cSUXRmw(wAMkp zzj(6!pPF$}dNAok)A&tYTd|OalcO@kY6m%GYZEirrn$XbOI{{6TZ_t6cm$a*u|(B| z-7O&EMA7T|ECYvtE82k+3gA2%;w2%7Odya#Xq!|21o;&w6{O>@j&LO;V1^b}&G;Cy zJjlWdHTpvvGqH!!Sd+89ty3M+ZuW&gku5M+JySj?u(n_BBm$wUwcUSLb5WDPESVeU z8(Of2m)e}FRm8Y03dz zYtpWCMe$$XRmq{5a)8!a-#~VaTzT%_`+`aFcQy{6c}#4NpxweD(qmJ57BZj?M;@L) zm{|S2-c`ebP7_)~vp^@YWmKOA&0V;O)Fp@W3sS)JM{A^CJGGjY@AtXc9S!Rr9ArbH zD`tF6H|dUX!VAQrBlu47_B_t*2v-d?SVyRsZ)5IvbB52)cW1_Y2W>)zsfN)$EmJW0tBgzOi4^;=iku+ z)xOnySu18}GdGL9j+{jX$_nhLULB`|(b&mHn|*TMf1g*!o*LW3aZh~K3vWI`!dqI( z5`S_e3&E6y<}bIz4x3XADoTM2@wkcKRc$Qt zC2x}$gt9yc8hu9}IY#q$_4u=kEIitC?7E`nwH-r;oFoaUqui$ICngTblJeP8c4_8I z;Y|I#bPpxAwdSr+3nH-;HFl|wXJp^)%+xbWW>r7Prrf>#$l*g1%msIprr5$d%%qrB z?)!JYJT7^n=tnX#QV^z?&;#LP!pxSGFRR2@v`IYwf9-weKU{y*Eq;#XGTl(5=0lhi|D~s~!}PXLrbC6mb@5;Wc&brcI{63Fo8ShQ;?Fg*a{V=g8d;YY|d0 zziTkb7DiVO;!T;sTj#=21CBBNj}A9U?hCsLIek{s+2c8|EM@?&L%48|PY_uGQm$M>!u~TL<(xP=?Rghy)Oa@J(FJpngbrw6sON9L7_&~N*4}qFjK{+#%__lZe+Y(3xQWG`vc{wJ=l06z zH9x>RgmWIY?=nxf+j9yo8bPx*{#*d)a?5yC<*>NU4767Y&?0mDT8))WwnNBR@nvLz z{UoAZS&Sgmj&*k3a36V9WcRu0*Oh5W@qDJBx_w-v6-4 zlhcXq{6)_fUHU`Q%9QVWIJIugS~`22xlX+n_D8hjv!?bh{kg7n z;8Pr$kJr^+Z8z|vF!!c*oBJ*GsF*(Wc>_KZI~!YzH4*y=8=Qms-WQ+)_8;jArqP^+ z*f4PRK|zNopC9zAo4nzWE;Mk1$|U^*24#jAg&SVEpwiOW(`A^R5T=BlaE(FOOcC7p zyt_>gVo079zsNjMC12tE#rLP(k!jhWm1gibyqI1M-vP=n2P zgmuHE5Vu|#Dr0?~RFA!Y9f3U7ZT=}=@4G!!W?9nK1`O55pq}^MDZU*{rhNsPTo^_+ zsP%G_v#dvUI0L^Q@sh44&HZ#%Xd3TxZf2cf)^eL@V++mlbdP$;gtF=r7^$$0tvoxSr0;%y3z`+(@Kv10Gx%s2or5wIg+A+T*h8 zd>f%~o4vpK-o2)q^Mm9S6M8YcHGr|{zplocBFxI zorDEHB;x}s8;{Xvvd2q5kWRkeg9`I#aL)u!OYKHMwQe?HhlVbj4Y157lLKrrBd>H> z6CrgFQ@#52sR$m4u)S(J~zM1l+^RfiF{M` zr}@M}gBHvl7x$V1%GmIv01nESJH()*>68o^n~kx<{HpPPVT))Y#}ozcvn-=G{Xj2g z8ye7YZdQVPwERBp79xu#drz)|PT_&eL79|#QS0sY0o-%KqO{T{yt8@p6F&7eBg8~y zfzwBEgx_&Z0k6XB&L+f$$rpKl@!N8#6KSC)4&*9M{$i2SWmgH&^mU?}Zx!@56(|}m zw{XnOP|ztyxJ9{z9nw^N4zb=Y7s9if%8o&AFb@_z9_e(WwCRjP5qIFvwmIwZ-EsXQO5@NSLp ze(2if+L^i>??MZFTb)Z-TsnQA{TD^XgqQ$H!xeUCdSLEA!OLg!8j8DDM`6gQF#l*g zDz#?uMFyRP(9r#ECetLj1&Q+Krg{yW?^PJr6VwQzR6AW)M}1fN+X~7C zM2YE!3WMD(pch=TMbac}W~QlLOqnHbBwL#mJ7O<*lS&+%$iN+kB}QX<6Xz_x9o4(Rs>9 zS!dDK{dS8$UJzU!?i$@=dBOQ(fv>9)42+ED z@wcVm?`;YHak@lMiu5Rv(;tdMQ-0~YW>8g~qZ{6ZRs%D4{1fI=NT4Iu}-vJh(L>ORen4dO7bJ5$zTULmZ1b+>G13PLTENj`0+oEgukd|I-h9^`AnL$Iew|NJ)9NrH9+F1%z{FIu{~;K{PMoZP=w0WqFiF!abBS|-KTVwOcU4@$b6hi$NT>tBEynb@t)`JsRM2dBBq_w@ff@NGz z?D=v>Yr^5}5^Qzp6Q8uO7{V_}&*efOi=*yyeg*FiIe%sRL04|&k=4-Wj)Nu;2Izp2 zlT?1j!s!mJfmqe&UvCD2=`HFD2@I%#iRu`w_7A%5rI9ZmyA5DoHv74r&MtFv$6f$cv`BHM`=aPcf zl;eX0lIv)b_p}>z>&&2bvSqFso|0&s{NgYfm3D6!CaO2_mumQpPQD;K$!*E4PGpM|rFq6Z^QB>OTy%1amKKi8+{P4Iu6}*rZP}>!=SHRcLeS zekU#8S!hsAmXt3hi-Fg66tkMDn?m{?ctsg6+3c-n8^MnR6h_L>rZXdd)hUxL0iUr| zx|AP)jMzh6S!{x^jg5^z!-K4g&mVE+vk}s-tJJ_NQsM8?`5NCW+%s>nm-6XgHT%R1Ae^fv)?&jElo%CxQ zqRviNH=+L0z^QwrqGjxf-fTX%=S-eU7+-hVCMaG)rr%5l&>vyo zXvdwKa^&I`L;i4UrbC8j(Dr>p|Lm1``J+42VZT|m zj@dfXU6Eb)=$?Ty@~yS0!Kt|Cg4zOaxvA7wv1>U61N?w$0DtD4p?R|q38A6|$iMMQ zRGkSGlT*77yR6-Ngva|{*G z;tD^qi)*1rfGb`tD(k*jqj=_a2yXwW^MHote8e$nEpN6OldQjQba^lKpQRf5Y(g$) zNvaH#dhew`UZOg3=>r0>6-VPXr>G$XZO(_H&)kBe|NM23UNU4WFrL;)lb{WY^}lb? z#Vja>1zsfrc$HRmk;%WYyN-IfzZ#6mvJ-k}cwdhH)MPEEE7CyHA!Af?_6P{5sna}8r$-UAG z&ERbQmK#o9W-}FJ?KBId9SmNe`VUUuZ#s1QxoYG6I`#VF3x{UuQ!RroMr*h^i#JNT z73kFkZA?WXcuPUM8hd2Ib$UE(Q!I^+t*+2U(ONR6hPGkYtug{mKnw=x?R4B?`-iP! z{tN43fuR;*tQ4lR3Kn-uUcju0%TWA_N}8WFZs0kyQ$f)W^g6aP`?1_-dO@Veag~1;;IY5PYLxe?pDrDs`l#N5d#4M&F;k;Wb#^C> z+3xDrVDtO<&0uK*(qz?+V^{GgL^j*Eg_?yYMr;CmHTCWrii>+x4ojek%X%?^JqZ`h z0Z}ZMj-hGE4&=(^(Dkrz`?Y)#v5TlVsyW9eOBV21X*K->1@2~ATo_k$y&@z%emOTc zBfRJ(G;d{WXDv?f>0B2VSSvWax4g!}zNqJDI3es=YD8V-*xw zV2624{q@w<)Pi_mTR|e>#;#4j&@R5C`5bXab?z{p3pbkRQ8bZe(L_751J=n|Wo13MyF0!!UFXV%!sRBfGPQL9?1(c;OSJi z0s-_LJM3<97ho-BQ^93O&iLJC+WMs@+8OVe176ZtLs|^~@mi1lXzxBoc8{M-KH%dh zmeB)hq!VHTHhjNIctvWjGzZc-!mV3l@3inQOxPY zwCQC5$^3xo!r}jY^on%`11qbqo-stQ`w$*A=g3hI{gUPm+Z=V+6-Uty7`ITUKh>41 zE>S3@bteyH5%JnjK&~tXY*5wb@g1T7?`q*mm2~-;*h#IE^!p5jzu@=b-I&_9x7raE ztP^o4!CrZp#Cg_;$-+@s$9XjZ4*$yv_{$yA(4|ZPOHe!-@UXw9YWoKt+Jq}_$Re|v z_BvQ-IkoZECZyYCnHQ1fdj(d0#mOLf_$Zv)sk!f3-?hu;-^)#j<^)~Az#?5cHgm)d z)B@_Ofire80d+R(IFq=A)F^B}$UM#_mc<#CMw_v(P~&<>RicN0~*cCEM+?qYrI`CjhwdWpbr&-7dQ|Le>tLAH7Ecv2_ zDflT;4QY(Q|0Gy(j7|eKZ)aoALPN%25}CLZ2Trhdr?8t;EgTkSv&>bVmc7^|F%*~? z-*qi+b+&grqQu@gC{7sG1?|5rT&)6$|An1QvnuWp>s-}1T)wR^3KGr0B9W6KpE%># zRLXC$l8xv{iRLfanY)%^v?zs5ukd6}M(`IU(Cg&=GKv;1*)h#9QE|;JNV_ZITMdUQHjW($}1GHYDq+TihC5)<|x3QW?DKa#Ne zUi+-?ar0v#{~7{u65xvl1MZNbf=Dl5D;*Z1-OzCtyBc9Np;VG3x#3aTLphXk^ta== z{%15FlZdMORbg<9@wstlSaAwQ&8AV9EWST6kQXTvi)G!?t*aGQaoaL&YOkGAuMZxqFBXCJb-~f7P47*&EvwTTez@#Sbi{}@ET_@Rs zaG9^);b<$i{iIi3nMfhl@9R7Exz*vmx*Ldz@m+vH(^tqX1%)%ME6Zgvu^rOl3Z|QR z?#{EJhHE!v>(HKB^RFs=osrH9+)MLDrN%D)ciyv5hKqkBW0rz2zOO^9*11fB7N7lc z52cZYz?o6}1tYas5~QvWbV*Y4k$p$yD}8ED8H(Z#Rl@+?QKawiXO^gl5YBaaw6fS&l)4?aGZ_pDqjiyy9l*k}b` zIDB+tDvj$Yi@G~zlSejkw=x!OV9vr-F&c}u7}u}hK9h)jU6i9@Kt0qzAYyA-S`Ti> z_r?AO#Ys3LMU2mCedB|Y)z^^2g2K9esPqF~mpghGU#pb!MB6OiGcLN6*tU2XRpT1F zvHxPT{T9GyDwaubV%F! zgAPlX4NSAxfZ&l#(hTc}%+t3nY4?z&8uxqC9YF_xeV^}gy4uJvF{yGF%z)S` zid>y7pf~NWc&k+7igbSDy32cZ1HJlpn)SWy^SxCE@h<>z1}CX3^t=KSiILmg*=mq* z?2cVEAE0BCmDqhXx03)C4Y&PSGOe$t3$J8zPge*c(|G4&S@`QP9B1xN}nW!XC@jju_#7 z_`U#Y`W*T#nJxZrar%jWE|h5(bjY@xe$_{(lN46aArs27V)!G52YT_fyh}t@G?N%N zm&QS<44jhp-vLYje@3QtQ6u4ad0MIXSh*7 zIcY|l(>V!&=$Q&<2EXey5GmeswHtT((AzHerwj>mg*4Y7oTL@l0phB^FEDG%Wq33A zz(aT?IOv0)V-??dzkcK9x|GDQ`HZjAV?6L9?^#X#1l539l0#?2DxK_HgMq7%R+jlh zzw)2pG#qllH561U12cC^f7-t&n%bhdFphK-NNB(^?Ou|wbtx$UG3AXw7i0Q!$`hbX zn{g1+9Vs1rcV)T*gZlo^T=J49fuws==*L}R-2*IAq2VOXcOV+IBg-e_?9>bqfBbkQ z)6PW5*=WmSeH3M4?78VGT9H*g$Dj-GthH?LEcmOl%{g<0v&}@TQwZV_0jET|*v{oH z@H;iC;aHATn_g;{Vmg7e6S-{m9@T4NDs;e2jn$$|4gQfyDLP|!1$7y1 z?BN@8TOH76{y038lSCT)%ynGrbVe}56z(ZuFtelp5U%{|T(SM9ba;eeYWl2zd!Ro( zQ-YqM@aVImOo!^IyBXWx3S8IV8Ew`2BPL8scT{`yYq=pH3$-CO1!=Id7A{U&ml~Yj z8`qf@5@7~?H0eF)ddEiBwAfMhyk=In=4*?l@05nLzzej86>7s)Mu)xb?Ch=!PaVxJzy#Y!a1lmsKGd z(DcF)l%{8c2mj|t18`5_?lWD*X4)88izOE2UE0+7j(`3DgS`6}9UcK?_?tMuXvT4M zp}}pL>A`;VHjmfe<|7h>9oIe>pXe|pX3bnPJKX z7FHTcl6D?ZT&wZoSqtk!jm+O7d#%_cGet}MY`j>aOq=V=bC-=3rJ(L1wu)!ND2s`Z z(8A!*_7V$m^Db!l8^`MZgsE84am`)Th3$x%iPLep17y#HZwEv(kJ}dUEdWav&;d%UDb7=66QY7#(u&;9$)~aJ^fSw_RATeV z5@4(5O(2qkrSTrgJk*#l;f$p*UI@*XO&bSAjbKN@nx~~cTXvG zUYELY(&>(?!4M&mwYI0OhdZiKCr80Nl&(%^LSweXPa@NQAjff&S<+E-72JBF=95sZ zZ_Dh_QBfHbpNP;;xe1bB^Qf!o(NUkY5O4YQ;^))v*5&N=QWyApmtJ&k&&Ff4=3Uj) zi$gX0C%C@LROHjv)qv)thVnLb24L0S?)VOif6c5n2eHoteRepn8XFtCxdD7zjLqO8KI@P5bw}52Q9e*lwGHv(Ypk>ibBrv?T43}ByQYeCwrzuk=_1pM(QkaT}Q138DxDv&}HStBIB1>r9olkJ1J5K@5+0!+^ ztjODLI9*ozyV@g9*~upcn?+vE0wmpFXGpYBc)6EHwN3bsxa}b>Q-Dz_v5>ZEGAL}L znGVomMqmyaEyT@^e4T!dEbQ$5`w?`4*Hr`@G+}Dl)XQ*y5;*#ePN|b%<&iiMXB16w zpa@$NHIcinzk%<@=mmCS9MI;spRwg%=5h|}r7U0h`6;DKKS zNu!c4B=L3E3SHd(Ohj-I&!_jksz0%~yTT;OAGmg>E_&qP;2^7I&!gf3NAgjHgZfh> zpbNgXHL79GRLG|-AI5vA_0?WgHIRrd>WYQ!&-g1DcniI8qj`i4f%aK*WN1%dR~*$XMcku0K>$KA0!{|0?S02^npO;k+j;f>BD&;+>65GrG#{N z62}3u?3;SDw&3jOxGBQ>C~*fMIUuwwo->Wmlm{cu8YVOOK)oTgWy#RQdLy75BHKze zSK=h1B9`}&kLoQ=NT$E2gg*O#=IZXk#n3B$Ts9Z+mW3ZC6hp-T^YhZz5}h5?Nw!AN zxuN3?5w3)ZNvLqvq307h>wdNP4ex9*Jvgdsdmvmo$0Ovli;N}tNPu!${CC~ph9mFA z(UycrGxLyLaLnEVO$`t=j9f{ca=PZ{hAA>nca?|oo(Vap*NR#+=^T*E^GcziNS@1@ z#y{z1vKIQ(5AI-!0`DE}KD?9?19f_KH%Jj5w4vI(=!{yZndM zOxasQY9bEw|PdUAC3Ey-m^`oUBJ zu;U;HJE&`O5YM^xg~Fl}5v#{J1%Nuw`pop`4n_>b+6YRE3brKj4)%67{Oe;?9sKtv7Vi;ZrrKzVOji{^n-+kq#e=r1#`0gl#su}ee%ea- zSy=;lZZl}ygvkmPhufz)71ktE0u8#VnQ5k>< ze_0Qzsn7hoP+9j@kk4}eENAcrBobviYga;Mz~+VET|2b29m({SCFI<=bHE*77_Q<1 zM5OzEyp&AUmZb3)&+{E97PAq8%F@Q1oV|f>5$A~`&KbcA%pMo6_dHGVvs0AE1Zz}K1YM1-b-&oGhGs0YjO z&m*0?hx+(>E&61WP4@Uyt}5=U4lbACZ9HUfx|>l2ohZDadhh?Vvk7f;Zz9qnLol7M zm~+11s?3bd;yPWwV%0r$+FIA2JKRhp@jr7+ghRu9~ij;*4 zb7#CA@iNVQr=##tz6P;j)nqV6a}5MAjYKlmSQAjSScMbhnQOC8!(lTNjY#Yn>XY_r z>Ri9#;^ImcGH*P&d4+d^52sefvAB;avy)f9vobXb)v1z4i0K?ekZbQ~U@E7v8Uvl( zhdzqWNhUhHm33LMN!8nF+Rkz|^HH6hodZCitn^8PP~jm__kL)I&$|@E*S@?(s*GL3 zG$3uIXk{9`ckv*hkz}K`HTd4v3Kpz|_Ru-nc-C0Hqu+6G6a~~s1^{blPun|B*>C@k zO?$wd>5!iN<)Ciw8aOOWCQ8aO9e;7m^Ip2R&`;kG-ajEZn&)ZvC+wYF9Y$!u`8WxO zrlmT!G;-W}mnhv~!J41ePw4TMSeMTdaEY;%;BANld%oz_s%09s+;TNpDO0KXNS2kK zfn|>RoqKcfH;vHXf?b;a|iX3P=(ByPiLjDOY%j4-h|awIx~g32}ZRd znH4|`=`%g1Oq43{81P1E0$M%*uB5GYOK3zEK>YRRnhtlr;%BLletDeoRKrty@4p)! zRw+8$xDP89rkWF)RtwdiAuSL{G4R*aXOlS;JS&qne(iDyU_=cbdMQTPrY^3}tj%z& zi>Otu*?onJooXd8zSz^Yc%pwDw*kBYpz@U*)Gb(l!!`s(dmmEmrGFSrS1vZwr2I7x zvI3{`TJvBK{5-fUFz9SsB2!ElEeL|)UwJEwn(t~q>h!fbE1?W~L-|RN@Fa2cfE;l5 zS|74v>&CEcqC}K}<5x8&F`a2MiVaH~&T_+nul+epj~^ATr0T?|>mTuINsT`lcZDCH z!R4AScxR9ESEuHqZOEhnuGBboMr?cu!0zQU{>)9cczWDv!z0k++z>pxQOAvB-L!UK zm^+S|U&kDHlFuE#$!69H@`9?Dh1V}!x+y-%aLOBirkv1wus!}6tjRf{Wt7}aQ$bun zFjifbFn;-YRgtMsFJx1QNKNeLQ|^EknqUmz8UEM*xw^W)Z0V9d-ROH3|D_Oo z#J_9v?oBovFgLWU0X)kEJ1`Yp9`|KOgg~qf>KkxWLB~VZ;R3jY=?WpEtt!*{FHqnD zgeJ_iK8b=1hk|Yjnduw}5a-Po(8ECq>zc&xjF}59Eq}c2dwsZGPw=Mg6Cc%m+FQ}y z!Vk$;!+$LcXh!^~bH!al)0O|6d@pZ05^_;_L7mO^X`?F3tnmBRbB?nB-t+OAOg-~j zpUlfOps`rd3Gf~FzxRo#kOW8?e$V*dTmiUV1Q767cWf~^H;TxM?1u&_@AsV&NuF|O zt|Z~2<1Ws`Y-5mUH&B9vf^BGs_gGMIjYUMSuCBTFxXFCjq73>{9Uv-fgwtEVbD9+X zdqep#lJLGn3;@Pc&7)u!K6YO$x5AfyeQ~3aZ;P20Pl|tj6z$Skx9}w&`*IcSooc)~ z?%mIu*t^X?*^$3%3X0~H0`*E7p{IIZMJ6+6ew9*m``a{-EP69Q@{yki6#gcA7U*;E zM5?gpTQ-@{3lZxv4 zh*UH#M%n}a+5_t#QF;GvAz_X(8%d|6ZA?szdR4t~#B?FwSd+r3;m7w0M4!MT$?G}C z@aA#;D88YB6ELL0*I{;5c#x`?XM4QJ2Xvks;)Y1hAE{;S$Rw(cA*Z15-xw4hSun;I z3sxSvTS!}CScZh!`6#hH(8HjT!)gmvhbhB$e;@KD=2roFls;o(|EQeojjCghT^!4O z*kXGVxr~0BxVWx*JFc;*3PY&FlHe!l-YN@Z?cRTvc(ju)M@T+G@j}wt6EN9<Lq4(>$(+4uI!~J83pGZ4h+LF1bZ<%$QRoezS_9mS~xo3)(X+$czAh z_Z=feiy$qIvp;|XFXcUO3Keqa`;mf%CmcK17+R4<@s zfKWjZL2`&yW?e|nRn_;8QeDq02uXh)%Sj!+9eWq^rteT60Yi+Gp@x-udamFT^B4CtVaFIG!}8{A~4pA7gND$qyF+a=!v4mTx;Y|; z>-?>;j|UdbIG$-^AICPc22ZIG6N%;-{PrjT<@WBES~m8)I><&7k^dxtXg(cIJ97BL z5$H!3EThEreDJ+_P8qsff|sIvJ54-eB@Bh)9T@Mg*>SA=pRdU>jJUPW=CWToqGFT1%(Toyty<*r5nd@-($NPOwq`d!aML3%@u!swI3#h8UXz@_cs;AhAn9m? zEGRW65E<#bg?es@jgUQ0UHUgo2Q}|VYkjMCgz-3!5iqrg)9Kz5xB3@fW(GJyefT2xm0{@o&BMB02|@i|8$J0GCgId%L}aQWqOPyCZR%6;ZGbA*kV%ix zZJd8TSLSl;w!YGVa!3}nY^f!{15t#jiLDZ=xZM1v`*$^Jb(uD5vJ--%M#Ox^^3?3q zGR8y>5L0gLPJ|>ih{3#zpPsDoCuW3T*B0NJ>9WLJrMqVyxHqk7a&K>|pp`PDotG>D z{Z4)}0X#fXHBP)=Z|^gjw5E3Q4tBVJ5qETH5qrZ}UCEVnEcxda- z1A!!x!cp7;ZpYZJg5GG_k+eE>K)^6xf`_w8jRQHNExZ&B(+hUn_%3GtASCIq-52jZ z2Q|J15o_P5O^kx4{lUzouCW5wqSUWv*1|uunm-jFq@n}?Ew`X`wkLa{^Qe_V z8R(ROwEmThMVb(Cid`M z_MlB2AZ)i);ULhz3kt`RAhl-@^AP+?#xuOS8#wdLCP!kmOuS`83>?N6ryIRo$n-g zqeOs%AMFEfUjage0d*;@uXp%T0RR=v7{!EG0 zl@lunv+I4$_sJJ47n1OMef}(0J;5HABMqru6)tIG1u})!2D`Cb=g`fsz!MmNCy>B_ zO@Btly67C*EgcG77E$Be<+!Kw2-)pWtT9Lx1x60N7p9)jtnLf1kysD}^DxU=SyXMB zOk?z$8aN*t>D#}H%?;g*27);AD&*-_Ys*G%q?8ff$0-1_&Bg~P&}r;lJ*}h}lh1O* zi>Y&DG_1d1=t7~F3%fcK#+(r}p>adRo%2QAIZ|lrL4l?kky(2OK(L7$ly`r1 zCAEov@WyW1-0SLYiwDtDX#o2fCAbZg{FG&y6@{+fr#vW_2i@?c^{~2sn(>6_;ZKF(tTDhM3Il(w@fZ$yMIH@SPI>s(b;n1#^yctvcfPgB z=ln>A4lldnc2aFHbq@eg5?4nk+Q+OC`Zt1uLH#>9KNS)drdp8!scH{@%;ZGe0cMWV zsTdWa3Y&xc$lHxcD9@=E-*pB2J>IAiT|iR&*KZ{bbr`^R-+Z`Tf_g#GE@!JTN`8<7 zPje>2hU&oGc4nLLd(5~&|Cjyen$%9{7>IUh?aNY`OBFH(B6 z74p(`gq8UHqXOy=aY>avzW|OkhPj`j-GQiW@^;toKizP|1wY&*1w@6G7?NTrCaxKw zB~nm>bQC|O!XY1FjMY`&gNnAi`5N~EYaQzF%p=4$pE`#eCMFoDiO08+NlRKP0g3f~ zn_CFp3mCB4QdEL;;Zy%kw<(B@rwR4IK7NM@5eUC3n3b`$xY0+AdF~bURd9|`Xwmjb zL)VG7pKL%vWFE1BNCs+%x+KXiF?*?3O3j+6NqSI`s<1-Hv}R*TOu+yjuka3KINpnw zDmYM$RcFYZ`8sERgN@5%3JQuW%Jrt#!sEeWHREd$g2Lu%|0>?|n@1<>9`V`-jQrq& z{h6dmHmnvbm_`Lx{(Z5c*KuCM zDKq4xq);IEPYdRNKVLtfPvXFwN1O$l<26Y}I%XA}8%nR0*__fBoetU@&;x*nW*~`MHU+*x^7b24G54Ch08yE|faJr$(XlL= zfaqU@Hq2~oUP-{pRQtQ!uXqC0W++6-SUq1I6|0!Rpg$!g4+)M7 z#oBe_&a@->e#O7GfGUv1U_=k##?7Kamh^=qEnBZEI=q09Sh*dEz!dnI{O5bopFdw( z8!HIEIQ(x3P|{zw{15ez(u;`N)6Otr-=wg!GyQjN=MWUBsc%By+QGo)WWZsl0#w31 zWiEoo#1qz$n-U#x_kvU%@RvE9H4@D2!KiSYCRyLP`Pwt)AMk0vE! z1xZP7@Memb@cjw=#3S~Jq?u~MY##1nyZDfF*|fNyrPH+!7g%C9>B40>SrWBg^Lq&z!;z6Rt-f1+UBD?B`XBH(p7A~#@YfYfwG(&4haJ734n8W2sq^nJDS zva%Ak%mMaH)5vr=AyJEw$v@O0WY!Vvol8Inh#SGBCMn6l*W7 zOc@Hzb3;Wsh}#!%wA(Rny#d4xV8OjKT_3l{NZHC0d%p)x9j_2ywD``l>chWNKuEtN z?R~a$uk&(jLQl!Jh5+wlG;kE+x$B+?m7CVuTTv=j0Aw_C7PYlpj*k}9grk?0!q?h^ zd|f}EBWghn!F z4qtv4@O~5wAPVD8P?!<%LmfI|mAy4zAI@M7Uh}hhbQWAqi5RMEKgy$=g0 z2-(^#HhRQ!9+El3Rkwz`Gi@m{74iQ6&;R2QcyZ@ibWf{r<)_(SncGKcKGRhzS9ufg EKPZe_+yDRo literal 0 HcmV?d00001 diff --git a/android/Staccato_AN/app/src/main/res/drawable/feeling_scared.png b/android/Staccato_AN/app/src/main/res/drawable/feeling_scared.png index 02760580f66e74ce205be878e5ece43935ad0ae4..8782de35bef6bcab35a3a4d85a94d74b78eb5165 100644 GIT binary patch literal 116484 zcmeFY^;28z_XUbeaVSu%IFw>VQ>3^Qx8m*&CAhm6FD`*%MT5H+r$Eu*Qmi&-lbPo{&)#dTz4kt_>ZS}Fr5`dXo*yE+YsyO@)lN|#KL0?ol~j>LLaI-~c`!#uLLSam zkdgf4gM5O(UUDAOevJWco(62JdY|~Jdsi)l&)4W)>3(%9*dx@;&v57r}YHsmSd1RMFYR6vg|FtL(F1 z?bBN&tLw|9E;L@#{dfnj{l)ukJiHF+39*dcVGWQ!M<6*{3s%SJeXV$Cl8Ha(sVCsJ z&Ra`9ZK7gzwQzkw!P^Bfj2L^YS=xcZ$F;RY*5@_l5zx(Xs5>u0V6=z=kQ;Pb{#05= zZ_*)0jd935X)#CWZ}V447hdo=m`VpOUmo$dQES=O%oFZvd7HLw^K{NCvd((jadiMN z<@J3S)F$}Q6Iq8EDzW7&OW5;F4{d#aO~S6PG0pc<-0Ol#*WfD)(X~$~C!GKf|0-`) z*iy3=hBpPYEgNe&xnxd;Q=^$pqgZAiV|G8*h{YE*p9%%W9s0-f=N|rsFSIBUC$WNNcpVIlY~~#RZOmlYd~?D?i%v3n zL9*nUpT5Fh+mQ7sJYl&&gX{cYQ@vT#15c+7mh5UqUf1CVEfycl=q|nxMQ}f-X8~)# zIRe~fj|ipOn6U5BF=icM7Lc-dgDY<%48 zjaKsRnHIN%`b>*-X~nKEb$h?9p7xqqAB^VSRy+;Vn)aG2>IXr^KQ zx!^3~V)nvwL7|N=Z??Zw*rCXoahNjKwnU}i*VnE~-5jZq4DG$J;RH2bW^ewwQ(N9vCJ|J>5ww%m2@dpfQGu8S+6~SXZh=9DT`NNbs2SQLJBqfFRT+eqzT zh)U{qt<%kbIhsz&(N10aL!C8{1+=wm#xfz5=pN|t*=6tI@!VzY^CS4gsQ|7Ud{FxN z^>Z|k{1+32k!;g<1=AZhvlFk|uM@D?O~X2?Tz_<@8670%?9J^R zUSSYvk(Fqcag5F%Lg8Yy*C3M*^G{V1CM^iShS$zvQWyKwH4fTawC(38LC$KoYZY!g z02wy|j|RzAr)avV;Ab>#twG0M4Lx$ca$=S-6+oG#bZhpiK7!JjT#Pw$f519fKP?hN znl2?9I%upoLEd=xlhipE_RhXFpnz6SYtJqA`_iST-E4ORZ`q(L(C*1wC-Dq1**tOk z1PcznuaLL2l&7QnFE+RooK#}hhFM*OfMp_oFR#lJyGvI^E(Pj3;p4TY?E%94s%Gy7 zV@biu$t`kxo61nMSWBh#Bkv^6$UdR0GY%*27v|FIELY3Nwz! z=#aCTBUCX}jw3EYXJ?KICyexA^8lkFt*VjR$L-ytbr9UpI}gtIMTI7`FXUf@Y^4sU z&D9(eY&Jd~rL)%FucV(Qfd6;_Ohe~sRI5gtq|;B`u}SSG(3BQ;tdD7uQ+QnVt{h?1 z6@MeR`T8>)y#qKwEf_Yxb)4%68}_k5^zM!4FKOg&r(8EfMMj<%QXTx^CQYOeloztxGxatoJm+t1 zoTv=%Ar*6gFkTvQ?{cBycR^cz$R*n{*ZKIkZbRvQqMpjy7lEl{$+ujqHwI!X#(2K( zEcV#_?0k{@J`}cI`toM=B+|?=$jm}?U~@A!yA24_jjq#&+u*HzKH4vyfuTyI|B|RL z9_2g`x;rxg3K*NvRWrW7UY{C=)d3T|mgEsowh0h@(Y!Qx;`Ca5(CZ8X z-)!K$rTsnX-?M`@FSaK^zE$PP+D*gdlP3gR$-C#4`8k4;w8+n2qoHKJ`tRK0$qYdq zzNo6*C&GDKy5ItF=#CPhB>UEv>zwyx4h<9k}4VJSaI%%FfWu zKG)`@uc!cNxpbp8X&muQ^L3_>bVQAAy~K{yiss2}4$$WcA(SPK8{5vwBcrh546X?J z^iztXXf{%rS!DS&>LIGZhlcyyV?bW;`O`l&K$6kZR~q$SWPckV>wjj>vmkfxvxd&U zYj9nLnl60%2JC5K{$`Xb4+K?5MT&?d36oRzQ$UD8ni{JcAdT%iBIpYgGU%9Jw zkAdGi#b1N}CK?k;*BI7>4Y(^tcseX%RH)|W4MeojK?4E|X01?n9nPu9YP3?E$bSE1q zOLrZ^qpogThi-EOCQ>U>eA4%kZ=98V8)2k!=z7-8Iv2q%fAh2szwQh^oH!T0&i!kX z*jM^LR0`|A6?NN*l~yyp8c&z64bW}v{Hxv8>NWQn>k@^7a&$EC_s7Z%<-Wo`aW$ zh6}hnTDkAYLdQxHC#guAN~;;-yN1D@g0%Lt>F#cWE>S#?+KtIoK%&vilcXhT^w*;8 zl}IbuU7&8Xj6bo`H_zoIl(=fL&33Nn`Py3Uia*eLAn+W5-|KYybPI45MMT$^abH-- z|J$;QFpJ|y0JVWH^zxa`(_H(y6TsQT-G(WjWo-`pY)`&r!wS*fl~M@#m9o($aCF`S z^h<}=+Jp)6ZM78{%FCI9GN?mm3KdtI7Bzk}SB(|M@p+8`=>r!HKB}5nch6CMkkH4^ ztu?NgF5r({h-j#7WC%^YUviBxucltVPngU+MI1hDTbGMrJY&ME|KjQ@uBM`s>~-fg zug`AIw5f>qZj#Cr%{`E=%UAJIXWQOPzY%vz#s8gD_HI!edlS)1eF`xJQ;6?H2XDJc zr&s?NFoIz4#jv?7$^z4TnpmS_>){Hs9cU8M405G0Ctw&uBgt3ed!6HM9nYniB018;MdUyNKKz`sp&(l=E}d5?)QWiXPc@#MnDrvrpq`P{4eUt`K?CP@aY%l zjBf{3Q>sH%?aA3Ij>oMXtAPbR2{kZ2tMnf=ov%oFoDA+?&ZKoP?Sw6QvR~swLIsRE zwfIb*mWCJZ#eu&k)gBUV8S}y=wq*a4L|Z~XIuG%xAc4QvRMOl50eeTViO2V6HS3Xx z-Amzpi?|yP^AoG=u4W7|r;_5bm-#l2onBf@o#x@xxz!4$I;mNND4))jfoq@zO>ir! zbR3ewF%0)FRr9Zki{VbM8r)8QNSb8t;xCfHqb<8aIbRQh@0Y(|nN1OU-94ivYR&z) z>kd!9wpXW~#*R(h_Mg_`@;gJx>Hh;#TbfP8uSrN=*ZG2LY0uM&i}%$;2O_~5BZz^gkRxm!;GuX?0#0T)$Je2v zORY>?Yd?Sd*`116Z<(<<$No1mW-sqMc$^JvepQl8Nv1;IB~3$^X}30MD5kJLe+0;5 z(r>Ig8+~-8?X^5mL#$1fKM_73C&mBPmv~4GC*RH}juyL21skl2!8y~eqBmb4b}#bo z9&tDT)H7jKXm|Y4&EZggmF?v#|eFcyn-UkZiSBBH_9c%4U{wtWjtg`q8w6Bx* z7(&{G1M+`u9E~ANMd9#~&D%!#Z4E3m6Pf?iRRP)m)W0Pw>jBr(xAap>Q$X`>;NiTZ z7qfb6&pWq?U;~7nsOTZK;rU@8OQDdj9V?e$?ZV%pWL{F)6fu4)`HvvN(rnpZgbcRV zQnv|Uy<2;H=9HA*e*`?b8^YRk8-%J1n;msiBpl5dzk8#^2RJX!4SLBbYv{9-zD$Ht zD1pY+x`%J$UP{lrNLm5N?q`<2>AF4_tY3EPe( zobVxsmpGhG>F2qvWmU%DL3(h;i9L;;4fbAu5`E|HRP{L9$jkB*=SQ!EBEQCus(kSv ztXzBu{13IKiQQvawFZ$ec{mVjN-$uT*OFn(C}qEIPxHx`B@$_9sDS%c#0Pf6=y<*! zV0OBRauVSPxcDZi_fLvQb)}hIR{Ed$A;xzAkHM^~@|z2%H74v$=0ahzO#y4jddyso zwPf$)KzyQsb`6E%t2_u;z-4}+g71r7sm9@{@n2k)ye`_D>t!G9$2;8usae#A;xfE` zl2I9Zjg>7qB;;=fm>YFIbVj?e)ABF=(O?FF9T9!QKO5$e7r2}&)EpKxc?iN-uJ+*2 zZ(W|!X_iVaNHrFObavAe*Dw7()?Z>< zH_6nwDC9xaT-Ms|!^=&d=GC4wyZksW7$n*}o^6w7uDmA@yE|fsyl&r*|9dOg<91XV z=-*oIwM5zYNx?E?d2wOi*gyUiN6t7}iRAX<2T&tyts5{i3hP856VhziY1S zMV$SaVodYSf7qP~R)Efr>?}Bj#?zQT7gk(uPI~}TCo!L^e8kyGtCxs;5ALmwt1=ki zXs&;392QjLLOJ54 z0O3O7Kf=H@=En8*$tpxlQcXYgS&yha?M|;@tUjA&gIGAGbf04_;?1m|Hgvl!PQ$rj zEiUK3bUj6=T2<m^CP9yw{K=3?t7j<>>k-|}_e?_XHxfAS0+dj1;#$(myConj6Q@bxRaLeSR?CdL@= zC5?l>sC5iyQfr2U2g;=Qp_(^0)zBZ=l1c&B zaBif!XbxM3Jn@QTKI=xHj+C=+6=$H?qUPek=AmwRtfz|Mot{hJCnaJNeCx#wfF{^J zw=ovgFkVSnD`Oh%ay&Jd}^tN=$P zQ^e7`F@GKT?ndY#d=h7GTtDR7-=7W;b|q8LiTS8i3oZ1-UtYDb9)IZ)OaJVohHSp{ z>IV3Mj)VindZGzV09qBq1AD4jzisCPdsEJ=fN$4xKds(OL`^z1$+xpbxc zc>oU^^z;qIJ=Yz5@kDbJ=iDEFa{}_T9mh3y{nxI4ylMkQZrC$XV+Fv?_7)#km=q^c zTF8cLLa%D<_GO)hRs`-pl2Hnky9l9V&CYdkkixVMztdo=T$06q#XY(WenVwkMHzQb z+|b!Mk-@2+%Yk*5MX3^mG+*`OWraD$a(b&jw32yV-|x-wVN>p0#;eH#iHA!{WwE|x z&@?NX0EJ8%fwuyEpn5v8koYe&6(Hg4NTj>%jXjNoP#ck=F;HT;se!NE?LOt&8xi^A zAlTh+oBG*YrhlgX=fd*`{_1AXkNu+=##S{i!Cu_wvc<8r5q5c4vXa0uo9mi6QA}#^ zXtOh^XCr9pFca!~nK@VPg*lh!frI6ks}xqoH94Wu{@%bqg);ur!6kF+*-TsXvjj)y zh371Njitc)tFXP&t*~WUq{Bo30lzm|CeAi-$FTk}a$*7E4E_C@!@p zJZ3aYTjV$svs!HIUB?y9>P0=u26nejZNHO0$J2q&X3Ng<<}(X0$ULj{Ert;Z=$Zed zGkemS$1U1+73)D#SMhPDiduIDix6LyfHmfYpK<>)9=`PU=mN9=Pv{EmpWglAFbEuMmil60Try33OB9+iuPfBQ-Uq-B8uU zug5?tSM&CH`jNTr_h=~gd3Aa7S-LPt|F^sSizi)Oy30s%}M^9;@bK{hl@AD z8cDs~$@lV>1Tq)7UQ%DeG1!j!#d9Qa%xQV5FOpMHB%?evtj($e9WB|8KVw7g-4R>u zfP5`sf~nTwiM}^dx*-XFDF3I=Y)Yo|VdIpLG-mH+^h62JY595?XZJ*+b-uVgu+r;A zF0mc(&0&Iel2P`;?OUr~#hc4r=J&n&hzG6nC!_(c=O8Asn3JRX9BO&|!@H)Y+872O zi%tw0vT{A8`fR&HinV^!#lI0W7?0?WnzIJsoeLwML_ejj3uLOJu3g0 zLwne96Q`xsZ?f@A!CO%Y>edIM0|k{DwrEH$z^>`*K1~N*E`C#yCiv8nJzXd*(OdGT zR8#`7mE-6FjiVKy`zHf*wn>h*wY_+E>;QWok4!t=)81W?B?$f?`Uz}r1F777&yHq@ zW!o9-&PlO8I{!Ls+~nLrZa+1T2sCG_xog$v(bjTxcSI{5FkSS7y>)_k<^UOqe?1`T zvMaUQA0Xdrm31vhAmZpO1st}%z}*)F{2mu05a{Fe^5X!sNhs+v=SzTG>MJEf)b1}W zoSd`$}aMfR~JP<2&at`4lB#S9(=?x|lZajaHjdL39_ z_Bi$T{jANeGDKwE4%)rbhq&}t9h8i(zKEUSVr@{Pwx2Yds2*$j1eioVIIxk1o+^p!fnh$5Omq2^T?BG<9m5vy=C{% zldQH{8TYi;bq^F(D&iV={6s8k^~G^MML<1LO7=yCYn%5~)#O@EXWSMAIiEIgrPd@p z%IBObz2l}c!PXY}DCa1?lR`UNVO;P&yoW}X)^2|EC^rAOwIVVVJTh$@eD?Y|Pl+Rx z0E9lF^#Y6@1UBY$`KsXz_+5MLfHPMSz>3|M?12O@Rm$SN4$X1Y2#o}qf>M>Jk@bAZn zjEo-#)r`!6dIOp*t?O|B*+}g5 zh8pU4@y~5XFa-+dY=I-&V?YbFl%-qFGU`hElzAVX^v| zj}8OIOI&X(*sk*oiU50N#90jGt&tZ+W6!H4)J~Bvwqmnl2vKIqE*f|E!Np1x7MFck zrgwwKBqi96G+V^OUJSWOzm6D6RjdofcUcQ`0N#oqKVEYqpFG=NM08lDbQhw(dxP%c z7)NOR7Ytc@gCCOAycT<@y&>Rm9JHDpZS}x7CD%KrRPNZxSB)4zWxhs$M?=m_Y$mRD zi+fF&I2Bo6xZab`PV_pIesG#tU3X)kG23X=kh95=1X)E9%`u@t=e;3#C1+%jOCR-n z=|`Fy*eS)zY&2S&=%IlE%yaGu>sD#;)7>94e=3t_|HJS5C|PnXeshIX$~e>y5CXMH z5;NScBb1X)y9{7|Lz+fU3cWtG3v_2Ogb za_$C{92g9sf-FpLY9(?p(+rewPr0@_aKGVa`v|%Mt$rS2OYy%kJbPzY^^n5&RyIS< zmxhuOQo$OSyu)Jh_WbMK?VQ7yu}&8Rla8GI6;|WT`Sj$?$K_DN*Aze#7$B6sF_OuK zozeS^+fL;ro>eo+02n$u`4+5zss)z*>J+AI#a+s?D4~LtAmD9-d|D(f-d-B)bA47} zczZ6{=7~y<{7;oMCVB_m)i#T;M1wb%#Q*L&u10SzpT72!mQS+{cy~F3)$8@MTJDE6 z2E8LBjCp^tg-TmN#%a*Cl)hYEsl2}FT_)2CZ~vNT^Ik1;DyLyo$81}WRnM(d#$<;A zJt&AA%;LD0_o3B1Tp%?(1?D})S1v%sAMzr0=c&*2;ho?0yOt~ROV8q}DrQ6(@u!Hn z{n8k|SadhV)LUJyO&Cb62Rb8u`{?~Xa*l{7ebsvw76q{)yD;a{+ zV%*n5I(%ek$W&9Xq2!{VR~1S00!QcUQ#Y5|a($kho}drzrbZg?XP##CD)vRmQ8b)J z-1FDz*RG#9Oou2lNr@-hJa+{?E9e+_XX4AMQkK7Lrt-$(CKIE#F1&hGoqSJ+Z=ZqD z@R~>_n1)gR7)u?(n#-i0^n2wDm}ZS4;(0u#T zG50&eII#yC&JvAEh*1S#j-5e!ovnk-HC{SpDvrO&yikYW!+sN{4lC5lE18bIb!Da2 zE-knjQ08tCnWC1J1O;Wd2e?=Yt@Odno@jZk z<%#vd1z}QyqpnbjMxaK9;&OfND#x+hsOJpwo7&8_&#o)=n+0pi&ypTaZhud5F0~Xb zv4tY{PwCiO++che+n)3eIFbegjMQJr_k2I@v_!KOFN$4du-<8@=9!&kaXeLb3aAQR zI5gFh8eL?n%>|ZGFPB~s%ZIORQhQfNy+r2NRdPm|*{x1IzG}{B+5-eOdHszmRblwn zaJSv29I~C9B4dA7L$w^IoybE$AGrL2bywkIrXJFI3MZX>=F0{p4s#a&%|Df`5_Fl) zgpM^aNM?&?q#qW_aC&&9b!+5zIl1gD~S~{xbCZ0Kjh;$thsciD2z|t z8pXRWhk75~?#So<*(5lW|Ii)PEdI>E5OKEv&T|3>U+u2dyPg#o^ePyV4A69>7bY{Z*p(XPh@~@XMR?%3HJHR02kF+Tu-otpNhifkWMDTL8kSpo zjQK$%Rp7!$SuL?cwaFGjFQP(XP1u-T&aHiJo+#0cp>qAmCZj%fByk$9<1Enx_P|^d z{{R~}%`9l6-1@szL)BLJZwNpygtNon`hc&zRup)4#0`4b*cV|HiM9a?iEJbq8ycT9 z!%DC-+Zw1(zm;A!{Y7wBdt|9egZwr1^pT^T1Q0u8%aDUtu&U$H*FW=S6GjWmZ#(=*ri>KDk`ktKTErls#3Ob*J1r%FKuHPR2{+gdS zO$j3U(bHN&VB`8z9eDXo%=f7l8ow)8rabjfEY%=7wJ{`ezi55T`gM{jijsU>{yS%J zw&oSr_Ii4Sq4({=T;Kn9NJL%tkH`4y9!H6-)d7G0K#W`5Pic>DAf~)DFcF`X7E!hL z9!m{_POsUT>iN+PIIKA~c)#LTsZpJ`Glvd+Lybct-diuUB$H4ZUy%t6;ER5sS-qQS zc+g+|zB}r@A7B|R8lN4%{KX(zhhKtDzS+ic-w(3+#WQJ+?t80siO*Q^7}^`dzi~a| zLc%3OOq{e6C^>qSc&`uNzvOQ(r*^xzAY;KC^3rqiMA{#eP$>3VXVKipD)Kr8Qhmh} zMRFRu>Snwek)hL|JrPB;0)$pThZ|6ru%{hVtj=e?D*VS+Z=CSJLY=4k*CQ_XW$BoS zL5Sz_Ct)tuMZkEEB9LNS7PCuLY1nD#hYePu5eeI;(gDif8m2{26 zydo`MNTxTtRN^Q5{yCXIi?F%rb7Wc`&zz0Bda3U9SmuqY)ckiiA@S0N;OF_+q;j<$ zKF-+up`NNO_EEB}?opTm?NNBXfR{LBVP=22po=VUCij|7aq$PJkLQX8Tji8ZTF5~Y-GY502H*M z$cOU09S*}h2|>RA3$Y*K@t|!ryRA6HI zx0(I*7;b$wT|;Xs`YrE!AZvcmisK&h(~~i8PsECG-DVA~OqAH-Kvca6N1kmS@ejKjo&9K*`cdv1qqMVTLEiBh%&b00UD~M?97JmmYR6_MD12I+JBB)Vlh^6@9<|S)JbSE*e)* zB|{1o^T}RYU(N+W^##B8NJPf2c$q<5me=NH+JA71-1k(S`|Xmq5L(GA(tSpz=LiT@ z!Z-A|!U)>={;Y95W zJ$^Zl(Dx2bDth5x;1Kp3Q6_rf08yM+fx4w$^=i8SE)zi+n|OV(H&H&5X0CCQ89hL9 zvRj8)XO?2xDYBEolO}8OcYma&A`Y*kG;;>GFFOO3Rsu{fc-~7hETcQsl&Y`LLlDDf zBx!(6f(vn!XMe#c>p92TnBL{02A|Adv)+n(->(V=omYyBEU({5ov_MBEn|Ll#EfWZ zO00cT1_H*OvOG*^=JU?blkh$#W5z;gjT?F1*TPQw4yEUV8xs-h%MY$A?{k5mg!?jL&b^Izn-XpGl3|;b*n)MfSw`1AFg% zgR9}OZjWC>t1n*(YJ14YJ#>WR)dvc|XoRZMfd)yG936k5vHj_>&1L2lzti0tJpBx; z?Yt&_0G>`qli0{C%+&L2LLa5RqQ5azRX^Y@fH|b`adP^0xe@N`$fN+0<``7kNIUl6 zkRgiWR7rcY{63{*=`nkk(YpNm3V**0XZIN{6G4RXQr*dy^j6!?T@P`sp(WQgHOA4A ztYKX@47UNwiyc9P=~JW9KZJc5W16TkCTYeet3HY)ul=@|IhI_M+MlMjcW{$gDOl@5 z5UwHDyD@$aWxz7sl8xqEIob*h{(N~+VYnd->rM;C_lEQ!+3#VMaQYSGz8Rehq!Gj5 z&z#szW(`Z#&H-q>paCUyNGJ(AYG(H8rnUa*4si%s1PXC5r10mIwP0&9hf^Lx0kl$F zh_7 zCq8Lie3{iJm6?-9jqN9cR_Wt3NIlQWbi+Uv_V3xU1*BtREo@6Hf;uK2NDrWqG9UdoC(2!CB&c%bn3@*R z$GII!zDv*SZmPO}uJe?)HC%k;^gtv|n0r@eSSI<*oNnJ|CZZO;8Z*1OoFIh?1!O?` zB@%5Uf4~CQMieY2X5M{=MoN9vtoy^(X?@ip_VrH&bTSCqp6kixTDMzA%@%&BLfsYh zZZCCX-4TmEW`Y73l&Xul-}b6@h@!uWBTtVb>UAK2qra`L$$hXm7S$Zc_TQW>VFdSQ z4NDu*yE9C%n8)RqZtrOU0geCdcD}T0&I#C*k>_L(YoS9lEDDD96Aibxy*$f7qr1Ma zuEKTW=VqPM(qUe(eZ%k~Q>E2mbBr|MSXHxA_E&Z#wqG0740HMO#VWR6U&#ilXnMVq zdorltz#f$2%7~as zq`l$E4S&4+@C0%Uez05znE2o90>CHKaM8lC;oo1|ws_V0(1w0*WlLrk*I573qeJ>S zWT8w@StBD%>pn#7T{S@6@6kZ$D3xL{Cghw!n6L~pC@n-ClzxvzA#$Ax+hY&QYu&7mp5Yr5QiO9r3W^+al;UDu8q~=thY6 zE~YX#%RV-^81HXJx61n6tu`Mvxw*hXwn0aKc@?}oG~RLZ;D6J-8Qm0=6t|}-_N<|l zV-NknXCyQ6z2R*6U&CuMldX>$wo1f1Z)WF$i+Zn8Ok*I`=v@5Iy`j$hP7|i2%DAw|M)F(GtUyL959^UpL1c;x>vQ7G4q? z!z3Nt(`{K>*xO@LrPuGKG>qvZv_=PU)k#=g7bq~LY7kPKKeat{M@w%PMGz{BHOu@v zhi*kd6G%$Na6llgWNn1|?whK7)?lw15FbFq`Tbh$`FzPntt_eW^0#u+b(Rmf8rMX> zQ{C}P5~YcVK|^sR*$Xw(yDIkd%wsy;#G{V5R2g20-}X>ro4GoxeVysSv{ooFNW;9? zuvf3VXe=wL4mShW3bm?S-#?C$J|S(T{FC=Dp6QC5|M55){2q8&4+)-GiB|0?Uln?| zsipN=#V?GzX$nR9WiqsYPb4*yacHkvq`5&Hm2T%rK}B5uH(!~<+10_Utr$XRBeMIDyRa%l> zi)JUs)w==S2CjBI#BxxSk<_|Pa#F52O~ZTuXR!D2d{-{HQm6lHd7>13JC~zC8oS;{ z(3xA8T=II`z5>h0dH;!$IkAD!Je^3G$M=gTWZ(Q)gU7T-eGh9KXzRq7r^18MHuOk8WRw1FeM?1tTdPL<|qvx!EsQ zSY0lE24ip#rmOQcNdqd}xYgRWQamr4B6)SKXc39>w=FCSYGuMY0%m4>1LHZg)MU>1 zaNcHnOi{7k!6AN|Mjw#sMRu@>v}TKKRnB>k;uv!G-j=^JV#qDoIew^{!@F|h)3@`h zqf26G}#BGSUD~im~4fm)nVg8C^%}jx;>xCBL`y{4$4+%dPnZ z(Cb|6KEuDvqgD!Q?lxo;gC`w%3|@s5Lq-Q*IUZWS<{I9i!7UNApPxYN-x>k0D+q{g zA#n@whsryCd;~Nj;OG8SvvQ+<`{2Uy{)_eWyQBWX>TXov@wuJPIwcrE_1IC0X~X%N z_N*FcNjfepnPG?pdMjTXWTirPTD$3S)OqVg`_N7hVDj%B-#<6sx6nt_NUA|We{f8m z{Ck71JCjb0ZW7vh{l0<^eetOp>+%Z>OU&}n%ox4cO}(BzY1*|PFt>2<|9R!p@ZDKU zG=YPKIC}|pg|+~)Xx3Pa8NgOZQ;Pi&eFo>-@JO(phRpv+pBPPRabsL`*!$^p=*w!G z{eUbtfm3tr*+wwqV(Y=nxe!7;J#OFbZfKv!d}1GBdS0fWc7Mw4Nl;r8bhzHC*S0KwtlBzoer8*mVz`#3+(>2vU~0PXHE0a$v_WtNEDKGcj(c8Wm?KN5J)Y?Z*s?gUm?7d2SKLmIw9#ZK-Lx{7;E;J!nTZse%aPRmcAh|? z;&oY*tN-;>eq(uU0fs30zuwR@E*{VrdhA(?!?Qad2a8z2h{c3_M%R)a!&X6V$(*EL zdK|=}%f&k5P`u+R!71wfvXTjM2P5)v)Q1GmGDXGMg$9|!&Bcu(a8cSvZG-%ca&|V# zXn>(?U4)@foamk~n^u9C2tG%@x*W+bGR?Qnd50v1jIquV%8!>Gt4`6f5sKH?@{b0` zk4_(s^_KqF3l}UX%r=eg_p49cIvOC9m0vZ&n>UEf=a!nRPfa#n6&(fuW*E44Qd^3A9RZXN;M*Y1j*0q3^{q$|cl9*C+T}f|#Sr=bb1Y`uc8Mj79qaR)o0-{f_U_!xtMb&YK^hJj#}2T^+6m#Q=k9Dj=lh1Feb zmQ5sMq1H4|ff?Co>xL2YEU$@FhP+FOJ+bPEuuwtdL_rG5tV&GQ= zAE`qt>J#_yIGvh_C(_fUN?5t5AsOF^4D8W53WhmV<#rS;vXg}b6pb!D%g1Q%B;Hm? zr1z&a^El?S%G;}IyFn@0XPLcH*K+FWGccu3MrZihO(6nVK4!lc|9+2~+^gE*h}H!B zlKMXKqcdrS~+A z(YJ?7u0!j1{L5WdDpr+@t*V%g1qUYyknOvT!HOfGhQ_6nS2}0Mnq-d|$EkaoYR4Wf z*Vn8r(b97`YEsWm#y=zx>i^s{ZrN%Qd{+#<+i^Tl4Uli`^radYtjqD^>q~B6Ag;03 zti88?oiAEU%0b|yXfAA~psgKNg1#st5e(t_$+ND`P^pJj*5#*4$u+kI{6$^4`j*^~ zGosIjcqq1>Glj_(BsU%{>soNeEUQwMnvNlXf0v$L_Gea4DxLZBdYbEpka}T8Z&G7Q zSzn1c!+BU3IGDSY)Rt%0s5iXb|8yAljX5yG)K<{4Zpt8-C9rG*2YJ>_BBf1vxUVzo zl!y~PnlYQWhv@2&6?TJ>1u05N%q&8_NO(0~Uc+cQq$#Z{hM{Fdp9o%lI4+66JH~>2 z=wc2~yq^MZcI3lZ}KUWBZ&pq-2*`LD$w9mBTA_V<~cW$^WbU8KlxYFEsv9hpN zuJl2h3&QDU{=JnlCEoflS8aXZas~EjdUC-=IaL9_sWciIaXd%!#cas{^&-NSiAY{R zSo;?rU&@%);CzYBNK-I}*LVD}Ak1DrW$uJu?YKgp zsU`N#PKD5vCxwA5z`{R<)h%!APY|4LrKVwXvaPL9<9wx=Xc-+-llB(S9MRHs<|i*Q zcVRKr(sTb}R#M+@x?{_u&5(9gJL}t-=3LsRMD{bEJ6c!z`SThav;x~_`Fv6RY~-7S z`g@r?YSH#Q8wTq_u&J?)aZhz>n*3N1!M|Ih+IBsGVbv zO@P5GMkm@%QIPtfcR8%i>4c5BQwD4A^Ub5up&2)SYQy8o*Lzt!(<2+2utktui_m00 z40|+Lg>inQJN#r_a$EC_RK41<1hvQ+K{D_@=>gjwm1J(^(urE#ph1B= z;}pxED6ttKU0Jduz<8F@O))Ezv1<6zSC`;M0j6lirdu9<;Gm7_p>FPpg5qbk5rz1; z<0MLY=LLn#6r&ts(*sl;)!2=_Vqtic7*?5#^}SvEgZ)VD65+@SUe4|`*bb_riNM*; z)dy%fY`E<{IF4S{B>71PzjDt9+Gxu)Qvt;D!%Kj#I-|^Z zDOG+5m!AKjP_=f;l4q%3agMhMu~kA3V-xJC$Qw4EvHWB%l$t3vLy}I6f3{`q!6jU9 zC*egMra|Rlsi@RyPs|TCOV6AdULhH)h|)*Po~VQ;pf8g!G}T|Bt&=PAHl8tc%;q+b zt+LmnE09F#JT(cJt%cx6;q2|>DaZuUGY4EBlw<(G(SJLoSFCv2E) zZ|@r%Zle~(wNp59Hcskev*QWExJ$6V@O>Vemw2{OI3kztV1Wc(XTz3i>rh+3nFy>V zt$Q-_YrHQKr|FfI1zCS_EQi7jF|x?*7cH84ju1w!b-fpM=U(VXVOUY);e*?02%SL}RP9K{quLAqxsFuasLDX!Q9mvxqwa)!`f6i57Vej&oo>* zvj=ON?1ea!Kj6b3HI=a1T-`RaQhH3N_L9$;&oIB<=X>(yc2bMu6tQ`cIoo2%DV0LC&t9xES+*4y!w!npGUwbx<3BpH*o zDNOG)Pv`Aer+i_5HVfCx6k9Z+1BOi^;(&Ey*;mBy#Z(5tC^-kcfQh7XS^|m*?h)c2 z3eEV+Od4rTpRDJ`+++|$D#y+7H9ii!2e`_HN$F{noAng78bnUYZyHvd#pDDHA!Oli zA%a==?X!+=B0SSjn#RguDh9;a4=RDv9JSpHc7;a&4*;b=TEDnjvL@u|96VrGtS04s zKBF&p#^G5n?ey&j7jm)s=)yKw6f35A_vvTvp?>_mmhkto1 z+`54m5Mkj9G%M-tsLQ=dSwm-QN23)6sEapTn`S?oP$P`7{se6ky)i zutW-Sq3uc3T3W_qQbVexC#{VlHpr1uY>*1{d9%p_%*58xv$dlZt6Bi49LE*eX+g{O zq_;&S>NqXf< zS|HO_R;^k=jzcPLen$jM}mY<0AhKz;84wv{<6B##qK0`188zCvi;xHd=nuv{Wb*$DjI2N<$tQXgl zj=>XhE!n%gg+3CLmGdgjxIUVaEL%r526?|bIpSSdn9?f~4(sl$W$Su1)*&Cw5kOmZ zP2{NI#uwsaWN8(U)B1i)K2jrb$r)PY&&JmD3Flt-@s=fin&4_zui5Eq>O{td6vl05 zd$LA99Oj&~zTOy}$-5#DT}%QM*TdO6RJ6&W^? z6w6)@Yz34h24pP2=1}k>=l=uT{@{Cl=IY1)0CCBN2n3#GgoQ6KU^XUw&nMq-^osp! zzj6KaRqtKd*?cv^WReUXJXvWghb1`RzNKGtCOB-{G^(^?ldGOT=M10Z^B^#r5{ml; z?JB7{vCBkE5r7SLQPY&#CFj>}wNjV7tftp#ClOqwQM!SYb7>78nMhYe#bNo#js!`-_~)VpXjfgK}HwB?EO` z%!71d-2;6Wm)NL^0N+M8Z`}3iJHCAV)Yb1> zJ%8kFfK#I9pcmdV;j;wB6SmfL1uA{>N|83NYoeJB^+Zc%m!1bz=~dFE4&yL{1)yPl zTLhVQSsz~_8+VKXj9a9Xa&;J0Un~)zF^Wg?aykG=Sw~cvbh~91KnKpHCSRn=RmW5L zl|Iy&IAd$~tksVc=|IITX*|!l`b)3C(U_L}VkM={Zy5?--q4XTkUk*msvPSdjk@B^ z52$*3^>E>cmstInM9KQQ`pp)scdt^XYizBv;q032i){JLbh9t(`?OxNk%RJ)EWN7% zE|XdFw+F}1{_Dvd4}bfAcjEDTAgp|W7XU%{E@5oZR=4`8Uw`G1)7O8`%FfZR>u7S= zu8wJwGi}jpQIKTSfrWusw#9uM=MfOmSRmEB?@5Ng5&it zeytrF$J37Vk0BM-{glRtvJTHAM(RTPq=X)n_>EJ3iD_~ixdv67vHCpl1`d@YRS!dD z8$_FM7MHBD_`LGN4Rt^QT*_uuYAeI$3OV(8>eplvn&1jl`uH= z2wF#z%>RYPMQV*@1XvxD(js*zf6`0~mF1_x0z&AyW$Q>0($SZPYI*Hq5?LNMpearM+e74a*Cx6(n=*Yu4v`P1pBZpWl=lJ9FqPoYin4?6F< zt~n*5CJB;Wh!$1p+muMtOiMj&FQrnfatsTT^Wl#p8vxdAtlh$e@8`Zdb6%n%1?K3V z6i+NzPA91aRc0IFYmm!jDUjaa;YpSwqzxio`n4*n&T!_Q?Nz(@v}`Tow8@FuDklf2 zHNvU{M$>#g zOvc8}J#gidKf8a`xu5;Hs~$cLfxz>Ku<%_1n9VOg@yRzFo#549zW%_~@15)%e)IH+ zG`D>k^bo`io4Cw4^^;w>Vn5(;oJ;TQ>bs(!i2*Q=BI@aFK9x8K(Xe0(fz(57-6%N} zri^VJaAZ1e@JLM#^tCeCxfH^`$+Za-`SYfEMOQ$(*|^+8ylnYE@~P1L(d0%fU+8l7 zzvh#B=`CHhKdUR6EEPVidzZE5S(4Wd7wOgwEp-c}(X9m#o33ct=?eKy>9XaAir!pK zeeaP<(S|LDZ<+d{!KS4FN`huchN$`6`XE{Ef%f!8BLnvDRtF)**IcS2+==^^&weqW?Cp zw~!Oih--EvQJg1yrMa;X|^TAP<_eCnnjSlv1D zClMyAJXg2gX{$+?-KfDc75~J>=8Kx<7zvH|Mpu|K>3c5cfD4keFqS5d%b=|SqdMUn z-3-xz`odhw*b2uoW6ItTuf*5^ye@=!WrMJ2*OVuPHnvMwNT7~gE?VmdfZLQiM!0Ow z@(br^qC?Qh5i(eXRVm2)t&znBd|73`{qMbm>RXl`kZhySH@zEbV@zMwWmo1EU>;|461mSxT z;=Oe1`i-Bu?aysK^^(6Z+1t2j>aOUZjG?y4ncx-I#Ue{xc30?V$skrt77he$cc)6b zY-q_szq*LSY@WDe*QSx2Y3WoW>z)j=(UVb&E@(PaPn)etI0Yq1Lg0*AAd}mIQW1>i zIu9+qgp4kiI(;J(R1;Tc!2_xFw#52Zm3yO~wkg#-^4B7MHNoMio@A4g#Q8|Smg8Y+ zYo%|~HtCypFN~2sf6dF}%@}%P%|J~X7F8@3Kk4~Qs`$T75x$bQV#NNa7E|llgVm(kJfR0PbY856gDil3Jbva^@aBiU|HRdg z{y$sc+6_Dph&6mKB5cv!D=QD4`@CcS=@ox*<@}MaMw+Y^t4Ovu@WH1;D9YiZ2(9&Z zwcT#mxrg=CTVfdzR3x`Su&l*m2qn=g@u}Lv*!pGD+Wgt#=_lhBp=inHsikuHqR7$p z(t$2DRh6cXAIs&As-DpHet!tBm9D9SCtzgCj=6lrvJOJOiZvB& zp85f7FbHW~%&Xu?e?cAuL9UUtF3kRnj>&U4_gmI56YecP5k6c!yfdmT|Tx* zw;6zKKLTrUmP40wOzxT;&X)D%?&RL2LAoXssYg_a9=e=ygQ*|`h4egX1( z=Rh8w!L4DGu@i|VcxvNK__Z#SU_YTM6UDXAQXM8LIBi63g*=wjfa?q7)wRf=R%N8VehS4GHRk*sv(oILLvy-y$s-B z_mj<=<<0FoCLOsH0QL+&RbnP-r9JCIi$z{)1_FY1n-M^<>T$ko&6D`n@<>%5O2oQ{ zk}0HDs`dSTDc9^_gm>q%46j>pReOIu%v{9#Acs1qu)$fsy7vHH_vl~6mpu0O|GUFy z9)dWkCGZ>~2;W7HchehIU;aloy>so%mH+L^{>Ckd=xM72l&9Ba&)Ad62+G968#jE6 zPH!|=3Z67B3S9)6J3=0mN**M(nY>!z`GaUa^%x_B;D0C6fQ`VBXkJa|+HDXjuamKG zao)=1#n({F;aS(Z&a4hLk9rjVse;;T$a<+F%ya#=a(2@^w7_L`rp|Ue^^NAptP_*b z(vZ7`#cu}vsxwRc$n~$~h@ZAXwXTUYMdDywUQ42PPiq~y{XJ>5RzoNc58^uQlqO{Q z1-oevO!~<6@hnS7T6)vSesS@t16Q;)ll4SXq@nHDJ&dZH>3l}&adYpJlj|P&$^N$c z{?YpZp2Q%1f#(Q8_%2cqZFN6%|G#|A@yA~ILu=bdzhZdrZH7MRmp56Axoc7X^fS30 zwV;0HXIGd^-dLr9(O=KjnAYmT1j}@7ZAtK{m&uKq`OG1AnMYXurzTg##^gt3-I zB9o~srB}q!5=#D_{x5=tHFtv^v=25K<*>?52z(Zy9V9ZfQ=2=osOi6b{<)8v=RXS9 zJ@K<}?PLG=#Njg!Z-sj|@Ejlr-$jPmobzL!d)*bAPrd9rH_l%5p2`0DH8ZB*SLZ-w zkpue;^{@88u2U@YiZvZ(&qcGbM@k0s$rFNp69X+j=d?F904S0w`Hijhlh5&zP$jJ` z$B+?%QI|5?QR}nJl)lhvMQ|FCO5dVCP)Vr14WhC<<##5xxW3g-^sda-qr?c^Dx|7y zC6ZWtX^@Z5u&B0cX+8z2Q>W^qIVo&?+whh|9f=z9~4G7-e`I!3H?*ujXO@A;la zTMZlQAgkkXYTfk42T#<=^gkFOeE@#LMsfE76w+7qSyejYZlz>>ORs}Vy3I<~E0--n z54um2B7EqMuc2(+({BhVN4AtwP9v>ve;luQ{O{nkr+)DZjy?IAcOmRUAn+_A2;W77 zErRaw$G`S#51qUE`&V|3ypGrD$&22HUxq-Kh0d9}njtRd_8^y}GL8MmgD zdExUwbMk@8UDPI4ZIZGu=TXKvpUU`i(ta301uapq5iYGTChr%chIg%U~v7hzwR1AyDMa z6D;jC)aI}kkw?un0Dx9J&E7y!SzLnOd{=f>wEXo zl~4T>y6*8`ICgcZO$qYQ@!;MjKc>tgnryv2`i&_1Skq@Z^j^eSh_o z_UMWT70w#$`HrIm?GU@+4uNwqqC8T1XQ|l&0XC{5Rj6w!gFGWr20NAZi{wqh* zu-@vmZNrzm%^0VCk*Qr0!%o#iBH#vd_sEL##nicWWVc5`V zyziMj!O0y-rKp_=EoE@KjH|bgls42g$h3}3T79Npu@sZIbjxe(KoL0*!pE;qGuAqF zZ}LuELTfSXdnSUYSYMonK$vymqpE(v>UM0VRc*eV0pZOhR% zr%bds4$Dsq;9<0yX!IMoNb_ov7OcI~zscnxQ?Ac;R41=mqvp^_uXS@FnVhke(@)}p zd6ZoUL5iwaP=izsm(UZxRz1w(^^W-YlD7N8y!&<@@oS|j#IMv7yGX&fb|r1^S}@-i zNX9xitc%OxC3dzT^7(wC6&bzlx<6!eQ%`OM@e4dn1mU{?u|;>SUG|wE@EbZG6X6n<;k9R z-Rgso!N;v8OROwOb_0l)45RDPj2>qE9;ZUBJla#r;uJn?3{;7CWT}w79NDQ~c&1Km zED{{rqLv4l9P5(FF29-t0%2nUwR+IFWN5)!MgiJn%T*}pYd(D=+>0lwbD%}_W$ZPh zR}>SIAevVbI_Eu1+?$6@iL*k z%KbQ#n$~@<-=SNqWdpwvnWeNw2Itqynmv+ut$sp<9IBnOgepxh{algHvSttcS%Ivd zTBldYquAnw#HzlOb?y1hB&Ar?(@K99*U$YS9XvSDE? zCaFRFx#)Cb6Min?Gsu(XOnWw$B}7$8+Vp5yVw_VN!rsWXvUJr-Eh0KTpQavTS7>qB ztd0QQdPpTsOB{!j|=PZ`UYgF&j59Z=~6W`p6ggJJUz`nDY)^Fnx%OewLtSH!@9Kz1!V-e;*z> z`ycV}`TqcyZT~;8cK*{Rt~&GNG~&)yYKV5D1ukhk7jtjmfcWcAeZ%Gby+^)#WBZEl z#2%AXFVnmHKS-DiXrRK8NnV}+)D!@9Gs}h#N9}Cbg7tds5Fw?l!T(^?OG+TWIoHTmop*4@sluEAX1>_O2{{9NkTXP4zV)DjnGp zGi@m;gr;mxXp^&MK4L*J;cS6Q!C2*QWs9m+D`j_Ku{3G&M>JCN<0#S;tWuA8k1OE_)+*TME8*bk1=^>Ty(e*X?;c#+ z`y)KM{o8Q#?C-8@?0u51>>fD|Pn^9IVE>)d3dB@Zi#u50MU8{ZzJX^O({bg;AN=B1 z9(nlopIO^E`o*9QMA1OCse*|e55@YNym5kO!+1BYUXzD&$lbh7qOFPxkq5P>bMD0L^eHx*{U9CdZaOZFP|*RZw}|I$cP!M z3n3)bd!rK^B{qj6oT-*K-jwf4Tp|yU-NaFr(W^{E4zp8C{(VsS)y9Q2gQola^33R zGWoWwb6G-5{t}S2f*I6|G|opj&4{bZBzXoTQ3#HmP;{7{rkm@fDus%0o@F!Hgi@aN z@A-$;&MAfY%GD-DDnH$FUM?-?R_Xx8b0nSCO7c{O<7;aT@1E3YTirnlM5A56SmUY* zTji-q{xBDlE{x6*e4X+G160~J$gv?405IBqnowxH^)(omKS!pJ03}bW>W+7*dx-t5 z2?{lD+M0CLnvJE?Wwr73{VD2FEtPCvgd*9+9VrK|qbq6w6xVX5WJRdd7M1(B2YYz3 zUfaj_wR!Ctk$UK%B8%mh@nO(MHfu0B^gEPUrVzgRXg(T-p}{r1gI#|PIyyzGdynAC z-h;5Z|2bIiKhv%6-ZQ<|p6J(hADm3+3~bUfMly5@I3Iz!Hu&o{CWe z%>sW*`qCggd*TMHX`>#R{TiilLg+1s%b-2|FPCPFjm=|ePe-1PqhcrvpRr09GSZOb zD<=>BwL5eXREB_6E=sw2%z>(aXVyIDsy=e~n zQ?+K+z|*te-OB!B)4$s=*?SCUZ}wQ-duV$7?DYEMQ_u12_v6&f{=$<}61h+7@WceB zWO8k9dvAUJ)ap9!tv@x{nXIjD@1J;lZ+mJ%ynJdwoRP&DQQS)1e)$d&c+Rl&)Es!` z*qU;zqxXE}J2oGG=})ihO|5#EpAB(@u;stQr<#xvx;ieJ`yBi^eQeE3NCS+{#eX+) zVSL-e!PewG9fJ4FL5*+5qUXMi!_wlmwXU8RX`aQfOwQ=VLu=Yx#`4p?LSW#6E%rnLoUpd zwCt@VK-+QHyZUaw{4b#x5jCgunzYr6di)HPEysWv4kmWTlJunWw6_| z8%S6>dL@xWOm`52Z#ZrP;^JpM9k;scy}kp=G1 zW|HG)7|GoXGG+}w$XJ`z11Amh&6L~a`=*~(#{RH@rR#TQ(Wb<2d#dYfckm8OrsNU& zU0k6jq3fTTx|h#QtL}-xy}Uw?O;-AQroFfR|^MtKW-Mn#P_f79PbmrPEpq1ksZU~p(hyhsE+tu-1Scyj^Ef{I$1H9F+ zoLh#T#0l+eO}Game9NFk3YX2Jl{VK0j#+QUEEhhM>s5!-NZttJc{saLu5&9+O=FG( z>M4Spb^v4N#I-<8cWbTXJffjVmhK}<)TK^dh^R;~#m!>zsmQ(oYX}PQLltdm%Q$ zXuB`hBXxXjS;Q(V6E#Dca=5F@Lc-O3CS*%U9|Dsn-G{LvR=SKc%b)3AkVu~BYTpC` zBzp9-%^(D(xcX4Fp2(cO zs>T-QC203+(}IS$gLxy&ESD+mMcSWsqjNCXe*)M0Pj{PpA6YrH|2zAe`@ehi_NP96 z4B)A)se2g00{E;T2;XyvExLPU^*(&t$;WU1>npoQ?$ET3U9QU50Qx*U{h7XXB@V%O z!&z6ZNU10T@@7F8wZz~fb3OT5T#Kw zbM74DQXI`QeWDu4=1u<+!%l>T40;l%GSgGyBHc=?5hAl#j-6CQmTz-LZQ(M~h$@Me z80BwdulP@v#n;8E?WDQBNez9<^+KEoY~)6s2vD!{Gm@dEwGvj5P5_{}ZIDW7%gQ?S zpf`YV8n*bEO-@Fvp17INw20qGTe@)b&^8jkSRk2yXjm>3XGMvj> z-H+sQw(jE;C#BVOqQ`_b@snQ5mht4`hSFYr5)9@3DfPV1k#=yke`2z+|B3F<-mk2k z-1+5=Yw*Lzjy@IS?-?Qp-*bc?f9#fHn~#6~cWs`!`v2ecYl90{Z<_Fg&Ro}S1|54k zuvV7AA_i568%)sAxlEcYF=*>l={6T*gl{Y@EtFA_muC!lSFk1vb>1{bf*L;ahprz| z$*VmYOH7Kb{IqsdT>(d^pv{gNI`A|_^D@^&#kp2>wDIz^NDj@hT-Cp-^3^d~eXXS9 zlCkiyR>j&(`pq4=U!jmVZRIOzOIZ{dg!;bK=}?siv%j9u>8i?6*BqHVbsn6~=gH}q z>`DDuoj9I;P_^|*iCa%yyHgkNqpOGMci_nR|9$=1{a;?W?$oD$X12*Ba9{-Cd$uv{ zqFYbhaN>&l-~OZP=dS!SQ_I|njeu@&g%*X&gb!_a%hiio2HH6lK&{bBpL~n+JmNZ)e35w1U=~)a#0Z))t;JvS7fHGmoBfKBwH~>wj+T) zCe5n@O9%|HAb@eJ3_x85TSs;Ni;01xsl!|JCru!nCp5~#78o%4l%3ZqOs5CXtvr^y zXP#Of0KYPAas8vxJN?$WH>8iq0g(GYe^;cZJSH;315lPUEQF+`9w|b#Ea{W-Si)!8 zrC1p)VKNe^Z{|y-q=m_q`V+!u+d$l+es?liD<6m|Gpm$#P0KpBeITbraSs!jcIdO~ zc81x(&DsJTuT*8Jp<&vs$iUhyu&ZbSt`l@}4H4)wYu1GKE-7AZ+-5Kp=HrmqN zMr`RL6=6m@y9u41T(P3?SIo4rk6S=Xj%Lq`a~$u#a^ zLx9i`J}P}ryT*;ofta~nwmeQ0D*nl6uSKLY9{!lzK|n(T7cw&WK-kc<MmIQqNjZ?wg}ODlC&(eb-{#_ch8c_8EcCf zjr>iC?O;5ni+aN6iPgfkubuRktBacK$hsmmuT_c0+iuPk<<8N%>dz`8Xjvc{W_i-CetuSg`X~{`bsU9zcd`f-jHN^uR z=-HZuOtS{B>i@YfQ(ex!YHc!QG>LLkXo6N=f5vr?k2m3R zNng=*o#~h&W@ZCLZ;2d~Jg4R=KDe1Ay(}i4{MvPUzi{QX zPu#PGEp{8w2*UR)VC%zotsPst>(3oJbIlJ;`t=hW?#W)Kta9mdy!x4(p(cEYjX1R& zJqQ<Kl_1j%(eDHaBd_t2^fy@zdi&+0Eano4R<+@0gLVt`3lzUJe5>0*8SF{z*-&1lvBdGK;2DL4P zP~_@sI$X=wWe_PS<(z%*U}yE{-oIVFa`&%1-aYoKzjPPuKwuO>_?{uQPQCi7%kO*j zU)nf-)qAj?Y|O%1N1LFrkSSMf1-AZmO!*4gs)(H;f?A$^QWoNv;3ia*c$}IC{rMKX zluMiNJPRGGC4k(uCFYJrGy&B#I-ZgIqQ>`@+_o;(MKQ=hy(W+94Dw*>2hbuje;x7O zr!!F!||x8y(e5Uagoap)MW4FX{#fSYHY&DUY#emMF6cXa9}qtQ<9VxReNw58tFzu z31~ErIz??E&SV79TyM)%qz)`u)teiV9C;rw_krOWKh)&4d{s%PcYQAr_vz8I@mD?ePkt%Z^^GD3-!s6E-up$jAAjPmzp=J+3snE$IfZ776K8<=_%Sy3s)mHnq$PYCoLeagQrzeN16p|}JyNJMu}2YdttK*|r1RSA9xK0F#4m*-%C(t$PPj&+1`YATV*TQ{SZai0 zxb&4i!%tGe1#SLO;khvQh>fk3rQTx zsS2pag{-HP2c@Wtso2TJ{wG&&I`_R__KGL}m)OkF#?zl=FJa93;ZNNE#cw(O=&SzT z%HH8y^rVcA>_LO>=}xPUT9MbC=}$YEmGyaKCv}~sgrWLgCjMGasB+T52nQi!Ez|$g zfgZlnZ!70OB#LNM4+5H7zA}ITfZ4rCTFEw5z{dA>9`ZR?576Y^hVukc9Z|tVB**at zm6|A%5E0r={qOv|CiW9EH3pm#7)@>eeip zs0W4eK$HoDejwpZ16(J5a{+*FDbYRzh><6+Lrh3y zi}JgAlZ$pn`1rw%lH&!~JudVDk+QK0o8SohE&RdI2n zS-!&A)pcv@t@PSy{K*D=^3Y9Z-*fdVp8VAAbo7Z={_T~$ zL$}Sscn;NrPa4$hmI>+XnFu;d9(Q(a*V9P{Yat4G!}6b&pW~p)2OQlfx;lbb>52;p z8>yQ(l>yB^9nZRsY7+Ns02}{cP8mAr=IVi9%Tj6_?RO|;?uOsPdQD?VP4JVy=xkfl z$1>Lx=PRjZ4-UF-pw}DJ12h4vovNoRea2V@n|gxjCuo)v@W7k%HS$JF!%CEbQT~ag zgl&CHUPem-sOl13d|$t!SGnKJRi#axT&>3aQ8#`UAGl|BbhNS{cMoUuFs zS$QRoArdq9{2eqQfx3LN{|H^RNj;T(Rq1S5$@CHKLRyp_chWT>;2m^e`-dtZSzV+Z z>((z1ZKe;){lp}H)>fqYfG6a2d$lT#^MFElOC6UbA5=O>b1ZRHPW#>QeiyIVo~-=4 z-}-CYk3+x!A+R(O+54Jz9eMJlKi&1~SBV9WdmWmop@zEY@^`lIY1gljYf{g-X;eCn zJCCf%q`@~Cnu2^x%~Pz?Z*82uEcd06uST1sqUK z)>OqEm#@F~YHo4$MDuia&+;Vh!ZHT|HJiTur*Cp z8of~fkn`QswnA+HocFJbAZrQlOqDib~G}}75Kjb}- zG6eJXkNv6TZ>Ha@{`QO8wlD3`H(aiIg9IO?k`%;JzvaK8htyjS+TtnoC3VuPwxe>- zmijd={`|>h%H4$;z0bFoz8{U1c=osJQrU@APhJV*77jcIPAC z{WF)tQxGV4u4eNW9cDXmPpsehZHLZW_v2l^mUrT!vHWnDz*|4$7oa6(Ou*8^O;^eE z)Xx*OS%;Uke*ohyOx_Lxj(^q!(}SPwo_VLS(~*Qd8=wQkZA^lVZ!K!to@DDM-DSW- zEq|9U?TNaT-hW#rPf!zba}5;ep2q}+tfjDu@AM(a>#NnE4T=nm)R?V}c|?U8DG|h7 zM$po(RcAEfnlEvv5!Q@DRk+{%sx@lKk@iu)X*}oUd)`Q!RrTd{853jk^?hSZt5$#0 z8XcVUrEhK0m&P_Bd@YwCfo>6Fc6rIRrcBXJ#FQ5^mZpmu+b6_5Q)ln@_#>x;sz*D%v1caj_xSlQJF- zM=}FFXqpjlG!Dz3H(ecs3?7s?dMeGj;YduXQrbapnH*(s=SA$+%?73I2e|}byik6f zWaHbMsag%7DDwr@Z^CVBsC>Y= znp*_bYU_6k^5cyvSzh;)j2`vfGUzZQ;A3Z0(mVeO&tmLAErtq_RMpKVtmhf6jx$nr-yI8UOsG?=@{W0W8?3$D@I`zYB z=>xHfqIMltJy`X}p-del>$RLmh@@&ArIw`DxJ6jD5GzzQJ6!JTy3u-8&m+Z9AoWEi zKe3P}J?q-5M>FZ8y1q-BqHxQ;I;dIhdjM(4@{pJ++KxHuzSQGV&%2msWwgoC?VaNx zs#m||_873;UAcYVp+A56M));=(+@#l0776ce)Qg#Uw-__xBmR<_OY)Qm+SC3d>^c3 z#RV(j7LM5E!AD!+%5`;@A^LP!%SD@KO3^wznZV!FFrq1pTp0@*??lUXFFHWngQoY_ z^6*3e^>F|&B4?3)i}J5>uh3q114X}i?s<*_Fn^i{faah-9=9f9g*>6{EA5@Xej?C0 z6X>I9I6nkbPwyi-IY}vh06lSxmdUw$sgXlVroBoq(o{@)>;;l5ELZA^Dj7DZwt%QQ zRBqq8O@#tz*bu5hl2{wVPR2<}vwlf(X4$?!jP*UShDj}0!Xy1i*K-SOHM8zVs;sw( ztSD`o7EUEEkF(-Vbrw9QBZ0Qwk-R=F@0R8C{FaMhV}?F+PQ5d?a>3?J4yLc=d#48~ zW#N6ig>(~vY?LuH-Q9a?cP@d7-|pKfRBvp_9bD@RmedvU2hwMB9oCl5a??oTpnj#B zT{1DW*#ypS-gy3f_}a(*&IhJ$UI>JRZytX5zAt;p$tPa=H&%9ze5HTom{>?O*#l@( zCNxhU?8eoXZEVb8ST6d7>Bh=obh3kGYk+N$2LzQL>M$GQ=>eCxPVmg+FRLF))pCfo zG=aXzgOrf@_WC27n_rzfEz-{HqHDD^ql~TjA)-w6GLt#^@@c6CwRJ&HM$=QZB}4My z(O3$qawc=1=mmP2BBZ~?a?w{-4e8@rXPJ;wkeMEBdPFmKbcGaf8mwgMvX*{;s_aCj zX?z<>o^0)~;aOryZA+&}P7WMeqbzpf{B@tz#HdBK!DtKWDqF_bs^~45qhz}1ricVv z+6auK%G!q=@H=ruYgGAh8KjmGaHLdNh#so^Ey2cNJ)MwK$m25rn0#3tf!zc$LkIeu zyK;~80K5?_Tl`GhLw+DH)?)5URNb4YEu?<|%K!cdx#fNgSxQ z@G^4QNT=^iU23v8^rfy-E?kp=YD>vQx7$FH)i|Urfx0~q$n>qL$9rSvk(F<~?2#kC z26XC=Og5J&ItVoJBWGT5?G=yT{0}DEN56X7+q$7kJ2x!voRY4GP|-a^Gq#qUoaHit z|Ibd#N>m;!svEQ!Pfe}EE==Busivi@%P`; zM!X|f*B7t3Q7KgYNRA-&=w!3@R0x#svu)i?t0M^cY?g_N8?S7R!miQ;Oq)ZchaCsd z)W5G&Z55GrkhDgBJFSB6;oPQDTL556Y5VVTa~zp;2&xY|xpR9-xghnStz%lNDk*kO zkf*!t{@c=o>nV{=-Ojd-(br(r7D5lxn4xG^dCJn|O7Zl=QIQSyUPiO4wmvC<`>4`R z<)!X%-7j?9;VWCnO0$67*vDm5eU7}o{Eq-#je)Yv4!fe951u62l1nLRSc}GF7vge zqH^sbw=F%-{VXx5ssaw1SFWZc^4F=6D>SUPKBsm(Q#x0l($~dhrYoPo#V2Y>ZOQ}k z`5+j#??~DP(WZ_prJzTC&KcCli)x0JOJG3z3vt}h)&>RvWt0F)L*k~#s?h)P#p z3s~P7+I_Acux5tX)gybqdf97tzy4<~f9#Uqu^TR3hadaY-8Ub7^46bU-8ud?c~VqB zP*bcUN%|A*(_Ieq^vwJ<*=Qm-HHQPq(;0u7Cmtnh9^tD)Q6B&1#?<8_lYVR>K{Gh` z@HBKFA{>-NRw*1e7^_z_EmvRHM932<`7NKirpV<~Lk7hX3vEg=9BEN2aGU$GXo8Wh zP^F#MK_(!rjPI>u6Kjzwl?UujstF7ji;ul-+mH$|?u)W)Ro9c6c9(J4p;1Pew0)iE zdzO@5Wm?k(Gp<-r(xh10E$aFR+VUYlR!o!pNQK$)4(0 zC?#xfaGk@>ovk3v|>;{X**R!}a1ewX+Q0;WCcun^^7-Xx#UP zX65GtJHKJ>x9K}o>BXIz3If8D$!_tFK;*2KS#`3xl)j-G7rD;!<{1$7C+mQ@ z@0YZ=cW&~k{?w^kr@wv&E^!3m%b4}UAAa)HHy^+E_J6dxbM*6up#s%Vh@M8+UwW$Q z&`y-~xAX%+Spc1@)jpbnv)nmNjG5l#VsrLmw3Ob;^YOu_LnpnJ=lpA>4hhDg>tO+K z;dQj%8)i16D>lN&PYyyb3{g=dl%I_12}%zE z(P;Cg0$n#s546Njx4U`hFq0bBh2#lVGceW>MaXzEEuw~*PY43QxIGw5E_2EPiIh>X z#B{mrUZxUDLY%dWHPx+}ymOyJL!e~Pvf87`BG2t5E|hP%+z853lCLRiV$w*hfz4x+ zZdulC7LPXzq;-|3+Qz>5g3Bgr(xgnoL;cKxr>afJ6c=B)LkBXvFKK~n{M=5nbX{&Q z?MlteNJN+T%8Ch8WE*mgS%x|zkW5J--&XvF7`usr(^HlK(r67J2%)tEv3?M$>l4t9 z3ABeN&OLbOOMj8he(+L%y zOeP4b{{z&0fa_fErpJan5LqUkNCEdi##TyACiuQ9I-##=TPFKm?(3p?Q2<>ndI>Gm z?I?1^x`|ayk4Q!U-FkA!Zf=W48*pE-La4|gML0$>RG&=r>VDI%TMpCr?Rc+BvcQB; z85LXlFgcED*e2!d82ZQPoQen*rA)hMMkz9lg)!Ik|Qh)#Ih$6 z(JGa1h4y_6E^c|i)8vg*tILyPxn}MM5i_AP-534p!>|dLIKsj=#ZTP#MXx^o#2xCo#bb#g!5z;ok?!3FV+)J2s875L)6RLg7Lq!QrUo}B!0720v=jJW7P}bq8 zvN!r)OL7&e+HPh^>P?j1$hM+TN!2c1GUbqZ0gxTMS|4di{mW|W!+d{8VVu7n5-}H2 z4$Joadv-nV3MG|Cu|$y+S6MfUbhIU5t6F)J$3S%DSQbOJ*xgG~2F};JKxJN#GKgCo zAng{G^?_DD1oMtv(B)9=$bEKDK<2X9Z@mH-Oq*cdWv(rKs?(RiGEA8J(~c<;Zgkak zGR6M+$!m5WJ#rnusgJ=Wj7ysE&FnWVT0c@l@B zQ&kJa!a=$-sELOZA@bK!`osx5=_*Qqc4L+KRM!DZt?DB864f1%>x}c^$rbrJfb^c$ zeWFWddkvGNu8<}I?cyC5g(WX0`LZ^S+gswdNnau?Dc2tOP-R`$hG1~$&@KFUm|d$t z?taYqa(^N{nvfZXSwCJUC?qZS$wAkBQx{0tot?*pVdDkyMu*gnv-2Tl8!?9Rk+aF? z`GnUzc7-&Ot8iN*bs1#Yg=shQpsw0Tk#xE5(hpMg-4%De)j>ojVp|_=lj77(^0mm2^yzf)C8S7*xQDwT@z zPqRu#n2NOQLS`BMHG4cL7FQ{t(Fas%eO=4ZJWB8Si<6SlrruJ!fF(~k`p3&__k)q# zFyAq#Ydz~+-aFk@a!M=qg@S zr&x41_b|G)&66y&9^jzS4#gY{YI1LvwMP4nX96n^y;|moM3hnveM@b=(Q-|W=*yJy zD(eA@JxT5dm6`dpgvj1Cm7?mQ!^%N(@1U!boRO7=>KG$UaC4Qhg--WlzHhaTvX-#! zb7c(T{!{vrZXIr))c1)b&({5o;O-ftpRFoB4KI~Wh+HYNt`pK_wd0vim*Rk_Z>b9a z^K_te)b%obSX$qIa{cvNbZIYRyJRhV?|7Jh0NcmY|0?`?RFi5kYgvYv$#@KUbKa2QD4nA}eE) z0|7Oqw50lLW6#z@y_boO=V~=z8|wksr)_5$Eal)oWcB7aB2C*vd9orqerl@<>A3Yb zRC(#Xq!-9@T(KN*T56;LE1mm!*>sTeA~J+7g>gzdA+vU-zakoILaKIZ>S8x{C@X?S zwz%nqB|-LXhDIHUOj57gLV)U93#v!y zw#dI_64vCaw#=2EVEZm*tCp@SsWa`?RAnT+yVdR>^`&Y$uH|Orf`FzEsM-;fM%7rM z-jU0Zc;f{3Gwv%bA}DXSAZ2mXarC`}rc|J;Xy{AHWQw3F7r1*9R5|&pI=fl!OLA7z zA`SCx+k@N#@^DIgfVH|Ox%_B`zlJWZY}(RJKxUbeA)4G>W>I!0x8DyiF%@=+;gTeL zKmEX4uUx(Vj(@nazxi4oOv_)el%@?e5IGA>>366lWw{9TS|gQO4*q`5QXXM6`C6D3=^k`u~A z3Z_n_9HxBOS$Al&k6;Osyh&sZMUc3);|!qg^iF0D(XQ%rw2HKoEm1>UV;66|u1~wU z-Cd;DfvWP^d(PCP)Gu+}lH7-84J5Zya>;7h0J_gRQmTtbdK92iX2tSB6IFnEIfuPt z>^)-dJ8(6?5wYl^AG?M%e5yK4-D5p!GRTc5{$a`AQ|1>+UrdQf5jd#YOursZmz726 zdDhlW0w49$Z+ExB<0lRQJpLqHqPXPDn?LpBTTXV5-Tt#{J4fFR%1I)VC;#;w6~R~^ zpw;03ifaqJ+lePtFA*iZdSaGIPRmm%NsYJ!Ru0E3CVFI{`8xute`R7s`B&x;tr|9~ z2FB{lqfFLnQY;!0s2#~rUUQ^LID%8swHK-wZRm6aUgz?w)D?go4WX(d#7+hI|MKqV z{N0vE)jQZeRJxhTS2YCx)B5QNzkKCaJaJ#J{iN9k`Ma`COFwB>gp^OpQMq#fK=0Jm z1H8%=(6H_!`Rls$7I{Ql z?{zs4tc%y*2V5PtCeiDuwKvIanVERlGTCps6}b$&t`Ah70@J<@X!F(t+T=tM7pne9 zrEU!=hej=;gvtY(zW-XK1gO_d`@YliA`oCz7tqWuS^7X8=(%1R2l(r<*k0-DnyPC( zsQM)^eQF-6d8*7Wbsh535kt;&S|d|aRBYy)WKbzDKz)yJoYuqH>_6J=u3bOfUjdge zE-4G&)>F4%v3~z;?_b|J`Ax$kHA+V+gNAusl(tZ)E{b5t)GU2h-nEOSBkHH?4#)Ym zCUo*wPnt570=mgaWmMg|SY_mfbh1_tRmO2$b-mSB>oU2U6=A+ovye_L40dwI^3%U- z!r=!7odR7+8Wse!wFWw9nb8t*eUwLE1aR&Ra^mXVse2}v!IP?#1m5+fJ7Xao=0V3! zlD>6qpU@U7t1((F%@tiDy-ts)r9s`tZ2v)J@e%6~lgZJY#Hc4J0P8OEB|*`G-QXk} zEsWh(O@Jj|a$^a|y`Xb4EtpADQqyfP7|O59Css%zNB)aMwc)2&B0+^iz6Gf~<=HN+ z+6h{+ZQq>b!Eb*c(mhx!=XzK!Los@hJRp~|5K+n?Z-G(nV=hy^j+LgWca`%F#pMW~ zH+Lv`N{Sq}B07RPSXe*6k*c+%lfSES9!M&loUd1Q0F#ob0*W;bO9hs`RVWl$FGT5~ zMQE4H3neevgyYA0-PS3=%$42qh842?gVzRY)!iWW+2f|*8Hu^ zp*)DFjTvay3-QyAA%m5cXm89RYG)@3kXu_1%vu&TW!IBwx*;S#0Pms%m2X>H^+PhL zBbqv!4;kc32zv52n$+mVgH0>Xu_=vznKGm99cm&{vPi`ciJGeA)M)t%CrKV2nasfu zAU)t&H!%QI)2SZtjY__>c|sc_pB?!1OZ5~goQ9R6|dY!);|e`a6wJ} zhPNUN>GH&DCUtT5>dKJXBy}suJzGD>SQ-b&6SBYWblXd)4O1kGCuj2g1jJHR*4ou& z*GahD<+pP8sx*=>O7pwg6)~o!sw+N@MpxcS0jj-G{i@3hMqZ`^Wir=wmxxiSw+?C& zCD*Z%$r|Z8B6U|ODzEajwW#hh%A{h*qEGh$$7JH}#uGbk$aumH(&zGV9~)`JP8E<-|IZ)YBA({U|W_^cflFpn8bHf49Py<5}k(x{N(c3Z3a7nJ2u z%c($3X(E<@5B1jhbbYr5+mjpN62>J#__jWL*V@T5xBS4A?EUAUZacdh&q5Qk;ddT* zObln*MgY*}d-NtCp4ipkSK^VrQNW}VqGu=0LI+SJG6(?Xks7TV=MPNG$i~t6+WJwM zwKDNaLF4xb{Q439ds&o;aSmFOsU0Apj90qcdV-bd+)GkK$+)VtY%GH)lu1rWAgu&e zd7&zY?V)O{)mKnTF0)pt{14Xy`7@X+7ORMY?^TH{O6!oO+V2WPv4iLX&D@CaG1NhOWipGy6`tJ=9S& zN!6TZ>8IK@iOi46?<9}(@-mQVT*^pIZIyPUc?o9HD%LpZL9WhJot9j+ERc36go-yk z==+4UHHw^;)RZIlfvgwgnn^!MwF)-+hSY1KqL_)1&sTlQ)F6_~y6~Kno+G$Uk&kRq zW4LNZ%<=dZHk-SO6%@I;vp%KK^i2j5N%}CDu?!)tgA_eX9fL0?xYki}vmW*#-(ELg zu?)`AOfJ8y$7FvSZ-z@4FZwlncN45!zVh0w!{@I5^RwT>Eu_}PHl29)sBRt>I0@f*f3VLszX%<1ZjWCwKLZTlyOwmfv=Jh zj7Dw;V}06}7o?AQkopH@7AOhL8ZrQviz=_FD`;vU_nN+f=DWP<0~Ps0m#0n7_20Qy zvdQ|v)|)&yow|RrjQYV&wH-m-_LW|!+|2;KAxpmMzS9plc5R>35h=Z)q~$S6$N}m; z1Yr7xDvBoc$F zjB>t_3bhLG(PKC8b@kwLycN`0z(uBgd}d>7Y( zFnRq7HJ`7(%K)IMn}*g?-%ngl@L`R7Oik zEvOK1QRU1$a_Tnj*_>ymHc;uqdu8JYR_TiFWMz%zp(jv94 ze7aVB3Bi(l3L#1njD9*Dm@5D<=M;eUm|-ajx$?`KRD5~@XtW{sLm_>nhOr#Z{h}!* z_1#3Q$do$OvAJbbTM8-ikMAj1#__Ik?~LEK*2P?XQ}?duQ@1ss=;5V^IZt0gxrV;K zHw+#;ULjWc`2Je88fh!2U5>>6NxS)SNL!XTE(e0PL1oCTI(V9NQ_d`$*zdvBa0%l@ z?b7{gpZSJ2A31f?&mgTFGm~(^*mrxgH75nM*Ytg*=5}b2x#77kckHe)k;veJZZMMT z0QP2(0hO;e%9d|rza9>utphYPuR)D8V{v^v|M!{3U38re7>8gvjK}qDWRj@w!$3H? zV^pS6>y84j&U|rq7`HIth)(4GifYvA(59Su0?TgJ;eMc2oYsRjn0)QV54*sez^?mC z_gdM0;L#3Oy!9(A3MHauo1EF3p4!VrWZJ%9Wc0xk{w;@5uKxr^wLL%Xr zvM3VAwWRw5XNv&JDn^C$4SDAC4Rw8MF2H31cG0mglMAPoPk)bMA!(@UD|Jk9@y?)+ z>uo{xSRylq>3)$cnz~-IE-Fon2idwKdEzepPU^Cww98eKtrTZJ_sy0_zng3zy`iMkjUJ0~=N^i(kCy|#;^Pv;iH&>y}1Wrt5)|F^n+ z?V3WK+{A?@g}s3#o^-n5Zy|zyt2~r6=~#lU3>KiIl-y{X?B$G7?hUgw`q7G0qMiPm zATUpAv^a&;YpHNMC|x)}H$k=Iw7+|JqP0w1KQY>;Rj8WUE%+uiXak7V2+XQ1HF;B8 zHJzShSeEJA-WxK3sJo`{BPtUPYYCW^mCBai zjjOK|Vr0{45~kM#>PeIu8(s?WBd-OOd)ty1G_z<8(>f4r+o>t_XCJq0+&B@0#Hwxx?7xd$FKy`-7qBMu8TiT6EoO z)toNP-!hn?WfAf)!eQ2GLq2b(8oD=Y)C7W4O8??MZ{#+*hH)!G-N#7vWmJQ;lLDUD znC~cqdfW1o^#gmqrU}_iCi93NUxRet=!serH$#Q;{t%VK|)&l@^iLg{PJCIY<8qu79Q{S#?YD)QPLY4*|O zw>XH4R(oRl*#u8QR&Ax`@1AggyZ15~OVRyUP0p$-w4+$}`hC#7(^!dTy#^tZK7xE$ z1Q0or3jo>$&UHTPbNvv%FSj1+W0n9=-Z=}sy^Dti+=r_5P*+hV)m$b&dN?8~^+Tn< zFj=#4KuIKbfA*lqW!{Jb)xC~N4uK}S+PhVcA5_9=ACDY5eCfVn>_u1bExLK*$VXrD zQ!9H%-XRvWcIV^2WysLhv`$~kFQ#tDDeFhd6C26RSmIzAGsKEPs$)aBQH(}~aDwUX zW)d2H>Pakp`iWIfina!9*nG5ar1rHI>XIy<@3LuVPTupb>p1gbETe~=e0{j+fsOC_ zx9)FL>wxX7%V0{jg=uUU=ZT!-5g6-KBMYb|0(8oFmzvUp>pvKc>!2EUCY|2sjFPZ)cU>+|@dHD&3 zi9?#m)3xD^3WfA>bnOz=ebEya*PnAag}m5%Qtl5;`{b<-yft?J- zB`z!d>1cr?q4l7%SpK5x%gCEoCpslAnG04a?O$@=eOzkijR2nDun27pMU7p{msuyb2ml`jKmLqc} z)Fn7-fjqI=(FW8(z}`)4EFvfq8$Ub>H5!;5_;)L_buvwyLL*H&JwfWR4hZa;IhpdM zE})dd$0B#V?c&w0LKWBRW}wJS9t(*Hp0e~Ml7(PNttS^M+zi*Ob7$APl{U}>9!ehN zp@a5i34pRLvdmOJejO@;6e*Fmq6yaZ3sB$Vq~ohsxUnAk;YjYmlwX?b>aj*!v-O=P z(OT_P*EQe%{NN(GbYPY?kiGX2(A*Cq-S(0~I04PXS??5j(-UJ?zMFsUzh)gld+3y_Hc!wKhC@4tb{u?;{u`6MEZXrAusYtP*&;5T zu3c*UZs#pW^vo**HooJi>~=m%wwu%uP?cNvO(@^d{xq^%k~r#+P(2vsS;+8<)Q8*p z3Q<6bhXA&B)yI3FN;ec4m8?cRGYuO4Q*q^u5B09zRF^6r0;ykxs-BR?4>_hpu5o=M zXm_R28%44vU1k(9b!7D|&7X^7(vg*9>d}Nt-MSn=wSEIxA}N1~w)7S4SPDU-LQDBn zY0C4-aC8YOZL}w)syA}Fp@{`bM{vKzg)ixJnY6oA#_48lKykm9L!4QTZJYZ3;4WB8 z=6(dOZL2wn^&l|BzEm`)gAPXTF_nt)oT|fg3es$@g0=_S`@e?L28{@bPg=}OFI?Gu za{ZDed@mXc-%s58j#pm(#7%#-qsfLIA_emFP>3CeqZ(4N?$E>ciUg_~$@VIcTS#tZ zH1V}sGSF35`DSds!%+|H>S@dAJq}+(EYn&^=vg9tRRGo3X(Ww)ol$wHMEPAmS1zMj zBfctrt3E5e)F)JZ0~)bg5~vx!Rfc*=L0coa*8bfhCFB-%X{(M+pa1Gf$!yX<6}z#h z-%n2Eu^g1e1eC7n(`!=tJz4$ygrwb~+PVa0tzSJYv0E(FgFenBmoZy*P?b9ojwH>v z-ArDyNPU)-b2f((CuyZTidX>1Si;smtvP9H>hOo4^=h`^t&%y9)b0d&sfmZ=hu}Au z4BwID?P8@JT9Uxjqb{lLZ{qTl)^AE2f`syU>!@txfCZL5Us`}_EhM;stJH^91=Z`t z#NwL>P_C+Oc*R%gcRD}O$huEUhd0g3n?!OQ4Oyl82RRbKP>&p^&znB%{jYKztZe(L z9$0B|4~VWmf!l?NbOt_7wJ1rHY*#f}Qx$en7oI)`)>o@`d0AQW%SA!_kGI zYi_iIbs~gwrXI9|2mhKK`blP>8`DcB;&u#PvtlP}EdfT;`jB=FwdGOc_c#!-5>XRj zHTlVc88tvdc|$`=t=*n>%2pypp6+Lw5tJ`zgMd}gghj_!@xYS5l%-IVRy#`EuDE&2 zl!ef6^Fkq0g?vfse zQg22I$a{uWzJQHBpCdW_Q#rACTUw+Kpsr6Q34En2Jz!n5i`)9bb7D;(>{!GtJ`fFl zAhHc_Fq=VoOiFNcSyKvSt)WR6+ix!4ZO66N@_TK`=@NpT59aE-sUg8hTayGC=CO z8{ujkx4pPn#cAd}Z{VV4d_6(ca_22@hEW{~X#<3YNJtCByFxgcd7zW!b^wFA!*nR1 zvKz?E4LmcN$pmD&C>o=>a~1i+Ib}BeS`nKPCNYJ)5l@VI0u;qduB>}GXqou`B2`bY z#adU+?gOx$EtQeXrUTK{x_Lzx(xeUj!&|Pup?;ZwGjX$)MO(HUQe2w3Er^sXRHdwm zgtVmXmxxS`@+J(mMi25a8@6s(Ty5!_fj4sK4Gdz*nuT?)t@T}ybD|v1#Msm+82*>; z9qt$EwP!2{#C@HrTbGX|sC&t*`RjAL^yzmw3TF0j%A^lc{=)&pZue{HBV2>I zN)Wz_5?i#@o&4l~`j*Y@EB}jO!#fX}Af3yApAx{6Jv}Ms5cD!~XI1Ml^pu;#XF`U0 zEtKx8HE{GdnqPVlYojK({MN ze_9~hCL>i)ELrNvlzPEGCs|aFYSfeAzv$D_(aZ7eIj4d_DzL6=tCi_6W^;f{`_2O8 zvK2zihwW0W8Q;e|87jXSW|xl&$~veCGZP~w0!D0!?}!ibq^_s?dSc-YHT*}3Xj$S% zDz73G0BdVkeV;0e8JZUoe$L8$f(T8k5h+WA%N0g6LiADU0lrK|Sm&u?6arU~I0Qp1B_5ZDnxxNKMaIie zzBQR+-Sec1^6=)$MP*=TJ+P4-+W0wSduIne{m}>DGatJj?)&7!aOR0^p#2`!Hdo-v z8;`^FFTDzGf6a|>{KPSkfpvVOY?HydjqFvFXd(#oBS%{k0%}@{OsF!>% zkSEh1ZZc4lg}#?f+iU7!379F9v-XL8LPpY9K)?&s`5`b7KQ2p_t|oR*k|ZBRVum`B zgM4c`#GzV$0PVunE?%v-kOQkv&NP!*M-XrxNn(qc(kJ(QBwe=zp764)vHpgJ^z~rx z(?+`Cr%)dr+l_nO)r&0;0abc9vSXN%$yWFpr1pby4j!s{%H=>$SruufUbQP9%>vTz zRQp2?(GMzoFY5JfX^vw{m>i43^b~TRNe>00Gs~jvHkNYxhZo4p8RT9`#dO}Ia=(Ml z#eqsp?smGrl`>aSsJ6Irxj+p9+bdz=yV$Vx&|Q~pK79Spt?X^yz%wj@pM24D7E9LL zWQ5?XX!10K`bI-Lu~kAK-R$THX0a-ksAy7H8J_%9bYdibCrO*ZiQGWP0~vqsDyvCV zF08M3Vxk8N^5c5>(k2--pK1&RYT_ZX@$AG7z~^2it1C2Qi9Yqf&@QW$qxxAx*Fsd3 zj#-Kl??{MRH&_O*>A#Qv;b-7i|LJeRM}GUWaQ@5=H1QkhPd7oh=@nPQ+rR1a;T5lY zDQs+RxQJ4Rz7Nry@|%NTO(~^3q$UZOGe`~IPvukI`D)Mg6xS%1TKXgqn0!sG^O$8)^7z3; zk$z18$|9umlJXNaTAtJdTi6Y^k9MbVUFA=;X+mnjlRj>P_B|w|FOf=XH5?&*`GDrk zU#twE;u4iLeX^NBdR%=U81hKA6lY z%{%f?F5|w|vO}mJTxUA;axNgCj0)O{oQ5;8LfegVTyv!`YFt45tOmMP5YSjD0ie9; zgzLvuw7U1LwVX95a?1Uf%aQs$?$RU(-^GNVqPJ{re&mktUE4kJ#(Y<(p+}(ImhI`S z%u?xwF;7rAz6zV`Qbmr#$9c5l6cx>Qf>tHv(veB2YiO>AKYKCXGt~rL%2OsK07SCc z`|-d{H~uL~psW;gF}ATSjA5-q%U)GNuO0xgLqq)c6s#BBI_ z1JUR+R)?4;$~0LK-217|!T}HI+snNTsNW~})E|5f{?;G-b9m`p*TPr) z$+y6rufMg?e;bpU`cAF;$;77-{Z$TXF}HU4i5#lh*_;gqWLhEJ9;%Z-so*mC=zEBu z?k_1RDUHYbY~{8DYiTHx66xEUR9XbP)(r|FEmj;yAXH4?v(Z}b<>kIxYKlw+xN@py zF;*Hd_pIoY>QGPMrLI{R>3YLCq%Z3?TGP5;jgvmRd0`Ie15zbnounPWJqSyBP3&7b zQq_kwp~hSRq{an*Kd}*E*gZOY?edsQCZEBo2}yY&Taebr5fePFY57)Uy6C)Qq-6;esw^&t1#J4H5L&L!|zbq$p(1<-uB^`p#dmj5`QM zU6LECB63E1iB)1}>w=U4jhch_Y%(fG1%SAv)NQOR1fa%9Y7!MJ<*{Xv>}3!Uv~Sk* zBnERxrA==LRzn|4QdGSa;tS=sP9sFQrMu`U8B@ud)0leA^=+o>l3%Ctoc&9E?)Uz~ zAHrYzul^x?=-+>GX|m_>sSiH@Kfm?Q;NSd{{{Xu?ds$uCkuJ5?CU32ttz&Tdv9{uV zS-L-3dG?G#nN;@`T}le#raty#7#%kzi_ zjAtB!F~I~gzl1=5{NVu^9wfwxP4c3=5W?g4e@qS-OfV1}9^f$8U>gVG0nhU+Tb5{Rg(W3X)S3k2OARs zjwp^h5IFjBi82xBGuUX)RW8KRDqt@4=@A{gYfpl>Pbj=>{%;LB`tE$Cn5n;;Rm<9* zE6c#83+C?=lmr+h_8nK}ss4ga^j%)59r7KvLLt(30^K%;HN8=IlU_ulGzzcuZzM|= zw@TS$m8v0fY50dQH9~6BvLxEW;o(mwoQ3a~Z-43eyYD#f{~lp!cWL9Lty4WFlkjMI zk!9UcyLeF%NE?Jr`Jv31a#%=IhSpGBV?}!i;8@NISje#?jP=KuP)IDGKv-|@YCcm;2M{d;lk=WfCez3SW25^q+OR(V#O zQRy`lT^vqRWworzg*z#T>Cdt>$QHe>Q0sk-LJ|k7pQQMqA!jjyx}`}Cm4F(Q^xZy` zPsv)n%sZj7R9o)Wg+!%f%RiTm!{kHd$SSM|8yls&s})`fd;$rb0~ zti7jW`;P6FeU@2m*%z@KiZwCIB`IE`{iZ^4%V|z&qm)=ap*pQAZA}jBZ_cOHtdwOs zYZ;xNhE~TEMj7}e)f}SEs}qXeYQoF0odr$PI3o=SLf?0N!jEe{ZL-K|Ury;=x2a4Z zyrqTWg*)(Utk)u!e|;Rq7hdM<;#Xr`5}oVcC707vYHuZZp*E+EsUR-5QoC}!3a*Eh zC4YL$NTfJ1s7Gx->h+BI$D z>o4M?@3;p0?syP=G}(iB-Xl)OW1e*}p8su6#-7toK?HBm*hliX1uN4cy>E}PE%NeM zTTw^I66&^$4Wzn7P!1@-gB>AoW1Dff{0uT6qzDFVbAvw1fd_rvl`VP6*W$J7HRe5E z@zP#|-s-JExT|Chm$reG!P| z)zzZw(l&xu%dSbb@*IJy3yVc8*n7Nq58JA7k>6w~C^n#1Mg>l}W3XuS2Njm=Jz zy8hK`ulUZ>j-37vOx;)`2K|n1W!8`yYwvPSS>g}^c9aG!Qy7aVLuBoh2coRgH2le4 z%d}^u5_uS>Nt+(^$>5j()1A95QJdw*0Z17LzXC{n0zt7R*EEI*;=yI!-)8J2zh1PG z5E8q6uqAOGfG;XQx)DQpyd z>OI%s)YJb4|Jy(L=2Gq>cQLdlQ&i?cwVB)ujO8#jV6*|d8tk(Y6DoUZLt4Uc*$YDL z!W4A?f2_C)@N4A_&Kh7Pkd>~wage2&<)qzj`#lAXYlzC-hlCu*&u$h2lKY; z_Dw$@eDfFa+*dxX1AeFOHbtM?k8=Brb&@3o)oix*iIbKUX)YHB{Dj)KWH8YJ0M zwIl_LX+tI-PlLa~P6kpP=uSa_UD0y(Hhxgv5{B$ctORL~% zr2@}zmOM$ap=UCm`^XZyle#GvlB94rHs{vHW4jPJm3_XWFCR+DlhJftOVNetTgN<( z=F`EcBwY8iywv>ysP%Bp2SQu%<42@Ymff-koCPpN_jlt{0_AbF1V&@dM zhHk$0PF!@wIk@oB^PIIUwljh6E1Vx+wyiuj+JFq#htR+7zf>Tra89zas*f_KL>mc- zRTsG3o7B0FM(J3R;_AxH{w^P0#ykG|>eBq{K7d=la_>~3u9YU>?}pFcg)e^OMqKvP zy*TxZ-SBW=a8%UICc4tKlxh^eF-Naoe+mM zu2gJ0RUi4PZAbPzA-hF@QZ~PjMmYd-Ys|C8jzdNe6=%8ytu#i5?isnl9V+5P`MOfBMq=apRQ1PK4^S~ z!b(Yd-5)N1-Y`^9624m-8GTiz;Gr#id+mb>xh-+m947qDk< z7Oku<75~|9z8eP*9kP6Jdtd-8bzcC6`-U;qsx_ORFUWd-8MU=mDtU>wG!>HxPDV;4 z2li`b)c#{Earw7Ak7`*{y=QI*4;;dq{>!`Yo;Q7VwN6)Xv~<@^58w^2`D=XWZJ&2N zHuslNPfhqOCnj;{*KjTUuarRXqug)x?I)yfQJQTf}AXU=G)&Q za|R2PQBYY}{LW!i^5Y?1k5!nq9H^p}LBtDEP@!4qd~V_L-93+D0hIRcYf-)AN@FV< z>ja@~TYhYMFJ9(ccH9Dlk40HKV9m?@*{3I{uL_fpHk>swhtau^CWGYkdptU6mvm1E zz<26(-~7r`4xINx(rDhfId#ozY$o7Lr7?;d{5(4%nJYaVsTl;29aPov@OR7F7gLNAQ{-DOV zPxS%6tei^wc5kyG9;DPq>9irM6Ul!Huupyt*!n(d{w$Y`E3R*^20DD`Fkb(fx8T$7 zybg<`1NR@s+h6~2eBwPEwKt5z!S)OdnL! zA@y9Z&RrOG1xm0^)yZyK1*DR=!J_zEyUgXdWPzsT%b-s~J{&xRfj&?>3T-~<4L<=% z`vJpP!!HWKO3KL^>UMb$ zPMtVICEiS3nx3>3ja@>@B&?&rgZ@aY;TNKPDFSiN{XDaI?5Gd8waRCR+`c`kw;_O-+YkU6^-wkuQ@q=5z5}0r z@3lDA^zJu*5)bTqz{w*?{}{lbmYn3}0himQfcrqBJxwW2p+dWs+%J8s*o&H0fSfuN zKc~U!J?FRlN}ddw#PMbMLV6T(Wn~3_^6T%$&DY$6ji5=ny!lr@j2pjvN7jGNuLgZd zQfbvif6pu%=1WK_?+g%9dvIfF1|n{3vo=v%95X*3wjcC$c~S3BEPa4K%+uu3XgiXe z4G1P)(ke5!6bc|Dxx`t+Tq+F?W);l)9^37^T_(}m)qzvG9!C5@98g_Mb6L`+zTncV zt!bq{3Q3lVP6N;_{z;b7$I+N{SMi8{*1M^VQCxA-G1vEcfF0??U4V3b1 zjgh|n_y6_nsOI8bMC=fT?PKfS*IaR#77|;vHB4gi;SDL103gCgFG1!r65r;{5}n&F z>ip!Ur?zU7WdZ$$I}9Q~qr6xwmu`+TO=nF0QtFec61kqD?1IpGx>GYQFQb%a55(%L zl!Tr;R*JsMlr1^+dF%zolEkSekE=`ETYzsf(pfit`xAE^-uvUw(NdX96*DwnaG4<# zToW(EgHq^Fk_YRCvMSMOCgCs8C2iMC({U+JlH&y6WsecS+HA@z8!2+fB@L6umr7&A zanfnyvle10qMKkonm629X;z*V4@$+S94&>bpF3{78(;X?+5p1ypZ|Qk^{sEkt6udg zyzFH!!;4@1V*JEU`~=?embc(rzx7+!#Oot}{dv@l%q7TRgL?i5+Q6?HFOW`}l3VCyDM51)Q+ggMa-Xw&-h0>m_?tiY___{ftd(y2 z%09gF4?h8uUrKo;2lz1nE>EB`rU-s+6GCK;_HAiNXcsotw5GlUK!V&pP3g4(p~qdz zQY;$;v=Lq5+K~d$a$N#XL0>+}9?PI3zRri=pI-H?#+|<rebU>Zvdh^ZK;US{Rn%GtaS} z2JLM`4{O@AfbYuH$LfxB+MH(2tRT2q14?j3lr{Piv?qV4Wml>tA1CubHezJ|;I1d3v-m9i8y z#=tWBS4wOeOc^)0G{K4~DfsvQ#iw!K?fv)bEt)?5j;~*BP;0$8chT%wn@rsEB*=JdEqArfPsd40n-lP@_LXz5|DNyPb?BV$ zY;}L9n5bcMGtS}s@|kaV?bZK&u;)#~zF~GESz1M%Bp}KFk!9DSSo-F&($fVLrgn12 z1NskYh%2(A`2aP5)9^i$ga$lmchX@uPF(#by2r3HbGLq)hfA)r32^!J2d~Dwbn(R( zn!+euh?PCobFzaQ`W z^Uvd0((<7deE98GC#4)!d6(C$g#8k4N9{>w9;W~<-#ora1CXf$R$SId3OT-V4kT+H zGX-%85uyG(RH!t4l3U7{@0MnfAxWUPkC`z3D1g<@!{yNa3boJN2J_@1^C8)Qf}|S6 zWf)poIfPi?8JuNuG_rd&)eeGaywub^TAMCz#jBg z$ds=NC=+qAo(XkeU%TpNgYYa}KqhS_Vc`e3@s+6Z3bV5m{k%zNIgU zl>-J(rebrEEU3@rLDYeJ)W5SE`~dGiJxZYoD%S@RbFBOCdjPjxclTUzCT-wHe&k1R z(M1={4Exx}J{B*0;R`V@U4PYWUUFhE-JVP%mXO8$(xG5 zr|4^5W;Nn5uDF%<;lo9B?!N=^ezztdjnTRJCM}v9B5+s_QTJ1-pjJ3R)ml`FL#_0Tqc;tbOKY=a#2`%Wd8Q5(^O=dd78m zbNTu27LQez6*(U#$PFcnrcIgY?fcLE(WRALS9HIG`(#I&n{aNV~ z+Gf7OvZOGOMu+R6d5*5Pq;StoK(zM!HPdS5Wk#LN6{bZk@VZ9e+5(9@(3M%Tbk+h+ zi_*U9wtME@;Q!R8J{6~*KL6H}XFvPdbBDd>o_$z8d?bnPFOTMYu|8qToir3u2N1Pq z*|+0gPQ=r{iK45QAN$(6zu39zw>HES*u1B%dx%#p3DgWyJOIh|q4wdR2Nl}*Y#V>QC)*v}_ z_M@#M>YzxOFd$z$f))&-G1!4Vfa@_#Ct$$D0|>EM3K;ZBU8{)`9o{S5bqt_2o&=r1 zJjH;DoqD%29Z~xoaT&vpL?Xu9k;bxttL4l)%4K`=vXwm_@Q^7_h3U2uFLnA-a>CMB zTbaH~xTGttT+ot{WtUc+jF9^vmt!s{UZO3cIBL~dNo(%~7o5EdCn0Srz;~r$+bOp` z@ux=P?bFfDHvuzcxn&~N(AW(q)c}Qw2Snd(N(jl}EWMI8`uG~}xI9>OJP3FI@Gi# ze9O5LdfxM%hnZGlqRAC4qtSfbd*59T;?U#`AK6-2DlN3loDa2N2I#DR@bYe{d0O_h zB}58CUAVr-tFI1R$Ef;p69iBg-|sk1$!6%2jigrt-f;Epb1&ykuG9I+pZv)|KzI4& zm#^ux^^IS=s{oT~Y19duo{Nr*?L!dvjMec`@v2jy?IyY1z(5VZk)*ct6^wy03QCm& z)Ih>OpYxOU#muo?Fz+rsA>n8r9vHNYs);n8Z1v&AhiSC+`ZPRTK5`7Jzn1(4*dSb1 z*3R=QkX`(svPvHEK0vgIBDCWst)lL@7)cRZQ`M2lYG{QKOo6m{GY) zh^aHov?OBk;7uC8XJd#ki=~D=eVYjU30#Q*d!z!z>D&<9jNkCb=MFvLS~6H%uU2Bb zm|jax&POZVP5u?4R!Uz6`@yL)ioAoEv8~Tk<^M5acB%JMaO*-Z_jQTGg9}Dtaj{_u4n>)2t9X(KYb4dRLMG zQGz7n&DY(DdFk7~{oAL2ZWjIckN-G!?3nKjPzN43jQ#r_vOYOgu-$98xDH&IB+xC5 zp3^?86YG?EZYoMv{Uh6cUBE>F9Gxi%+_NoaPD`xa%?jzxgnE?;w z1tCK)uw-fF0}!rXCy?#;;ME|o)m5%Tf>=liOH|HS^4Ea^!5B zgtTb@-!IV&`=y60;aJ9gVbkbv93A9 zK--<85w5`;wPPL(?Ky%m>m1_axb!U+AQe<;0q{5%)kfG>4YuOes->0NzJIN-Jlvy^ z!zjgisG*#ic#pxLr}23HP5x`WRCz*^w?526+qN&+@>d~3V-Upso2~|mll{qS?1Frbpy^KXqv;y@qgDvVSFY`omYhXWfIHTyy(oAyfT!wBNI<%1BgOm*8z zC0pdmqzriikoSL!pNxsstKn?!xL%?HQpMMp=_7<9O%8RY9l2;4vZtwxWr&Y>1_;(( zbZuaD*xh;P$n@aGNk^Lo@Qs!)eD?N3XTH)}SW8JtsdQ_!akH@jJ9f9hyl2oy9u$TK z#}UN|DrQai!D5r02yufdi|Y1Ph;524!gT^h)z}B%5ZqdWko4xL?H}FpP|*UG z$AV&OnD+xGZI}W};{*CW3Yynim+A1~!*c_^)6UwB9lN#zL76#ndGf*B8);&R5yf z8*wQm*#N)YH^ah~6;^YiViw-64+-3|FiDa3TL!NH%n?eSb#RWV&?=;ra((GEZ9591 z|HN(NKxyPiVatKDRu~PkOxygnl?O+U#7Rh-0`UE@e)rO@!{@$Q#!IJqAE7Qy4NJ!a zj;uoS2GkKa9lLLk3H47Fx5XBLVFsG=Fi9V*I$pd(8oXi@wvmEchOnc zzH<$L(zPk6{OqnU?q?R(-b&D_UxB~oCHbU28}}uSq;aqUF-@E8$MK+(r?{Xf4gvgT zasgj3+lB6y_>LT&4_Kdl_Sw^W66dA8d-u*4a8;lq%PX|(=*yFr$VXf^(;yOnBF9zu zSA+Rci!G)_(Wf!Thoj|PmM&L~_>?oK;ZdTtLfQDCF1FQp?>Hf$9Z-y7Zx9Y^a@L19 zOb(X>Muk4a;A@^Uzr@;X%T>K#l&T z(P0bFL)}1aGkJ{b)9V=?D4e)PTuauk=CdM^If`6Dl1O=IS&%HO^o(y({YCZ6iAnJ5 zv;D2*vtB+?zWBY?&&H7-kkm<7Q|G_)l5b$>2h^3 zZK5oJX9xP!#dU%Z^Rjh8h%XvFl_mit%>o3q+0HUQgKgZP1#U?eeWWHQxJF_drTm9- zaiL0@bkAP)E$x{51*ZUnj!aT!1Pt)%QzK~6;-$VzY8+6SdF$*Pe(Ou_|IN}ApK_~S zr{TwP`IUO|UCnabGdwBu-49;!lhD!5&V`kw2X=0#7H$^kM_Q1wZ^6GlM^iLQPX`&L zIN{JnOrNE#C8-Aq^oH{tk@L>~5C@e3>4!npEU?xG#O9&(@|hP*&P#HXpV=w;y6H=` z^F8mF1 zle=h~+-+bF;sE4>Fuq49J-6Byu@phO7xlc(Gn8p=+pHm@C7esV^g&fBSFRDjt#*mY zTuUgZYeOB-bLGhwIfvMh^AIsl5gtKv)>`Ej9)$UI-zx`}9<%y2->ImF5gm8Hcg~If z+cTDq?0J#7v}fmL1@Ij!?tSZG_%M0@jc;7y!fJ5$ylRpj2PcnI*#H_d{AdlCau8dB zVj!x$;AtKZx6#x$ptZs+iq--OkG2e?XECF(Lj!DY(Wz@X@Ls^U@^(O4@<d+aNq!Lx#gC*!X7+$5VziX>s(o*aWNcMMPq z&>oQDKLX2cb5fmt&hu#C@dM`Ds(9fWp+HOH^pu_*W!j3kJ!W2Mj^BbmX*ZWzy3eUFvLl zx6&yIHsj3?Zfdz|zj;6N#ywizYb7oZo%1t`=9jIH>xGx@#c5~Ex2NllJMO^S-~RTw z!u{&6{_5N(fX_VlR9t-d`6yPoA~1u$S?#Tl#3`LBZe@*2L-n7>^3J0)*>I{$EOKELqE&FFOLV0c=W)Mc%Z-h%fFmy z<(n+Y|H`lY%G{uR?<3B@uHBu5kN4;0GU|$bRP}^>`Z*tVV?{0mZptex3r}Az?r$2j zt(H*6Gals`lp*+WM6JR~=~b?Ox%ySAQ50F?IAHtvK=G`-o8UYq`?0-xjbNjVwMQS~ zTm&7NnE~w}2ccPY77*9M51cg(+FlMmfZO z)knlR8e!<9Z=3`g(8X+0**0F*uf6gl+sAj@GP_#P+xFal+5ds@QZTE=#%~Q04s_)Z zaS%ee*DE*twwh`!2OGd+dF-yR$byt)4m+npj8FEP2J9lZuz2=Nab~BwQFQ!LUK zTm7WB&i%MjgFiU`OqW0D(z%!B@4D+Q{L6p&FLBR3?YsLX_4=E?`I~tE``?dw>GCIE z1iS7ej*%Yp0S?v~u%p8qR;&>~8H|b(aDEo?J_R6`dLpeO*WIWvf#Mt1G#4dMN&XfUk;_^u0i&m@Xfejn3(UC%ow>Wv#~yWDGmbn0y{ zeeCvwd%oEQVf#CMlKQnj_Cz3X2IUJ~r_U))zDuhn8BDKZA~v9j-}~3v|I?;+I#I{E zd;pl8TOYlDc$k;w1#{~Gee02DQPfuAYm;fcK$jH+Rsr7=@s{8DTO54w@LaL)yz@@H z<~6UuAN|oE;UzD5$@H3!4}9PQ(>;F6%ga~`UH;^Y@u?Jlpa%r33@y~i>l5q?NT7V*V zS2j8SmTLxtMNuk2mq|TvnNr$iSs0#Qo;35D9;R_8`;xUT?^q`tK+x%ObPm> zv!bcbwMS&7A!=Eke%&qmFI;_^Z^QG$fQ}2`yK-_e_sf_5<0aj7ZdU{TMc(!#r4a@_ zIi>iTvkuVpBnqCXgfx683=(M@H&>Nb$>a9o zqRY-JOO5$;lbl!H>%;&sgZ0j@Q`F_^m|oClpeT8v1JiBLmjuWXmBVNSj3;o>2l@ah z0D^0y$XR9upgg9q%GNA{tFu8LT)1L58ndbrmu_%{aQswGT^Z(hN$*Vn84M40fEX}X z17Anwoyoj+mFg65WdZ67l6Z`DY`s}P^})GFx~Fu#QCAbw^xJL3TS|dk6S@4y;d+(U zT0q&d(E!mFr^j3)HGs^qav^iP@$%^WZAW%J8`!r6_%@PGx#u|-Egd}Lm6PZ81;{)q zmp@=-#GS!9HN|DKUT(k+5w<}=WeRq{YXH1yPNL6x*d}THa0)XuacvJUw(Js>(qKvh zq;rIo8Nb&<5nLP%=^W|Ilh3tMA29CE+oXMc!*@IffBWW7VZ1W`tJaQ|p7eE(!sU;9 zWG91bH>?O70564XmR$p^L8R>`bCi8$^~?PLww0%_GNso#c$LS2co&|Alf(I`2Ehza zx_xb|u%7dcPsU&T_Ip>C*XM7$6X5=qx4Z>ML(hEaW3hevHj*L@Vn^)(K1Y{^UzBW^BKQiahmQ>^MR^E^ zwe*W-i=Q4Dq*2^}tl_g(;)bCEpG8nh#ySssFW8G0yyEG{tmscUbtk_4hyM;* zTM&F}=_`vl!CF@I6RQAkg3ZmzybE znTwTq89B|Xd>e!?h{&U6LWrfDM+xl3`V>$dYX-8Qd?e07r+?`qPAa&(NJxh#)s`bO}_LgjD6z4e1Q*|56G=}Sn-$CHK;AiL+cRE?$+7D`3cG_?D+iZee5IZ|_wgNb!1vwy-Ag+U zo%18B14pqgwuk(#qO6H~umR zYTW^9rs8;Pc8UjW7R((RQ!YBkXL0n(RRDJBW6r}y)8rLuul)agJubd%_+)84QRvU} zU};NIj0JNA;0FSKI-^YI>brunKZ-yIhqasgZMip}u6Ng4xV9vSsx80(y!;) z-<^C%OA}dN@x#x>_HEnHnz(v^mq3ZYSv|UX;d~kB%OF@JfFt3uF~G)YdwxPo>ZYzO zoF5gL2Tyrj07shAsC5IRZ!B=OE8>HGz@N)AO+2zCxt6|?x;**4qp{Rc(r-yUJboGo zYZ*xbqtrg?ZB)KIII_tPuFJ-1*|dz5_iyHLLmE;`l~NTZu2T=7g*DTp4#)Dy>pytT z%42U*m=d8_js6}AAW1))R7JNv2n#l)Yo7HtmuRpvjP-O z5WTHehCC_Mpu1C!UgnL1BS%MeV)|H;EZ{SX7FXJP_Uy*@|I2T|&Rz4rZf!mEyl;LA zzWxz${jy z%7P-507~D+@0|0`#>@Wxv$0`w8=|Lv{bl%?7d)PTQyc@MOr^|LLYT$OXwR@ zoH&NYk%G%PPApuR*XdX^X+Jk>rcu`_dzQvKzX2x+9dp2U%KexB#A>oj*6?{2z_5=L zuXa~Ys6}xhZJ&t+u$etIqk)lFXy#+jKvX3|QU$T4AUbYeJOtU-@OvMb}xQ~VYF?8um6r`;P3y_R{-m1p8&%Oaq5LyXbJ~Z zeJ^q<0Iv`D0d1>a=A@m%rAvjUYBU0x^xoboT_Qf+%HhO;2M>-|9$s>K!8bn>FZg>K zd!OqikKc>$`tg@em!rEp^H^tfSuB@fnD=EM@UKj>((KC8tg{v9OG?`ISb@qd`vC?9 zQCaUmttgJ4wnQw@4Lo*870oeVk5sN5MF_7tk;$#rY#w3o3Bu;+eg?T1@v%9M-a zj4s?~sZDDvlPs5DE~7$KZ>lnWNWbg56>E8!_z6qLG?Q1}_)TY@vHyaf8_71idrz#J zaQ85!VH7QPyzBt+&8ZsHsDnsPW3K%rbbb(T8f3-31$5d>Dm8~lg8n?%?3et>N@5*} zyF?!i`)<)%i0glmJb?=?*^7%GeJ;Lo)r~l?{}2{I69D-=|MVO1jozdU})DhRvcDUZNy zx7>-_zdGNm@YX`-Kk`ic(9e9!^mMl$?^sGBrLo23MC!3M#~ukSr&6$bFBKXiPaX^5 zEIrwcElMTkv_9e*i&~uWyOv$5^bll8f0f&V_viGyFUxP?eEaEuv5zVhKX*=v%hVk@ zn3jG+65=S#LR>(f8+A2RuV77F#|3EHzB`~bIdz~+ER5q@4r-XsD4h~E%U_#JM)CP` z5XAhv6BoG@)Nk9k~q8{W;8Tgqg^K-ID4MrsbwH#*#;4@%{05=*)fiZAz-Y@NuUAWm|!XG?Ktun>YRev~eRf)4>dKQ0XK5n?L|ux;BCp7iWTW7|%_ zmp^?I7DbPH)}{D|uX;K5UXbU@ti2>mTC-dfG>%ZtQyf4W2`?F@cN9Y^0G$5AfgHb1 z=-NXD18nUoIp8s#N9Zh<8-^wDH`!S{9^Y$e%tcuKk~ik57EXL@kqnx~P2NU{f3t%a zaEYgW(a2waYm6{;k{-v?W*T{wEw^JU6ECg?%OoEZQFqGMmilwqm|Pm99VY98lqVkm zTt0m~%K;DxX)AWf!R^<4^7kM32p;Bi%mCkye(agsFV#o?`=#-&Cr^Gmz$MnueG^Ne zga?690bMq@@oR%llrC*SAC5^^)Ge-~jq=#qy@pJJy zUFqS~=QkfI7C}Sl3k@Uo`)FidG_~qu$gdR+IQ6ts@Z4{F8qT@sv{h^0%{Y8uZI>$V zIeizt;k%!WA9~fduUZY)a~Pyg?)hWax${eZwP~;Wwtl6kOif9dIJfAYerLs_1+380 zWdV@r1%8~H@=jif?XLU9@g{#K;QBF7c_hxdU^l+}nVWFr@Cw#Tqb0!$UioBv-%tNt z>^W_>jek^TZp=t!=lTgxfOE#d^u57}3w(^|Xu6yXD0nT3R{fl1e>?S*a%} z9i|2Nc=$DTBWvfvL$g$Aj2M^=0lpybsIiA()N_F}=cM{w8mrX#aDiibezUaqi9_i8 z)oeqF=eV9&Yp2;|HV^SEHV-F}k1hzDZY*^&-h0 z2@O*!_^lmqm*B#+y9wQR-7R?Ae|sN3|H13A*0W2K<^7lcz;p1VXFYnlTpR^8C2gs9 zUK(849WZN@l>GQIvAf=~^@sT?T7KC@!8MvM#BPP3l<7EMCY=2hg-0&m5<8s~&7$Y< zmM&7f)}5AG_QJLIdwJRODcl0}GEcGl9LKtXZ227L>xYm<^!aumm#l8xJCn6sOq{_L zToD$?L+gGOC;ws?lj&QY?0H| zba)>+TL(EWW97W2@B;8%f39t0fT<|^D|5nQj2+PH_>ap_k=tFzLl5k{@Zj@)>uc}) z6duO3c5S*&`jxMI_xJDFci9_6Wg8f%r9n9YvDPd*&&2!RjR~^miQ^+uyOo&Y!6HbO z7T}8~`EvO606qzp0}uLg18=~dhD9QR7->8mJ6fY=TN5bt<#V+8+x+0q2D%6LKZqN@ zd^`5t^$>K$G{~uEo`Opsdp^!M^K{6%%402MAV(3GV`X&;0_H>9w455PfFCnJ0Dny| zI1K#wwQOzR=cVM|%#)w5zvd=<@a><$wV%5Qci(b9jx0Bp09TpsIdc~t{gjLGtiSVw zDR_6hI6n?t_`fDk59kwA`8QCL%c}?Ug)|ucWv~{@RmN(NfAwlGt`yDF zH&9u4V$Ev^8pBH?oHjW{mxBim;l8`~;kFy^#$7k zIQ^_WUA&NXZqFL>QcJJB@yoZe!n8a%00$Hh$V%4(Ei~eIkX8T&xbDo~OF5J$IE#?8 zw4w*x1}-LFOx4FXD;@!^VlnG}d+X%b0g*iZ#5`xd6Pj4qOrAQw9+(FBSFC{D>E#Ic zCbTjIdva(+?LP3w zdj!+?AmI9@^r~xHQ2fj~MX&opd{-;0U|`oNJE!|9yS7}2M z!9lG(#&$jZokW{BkHOaA5!}u~ZUc=rUw8*S=<*T^kNbS2Ns?-9JbzDQ9HHJXIfa~u z@u<5$yX)J5eQ&_Sl#a$8oGlHu%_N6uk0h;D;=x?m<{@?7 zV>|S0IGoAHD<9F<4s6u!RhxIOC^O!*Oz9)}HEdRHs%UJ(5!j&_wRRBeF-U0#?XtxO z;6phP-umyXcBE%jrmyx;tXdGe;=@2N=WpUZc3d-9YHuOpbf`^8J|S(KZ27x0Y}C1{ zK{L}R)B$fNa#Xrm29n8wD75!oEnYr6X`?96hSZ_V#ZPd+9E)Oi{bOOMK zHH)*>?LSADe#y4w2e8ycboO$DOz4X=5dgNF% z-#$_(ycKXjwz=BDMp9oZ;Pz6t=(X`5BE@hTbGDhDQp~kr!-lsYWVd3epuSR%EyN>O z3Os}tOSxE)Vz2}wd;C9@^ZUq$It$pW^OA= zdFAC+P`+vlp|Wt4#|Zny6-~7AP5j3PM^C%u!{@#b4^!H3!1qfxebZSOFFn%_l0aGe zSEWH?&}bUu8tyzDg+f+oHKNV}AUqEB&a$#wuq<$w?M11qGs#mnQBWwL&ZMlPE4Wv(J9BBLboLV|krC}@-4JiYU=!k?B^8*|Q%br#d`|8JY&{kq4uerHNyT!ui#G#I6 zep;exBfgjdLAI!g3nT3uN~^sQpc2-P;`@WPz*Of^*EL+Z)NSJ(7fGx=H^2-joHWo4DEzo#xAKSf zRIc$~6E!>N8hMmXg!zDsu0<)s$v9MY^MJGCNo$pDEueEfWRTDQtK?|52MwQNO+#fd zWSN`AbDlEp<2yU96b0Lmsf;7)-Lhq`So{FC0`^<`QaH7=B`E7zV^OxI@j)(WDqd5~ zUP*_v1rGSduw9tIyMR7YpdxPRQ=GCz8j|YQu+{e$Cgtq%5FsYZC>0P8iFGQ(-&{21 z#mSkU)$$1>utV0MD2;yAh{_40&@=%p4 zL#Id@(nhhE)hbyMFG0J#rg*~b1z`-V^U`1u!sp-p@q__qi=mg0Syx?s%+^VI$a^!# z2e-fM{@V^b1rI~oaKN```Hb(=^6uPB;yT6jd%Dji&b}uf#e8^3(L9l*a5EA=PwN}F z=SXmfW&n-;&e=zL)FPeCv=$3w%Yr!%Y2)9N2U-KZ#o9>VC%vxm(?{z8e)E)9sEcnCe4d#uL->RJ{vC~XT&VZ`!Lfi*PkH}XB>_tZD@vmTF>7j z%e%k9#ANDaxd`@BlWmWcgQu_+82D*JlSjGh%6NQ^V1XU^ij)^J;NbTqVt?7}tN z<{@pimG~J_5bJLX^Fzs^RvYe_(|W;QA8+RC<46cmbFRZExl81otW=%uqQf19K>&W) zt(Z{^yhrfG2N5`*c2R6P^x=RHLU=(7<~0>!2A>W9^|V_GGorf8ppQ$l{3{CImvZ-J zq5K951AU56V^ki#K3ZdLfBWcNwrx?WE4K9cvJK@Z#>}va2dh@&lmx`N=JJwU4#I6X zJ(qGO&^aSx3NlcT^)I#$zS#kdUc==f18L_|xE5AQ+8qeBajLFEwaHUsoY2^J#QlN{ zLJ+6G(|4VIOP5RaU3I<`J6{>&%j?KP+yCzM@9(aWdpOaC0=_eEz2XT=M|NGBe|zN@ zX6Z7_O9y_{A;)usTN{-QBS1e`oXw;CV@)yFMgvR1N{Y@|NcAYotsH*QwlY0hp6T~O z_|8Ehq+sPJ>Y_gdcyLww3pOI%I-ObxM^(`t*yrcnBJB+;b8*ZnlDBXR`Q-@4(=GG5 zrCuMlq$B|}fB=$X<3T~kmK2H@4{_lH7*t(eX%*1ttd9+)%x#xbjrl_aGCpn2H-o+k z1SP8*r-jT=N6?YH*O*963 z3e=Oyn4J*cyQ%AXN|9Wf3vz1{80I*AD-u3TmpV_a-~=_GEo9z_V}%BJhQ<)?L+$at zIW9KZt})`r`WA-FKv!_O?%(wKfE%2S6$Iqe+p@(0eUW^8*uIqfpv@xy z$4~ABB*mms{~c;el?7OwoV;S(jxNbkR;yipZnFr0LlBmD4O|t_7xI^3RpHclGmwMH z5>TG(1qfxQ%z?`|^5{|cdFhdscI!5h;|n=dXew09EHFagrJ6MO zwt)tyaG}Uz>O+~e(MQ#abB1Cjy$3WcO*0MC_l78mvT%Ch4i9Bn9kA27J-Mx0QkP5K zM;B=-qfp!C@Y4tN)m7Dl&xcPUrq}(RoY=kp=I!5!hY@WU;QQlMpts||Suafe5x%*p zuP7iWZQo20W(cuiN79~O${oIk@+M`smkWy_&cTqiGf316j5k{4M=%KV12+a`>q(>P za%<#wtU=#|HV*iCYV8e75)>tV?5L%@GOY#t&CAEE1|HH30Y5KCvy5h0_OyS}SAbzz zDo*1>wp8`B3p>y;vUH@alKKH5T*i3<>X(-3M6R-e_59n16&QH=Nya1(Blo7E8aUeC zx-4$ukbqg%Vw}25EC1Bs#Fd@+oPL>QRt)!&HV+~_~ z%Y>7V`cO}?mJieiJETX?`7k~;bFW-PFf`&$uN#8p!nQPMiJxT>pkY~@{E&N;`jeg1?-eN@<*_aF= zgSsw62Bf*oCTN48%u*-w`t9N?D{quTNxBe&#;SxQ7*H=6zxzJF?M%24KVoYlDIRel4} z*D3$WMuW@O#{e`ROVAfdgQCn&68n*0H#xC&2>A`8JCYTsd(JO@P9r4U;epJS`xBEwe)U6iU$*UZ_LBSzHnI zRR$(87aTwENeMJ9)Q%KVabZ7dtEgdJj;9pUrK$W|$=}+K7g?H;WPs^`W*>2S+Vtz* zx*^WL!UzMyk3W=>f-4;F@&0W;@FVX(=h=7|(1roNZ3oW$+Et{rGBmpqTd46 zymAHBspnC&;^bH_DSfv;L;0A>A+sc$&v`bjJL1EZj>ppP@gy7G*}}7t?Lr15nRnu| zmI>56{oX6kek)0K$pBA>Ix9tKs(d(Q*dRVBo5R(xFRDyRNj&i5*dBcLTl!*p(f}l7 zj3w7%RpzTzl00m^@+Wr1<*AiB-W#b+zxo-?JOdy(Vh-DJl7*>My^m`^0Hv95{;M|W zOm=lWD(ZTQlA5(l&}s$Ne#8MEZH8;OiGi@m^9Vg{HGsmhG#Wvn1S=of$%5NakL9qA z7Tb-b8~dqNkalh3PMJVV;;zVP%lGg2k3V_~cH;!64Fi0lOHZ6OjA@y*b|1BA5G*MT z#5r6aqZki$6Izt=Z|p$BT4*i>ytSmeFw&u=x&;s~@h*BF=z6Ft^fDmpetUZ)O1TU`i7XfZgD7>MBk*YqN*Zu!Nch&|sl~EdQWx$|$;ZreuB9^f zcxcfd(g>~7=`@!>l}G=L60f^qB~Pkgu< z^odiDg}Z2#qP32A-G}GT@tpeCM!OfY775pgc$cWIbGlp_LMii89ak$}Evu6>o*THa z`pM;GZ+G!Jr%&S-zWNL*JelDo{5IM0sDxft z5(?oN)(>&6sAm{yE%CYunbtBR_~{BRc<9dUzkMRVXLmyY->DDoeS(ZfXATZu+7J5b zt}%Nc)VWZRt~pL^4T;ohj%#Y7!&CY7jBQKgPw_VVd*ZOn`6?0yK^wo)wdz7+((iW0sRLZt}k{IsErZahIK%g)*_n}MoU4khii^y#UCZsIXz1#Epg10iDV1$306 zvtZWc)XvWkNeJD31IJKwZ;)!DMywnhJ@1~Ymw)og6ZExf8zS`5__Qajer;>1l=^ob zMDj0f4&jl^U}u$N6^15ExU?N)-X-2-!irWGNtZC!%8INk0s<-)RvG}p z`DLp_2B;1^Qd|f60u&Pue7uq$fq|hox!6+0_Y{sCcqkxP>fAAC4DiCPwaM`{18BA` zTK+u{K7#ibYupAgm%WeG`E;OD7dii-#&il%l`Y^RM!HG`190SWLiW(cj~Q zIlJ$Y2URdw^)({N*eGZLG?xUI2l~Mq_i+B41v?nn!80X)(%eh-S@1!T`EO zn}&|nH7`Q|Fo#(b9s3E;JhION{A7-}f}!*TZ3XY*Bt=x}o|ePVbCUpQskOy3g1$~! zjT^z^Sdf);&6lr4aaXpq;ug?n=}6?|Vm5#S$07@$#5jPzl4j-ztF+(CvXKu1=3*)N zfG^b-b>xq1RxwWVlAYmy-lZIoe_EA|y)t2kx(?(P5AkA3?5 z^KgREh5)|Nc;^e-J^`4e!yMB`w}G;8pd&o7h0jArMgM`1T1m&)wZuoS0R7AuYoxaI zVB>-47R^JO<(ijyfZ@EPjeqr!yU6x848&Nn_48Q^@bii!hV06?vnV;>H;oVhS&7u~ zl4xxZ7adOVk@cjg*OnrZpppzs8Ro3x<=l0aEh(117JxK>IC4tbmTd#jB-LU7Fj+N0 zU^Giz%9O2;(qrusS6)_9LcxNS&s_|ipX$}5sQ>NMG*HS*EUyLF(6VMJPpRv{r9)4` zX*Gokv8v{)KIt-?<}((9zEjV9ZSFYqaQo#44go;aKJa2V2qY`UEvjBvdE=pZGyBEPKRJ0NcpH^ z-%T>sr+l>PZNpjLO1aEv2Ima)A0 zIdbF(#^dqStpz~)_|((`$a=VN3{(2%;&Bu!hQ=fsAX77z@mS0i}j) z4EkLB5u9=>%g=ccj20vXKtt(gPa#Ph@FC%y1yH;XI33QL^r`yXrYXr{j57O@P+9T)xhyX*Dy6`DCh8aVa8MFM)pW)^_!I&1H>V>td<1Mty0s{C!$o zA8oV;{;iy6%1@&$iHHN8J}vvD%|1+%5coHmXcI|r9x+JTv#n}n|I#ZD-?#H;pqRm7 z^UyXdnEn;c-~FiZXnKl8k*{K@n__o*X#{)wo()vKfXA@?8OBB6-&@$G9HJ*w8r-5; zxk<8k^)^4%Dfi7#wrF#ajop60u}S;J)FFet=)MT6WFAfhGxnhN(1ZIQ#PwI-f(Pz7 zfR&XM+;sh|xa;P9IDF{Hs^Px_%M*|{@tXj>(MYhgZ3)|!wqeK4?Kpk!9-MdaSvd3T zGjPeH_hRow=U~^)T_KgWg7y%uFN}o%TB_W8IcRLo8=ef@vE-V?5EY+*-G3PDR}MSgy+&WDzi%{G3)RmnV-A)*VQy60Ha` z+!d>o4Xg^-O4(<*YmQUu0dn0IEPnQ9S_OSS@sHkp{?)&S+kYD;04*Hwop;^ipV4)M zNgd=Fn1@uQP<5OJ7IdA_dIrp_57)7*v06joYAKgTN)0488~HhOf2b{b_)!Z8c4ODZ z*Y~18--Kp?y-6Rxz{?(g5iWn? zC3wVRF2Y5RI2Wg$aVn%&#l^8mdW^ z^NQSH8QjR&jfGQ1u4C|iz6j`q(nP{66T)L z5d&ACTynnifq|lD2sktM0?-PGO!ZWi9D~+OV=jhi?%W-U>a|h<4h85%xgF#wlK==8 ze>;Dr{NQ0S8oBh>}5H=aP9Lb-MH)l!|q5v}Zih7@*f~HQN~FTybqF zjkR;xqD@YnBB}?RqurC&BCkLeM-z?*4;;cx*WHd!zyE4n_0ccmp4%V5fd>y^BWb)c z#yz(^u==?gpLqAx)BK%&_HJB!#d&zrv#!7szUEOlZ`BI8eaE(@)Ex$*TG|v4orYyUjSU`FZ0V2 zG`^d&ZaH2igFrk&S2a+@pp2p-N_(8j$bx#X7wf(u0y)*-yftF9CyyPN^=xSdF)aX1 zz?r%XYTzpF!R~-8<7Mt^E{*}vSyWEnV{Q7sfZ~Flbq677Q6Jd0)2qEyg=bVURK2AH?)9Z z1_zQ?h@33Sl>!I)DE-d22O4BH938Qg$$ChZ$&%M;QMTHZHn_$5Lzh=+)ptrem3bxj z41JbY*);Dhbmg@ODhST^m`0t%KI9H?u)L*}QeT}h&J3<-WERc3@Klcm;{^IwpAIcO zTJOc{Uv=lX-|`E4?|J~6lok*8M9N4y9i(JDogwnSP) zeipw?EkCV(lKm0&k{tn#U{N$lQofa4EN(GgIN7-kfh?F@I~pV~q0KTE0MJm^&vS$v zNtnBYv;@Jy=czXd@lZ8^d9C8l9ygHl{hHJY39He=X_8 zhej{F{j>73KdR6C>DSB0m$3ElHr3ui@9_Zb2E-Acb;Fx1*TAd{==q!Pt zWy99)F>&w)f<*JcB;nUcY+(UIf9pJk6pf?%VPgtybp4`F382%gf2r@gZPB8CTV^ zJec!2PM36B{k2F!x*jm5M&#V0@j^L|VzOCN6I7Nk4SO0fIj}Kq)}`gQVPVXB8yiit zZ_>#5Y}5+**Rd>Z0>o?3i$V`^J3)lTu_O?B6NCK;t?b+W6j~xE zX=gbM=#A(Gc;l1e79MmNrBLYbTBKGU5ptYZ%oQ)j_R88Tm|KAXr!-dY+dn&%|hh97de!KVZt1?^as3x5eT6t1i&we?e zxraSdc1m+VjuOX|R^DI}rL#@^=~;dF!o?6liDMx>5K>mb>fOe45XBCqn7nr74!qpj zZTV?Jf?{FHzb&reBz4Q)c0fUseZlr1nhZ7;kCPi8r0McaDVL%hV@zZ8I4wO-T)X5b zZK|Vj;>Xt4Yz-}GCv=(j4BG7#-S3V^0+wRw=k&T~wn~nzIV$s6A?cKgO404bq%fGD|gdyc|wvaTum09Z1k0FZWr7yi{S|4 zk`~Igicvbyqg;istq0@fr88E3`gdP)=WC_j`g>eyp@`s@uKJD(<-s$qlJWL4Gy4MA zgkjj^YZbZ)!@2x-)C696vKc|#)LHVCq{&@cfNw$`XpRton|Pis%z^=*P?|Abj9oH6 zC3QUeX`xlSMVpZ7d)wA9%UuWP`^wcf;?MuP^@OWMwhqwI?^-=N5T-H!Zvj@G0uj(gHv{n1S&S14xA*$!UO&fo>_% z4pykopIOs%3YhHRB2riaeABXB$q3gNCs{f^V=JR#Q8v(<+gk_t;xaU*SK4&To-2jt zB#D*P-#+i$GK_EemhO6-8t_ruDu7TB0iRAm^|%InrB1r9E{q3!9RN4$tKl^%WtH=i zEuMgZ%P!<71s{VqcyjAnb$@X8MTfuhx1Mv)JFtmpp{U?jKK28T(3S1it`@+y`W=WF z%)tY-0Nzlbo4{_ghw&0gKrt0O41jg9MoyWrWv^K6Mk9u5XaYB3Is7f{#}4pO$EBvp zJo{-2@SO}a?_RrBym{%qyYItW|KPp&;M+ely(jPCPLl&3&wR<_@tr^VjX3kH)5)g^ zb53t27+ z4=|MgmKKmR*4pyJa{4@uYncdq@^6M%TC7`IfLShs%F3tcK#+PUlO@d6nCIqsUz-8G z42Jxr;R;>~*K|_Y%EX`EX0QnGvbW=3%1#<()$!os(FBUJ)ez{n@Qo9|VQZNKeA(S{ zl*&4#o4&hcZ?iZ8Lx2xd;u+*=0dw9eY&U zgdJ@k-?sgXBj5QuFTUpk*d(;jH*GvP+IQ+|IZSzWGlsYcmb+zgX%0+U`CBK`Do&S{ z9~?lj^1xH`93WN1*{P>v0jTDXbBj)DS`XNpmku8~jK6x*-{SxJk=NrrfBuP+0_;s_ za=_ywe|;7H^H011AAZ-Tap+*YQl`J}O8|S7e|i;JQP|nil0T8s(j8CmB^Dml_o2t)na>Ik+Vx8CZWZ?TJ4nmXXJaixuMk!%Lb^fvTLxXpxIyW=UIen(2C#(pH2y1 z&wDxS<|DxtZPBqK#ZA}UieLUWZ^WPe#=EA69F8Tq{k?Mh+WviaK7cp;r?=p@e(q0j z(^n_^70n_st53>M$a0uN%kO?hJ;04XAFmd~4fQQG8`Wr29g9@3rND>;%DiF^D>0nD zFbu}PYDgD`>mN>n8ram}!hai>itx&Oqb4b!piz2#)$YNlQrWlD$j=qn3ZU8_oDvr^ z@-sjbN=dpuE!|e?F;+iN8)JlZsW=I`i2{81!h<1PwvGka!z4ng`lP2BD!O;fuxt=d zo*e|ngI!!*xV|LEhewY+bmPuH`ial)Jr$dP77F-Qw&M)duuU;EnrPC`n_RgumM1a9 zZKmGLmS@BontwF6=7>Wr#Z3C%wSHPF=~2YZ9JXkS7D;^*n~D49KXDCS_wWB0U;fOE z*eDtTa;n_lbta#U28Eyfz_s|*SN#D#`;jkA53P78$DbfuBcyo_$Q|>nS^=<5hc||A zVIY~mYS33fr|F(*0+9|#2^)Aonw^uWw$gM#vV|q4SA;|BU|rM7r+|nwL7PdM`PXSi z*$Mj96qgc@3?2>Uh?6%%qM>}T#f#l5KZziH#+DDxbOe3b`s_R# zykZ#j@&TLpecRH;p$)c>{^{;B@erlYm`$y^O;NC0fn z7A>4&yPmwe_AmbXyYRYy_djsw&G%uEG|yEp>mde*8%dK(oPX_S-h?;3{;$#!@2m-A zN2ZX`qgu28IyeQ(Or!#RMO{W~PKPcis+fBW*OZs)Mo{?FZao&AGX>Vj8Q*GLOZd~{^@8D+kr9*Q~Zo6>%~?5+e5iyJNL z7ET)4X#{Y612HcGM*!LiWiH2^WWK?Ai?(RJbnxIo{Nb;^4R8J3_u}xu#ork^uf=XN z(?s@n{mCcri~s8ParYhfW>*SfAOX&`rEW=4$s7l7@*$6gg{uYnoF!w>0@|>cFhFzZ zg^?!#QTFfRBk%!ryvLI>e zlnjt`)fR!SRPvRWt(C4ue$d0A+lR>d&19@`WOz$U-AJo)=DTf~v@bk7_(D%p%!imv zW^KqZ(2gbIH|=Y+9B7!-cyT(dfT8t35c;Xg_Lci~{_OSdJ?HP?IMQMP-|{JEnDuVl zomSEooMO<&7C$W@&%rZ|)<2XE+5M%HI{BoKdSL0Ip})ZnSq%E(ZY-U+3UZ4!KTX>D zy?5V>U-{Q>#NWR8lQ@C#*dQ%(>G%3C+=`$5-+v2NefrDEB^Fv+DXa7KwmKmzUgzw` z%@Q+P-o%5Bc|c#=%9kZm7cR%o`@bp$MqJE0g+woZ-5s)K&VwB-X>M}x_o$s@wcTArwIO~09u#_;0D&TaNiQvtxMjz z(=wF=oVvx}HY$dYTWwbSZ|TYH5M`53o;X?AP#Rf&_2~csUyxhxU8c~`62%Eq0YGl@ z12jIOdk^2U{kMPMeHT3f$B7mS_~g*GQ@qQh5)6Q4H?!{b0WSkj}^%r8eCh zI5Fr}SsMEi*&vE@n~h9si%xF3;VU=e7yggm!?mBg84qV#^wRG`4;;d;zvfMN_g{Rt zXRPQ4eGCblGAWJ`^l=y|idG`HIx5iTT{DO?5qkDJWiTTF>WPh8&Uz;;m?RWOoV?^s z!Tr*$58u|j(X|QwG=V2@-Wzq0fM6f*>^80Itc!$TT5D-qBR7U>CT*oHGv*NnK#elY zF(R-NuOiuBW4uTOV0n-Uk~)H?7~SQHzWOI;+T^5Fs0cWlKOMV1OJ1LQlT{F;+QPDe zv-RHb>#jUbOS_8&e4--*bRGFqIv!yId@oU+A$TjG<2Ma52E)a1bKjrw0#K!mbl_t> zmO35ywJ4GqF2~lwxJ3_Fy7~Is@cRGoC%F68eb}P4)AFGs_~T#u8@%(+KZvz}zSx5+ z=+LzEvCPC2?D-j&Oo0JE@h<$$pMDT=4C$x^`tpKQk5X$c?@F1d za+r8WUkCa;$I8ke7_hlaLzZ|MF!Jvhy2#_)z2>j>%(+ypL=3bhSdc-ZVLyu_2$rDy zy0Hd8Lv89QV1?X-fQUqZD=m%@oXxyR~#GbWBV+yp%9bjsSj(M+?+9$@)Z7KT97l&28Ab@zyc>3+FbMzSZVqNhj>* z+crKZ|Mmyov-fLojA^lE#nF-7-2;QK^i4}D?r*Vqs{>#5m&rg}sVp_0SY@1EdnTdb zH&YlSWBO}Y9$K_TZp*^AMMp!24j#tu|380$`|jM2ji5#Cl{-;r0{Z^)_uh-of8xtM zA^OXsw=cIqU$puSS^Cgl4{h)w?T`fW{OQ#0smU84s5BKAgfh|>!4fsMDl948Xu0X| zuU2xj?)meI-emK!B>^-k&s}&mc?%$-n5^tIfI7laTyCa5ERa&j@<_7PEyb6SlAAU{ z)%BIqo@RyWG$f?Wlr8UZnYh}fRkk3+Fchw_9idGWPlo!{dMWJ{R4wm6?xi`0xwy4r znu=oAct8HlkKTgaIEJ)X3!ki#C}`~QJ2 zU3DE0m08EVPA~ma3Q>h>fxfbjZz?qMtE8%BR!X)t2H@kM+vM1_k1cwb(TCstX}t4)d<_u-X@SVdpOv@=QWZQaOXcEX8@}$`6mX>$GU7`?6N3cw#DT_! zjto*}zhW=d`t@Z>WsEA9?G);?%-A9j)Fl--Xz&$OlZvSuZ6&Cs5VTzTiCZ-4Vv0eX zxI^We!*n#(fCbQ}cV$?H9?I~1`R=7x|JWCg-K*CY4EW@5*{7f_z-4$H(`#GmHS}V6 z3o)Q>A-DTW*1~uS&vW+fF16+$Kh*RhmT#x&NqU~wM>=QM*rF|By63L@@c;huUtzp5 z#ujZ1-FwFac*B4Gb3AZ=UM`=lWU`O8La{Xuq3>5pzwx#PiI)+Fr9l~zh%7S>^qG4E z24+ACk_1`JE%I%Fxb!O@4iQdMX2_2LIW&Qk44BY8HI{@6qA6d>T)h0CdMd2!4I(kT z84wyUPrY9>nkd z-+w+`dfcLorQ5!G4}Rl6ylGnI9kGJxS6M@#FOOf%*Qup2*`gAaUDQ(&EjMDeuIwfi zl*!@9rN((KL4$G;$c=g;rlo1O1UMRmbVW9Bz6@Mgd5#)!#qqH?TELgvx2T*eTOuFH z3^UU-xYvalqWhpMkGH~VD|{P*5$4FC92H+5ivXnzy>3hzx-)Ur2%oFryD}aFy9%c46TKn81? z?Qp*63xs3qUbT-dVQ>O?7T0kpzudFi=QplW&$ZnGjh^NQZ>?Nz(H3n68jr_#)9c=W zFMWFB-i`ZkruFRY`|_u6!XN(H+tE7omAE$J_1PHWvSXeAcWl$Mi0Rp=ta_EWfw_J_ zLCU;Bj~OUR4N^;*Sx&N|Iglnb2u<<)GOV}qDWw(pKKs$D2SN;w4iP|gTE|;{3ee+l6`yD|%Td!< zDA}gh0vQbYI2_P`NmaTA?$U+E16h_Pz?o294&}cdBtoQTsPtT8aphcj;KLRsN|m%e zUkaUdm;shhk}0x3uOX!xTKmeyep0*3Cl`FBga0K&4aKfnPPNF)yG;iA9)4~QH}s>;8HXiK?n z(ebCxe&kDd%kR7gTXgJcGM@a&Z@v=;4;*4w%u;Y{O^6UI^R42Ale=ALR^>t`DwA75 z2nHfW+%&fd`q)2<>yXCrqT9ZDH$L*N&oq2yE0eY!l>}N8 z?&NOrbNh?}AOZob%0fnA8VhA$_11b@hmTKQ&E>~-Jobxe*xNC(6sQWP-oGXA(76sv z68jL!Umc%foy+Ki_D%9~XG#Fh`X;8Mq>{~(2R{gTN+Hy9B6!;5X?qY8H;ueNymE@x z0;Op=p8TPWujjPxkf#&c(_ zOYw!RelXBS-yYByfXd&z<)&#Rs{mlO7CN&EWB_aw_$HoLwDLLV<wt?qwEfjT{JwKf!v@hp0pF^v?XbZsf>Q;#7l`KKm9P!#o2w=@Fc>SaxU1(kW)P?9 zq~r9BkC&s6n_lW1)!L%@n)uo}!WM0jr^$VmfB0)}#ho{8y*6z#(B!I?xBbE2qTRDw zrU~z&O|{gUXU2n=jm^<;>RI`z=w?qUMTRd|U@? zs@!;8rg0gv1y2-xz^2mfik|pze}{n*hm^XRQQnj=K+OR?ORs~;_ICyG?WNu;IIkwR zI#@X*&pdp1ykUF!77F;5mJZ$4J^2b%vt4*B&aDCT30-o|KIVjHA5*;_FSha#teGq)_> zyYwu*LdSA-T1o56i(|;P*+5+Sb=^sumjiU{mf>%$=OUn)1yH04BS2UIW3XL??-Xv4 zqxfqK=K-D~l$AO&95MH;!;+;-tI^1p?^O0(A znHNAec^R+kr#xY3O?;$L2jbdp_ZaoNrgl+&Va-(SIqhh?JbK0rA35zg*Z^86;5)E<pmv~74G^N80>z6mwJNw>=~Wrb zAgO+=qcLsKNk>PH9GTv?_s|0eu|=DY-uKo|g^;| zhVs34K6aaY{q$=L4l^z>yE+0|>PM>|mbbdK1#l+)?a|+8(L-5JW&N1`ML-m-o{U}l z%Occ{s`oYl(A%#FD?006L2Xi{ISAsU!mcnQ(441pwG9|`MNVBlu>IxO09q*EJAC$S zhgL=__j-$%63k+Eq-TV~68uDVJqP---?#z##)LYh}kG(ZG;*iohwv>DwNn}|IqdqUAY0vx(j9az!?V*h>Ra_P)Z}* z>!@;9-vA0&%vLyPHPf)z8I%!+2r3!efxx7;Kp)UNxZzUgJj{xd{c9dGsS$Lp*~1o{ zRCN0-ci}I8_kGx+%}t+p&lhp%5Z}u;1p3-)xb531E!D7J$p&12fR&HON;)lLQhL&q zp$+;nzVy5i4K0paHnL~{F3j7Lq6ShP7&=gZv^*^=lbGDay|8mhbs!X;zYC~!p3sn$ zme>*Mpsq{wstLP9yXN2lcav+)uZYU}OI>+>TKi0KqXDEvv zn>cyrRouGNGZ5EdVB1V|{!rRecN}JX5YNBy6Q^H}1=B(S-#KR=IlLk(Y0bhKO|;+{ zNMqMN&rxQ!bpcdIw_MsP-;FP;vLmdJkFAc8FO(~!;2`7|aU$J$=FMVp`A z@yGAO1NT0JE!y04*RA{TnGat*Bh)bH^C4I7FmP1+qCBALJ|i&LDAo_@lR~PW zS=TBUByqw7w!qdXfk8$FRuNovZe~^NSw2$`KlL7A{Om4qcBx@jUftHOWH<23%Mnlr zrA|wo)!06R+~JJM6S)TR9{SFhGOlFsaU}5U;jJ}Ds;tcc*q6O;($1L%UVU!nt|U)H ziL?x>vr=0F2^K;%S?ffn*m={3tz)poF2^=L>Siqr;P?Os1I~KMxcfCZ9Ma8D#?VGntU7F3JMetipWEr24Nw|0 zkuBPyL^oV_Gd}Rv&ti)RstV2RuB z#tOY}403j~>Ai0tGhb^Vx&K|TVN8_HC8p^Ps$`U@0W3-esu8FOr5O34S*9f&usk*N ziA$v(s^mK9;+E2p$fG8g5}h`7deND@w8@3PA}R6dmsuDf*^ZtL%gC^ERf1j zzb|EOO9RwrJ!ENQI9?9dq+s4`@1yJowlY`99C}JG`R>nS2Np;R1$W=lZw_Je7TV#4~`t?oA%8ld_pdB@J??;bmcpRi4IWFJHP4I^+QX%+`77 zrNnl5rOSuMXsS1tl0lNf|hHK*syD z!sj^I!d4~MlTIg|xAL*2(kaObh;=dQ!yKsM7>(fb63fAtZ3Y6ZeQ_Xvi_xJ0-cQNt zIpweHyY_Lr1te5`n%cG+z};sDg|oyp(1=#xU0wZp&Dze34?h?bZNMt&G4B_x+eZ9t z`x-qvZxsarYhM?&wnr#CG}G;+!A@a*0poQ^QemDWF4?VWz+b6&Jp^NDgflo7P^s2$SQ| zs--!RwFfYfOda?@$yeuJ*Hj0lKw!LYtY!e$Kc1@#BV|9L87nw_NkD~5UU~sYtJGK@ zReSfU2ASGk29wokVdLctFeM>H3&M-raA^s9qf9?lR!#4l64AP9T5RX&^7Ck8Z82TV z{wnBuAr?pr2Yd(5y6&rxDWW6L#QX9(^0qm1o&F882J@?V05zz}`v6;3xmKK#hSD!( zNEkqAB?l4+t!WnMn{~2xuGX?eCnYT}AI7KOe+{;1bI@9>e79YHH&(_gJ-$QM1N6d| z7&Bi=TrKnFZyB-#)gYx_rbRQn3EGgf2;2Y-jj*QhGjx+`pCKto{&LAVOB?Njt3ijl zxV_dIiF`YLT~P_`f%I}3z-pn1tZ!mMUNR4owE!e_I?(=F4#t)IJ|%IgF@i}{5;GXi z;7nYI`6;)_MjA11Gx`~q|MYj6^l&mVAc-;so|?Ox_~zvPhA*XB3-Dg-2o79L0mB&T7$Xh-rlFc zW^4_B&4pr-VI8+_0%rQ}8wmOv=N6s3^wlrjio0*!hb=nsX#f2W;f|Z`UPFvLHZVl# z$lEvCs<|wUmfK=ksjM(+an$>i&x^=2sOZ>U5^r@Nj8fq*U zT2@Lwp{ixgv~qa#tSc4UupnAE;QLkF^MHRbDpdRq2DZP0t`r6Bv`%bR_ zlV-U0mRnCd6APk+1HS1UjU!x@f0qj6eRs$+5UoI=UtV<_P~e^V?;I~4*l=KumNQ)X zRk~Ro%afBE4E{V&^b|l}&l9K7d$MkJyV|0Yj3!OuGavjCw&=vATfTZ5{b~V*mMZA1 z8f|-3~P-sKOgCNlS|9r`wm< zu*CS+x^@2T3!V{>VGY8DmIrIUNiF+oiud+zJ0jm+O;eRZqa6=J8rrU>m#q~TE2)O2;8|5RpU4l4?5Vl zLJeOv6;^ilR>7(DP2uOUtYpOlJcq9epOH(;TOJ!~%p+ckOO`9Q&u$d>3MyF@@JgBV z5>-iiah-r^E@!P(yauU}^prH*(PzPHUL|8PW#DB-6PU&oJM@v$QUsHRn4a|pyq>Z_ zE)%KiB{rX&K!dVAX8_-OSXTUFx4SI2^{8jL9b#GrIbLH0yi6kIp{6xB9Xc^T?Tx=` zJv&ABk1oZ6XhQ(sY7=?CiXl2i*)6KU5&LPQqrn=XjveUBjW`3hF)zL5CpFjy0)0y1 z)cqSf-bF4LI0d^_mOB5fRo+6L)p0}55WYnxF#>$Y0$a5C=*aS9TxnUAyxQ;Y z_q8(V9U=HsZh9k!C8_2w(Vn8!UcOoc?e_<4FQ0SOnoW4Bc@B(!4H>0?SCdnSk7^F( zfs-W9%7P}X-B`xaSryI8h1E)Ab)2}i$E>HycRH!91c2ayw>ETT{vOsK>b^K`4SWn# zN*|vRma|~XxILzvD(!x1zwfyf&Fx0$HK1tO|CrfmkjKDlGj{mh4AjZc=V4NIf5+H% z@qhlR%%=|B4zopD6zNN!y#ZTvf|IV>6FdoQK@g>9^YCD303A-%F+-VY zifodyK^*f?S#E`pOC2V?3gE4Z8R_+fDd9pM)TPq7h_F?yL?(+KeM>*!%ADD% z=F^R&)stPh5_k*MQIyrC-mdlnR#PT27jCCWUvrL#H3K#>{A?b2s8GIvHrv z{%-&3UD%=%n?~F6@H>wJX@${2zqW50&!n;EiL88i)XPfG-nZKTVG&3+QjNY<7-48B z&0Q>#Wo*R{ZsHCHv>;HcbfmJnO@Ap#PrxFBK$qhJnAGB6UXUQwP@l^@FFlTf@gUYm zetSx*0L7(KE0vsv25_d_UK|JZ2x6s(p>bCCiSM zP9A8!KKR-|AD5b!qfG^1uU5rqJX$}(474GD?_c1igDcw(e$g*Y26*R?eO=)WY$=1W z9M|)VaLwETC=0;M?cZZC$)K}*n+)R+&t%h(D}s|cU&F46%3_O7dYW9cyzk!qc(~JA zE;2q5>6AU&>DLgTTT7T6vajrfqR_zw_2Y{`8X(C=Tmw|nR-A(}1=#|SXod0n=-Ocn zR7mj7AP@zD6rT{ZES1s{bZmyrJ#>_mxNsh50Ss$_XieDx0XVC=V|`yg87R`|)F?Y*Nw`Dc4KNZJak4E88lMBdd5CKc zm}5-KlL_rYuZ(q*AKI9VBRdYi52)X7YvnpFASeU4Xi?J?s{7%Ap9g*FxD%W!zvJuE zBIwKf#-Y=6|HdU<(6X*uLUzl=9JVE=Z^Sdw2?3wbm}^k? zb47bEqP2BxG?gmQ7M;{IxqEN<(89)m6NXNNLn>>L@$B=?m^0)o(5GlxRDxG_H^j#~_(TE_qVR0VbK{z1U$%5Ky?;itD^ViLZh6?ePwYt zZNmWHX}d;W)TJZ0=ilvv3kgtF72$!ICjxBoYM0n8RjtC=!WWici{Y0*r*9+-A_>Tu zv?Y(RvHARS?N^feVybs3sx zBQA^tjxxZ{U+dCd4sA&4_5n874}iX!{A<31en|x`8Gr=Ko_L-mtY$`nCObFscb=>x z3PAQ4x=D3^l2&$MdPt%$PI^)@Ehd;;q2oXr`SJA11h;4iyu08kCU5nG^d zi`GUXnZMf}D*z_$l;H8D69IJYK7AL?yZEdg-x=#t%`pAt?v-MQGgacFdJIZSyAr@& z38M9w)d8)ThF4@e3WJtza?S($}vjHR($nT-=SO)`!wsewO85fxtd=}RE zk@!1C4c<0kVemdFKW}kn^B$LmXD%T~Y(q|mOZyt3KI`0&U)u=OPp&VniZL2vVeik} zFu*q{ua)f&{!RYvK~gMAEw$ibmw~gquv-^dEV>M=(wjEaEeJON7pI$LgkKs~Zu;7= z5Y_J}Ye+Khl^GcC8C2ur^gU3M;Z?%au^qZa5}OWP1CtNIkB z$1dvPb$9Dk>>LlNEN32=bz`eEo*A%i=8~@rdW$mohy215o4T!2e2U8Fu*sVmDBG1$OQLAL?4$;J3j(_ z4*QUsa^@*6Z#00w6W;LYNBX^cmXHg15p3>0%?B3ZQEG>4iin0o-n zTeL-ev=QLvL|V4ptg=4(Nteu!Z5}IMU${1DLy@*@Ovx!&`8pGhUxt)`A_OywJH`ho z*>GgGfGj&w%B~OsG#n;hEG;>%a(XFW=o2jQ;Ur-PJet?im?WW!Bq!&cQdyCcS&4s{O1GE_E z1B(n%3V4Y1CXS0sBV<=KT9#TsO`W^#KeJb#d1N8(-nV$tHjm`)kVymS zWn)Ki>Y>)&G>N?6K}Swn!LV;e`zO#DyNa72Xaf*6_JL}Lx~lSLo@+67DE-SWA%IJl zL1_`2s)RC79$eZ|rxN=_i)QWJ%b`$(YLqMg7Co{gxEBke4b>X|LT);6Wcx$!tOwmT z2rJJ8T;;GOhU1VsP@6{vR@600dgH*E;-~$8upO^ACNMTFpHa3 zE?C3(BW}!!(9kR{(uQ{Q7|KS?zw-+5wJk@cu_=MzPOUK72qo=c1pXbM4S+FQ1?zSgOSY9xC@cnY(yrr{7DY&@$-gIF zo}_5odrf4JeMUIJ14|blIx#GK6Vg5V|8Q046@Or%_%?o}=1Q+i1A(G!S@YI6ZerBf z(%!%9ZlDdulhe>{(boYo^)n0)`qTl%EQ`t1#Th$kQTX_9J)lq99b=15UOHv>PF(b; z^X3k}9xK@w{ zIelS}7sH5yfPTpq;&@~^oeUbpkbZe4OTbbmAK@8zNzwEYl?VK?Ybm=5v$nvvdlMGr?3JmFc7!Xl^-*qunrwkHyucGhk@=~-9ccv2HCO7@XPh)%KhUlBqmNxe_^ zEFo65lqeuQAV66P20;XMBt&yqOZ>BwOVI|%fq%r{ zKC45JgQ26(vpSvE1~Z*J8T0{e&!vzK(#&&=*`x!%j3?J&Z{UF>gn+h38+F)7Qu!;^ zs$XSJG+AvY80mFC1sueJXd5<|{`KCgANY44x%hv`k!}CR`;a|P?Ugueoy}&?Jc)1v zP6{yn(hl_5)eu5ske2jvt(@vA9frPvVWzT}7D_bOd+lWw~}B z#qWgdIOG{pjz5(tcQbzk9VP!#W>$Vs=8nmodA`QAMJFyj^=q%dn?`?q)c5fnFJQNA z+Y&Cg{2W|**#)ah)Vpxm6E4JAXP+@`!-o$Y#yxlL!wp}$6*pdYJ8r!C4vbgkQ68J0 zp7w&r;+*r&T4Ssp5QaVgrsVJA3XN|3%!Ur-AtqR?@<@}@>8w57YDM8U9e*|8qxeD7`|0*i=vD#SmxJqPkiEKFFo6vaYeQzEe z*!`;2Qc7=#F+gSwm4^}Yu>+s=2xb~_Wan;AK#kHTk z2{&AG`-Z(~L_{_W1n=0j4d3uxUyG=M=A*VES|15Xkp4RG1!x7f0@|Xu^>cEeDBeQn z0jQs5gC^^K!rv;gPHuY6fD?W~Y|F4nV5oIzzXqNPiLy^th0^lzSbNMtN(Im%kVfrk z6-mSRUBGzKKUNl6#St!~f+an_3N#gqpj#7j-w5vZ?CZWNPwj85O0oe~FGaTocS;5| z*Hpf(eydiWPIiy>F$8vNU0Wd(%-b*L)62qDI3At0@(C=EjtSs<=^?m?x71(tK6(DSjErV1sZNn^m1t>y! z644DZD5IZQ1T#M}^>gPo$)csNMGX4Zu2Qz>#G;qH^4a+82d~BQ;m!G)wMjF*^s(oy zf}H2zNzZ&N_MEmG>)9K)W5-TB;ptaQKjZNVZom0X{Q2*^3!nSYS8(L;3KmJMG_n#| z6bO9cvmb>EF3Ni^>#=Dz#c^$Yy}VCFiPZjO;yI|)OfD`fZ;kU{!~K>vVCcLg4gFnS z%aS5wYG?As0u7NnE0gw?Q%g@|q*4R2EDxtN{XHhVp;Q*=4udfK^cX`MDYQujeswOs ze6@FJw^0^VezSAE+7u!|3s29(S=oxBRr`n;S4{Sy5>WprQJ(rYQnD_$WECplb|6`9 zU!@nQhsc6H(~FmGJ|hg(kLY1+8!vQ5zl38zANr;HkG$~5E`5v~-tp{eZ$PcV zPhrJ^_`;J0mtaj32w_M<(PA+*$mG%y8=PFCo)O^Eq3}U|G^*dOI*9xl9X#`MX@_`o zHLxu@QR(dS&crP@-iBMQy9=9%cJAJe7rx@@`1}9-oAIsx@au8Oqb|aZojcYA_99LC z^=W6Eif6z0DR|b4pMd@MKZHAPxp&hq`A)84`N#kEl{n+9*86jhrd(u(n_!54Q&kDu z-O$);mM5rbq;dgtj(Qg3Bj_2Yv;<|~p`>^-%rj|yT+cUvP4TNGV89`M;_N^I>tm47 zp!jQ@RUt?u21aYy5}Aa#hR*{m|q ztC#R~#&3WR=Hw95@BD7ymYM@f8}bv1Bnw;jaz2DXdEQoqHWmFUZJdn0_FJQxcI=p# zg&S?hbt}8{7e4!64;;dR=$KgeCN$oC-G!nJ2+UHM2EH^goLDcq#@NZ7JAgW@DGm9lkf;<>ENs!klP2xs+y2o@R+l+%#=Une z>@xOs)0yXK@;--|DP{Hxfk z^mX6#WL$FDMOX|)1wKS=&73(XYHno}p^R-gQvV7}9({BCGSn%D30A0{Jam8zNE^Hw zepN2zn)Tyq(SBk(JBSL8SRYB&cFwwOsU*WN&pTFWc_w2_4>6lpfCiH}Vd&wPp_U-r% z8E-p3yX6@k{Q|f$gIhkqQrsleX|a$=0ZV*LTr7wcbsCri!6H~$B0b7)E*ndDl$PZX z2F#>L)tsTBY4OWBt9o`!$?>Tky> zdrnC%v24~;0G>c$zgE)oJS*%hUnvtyuc|FBccnBg4+C0+$9a^PVgl z597E@%2lI9$pVyRYlYixQ^YCz!4QZ67-83RWKLZ?gJxEQRf2%x^zzsQPu$Rgq z=f^;rC#jUC2dR}+40V|~iJ!Y1pj~@*;3t0e zdvMVsE(ktr0c`V-tns%Wzaj=;wIvlKY`76PX--~yQ%3*|-FFM?c#Bh=KN@jS@9!Ft zqf_9T#_l+Aa=N~X&w$CtRdXizWspW1T*ht>DZn-%4_uN|Q{6HK8sM4J1XxeOK#M!5 zLu!z8ZGID#18!nTxmSx8d6LXo`SqLz&UGaux24?Ec*I-uTJdXQ&L!*zzdw;Zhi% zKZ?t7LRpng)}Y=F)a$-QCkj3Cii@TPB(C|)4XYNeg>Ct$XxHxTc-%8C!}tEvm*HE! z@9S~-<1fW%bWDelLE5=<2cG(z$Knx>zW}%0bT{_hz0ehrHPQB6+g8Ewx8Nzye%wH) zqv?Cn^V}C!W^hVMNBr2@vZ~ai4&j)UET%Kh*d*}dE~TQ{wtP8BH1N{Cfb`%2Sl;>r zpyF1fO#r3a=jOqaOCTE;Gy^pBS_<=Xv7|u>z^T=VJAvz2XplThm8&N|XUiaK#VJ^m zD3_KROAXQ7_|HGYqua;p~-^VZbL1 zpXj=D%J@qw=im49pZXOnbOwJ+N9u3*-rM)B?7Z{}IkNrfAiyF4Y-MVj@?i}};v7`K zR<3M~^M@fEr*1hnSl)yxS-8Fef<+~;J^XgeC?eJUEbcwR;D?@26gl=lq?g4}{7}=2(Kh zwhJq1lyS&gTOv59KpG8SeAPyK{^^x$x0E;nF9&uEq%CleEd!}8iqw28BpBGD8O{T~ z{M&RCTgMmx)NQN-XE~PUf^Gz*`v+0y(ZfNl8HD|Z(@<{;(=258#-63+C*Sz_Dra+Rp?^}zY_@f&3l;;1uW`iVoF(AZvn3CRwngM#K;Ron)A z?LNEX)bW4+-Df=XRxFr~xki8W=b!PyZFgSq9v%iVFay{nJ*8z*i9T-GwQ#X83Al}N z{J88{o+Vi*EcWEcMaR2ynes?!O?_9x7j9`J7>W3}6uvym$mD{_mF1nrg}6bE<=wbIhI$!XZ#c-*rdiD$gv z@p$4hA9Iwi13P|n=N)(B&2M-oKJ~t9uzYaim%Puu;B@?xpZi{1@`wxP2)&3tRiMs* zpZV8Tl^z>M+TmYLNkXf!qgpyu0up3#>MT|Xq@)Sl{Xs|aFL$K z`jsz*=6GX@H!iQZ96Q?MEXo==>Xa#U|M)8N*TS+vS4Ls#YL?#Y%^9xG<~A~~J>rM|ioz$?kE3pKX# zSKDW4@_6|Q5LUJYs%tx3zj-3Ub)VDXc3obqfKK0yDgEw64^)>Oy6^monoBjAzZ!Xh zt3CV6(+ZT57bjmE#O7b))P86Cbnwzh?9bfwNb@<%JzKk2cd*v&u3fwEaG=S+e(e`-zLA#ophS>5-4S06+YiSK@+;=YQAn(bEv%Yx!$4gefAkhzJ2bAvcRR8}MaCS_8iP zq;z7|1EHemDNY145%8HDng9wbc!nbH4vFVP)LOU7V&V_ zq6C*1c$Tn}Uv|1Rzb@3kxGxWT1!yY!k}qGT-IXj|`AnRqX^VP`oigBy@@dGsPH(kP z^>tu%HV*aI@tp#)!q)(wy8I-E4EQEMRP1!Lg3HnazT&2KID_jZ^OzC?zOqbbakR(6 zR{)=Sove+peqvSY($S9bS9d)Ap=bZjWA-m}|6We}nA2-M{@j1H^uU?_c@WxMP zz%u9?$&$$gq4J0_hWrkKzSgpvR^b;zTOe>V(`4{Dc<>ak!n1M8 zDW~9MqDdKi^xdDuC;#?peB}!_Nf9^x>o?} zr6JI#GgD)=V>m5YJdjVIjy!5B;Wcp4p!Cr#;WYtY{zc(6TC}`EkD$(5c>=H_ATh42 zcwP7kEGD4XDQwi>G6AkElL0aUuJC|wnzkk&BH2neuF7C+=+g3%(}}VqfYpibNUOcj;)Ism@}x;0Dg;vIxd#W4AdsP#_3)56EHT$3bM5>12-$TaYH`Ki{*>rP530wdB-C~4D_%_ew!Rw!Vmx0EnIM zC_fkAmw}m-d-XDp5nBpnwpv_M|1tPFJJ-+8a=Do$jO(f6SpXlGqh_FsVqF{;%b5Z2VyP=- z)@mcx4qV#EfDcp;UG#YXUoPLAFNiHqORLY4RnHE0pb7Ytp7JCivjF^3E+|LMzBQeecEw&~ekouleZne{r<`w4a(hkEYhJ2;_WtZ_#qLEZavHfRTYGIN;+! zpYbw4<*j_3e4wS>Q2=FmkDl%2Gr+iH;hlAEL{`C0`m$t8;TVV_rQv{R@vSX=4j?z* zTdFSn#!^-#TL5s2HYcsDtl+NO?!le6-G|$5yc4&5^=>@0{{W6GAHmYn5_YXxLMN?v z_i4Lu`I9cjg^xTB=U;rz)Q@SsfNw%a5Bg-l&r$)jiqQgqB{o|?6!52T198x; z2iT%SUZL}{F8fDdH=%An9>{W&G0!-Fo*JBV`}kJi!5RYKv%DG@>iB!Wr$vThElc^2 z{sou>D;woBff5Fn9`JP*(8L4v@~P!LynlBZsI%~m$9d^CS>_M{-wGILmz!GD@We!(wxx)QH69b!ye!!=i>ractF7xRue0`QXWhQOj z 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 literal 15784 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 diff --git a/android/Staccato_AN/app/src/main/res/drawable/feeling_scared_gray.png b/android/Staccato_AN/app/src/main/res/drawable/feeling_scared_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..f1f9ae81c04586aed489e22803da217a4726c940 GIT binary patch literal 59130 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

)2}t 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 g?*#sTPC$eiZSr%G%&#jV+Bn7~YQgKe3miu>b%7 literal 0 HcmV?d00001 diff --git a/android/Staccato_AN/app/src/main/res/drawable/icon_arrow_left.xml b/android/Staccato_AN/app/src/main/res/drawable/icon_arrow_left.xml index 1d9fa0cdb..4e8a10ba5 100644 --- a/android/Staccato_AN/app/src/main/res/drawable/icon_arrow_left.xml +++ b/android/Staccato_AN/app/src/main/res/drawable/icon_arrow_left.xml @@ -4,7 +4,7 @@ android:viewportWidth="36" android:viewportHeight="36"> diff --git a/android/Staccato_AN/app/src/main/res/drawable/icon_edit.xml b/android/Staccato_AN/app/src/main/res/drawable/icon_edit.xml new file mode 100644 index 000000000..b7bbdc751 --- /dev/null +++ b/android/Staccato_AN/app/src/main/res/drawable/icon_edit.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/android/Staccato_AN/app/src/main/res/drawable/icon_filter.xml b/android/Staccato_AN/app/src/main/res/drawable/icon_filter.xml index f4786c974..9b81a4977 100644 --- a/android/Staccato_AN/app/src/main/res/drawable/icon_filter.xml +++ b/android/Staccato_AN/app/src/main/res/drawable/icon_filter.xml @@ -1,13 +1,12 @@ + android:width="14dp" + android:height="14dp" + android:viewportWidth="14" + android:viewportHeight="14"> - + + android:fillColor="#949494" + android:pathData="M8.779,11C8.998,11 9.197,10.949 9.377,10.847C9.557,10.745 9.701,10.609 9.809,10.439C9.916,10.268 9.97,10.079 9.97,9.873C9.97,9.666 9.916,9.477 9.809,9.307C9.701,9.136 9.557,9 9.377,8.898C9.197,8.796 8.998,8.745 8.779,8.745C8.561,8.745 8.361,8.796 8.181,8.898C8.001,9 7.856,9.136 7.747,9.307C7.638,9.477 7.583,9.666 7.583,9.873C7.583,10.079 7.638,10.268 7.747,10.439C7.856,10.609 8.001,10.745 8.181,10.847C8.361,10.949 8.561,11 8.779,11ZM8.779,10.422C8.617,10.422 8.48,10.369 8.367,10.262C8.255,10.156 8.199,10.026 8.199,9.873C8.199,9.716 8.255,9.585 8.367,9.48C8.48,9.375 8.617,9.323 8.779,9.323C8.941,9.323 9.079,9.375 9.191,9.48C9.304,9.585 9.36,9.716 9.36,9.873C9.36,10.026 9.304,10.156 9.191,10.262C9.079,10.369 8.941,10.422 8.779,10.422ZM7.99,9.492H2.397C2.288,9.492 2.194,9.529 2.117,9.602C2.039,9.676 2,9.766 2,9.873C2,9.976 2.039,10.064 2.117,10.138C2.194,10.212 2.288,10.248 2.397,10.248H7.99V9.492ZM11.618,9.492H9.643V10.248H11.618C11.72,10.248 11.81,10.212 11.886,10.138C11.962,10.064 12,9.976 12,9.873C12,9.766 11.962,9.676 11.886,9.602C11.81,9.529 11.72,9.492 11.618,9.492ZM5.275,8.134C5.494,8.134 5.693,8.083 5.873,7.979C6.054,7.876 6.198,7.739 6.305,7.568C6.413,7.398 6.467,7.209 6.467,7.002C6.467,6.796 6.413,6.607 6.305,6.436C6.198,6.266 6.054,6.129 5.873,6.028C5.693,5.926 5.494,5.875 5.275,5.875C5.057,5.875 4.858,5.926 4.677,6.028C4.497,6.129 4.353,6.266 4.246,6.436C4.138,6.607 4.084,6.796 4.084,7.002C4.084,7.209 4.138,7.398 4.246,7.568C4.353,7.739 4.497,7.876 4.677,7.979C4.858,8.083 5.057,8.134 5.275,8.134ZM5.275,7.552C5.113,7.552 4.976,7.499 4.864,7.392C4.751,7.286 4.695,7.156 4.695,7.002C4.695,6.846 4.751,6.715 4.864,6.61C4.976,6.505 5.113,6.453 5.275,6.453C5.441,6.453 5.579,6.505 5.69,6.61C5.801,6.715 5.856,6.846 5.856,7.002C5.856,7.156 5.801,7.286 5.69,7.392C5.579,7.499 5.441,7.552 5.275,7.552ZM2.377,6.622C2.278,6.622 2.19,6.659 2.114,6.732C2.038,6.806 2,6.896 2,7.002C2,7.109 2.038,7.198 2.114,7.27C2.19,7.342 2.278,7.378 2.377,7.378H4.422V6.622H2.377ZM11.598,6.622H6.065V7.378H11.598C11.71,7.378 11.806,7.342 11.883,7.27C11.961,7.198 12,7.109 12,7.002C12,6.896 11.961,6.806 11.883,6.732C11.806,6.659 11.71,6.622 11.598,6.622ZM8.779,5.26C8.998,5.26 9.197,5.209 9.377,5.107C9.557,5.005 9.701,4.869 9.809,4.698C9.916,4.528 9.97,4.339 9.97,4.132C9.97,3.925 9.916,3.737 9.809,3.566C9.701,3.395 9.557,3.258 9.377,3.155C9.197,3.052 8.998,3 8.779,3C8.561,3 8.361,3.052 8.181,3.155C8.001,3.258 7.856,3.395 7.747,3.566C7.638,3.737 7.583,3.925 7.583,4.132C7.583,4.339 7.638,4.528 7.747,4.698C7.856,4.869 8.001,5.005 8.181,5.107C8.361,5.209 8.561,5.26 8.779,5.26ZM8.779,4.682C8.617,4.682 8.48,4.628 8.367,4.52C8.255,4.412 8.199,4.281 8.199,4.127C8.199,3.974 8.255,3.844 8.367,3.738C8.48,3.631 8.617,3.578 8.779,3.578C8.941,3.578 9.079,3.631 9.191,3.738C9.304,3.844 9.36,3.974 9.36,4.127C9.36,4.281 9.304,4.412 9.191,4.52C9.079,4.628 8.941,4.682 8.779,4.682ZM8.015,3.756H2.397C2.288,3.756 2.194,3.793 2.117,3.867C2.039,3.94 2,4.029 2,4.132C2,4.239 2.039,4.329 2.117,4.402C2.194,4.476 2.288,4.513 2.397,4.513H8.015V3.756ZM11.618,3.756H9.573V4.513H11.618C11.72,4.513 11.81,4.476 11.886,4.402C11.962,4.329 12,4.239 12,4.132C12,4.029 11.962,3.94 11.886,3.867C11.81,3.793 11.72,3.756 11.618,3.756Z" /> diff --git a/android/Staccato_AN/app/src/main/res/drawable/icon_folder.xml b/android/Staccato_AN/app/src/main/res/drawable/icon_folder.xml new file mode 100644 index 000000000..58918f1fb --- /dev/null +++ b/android/Staccato_AN/app/src/main/res/drawable/icon_folder.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/android/Staccato_AN/app/src/main/res/drawable/memory_gradient.xml b/android/Staccato_AN/app/src/main/res/drawable/memory_gradient.xml new file mode 100644 index 000000000..dc64ff730 --- /dev/null +++ b/android/Staccato_AN/app/src/main/res/drawable/memory_gradient.xml @@ -0,0 +1,14 @@ + + + + + + + diff --git a/android/Staccato_AN/app/src/main/res/drawable/shape_all_gray1_4dp.xml b/android/Staccato_AN/app/src/main/res/drawable/shape_all_gray1_4dp.xml index 723664d03..5e03848ef 100644 --- a/android/Staccato_AN/app/src/main/res/drawable/shape_all_gray1_4dp.xml +++ b/android/Staccato_AN/app/src/main/res/drawable/shape_all_gray1_4dp.xml @@ -1,5 +1,7 @@ - + diff --git a/android/Staccato_AN/app/src/main/res/drawable/shape_bottom_sheet_square.xml b/android/Staccato_AN/app/src/main/res/drawable/shape_bottom_sheet_square.xml new file mode 100644 index 000000000..87cbb093f --- /dev/null +++ b/android/Staccato_AN/app/src/main/res/drawable/shape_bottom_sheet_square.xml @@ -0,0 +1,4 @@ + + + + diff --git a/android/Staccato_AN/app/src/main/res/drawable/staccato_gradient.xml b/android/Staccato_AN/app/src/main/res/drawable/staccato_gradient.xml new file mode 100644 index 000000000..10e7d69db --- /dev/null +++ b/android/Staccato_AN/app/src/main/res/drawable/staccato_gradient.xml @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/android/Staccato_AN/app/src/main/res/layout/activity_login.xml b/android/Staccato_AN/app/src/main/res/layout/activity_login.xml index 0a9fa49de..6e4473be1 100644 --- a/android/Staccato_AN/app/src/main/res/layout/activity_login.xml +++ b/android/Staccato_AN/app/src/main/res/layout/activity_login.xml @@ -7,11 +7,11 @@ + type="com.on.staccato.presentation.login.viewmodel.LoginViewModel" /> + type="com.on.staccato.presentation.login.LoginHandler" /> + type="com.on.staccato.presentation.main.MainHandler" /> - - - - diff --git a/android/Staccato_AN/app/src/main/res/layout/activity_memory_creation.xml b/android/Staccato_AN/app/src/main/res/layout/activity_memory_creation.xml index 9ed383770..dc24a7ece 100644 --- a/android/Staccato_AN/app/src/main/res/layout/activity_memory_creation.xml +++ b/android/Staccato_AN/app/src/main/res/layout/activity_memory_creation.xml @@ -10,11 +10,11 @@ + type="com.on.staccato.presentation.memorycreation.viewmodel.MemoryCreationViewModel" /> + type="com.on.staccato.presentation.memorycreation.MemoryCreationHandler" /> + app:layout_constraintTop_toTopOf="parent" + app:subtitle="@string/memory_creation_toolbar_subtitle" + app:title="@string/memory_creation_toolbar_title" /> + app:layout_constraintTop_toTopOf="@id/iv_memory_creation_photo_attach" + bind:thumbnailUri="@{viewModel.thumbnailUri}" + bind:thumbnailUrl="@{viewModel.thumbnailUrl}" /> + bind:startDate="@{viewModel.startDate}" /> diff --git a/android/Staccato_AN/app/src/main/res/layout/activity_memory_update.xml b/android/Staccato_AN/app/src/main/res/layout/activity_memory_update.xml index 0d578f9d5..3cd9de737 100644 --- a/android/Staccato_AN/app/src/main/res/layout/activity_memory_update.xml +++ b/android/Staccato_AN/app/src/main/res/layout/activity_memory_update.xml @@ -10,11 +10,11 @@ + type="com.on.staccato.presentation.memoryupdate.viewmodel.MemoryUpdateViewModel" /> + type="com.on.staccato.presentation.memoryupdate.MemoryUpdateHandler" /> + app:layout_constraintTop_toTopOf="parent" + app:subtitle="@string/memory_update_toolbar_subtitle" + app:title="@string/memory_update_toolbar_title" /> + bind:photoUrl="@{viewModel.thumbnailUrl}" + bind:startDate="@{viewModel.startDate}" /> diff --git a/android/Staccato_AN/app/src/main/res/layout/activity_visit_creation.xml b/android/Staccato_AN/app/src/main/res/layout/activity_visit_creation.xml index 9c569a2d1..81d271e06 100644 --- a/android/Staccato_AN/app/src/main/res/layout/activity_visit_creation.xml +++ b/android/Staccato_AN/app/src/main/res/layout/activity_visit_creation.xml @@ -10,11 +10,11 @@ + type="com.on.staccato.presentation.momentcreation.viewmodel.MomentCreationViewModel" /> + type="com.on.staccato.presentation.momentcreation.MomentCreationHandler" /> + app:layout_constraintTop_toTopOf="parent" + app:subtitle="@string/visit_creation_toolbar_subtitle" + app:title="@string/visit_creation_toolbar_title" /> + type="com.on.staccato.presentation.visitupdate.viewmodel.VisitUpdateViewModel" /> + type="com.on.staccato.presentation.visitupdate.VisitUpdateHandler" /> + app:layout_constraintTop_toTopOf="parent" + app:subtitle="@string/visit_creation_toolbar_subtitle" + app:title="@string/visit_creation_toolbar_title" /> + type="com.on.staccato.presentation.memory.viewmodel.MemoryViewModel" /> + type="com.on.staccato.presentation.memory.MemoryHandler" /> + type="com.on.staccato.presentation.common.ToolbarHandler" /> @@ -58,48 +58,51 @@ android:layout_height="0dp" android:contentDescription="@string/all_image_content_description" android:scaleType="centerCrop" - android:visibility="@{viewModel.memory.memoryThumbnailUrl == null ? View.GONE : View.VISIBLE}" - app:layout_constraintDimensionRatio="1:1" + app:layout_constraintDimensionRatio="3:2" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" bind:coilImageUrl="@{viewModel.memory.memoryThumbnailUrl}" - bind:coilPlaceHolder="@{@drawable/shape_place_holder_rectangle}" + bind:coilPlaceHolder="@{@drawable/memory_gradient}" tools:src="@drawable/shape_place_holder_rectangle" /> + + + tools:text="아주 아주 아주 아주 아주 아주 아주 아주 아주 아주 아주 아주 긴 추억 제목" /> - - + app:layout_constraintTop_toBottomOf="@id/iv_memory_thumbnail" + tools:text="(추억 소개) Lorem Ipsum is simply dummy text of the printing and typesetting industry. " /> - + app:layout_constraintTop_toTopOf="@id/tv_memory_visits"> + +